Documentation
Documentation
MCPDBWizard reads your Oracle schema and generates an MCP server for the objects you selected. An object you did not select has no tool, no method and no class — the curation is enforced by absence from the binary rather than by a rule at request time.
New here? Start with the Quickstart.
Getting started
Get a server running and an agent talking to it.
-
Quickstart
Point MCPDBWizard at an Oracle schema, select the objects you will expose, generate an MCP server and connect an agent to it — on Docker or on AWS.
-
Quickstart: Docker
From nothing to a login page on Docker — one image, one port, one volume — then back to the Quickstart to build your first MCP server.
-
Quickstart: AWS
One CloudFormation stack — an EC2 instance, one ECS task and an EFS volume — from nothing to a login page, then back to the Quickstart to build your first MCP server.
-
Launching on Docker outline
Running the MCPDBWizard container — ports, the data volume, secrets, memory limits and compose.
-
Docker parameters outline
Every environment variable the container reads, what it does, and which ones need a regeneration rather than a restart.
Oracle
The database side: the account, the connection, sessions and pooling.
-
Creating an Oracle user with minimal privileges
The database account an agent reaches Oracle through, and why its grants are the real security boundary.
-
Connecting to Oracle
How the console reaches your database — SID versus service name, the one password, and what happens when it cannot.
-
Session management
What a generated server tells Oracle about itself, how to find its sessions in V$SESSION and its SQL in V$SQL, and when a transaction ends.
-
Connection pooling
Give each concurrent caller its own DAO factory instead of queueing them all on one connection — and size it against the database, not the CPU.
Operating
Running it for real — connecting clients, logs, audit records, metrics and accounts, plus what is broken and what changed.
-
Connecting to the MCP server
Point an agent at a running config — the proxy URL, the API token, what each refusal means, and why you connect to port 8080 rather than to the server itself.
-
Setting up logging
Where the console and generated servers write, what one tool call looks like in the log, and how to point logging somewhere else.
-
Setting up auditing outline
The local trail every install keeps, how long it is kept, streaming records to Kafka, Splunk, S3 or syslog, and the write-ahead spool that survives an outage.
-
Setting up metrics and Grafana outline
Two Prometheus endpoints, why an empty dashboard is nearly always the second one, and the label that makes the data worth having.
-
Oracle parameters
The database settings a busy MCP server can outgrow — chiefly open_cursors, why a config with many tools reaches it, and how to fix it on the database side.
-
Creating application users
Accounts, API tokens and the access matrix — how a client proves who it is, and what it is allowed to drive.
-
Known issues
What is wrong and what it looks like from a client — record keys that are Java field names, a record collection that will not bind both ways on Oracle 12c, generated keys a DML statement will not hand back, a tool count that can outgrow open_cursors, and the workaround for each.
-
Verifying the image
The published container carries a build record and a bill of materials — the commands to read them without pulling, and plainly what none of it proves.
-
Release notes
What changed in each release, newest first — 2.0.32 back to 2.0.0 — and which image tag to pull.
Curating
Choosing what an agent can reach. This is the security model.
-
Creating configs
The config file is the security model — what a config is, how it is stored, and why two small ones usually beat one large one.
-
Context Pinning
Pin a connection to one customer — or tenant, or branch — by putting it on the connection URL. Your PL/SQL reads it with SYS_CONTEXT('MCP', ...), and the agent has no way to ask for anyone else's rows.
-
Working with procedures
Exposing PL/SQL routines as tools — every OUT parameter comes back, collections keep their subscripts, overloads never collide, and you decide who commits.
-
Working with sequences
The smallest surface in the product — one selected sequence, one tool, and nothing else.
-
Working with tables
Read operations by primary key, unique key, index and foreign key — and why insert, update and delete deserve a second thought.
-
Working with SQL statements
Your own curated, tested SQL, exposed as tools — how parameters get names and types, and what crosses JSON.
Beyond this site
The repository carries two long-form guides these pages summarise:
DEPLOYMENT.md for the operator's side and
USING-MCP.md for the caller's, with every request and response
taken from a live server. Where a page here disagrees with those, they are
right and the page is a bug.