MCP DB Wizard

offiziell

Ein 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?

  • Datensatz nach Primärschlüssel abrufen – Einen bestimmten Aktivitätsprotokolleintrag anfordern und als JSON-Objekt über synuser_activity_log_get_by_pk zurückerhalten.
  • In das Aktivitätsprotokoll einfügen – Den Assistenten einen neuen Protokolldatensatz hinzufügen lassen, wobei Aktualisierungs- und Löschoperationen aus derselben kuratierten Tabelle über synuser_activity_log_insert verfügbar sind.
  • Eine PL/SQL-Routine aufrufen – synuser_js_admin_getadmintoolinfo aufrufen, um eine Geschäftsprozedur auszuführen und Datensätze, Sammlungen und alle OUT-Parameter zu erhalten.
  • Den nächsten Sequenzwert abrufen – Die nächste ID von synuser_job_id_nextval anfordern, ohne andere Sequenzdaten offenzulegen.
  • Nur vorab genehmigtes SQL ausführen – Eine getestete, typisierte SQL-Anweisung ausführen, die Sie ausgewählt haben, mit Argumenten als Bindewerte und ohne Ad-hoc-Abfragekomposition.

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_pk Tabelle — eine Zeile nach Primärschlüssel, als JSON-Objekt
  • synuser_activity_log_insert Tabelle — mit _update und _delete, aus derselben Auswahl
  • synuser_js_admin_getadmintoolinfo PL/SQL-Routine — Records, Collections und jeder OUT-Parameter
  • synuser_job_id_nextval Sequenz — 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 Flugs 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 Binärprogramm, anstatt von einem laufenden Prozess bewacht zu werden, sodass kein Prompt es erreichen kann.

Was ein MCP-Server ohne run-sql-Tool ändert

Ihre Geschäftsregeln sind bereits in PL/SQL

Jahrzehnte an Validierung, referenzieller Logik und Audit-Verhalten 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.

Was ein Agent sieht, wenn Ihr PL/SQL zu Tools wird

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.

Kuratierte MCP-Tools und ein SQL-Prompt, nebeneinander

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.

Wo die Logs eines MCP-Servers hingehen sollten

Oracle 12c bis 26ai

Einschließlich der seitdem hinzugefügten Typen: nativ 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.

Rollenbasierter Zugriff für einen MCP-Server

Sie wägen es gegen Oracles eigene Wege ab? Lesen Sie eine Alternative zu Oracles MCP-Server, SQLcl-MCP-Server-Alternativen, wenn Ad-hoc-SQL ausgeschlossen ist, oder beginnen Sie mit der Frage, die die meisten tatsächlich stellen: kann ich einem KI-Agenten erlauben, meine Produktionsdatenbank abzufragen?

Design time: the Design pages read Oracle's data dictionary, the selection is saved as a config file with no password, and Java is generated and compiled for the selected objects only. Run time: an MCP client calls the proxy on port 8080 with a bearer token; the proxy checks the token, the grant and the rate limit, then forwards to the generated MCP server, which binds the arguments and calls Oracle. The proxy and the server both write to the audit trail.

Die Konfiguration entscheidet, was generiert wird; der Proxy entscheidet, wer es aufrufen darf.

  1. 01

    Wählen Sie die Objekte aus

    Verbinden Sie die Design-Seiten mit Oracle und ticken Sie die PL/SQL-Packages, die Sie freigeben möchten, 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. The Design Procedures tab listing PL/SQL packages and procedures with tick boxes PL/SQL zuerst, weil es der Kern ist: Tick Sie die Packages und Prozeduren, die Sie freigeben möchten, und jedes wird ein Tool mit typisierten Parametern. The Design SQL Statements tab, editing a named .sql file with typed bind parameters Dann Ihr eigenes SQL — Anweisungen, die Sie geschrieben und getestet haben, mit Bind-Parametern inline typisiert. Der Agent führt diese aus; er stellt keine eigenen zusammen. The Design Tables tab, with each table ticked and separate MCP read, create, update and delete boxes 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.
  2. 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 Binärprogramm, anstatt nur abgelehnt 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.32
    
  3. 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 Ratelimit und leitet dann weiter.
    {
      "mcpServers": {
        "payroll": {
          "url": "http://localhost:8080/mcp/alice/payroll",
          "headers": {
            "Authorization": "Bearer <id>.<secret>"
          }
        }
      }
    }
    

Der Schnellstart enthält den gesamten Pfad, einschließlich der Ausstellung des Tokens und der Gewährung der Konfiguration.