MCP DB Wizard
offiziellEin MCP-Server für Oracle, mit dem Sie nicht gefeuert werden. Der MCP-Server stellt keine SQL-Eingabeaufforderung bereit und kann Ihnen nicht sagen, wie Sie sich bei Oracle anmelden. Nur die ausgewählten Objekte und SQL-Anweisungen sind nutzbar.
Was kann man mit DB Wizard MCP machen?
- Aufruf kuratierter PL/SQL-Routinen — Bitten Sie den Assistenten, eine geprüfte Paketprozedur wie
synuser_js_admin_getadmintoolinfoaufzurufen, die Datensätze, Sammlungen und alle OUT-Parameter zurückgibt. - Einzelne Tabellenzeile abrufen — Fordern Sie eine Zeile über den Primärschlüssel mit
synuser_activity_log_get_by_pkan und erhalten Sie sie als JSON-Objekt zurück. - Tabellendaten einfügen, aktualisieren oder löschen — Weisen Sie den Assistenten an, Zeilen über das generierte
synuser_activity_log_insert-Tool (mit seinen_update- und_delete-Varianten) zu ändern. - Nächsten Sequenzwert abrufen — Fragen Sie nach der nächsten Nummer von
synuser_job_id_nextval, ohne andere Sequenzoperationen offenzulegen. - Vorab genehmigte SQL-Anweisungen ausführen — Lassen Sie den Assistenten eine benannte, getestete SQL-Datei mit typisierten Bind-Parametern ausführen, ohne ad-hoc Abfragetexte zu erstellen.
Dokumentation
Ein MCP-Server für Oracle, der Sie nicht den Job kostet
Die Konfiguration ist das gesamte Sicherheitsmodell
Für den Agenten erreichbar
synuser_activity_log_get_by_pkTabelle — eine Zeile per Primärschlüssel, als JSON-Objektsynuser_activity_log_insertTabelle — mit _update und _delete, aus derselben Auswahlsynuser_js_admin_getadmintoolinfoPL/SQL-Routine — Records, Collections und jeder OUT-Parametersynuser_job_id_nextvalSequenz — der nächste Wert, und sonst nichts
Nicht erreichbar, konstruktionsbedingt
- SQL-Text vom Aufrufer — Argumente sind Bind-Werte
- DDL — create, alter, drop
- Jedes Objekt, das Sie nicht ausgewählt haben
- Jedes Schema, das die Konfiguration nicht nennt
- Das Oracle-Passwort — es lebt in der Umgebung
Ein Agent, der SQL schreiben kann, kann DROP TABLE schreiben. Ein Agent, der ein Tool namens check_flight_availability hält, kann die Verfügbarkeit eines Fluges prüfen, weil das der gesamte Code davor ist.
Kuratierung geschieht, bevor der Code existiert
Least Privilege ist leicht zu behaupten und schwer zu verifizieren. Hier entscheidet die Konfiguration, was emittiert wird: Ein Objekt, das niemand ausgewählt hat, hat kein Tool, keine Methode und keine Klasse. Es fehlt im Binary, anstatt von einem laufenden Prozess bewacht zu werden, sodass kein Prompt es erreichen kann.
Ihre Geschäftsregeln sind bereits in PL/SQL
Jahrzehnte der Validierung, referenzieller Logik und Audit-Verhaltens leben in Packages. MCPDBWizard ruft diese Routinen so auf, wie sie sind — Records, Collections, Ref Cursor und jeder OUT-Parameter wird zurückgegeben — anstatt ein Sprachmodell zu bitten, die Regeln in einem SELECT neu zu erfinden.
Jeder Aufruf ist ein benanntes Tool, keine Abfrage
Anfragen kommen als synuser_activity_log_get_by_pk(entry_id) gegen ein striktes Schema an — ein falsch geschriebenes Argument wird abgelehnt, bevor die Datenbank berührt wird. Viel einfacher zu protokollieren, zu ratenbegrenzen, nachträglich zu prüfen und einem Auditor zu erklären.
Zwei Zielgruppen, zwei Aufzeichnungen
Der Proxy schreibt, wer welches Tool aufgerufen hat und ob es erlaubt war; jeder Server schreibt, was das Tool getan hat und wie es endete. Argument-Namen immer; Werte nur, wenn Sie das aktiviert haben, weil ein Modell sie gewählt hat.
Oracle 12c bis 26ai
Einschließlich der seitdem hinzugefügten Typen: native JSON, BOOLEAN und VECTOR, sowie Dokument-CRUD über JSON-relationale Duality-Views. Alles, was JSON nicht ehrlich überqueren kann — SDO_GEOMETRY, BFILE — wird komplett übersprungen, und das Log sagt, welche und warum.
Konten, Tokens und eine Grant-Matrix
Viele Konten, viele Konfigurationen, ein Tick pro Grant. Zwei Teams, die unterschiedliche Tools über dasselbe Schema benötigen, sind zwei Konfigurationen, nicht eine Konfiguration und eine Regel — was die Garantie im ersten Panel intakt hält.
- 01
Objekte auswählen
Verbinden Sie die Design-Seiten mit Oracle und ticken Sie die PL/SQL-Packages, die Sie bereit sind freizugeben, plus alle SQL-Anweisungen, die Sie selbst geschrieben und getestet haben, plus die Tabellen und Sequenzen, die Sie direkt erreichbar machen möchten. Diese Auswahl wird als Konfigurationsdatei gespeichert — Properties oder JSON, versionierbar und ohne Passwort.
PL/SQL zuerst, weil es der Punkt ist: Tick die Packages und Prozeduren, die Sie freigeben möchten, und jede wird ein Tool mit typisierten Parametern.
Dann Ihr eigenes SQL — Anweisungen, die Sie geschrieben und getestet haben, mit Bind-Parametern inline typisiert. Der Agent führt diese aus; er komponiert keine eigenen.
Schließlich Tabellen, kuratiert pro Operation statt pro Tabelle — eine neu ausgewählte ist schreibgeschützt, und create, update und delete sind Ihre zum Ticken. - 02
Generieren, kompilieren, ausführen
Die Runtime-Seite emittiert Java für genau diese Objekte, kompiliert es und startet es als eigenen Server auf Loopback. Alles, was Sie nicht ausgewählt haben, hat kein Tool, keine Methode und keine Klasse — es fehlt im Binary, anstatt nur verweigert zu werden.docker run -d --name mcpdbwizard \ -p 8080:8080 \ -e MCPDBWIZARD_ORACLE_HOST=db.example.com \ -e MCPDBWIZARD_ORACLE_PORT=1521 \ -e MCPDBWIZARD_ORACLE_SID=/PDB1 \ -e MCPDBWIZARD_ORACLE_USER=appuser \ -e DB_PASS_FILE=/run/secrets/oracle \ -v mcpdbwizard-demo:/data \ ghcr.io/srmadscience/mcpdbwizard:2.0.4 - 03
Richten Sie Ihren MCP-Client auf den Proxy
Agenten verbinden sich auf 8080, über Streamable HTTP, mit einem Token, das ihrem Konto ausgestellt wurde. Der Proxy ist die einzige Komponente, die weiß, wer aufruft — er prüft das Konto, den Grant und das Rate-Limit und leitet dann weiter.{ "mcpServers": { "payroll": { "url": "http://localhost:8080/mcp/alice/payroll", "headers": { "Authorization": "Bearer <id>.<secret>" } } } }
Der Quickstart enthält den gesamten Pfad, einschließlich der Ausstellung des Tokens und der Gewährung der Konfiguration.