Serves Oracle Forms module content (.fmb/.mmb/.pll/.olb) from a directory to MCP clients.
Serves Oracle Forms module content (.fmb/.mmb/.pll/.olb) from a directory to MCP clients. That is what the oracle mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.
An MCP server that serves the content of Oracle Forms modules (.fmb forms, .mmb menus, .pll PL/SQL libraries, .olb object libraries) found in a directory, so AI assistants can inspect blocks, items, triggers, program units, and raw object XML without opening Forms Builder.
The server publishes 13 tools. What each one is for:
list_modules — Every module in the forms dir with type, size, and cache statusfetch_module — Converts + indexes one module (idempotent; progress notifications)get_module_overview — Names of every section + counts — the first call after a fetchlist_blocks — Blocks with base table, item count, trigger countget_block — One block in full: items (type, column, canvas, prompt) + trigger nameslist_triggers — Triggers with level/scope; filter by block, item, or level (verbosity=detailed adds a PL/SQL preview)get_trigger — One trigger's decoded PL/SQL bodylist_program_units — Procedures, functions, package specs/bodies with line countsget_program_unit — One program unit's PL/SQL (disambiguate spec/body via unitType)search_source — Line search over extracted PL/SQL (plsql), the raw XML (xml), or both; paginated via offset/nextOffsetget_object_xml — The raw XML fragment of any named object — the escape hatchAnnotations — Meta-information the assistant records back about an element rather than reads from it — semantic notes, tags, classifications, andInstallation goes through your MCP client rather than a global install: point it at ghcr.io/aoreshkov/oracle-forms-mcp on a container image and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.
Configuration is passed through the environment: ORDER_ID, FORMS_PATH. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.
Plenty of database access servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Oracle's toolset — list_modules, fetch_module, get_module_overview and 10 more — is a fair guide to whether it matches your workflow. It is maintained by aoreshkov; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| list_modules | Every module in the forms dir with type, size, and cache status |
| fetch_module | Converts + indexes one module (idempotent; progress notifications) |
| get_module_overview | Names of every section + counts — the first call after a fetch |
| list_blocks | Blocks with base table, item count, trigger count |
| get_block | One block in full: items (type, column, canvas, prompt) + trigger names |
| list_triggers | Triggers with level/scope; filter by block, item, or level (verbosity=detailed adds a PL/SQL preview) |
| get_trigger | One trigger's decoded PL/SQL body |
| list_program_units | Procedures, functions, package specs/bodies with line counts |
| get_program_unit | One program unit's PL/SQL (disambiguate spec/body via unitType) |
| search_source | Line search over extracted PL/SQL (plsql), the raw XML (xml), or both; paginated via offset/nextOffset |
| get_object_xml | The raw XML fragment of any named object — the escape hatch |
| Annotations | Meta-information the assistant records back **about** an element rather than reads *from* it — semantic notes, tags, classifications, and cross-reference relations. It is persisted in a durable store, kept separate from |
| Options | The Options tool exposed by this server. |
{
"mcpServers": {
"oracle-forms": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/aoreshkov/oracle-forms-mcp"],
"env": {
"ORDER_ID": "your-value",
"FORMS_PATH": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| ORDER_ID | Configuration value read at startup. | Optional |
| FORMS_PATH | Filesystem location the server is allowed to use. | Optional |
Read-only SQL access to Postgres — let your assistant inspect schemas and answer questions from real data.
Manage your whole Supabase project in conversation — database, auth, storage, Edge Functions and branches.
Query, modify and analyse local SQLite databases in conversation — the fastest way to chat with a data file.
Metabase ships its own MCP endpoint — search your BI content, build and run queries, and save questions and dashboards without leaving the chat.
Official MongoDB server covering data, schemas and Atlas management — from find queries to spinning up clusters.
Serverless Postgres with database branching — point your assistant at Neon and let it work on disposable copies.