- Home
- MCP servers
- Oracle
Oracle
- python
0
GitHub Stars
python
Language
6 months ago
First Indexed
3 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"dhananjay-2024-oracle-mcp-server-deer": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ORACLE_CONNECTION_STRING",
"-e",
"TARGET_SCHEMA",
"-e",
"CACHE_DIR",
"-e",
"THICK_MODE",
"dmeppiel/oracle-mcp-server"
],
"env": {
"CACHE_DIR": ".cache",
"READ_ONLY_MODE": "1",
"ORACLE_CONNECTION_STRING": "<db-username>/<password>@<host>:1521/<service-name>"
}
}
}
}You run an MCP server that serves contextual Oracle DB schema information to AI assistants, enabling fast, targeted lookups, schema searches, and relationship mapping across large Oracle databases. It supports multiple databases, caching to reduce load, and can integrate with AI tools to provide accurate database context during development and querying.
How to use
You connect your MCP client to the Oracle DB Context server to access tools that fetch and explore schema information. Start from a local or remote MCP server configuration, then use an AI assistant (like GitHub Copilot in VSCode Insiders) or other MCP-enabled agents to request table schemas, search for tables, inspect constraints and indexes, and run read-only queries. You can work with a single Oracle database or multiple databases, and you can switch between environments (prod, test, dev) while keeping separate caches.
Key capabilities you will use include getting detailed table schemas, retrieving multiple table schemas at once, searching for tables by name patterns, rebuilding the schema cache when the database structure changes, and querying for PL/SQL objects, constraints, indexes, and related tables. In read-only mode by default, write operations are blocked for safety; you can enable write access only if you explicitly set write permissions.
How to install
This guide provides concrete steps to run the MCP server locally using either Docker (recommended) or a local UV-based installation. Choose your path below and follow the steps in order.
Prerequisites you’ll need before starting:
- Python 3.12 or higher for UV-based installation
- Docker (for the Docker path)
- Oracle database access and client libraries if you enable thick mode
- Oracle Instant Client libraries if you plan to use thick mode with the Docker image or local setup
Additional notes
Starting the server locally with UV is done by running a Python entry point. The Docker path uses a container image that includes all dependencies. If you are integrating with Copilot in VSCode Insiders, configure your MCP client to point at one of these stdio servers, load the environment variables, and enable Agent mode in the Copilot chat to access the available tools.
Configuration and startup details
Two MCP stdio configurations are provided to connect to the Oracle MCP server from your MCP client. Use the one that matches your environment.
{
"type": "stdio",
"name": "oracle_docker",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ORACLE_CONNECTION_STRING",
"-e",
"TARGET_SCHEMA",
"-e",
"CACHE_DIR",
"-e",
"THICK_MODE",
"dmeppiel/oracle-mcp-server"
],
"env": {
"ORACLE_CONNECTION_STRING": "<db-username>/<password>@<host>:1521/<service-name>",
"TARGET_SCHEMA": "",
"CACHE_DIR": ".cache",
"THICK_MODE": "",
"ORACLE_CLIENT_LIB_DIR": "",
"READ_ONLY_MODE": "1"
}
}
{
"type": "stdio",
"name": "oracle_uv",
"command": "/path/to/your/.local/bin/uv",
"args": [
"--directory",
"/path/to/your/oracle-mcp-server",
"run",
"main.py"
],
"env": {
"ORACLE_CONNECTION_STRING": "<db-username>/<password>@<host>:1521/<service-name>",
"TARGET_SCHEMA": "",
"CACHE_DIR": ".cache",
"THICK_MODE": "",
"ORACLE_CLIENT_LIB_DIR": "",
"READ_ONLY_MODE": "1"
}
}
Available tools
get_table_schema
Fetch detailed schema for a specific table including columns, data types, nullability, and relationships.
get_tables_schema
Retrieve schemas for multiple tables in a single operation for efficiency.
search_tables_schema
Find tables by name pattern and retrieve their schemas.
rebuild_schema_cache
Force a full rebuild of the local schema cache; use sparingly as it is resource-intensive.
get_database_vendor_info
Get information about the connected Oracle database version and vendor.
search_columns
Search for tables containing columns that match a given term.
get_pl_sql_objects
Get information about PL/SQL objects like procedures, functions, packages, and triggers.
get_object_source
Retrieve the source code for a PL/SQL object.
get_table_constraints
Get all constraints (PK, FK, UNIQUE, CHECK) for a table.
get_table_indexes
Get all indexes defined on a table.
get_dependent_objects
Find objects that depend on a specified database object.
get_user_defined_types
Get information about user-defined types in the database.
get_related_tables
Get tables related to a specified table via foreign keys.
run_sql_query
Execute a SQL query and return results in a formatted table. In read-only mode, only SELECT is allowed.