PL/SQL Intelligence MCP server — live Oracle DB tools + offline analyze/lineage/SAST (unofficial).
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-muhdur-plsql-mcp": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Offline, package-aware Oracle PL/SQL code intelligence in Rust, with a self-healing coverage flywheel.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in other
Pi Coding Agent extension (CLI-first) — routes bash/read/grep/find/ls through lean-ctx CLI for strong token savings. Optional MCP bridge can register advanced tools.
Apify MCP Server
97% token reduction for AI coding sessions — zero deps, 21 languages, MCP server
MCP proxy that compresses prose fields (tool descriptions, etc.) using caveman rules. Same accuracy, fewer context tokens.
MCP Security Weekly
Get CVE alerts and security updates for io.github.MuhDur/plsql-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Offline, package-aware Oracle PL/SQL code intelligence in Rust, with a self-healing coverage flywheel.
Know what breaks before you change Oracle PL/SQL.
# Build the whole workspace and run every test
git clone https://github.com/MuhDur/plsql-intelligence
cd plsql-intelligence
cargo build --workspace && cargo test --workspace
The problem. In a large Oracle estate, PL/SQL packages, views, triggers and tables form a deep dependency web. Change one column type or one package spec and you can silently invalidate hundreds of downstream objects; you find out in a failed production recompile. Existing tools each cover a slice (SQL deployment, lineage products, SAST scanners, Oracle's own SQLcl MCP server), but none give offline, package-aware PL/SQL semantics with explicit uncertainty reporting, dependency reasoning, and recompile planning in one workflow.
The solution. A layered Rust workspace that parses PL/SQL with a real
ANTLR backend, builds a semantic IR with name resolution and a dependency
graph, and reports change impact. When the analyzer cannot be certain it
says so, as a typed UnknownReason, instead of reporting a false-clean
result. That honest-uncertainty exhaust feeds the USR Loop, which
turns recorded gaps into proven, privacy-clean parser and lowering
repairs so coverage compounds with use.
oraclemcp and plsql-mcpThis repo ships the full PL/SQL Intelligence MCP server, plsql-mcp — live
Oracle DB tools plus offline PL/SQL intelligence (parse/analyze, dependency
graph, lineage, SAST) and guarded writes. Its engine-free core was extracted to a
standalone, published sibling, oraclemcp:
oraclemcp | plsql-mcp (this repo) | |
|---|---|---|
| Scope | Safe, read-only live Oracle DB access | The superset: DB access + PL/SQL intelligence + guarded writes |
| Build | Engine-free, lean, fast | Full pure-Rust ANTLR engine |
| Install | cargo install oraclemcp · docker run -i ghcr.io/muhdur/oraclemcp | cargo install --path crates/plsql-mcp · docker run -i ghcr.io/muhdur/plsql-mcp |
| MCP registry | io.github.MuhDur/oraclemcp | io.github.MuhDur/plsql-mcp |
Reach for oraclemcp when an agent just needs safe database access; use
plsql-mcp when you want deep PL/SQL code understanding (it includes everything
oraclemcp does).
Independent open-source project; not affiliated with Oracle. The Docker images bundle Oracle Instant Client under Oracle's Free Use Terms.
| Capability | What it does |
|---|---|
| Offline-first | Reads code and an Oracle catalog snapshot in place; no live database required for analysis, no telemetry by default |
| Real parser backend | antlr4rust (plsql-parser-antlr), pure Rust, no JVM, with a lossless token tape (reconstruct(tape) == input) |
| Honest uncertainty | Where analysis cannot be certain it emits a typed UnknownReason; the completeness report is never false-clean |
| Dependency reasoning | Semantic IR, name resolution, a privilege model, and |