MCP-Oracle
MCP-Oracle
Español | Deutsch
Ein MCP (Model Context Protocol) Server, der einen KI-Agenten mit einer Oracle-Datenbank verbindet.
Er stellt Werkzeuge bereit, um das Schema zu erkunden, PL/SQL-Quelltext zu lesen und SQL auszuführen. Er startet im Schreibgeschützt-Modus; Schreibvorgänge und Aufrufe von Stored Procedures werden durch ORACLE_ALLOW_WRITE=true aktiviert mulberry.
Er verwendet das offizielle Python-SDK (mcp) und python-oracledb,.
Falls ein Instant Client (oder das lib/-Verzeichnis eines ORACLE_HOME) gefunden wird, aktiviert er den Thick-Modus, andernfalls den Thin-Modus. Der Thick-Modus ist für ältere Instanzen (10g/11g) erforderlich, deren Passwortverifizierer im Thin-Modus nicht unterstützt wird.
Dieses Projekt ist nicht die offizielle Oracle-MCP-Suite (oracle/mcp). Dieses Repository richtet sich an Oracle-Cloud- und andere Oracle-Produkte. Dieser Server spricht direkt mit dem Listener Ihrer Datenbank.
Tools
Tool | Beschreibung | Schreibzugriff |
| Listet sichtbare Tabellen auf. Optionaler Parameter | Nein |
| Spalten, interne Eingaben, Kommentare und Primärschlüssel. | Nein |
| PK-, FK- und Unique-Constraints einer Tabelle. | Nein |
| Quellcode von PACKAGE, FUNCTION, PROZEDUR, TRIGGER oder VIEW. | Nein |
| Führt | Nein |
|
| Ja |
| Aufruf einer Stored PL/SQL-Prozedur + Commit. | Ja |
run_query und execute_dml akzeptieren Bindevariablen (:name), sodass Sie Werte nicht in SQL einfügen müssen.
Related MCP server: Oracle DB MCP Server
Voraussetzungen
Python 3.9+
Zugriff auf eine Oracle-Instanz (Benutzer, Passwort, Host, Port und
service_name)Für Oracle 10g/11g (oder wenn der Thin-Modus fehlschlägt): Oracle Instant Client oder das
lib/-Verzeichnis einesORACLE_HOME
Lokale Verwendung vs. Produktion
Diese README beschreibt die lokale Verwendung: Cursor oder Claude Desktop starten server.py auf Ihrem Computer über stdio (es wird kein HTTP-Port geöffnet).
Wenn der MCP-Server dauerhaft auf einem Server betrieben werden und Clients über das Netzwerk verbinden sollen:
Installation
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtKopieren Sie die Vorlage für die Umgebungsvariablen und füllen Sie Ihre Werte aus:
cp .env.example .envDer Server lädt .env nicht automatisch. Diese Variablen müssen in der MCP-Client-Konfiguration (Cursor, Claude Desktop, u. Ä.) übergeben werden. Die .env-Datei dient als lokale Referenz; committen Sie sie nicht.
Umgebungsvariablen
Variable | Erforderliche? | Standard | Beschreibung |
| Ja | — | Datenbankbenutzer |
| Ja | — | Passwort |
| Wenn |
| Listener Host |
| Wenn |
| Listener Port |
| Wenn | — | Servicens (z. B. |
| Nein | — | Wenn gesetzt, kaputiert host/port/service. Nutzbar/Tur TNS-Alias oder EinkConnect Plus |
| Nein |
|
|
| Nein |
| Maximale Anzahl Zeilen, die |
| Nein |
| Instant-Client-Ordner oder |
Thick- vs. Thin-Modus
Beim Start prüft der Server ORACLE_CLIENT_LIB_DIR (bzw. ~/oracle/instantclient). Wenn dieser Ordner existiert, ruft er oracledb.init_oracle_client() auf und verwendet den Thick-Modus.
Beispiele:
# Instant Client (zip / RPM)
ORACLE_CLIENT_LIB_DIR=/Users/your_user/oracle/instantclient
# ORACLE_HOME 19c
ORACLE_CLIENT_LIB_DIR=/apps/oracle/product/19c/libWenn kein nativer Client vorhanden ist, läuft der Server im Thin-Modus (in den meisten Fällen Oracle 12.1+).
Verwenden mit Cursor
Fügen Sie in Cursor einen Server zur MCP-Konfiguration hinzu (z. B. ~/.cursor/mcp.json oder die Projektkonfiguration):
{
"mcpServers": {
"oracle-mcp": {
"command": "/Users/your_user/Development/oracle-mcp/.venv/bin/python",
"args": ["/Users/your_user/Development/oracle-mcp/server.py"],
"env": {
"ORACLE_USER": "my_user",
"ORACLE_PASSWORD": "my_password",
"ORACLE_HOST": "127.0.0.1",
"ORACLE_PORT": "1521",
"ORACLE_SERVICE_NAME": "ORCLPDB1",
"ORACLE_ALLOW_WRITE": "false",
"ORACLE_MAX_ROWS": "200"
}
}
}
}Verwenden Sie den absoluten Pfad zur .venv-Python, damit er in Client die Pakete mcp und oracledb findet.
Starten Sie Cursor neu (oder laden Sie die MCP-Server neu) und vergewissern Sie sich, dass oracle-mcp in der Werkzeugliste erscheint.
Verwenden mit Claude Desktop
In der claude_desktop_config.json:
{
"mcpServers": {
"oracle-mcp": {
"command": "/Users/your_user/Development/oracle-mcp/.venv/bin/python",
"args": ["/Users/your_user/Development/oracle-mcp/server.py"],
"env": {
"ORACLE_USER": "my_user",
"ORACLE_PASSWORD": "my_password",
"ORACLE_HOST": "127.0.0.1",
"ORACLE_PORT": "1521",
"ORACLE_SERVICE_NAME": "ORCLPDB1",
"ORACLE_ALLOW_WRITE": "false",
"ORACLE_MAX_ROWS": "200"
}
}
}
}Manueller Start
Lokal spricht der Server MCP über stdio (er öffnet keinen HTTP-Port). Auf einem Produktionsserver ist ein Transport HTTP; siehe "Lokale Verwendung vs. Produktion" als Link.
source .venv/bin/activate
export ORACLE_USER=my_user
export ORACLE_PASSWORD=my_password
export ORACLE_HOST=127.0.0.1
export ORACLE_PORT=1521
export ORACLE_SERVICE_NAME=ORCLPDB1
python server.pyOhne einen MCP-Client, der an stdin/stdout angeschlossen ist, sehen Sie keine interaktive Eingabeaufforderung; das ist normal.
Sicherheit
Standardumgebung:
ORACLE_ALLOW_WRITE=false:execute_dmlundcall_procedureschlagen mitPermissionErrorfehl.Wenn
ORACLE_ALLOW_WRITEnichttrueist, gibtexecute_dmlundcall_procedureFehler.run_querylehnt Anweisungen ab, die mitINSERT,UPDATE,DELETE,MERGE,DROP,ALTER,TRUNCATE,CREATE,GRANToderREVOKEbeginnen.execute_dmlakzeptiert nurINSERT,UPDATE,DELETEoderMERGE.Bevorzugen Sie Bind-Variablen (
:name) und nicht das Einfügen von Werten in SQL.Verwenden Sie ein Benutzer mit minimalen Rechten, wenn Sie nur das Schema erkunden möchten.
Committen Sie nicht Ihre
.env-Datei oder Zugangsdaten in ein versioniertesmcp.json.
Abhängigkeiten
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides flexible access to Oracle databases for AI assistants like Claude, supporting SQL queries across multiple schemas with comprehensive database introspection capabilities.69510MIT
- AlicenseAqualityCmaintenanceEnables AI tools to interact with Oracle databases through query execution, schema browsing, stored procedure calls, and transaction management. Supports multiple database connections with safety features like read-only mode and dangerous query detection.16MIT
- AlicenseNot gradedqualityBmaintenanceEnables Claude Code to execute read-only queries and DML operations on Oracle and PostgreSQL databases, and to list or describe database tables.151MIT
- FlicenseNot gradedqualityBmaintenanceProvides AI assistants with secure, structured access to Oracle Database through MCP, enabling SQL execution, metadata exploration, and stored procedure execution.
Related MCP Connectors
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
Run SOQL queries to explore and retrieve Salesforce data. Access accounts, contacts, opportunities…
Runtime permission, approval, and audit layer for AI agent tool execution.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/VasquezNodier/mcp-oracle'
If you have feedback or need assistance with the MCP directory API, please join our Discord server