Oracle Forms MCP Server

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. Its 18 documented tools cover modules, module, program, source.

People who work with modules, module and program and want it reachable from Claude, Cursor, VS Code, or another MCP client. The project is written in Kotlin.

VERIFIED ACTIVE

LAST COMMIT 2026-09-18 · ★ 3 · #144 OF 168 MAINTAINED DEVELOPER TOOLS · VERIFIED 2026-09-18

Apache-2.0 · Kotlin · how we verify → /methodology

01 · Install Oracle Forms

Docker

docker run -i --rm ghcr.io/aoreshkov/oracle-forms-mcp:0.12.0

Claude Desktop - add to config

{
  "mcpServers": {
    "aoreshkov-oracle-forms-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/aoreshkov/oracle-forms-mcp:0.12.0"
      ]
    }
  }
}
Using another client? Same JSON, different key

Claude Desktop · mcpServers

Cursor · mcpServers

VS Code · servers

Windsurf · mcpServers

Zed · context_servers

Cline · mcpServers

Roo Code · mcpServers

Continue · mcpServers

LibreChat · mcpServers

Gemini CLI · mcpServers

Codex CLI · mcp_servers

Full setup guides: every client.

02 · Evidence

Security posture

What to check before giving this server access to your agent - from the registry, GitHub, and our own probes. We don't score safety; we show what's verifiable.

runs as container (OCI image) - can be sandboxed away from your filesystem · Claude Desktop extension (.mcpb bundle)

license Apache-2.0 - declared in the repository

registry namespace io.github.aoreshkov is GitHub-verified and matches the repo owner

03 · What Oracle Forms can do

Prose above is summarized from the project's README and registry record - no invented capabilities.

What you can build

With this server connected, an agent can convert + indexes one module (idempotent, trigger with level/scope, search a module's stored notes/tags/relations by text, kind, or tag, and delete a stored annotation or relation by id.

Capability map

Tools grouped from the project's README - what Oracle Forms lets an agent do.

read & search

7 tools - e.g. Blocks with base table, item count, trigger count; One block: items with type, property class, prompt and trigger names, and its master-detail relations (verbosity=detailed adds data type, column, canvas…

list_blocks · get_block · list_triggers · get_trigger · get_object_xml · get_element_annotations…

Modules

2 tools - e.g. Modules in the forms dir with type, size, and cache status; filter by pattern/regex, type, status and page via limit/cursor; The same search across every cached module - cross-form calls, shared :GLOBALs…

list_modules · search_modules

Module

2 tools - e.g. Converts + indexes one module (idempotent; progress notifications); Names of every section + counts - the first call after a fetch (verbosity=detailed adds window and canvas objects)

fetch_module · get_module_overview

Program

2 tools - e.g. Procedures, functions, package specs/bodies with line counts; One program unit's PL/SQL (disambiguate spec/body via unitType); resolve as for get_trigger

list_program_units · get_program_unit

Source

2 tools - e.g. Line search over one fetched module: extracted PL/SQL (plsql), the raw XML (xml), or both; paginated via offset/nextOffset; A line range of a cached file, by uri or file - the converted XML or an…

search_source · read_source

Annotate

1 tool - e.g. Store a note / summary / tag / classification about one element

annotate_element

Relate

1 tool - e.g. Record a directed cross-reference between two elements (e.g. a trigger calls a program unit)

relate_elements

delete

1 tool - e.g. Delete a stored annotation or relation by id

remove_annotation

Limitations (from the README)

- frmf2xml writes its output into the process working directory; the server runs it with the converted directory as cwd (--converted-dir, else the module's cache dir) and passes OVERWRITE=YES USE_PROPERTY_IDS=NO. - frmcmp_batch is preferred over frmcmp (headless); the server passes Script=YES Batch=YES Logon=NO and an explicit Output_File - without one, frmcmp writes the .pld next to the module rather than into its w

Latest releases

v0.12.0 · 2026-09-18

expose the .pll converter command in the Claude Code plugin · say what a result does not show - search coverage, unfetched libraries, cut effectiveDml · name every unresolved item, and narrow a block to the items asked…

v0.11.0 · 2026-09-16

Bump eclipse-temurin from f9e6532 to 15090d1 · Bump the codeql-action group across 1 directory with 3 updates · Bump actions/setup-java from 6.0.0 to 6.0.1 · route .pll libraries through their own converter command…

v0.10.0 · 2026-09-12

stop serving a module indexed by an older build · 0.10.0

04 · Who maintains Oracle Forms

Oracle Forms is maintained by aoreshkov. We track 2 MCP servers from aoreshkov - 2 actively maintained, 13 combined GitHub stars, oldest repo from Jul 2026. Full record: all servers from aoreshkov.

  1. Kotlin & Java Library Sources Kotlin/Java library sources, public API and KDoc from the real Maven sources jar, for AI agents ★ 10

05 · Facts

category
developer tools - ranked #144 of 168 actively-maintained developer tools servers as of 2026-09-18.
release cadence
10+ releases in the last 90 days (latest 2026-09-18)
registry
io.github.aoreshkov/oracle-forms-mcp (active, first published 2026-07-12 · 12 versions)
packages
oci:ghcr.io/aoreshkov/oracle-forms-mcp:0.12.0 · mcpb:https://github.com/aoreshkov/oracle-forms-mcp/releases/download/v0.12.0/oracle-forms-mcp-0.12.0.mcpb

06 · Oracle Forms FAQ

Is Oracle Forms still maintained?

Yes - as of 2026-09-18, its last commit was 2026-09-18 and it shipped 10+ releases in the last 90 days. We re-verify nightly.

What can Oracle Forms do?

With this server connected, an agent can convert + indexes one module (idempotent, trigger with level/scope, search a module's stored notes/tags/relations by text, kind, or tag, and delete a stored annotation or relation by id.

How do I install Oracle Forms?

Run `docker run -i --rm ghcr.io/aoreshkov/oracle-forms-mcp:0.12.0`. You can also paste the ready-made client config above.

07 · Alternatives to Oracle Forms

More developer tools MCP servers · Archstone · Argon · Pyslang MCP · Control Keel · Fixmap