Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Transports: stdio vs HTTP
  • State of MCP (stats)
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI β†’ MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE β†— (opens in a new tab)
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ’» Developer Tools
  3. Oracle Forms MCP
Oracle Forms MCP logo
Health: ActiveRecent health check succeeded.Last checked 9/23/2026, 2:46:43 AM

Oracle Forms MCP

User RatingsBe the first to rate and review this MCP server! Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View Repository3 GitHub StarsTotal stargazers on GitHub for the source repository (3 stars).Visit Website

Serves Oracle Forms module content (.fmb/.mmb/.pll/.olb) from a directory to MCP clients.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Client Config & Setup

Remote HTTP
Choose your client or environment
Target File:~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "oracle-forms-mcp": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

πŸ’‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.

Install Tool Schemas (18) Directory Badge Claim listing AlternativesπŸ’» More in Developer Tools

Capabilities & Tool Schemas (18) ~486 tokensApproximate context cost of this server’s tool schemas (~4 chars/token), before any tool is called. Actual usage depends on your client and model.Self-reported Self-reportedParsed from the repository README, not verified against a live server β€” may be incomplete or out of date.

Inspect callable tools, capabilities, and parameters exposed to AI agents by Oracle Forms MCP.

list_modules

Modules in the forms dir with type, size, and cache status; filter by `pattern`/`regex`, `type`, `status` and page via `limit`/`cursor

fetch_module

Converts + indexes one module (idempotent; progress notifications)

get_module_overview

Names of every section + counts β€” the first call after a fetch (`verbosity=detailed` adds window and canvas objects)

list_blocks

Blocks with base table, item count, trigger count

get_block

One block: items with type, property class, prompt and trigger names (`verbosity=detailed` adds data type, column, canvas, visible/required/LOV); flags subclassed blocks/items

list_triggers

Triggers with level/scope; filter by block, item, or level (`verbosity=detailed` adds a PL/SQL preview)

Documentation Overview

Oracle Forms MCP

CI CodeQL Release License Kotlin

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.

Built as a Kotlin Multiplatform core (pure @Serializable models and ports) with a JVM MCP server on top: declarative tool adapters over a single FormsService, stdio and HTTP transports, and a fingerprint-based on-disk cache. Oracle tool conversion feeds a streaming StAX parser that turns Forms XML into a structured index.

Why

Oracle Forms applications from the 1990s–2000s are still running critical business processes, but their logic is locked inside binary .fmb/.pll modules that only Forms Builder can open. That makes them opaque to modern AI tooling and painful to review, document, or migrate.

Oracle Forms MCP turns those modules into structured, queryable content so an AI assistant can:

  • Understand a legacy app β€” enumerate blocks, items, triggers, and program units without a Forms IDE.
  • Review & document PL/SQL β€” pull decoded trigger and program-unit bodies straight into the model's context.
  • Assist modernization β€” feed decades-old business logic to an assistant for migration to APEX, Java, or a rewrite, and search across every module's source.
  • Capture & retain knowledge β€” let the assistant record notes, tags, and cross-references on individual elements that persist across sessions and re-indexing, building up a durable map of a form no one fully remembers.

It is aimed at developers and teams doing Oracle Forms modernization, reverse engineering, code review, and documentation β€” anyone who needs to read Forms logic faster than opening it by hand.

See it work

A typical session against the bundled sample-forms directory:

text
You:  What does ORDERS.fmb do?
AI β†’  list_modules                 β†’ ORDERS.fmb (NOT_CACHED), MAINMENU.mmb, UTILS.pll …
AI β†’  fetch_module ORDERS.fmb      β†’ converted + indexed (3 blocks, 3 triggers, 3 program units)
AI β†’  get_module_overview ORDERS   β†’ blocks, triggers, LOVs, record groups, windows, canvases …
You:  Show me the validation logic on the ORDERS block.
AI β†’  list_triggers block=ORDERS   β†’ WHEN-VALIDATE-ITEM (on ORDER_ID), WHEN-VALIDATE-RECORD
AI β†’  get_trigger ORDERS WHEN-VALIDATE-ITEM  β†’ the decoded PL/SQL body
You:  Where else is the CALC_TOTAL procedure called?
AI β†’  search_source "calc_total" scope=plsql  β†’ hits across triggers and program units
You:  That validation is the legacy pre-2010 path β€” note it so we remember.
AI β†’  annotate_element ORDERS trigger WHEN-VALIDATE-ITEM kind=note "Legacy pre-2010 validation path" β†’ saved
      (next session)  get_trigger ORDERS WHEN-VALIDATE-ITEM β†’ body + the stored note inline

How it works

  1. list_modules scans the configured --forms-dir (non-recursive) and reports each module's cache status: NOT_CACHED, CACHED, STALE (source changed on disk), or SOURCE_MISSING. A production forms directory holds thousands of modules, so the answer is filtered and paged: narrow with pattern/type/status, follow nextCursor for the rest, and read countsByStatus for the shape of the whole match.
  2. fetch_module produces the module's text form in the cache and indexes it:
    • ORACLE_HOME set β€” binaries are converted with the Oracle tools in %ORACLE_HOME%\bin: frmf2xml for .fmb/.mmb/.olb (XML), frmcmp_batch (Module_Type=LIBRARY Script=YES) for .pll (a .pld text dump).
    • ORACLE_HOME not set β€” pre-converted files are expected next to the modules (orders_fmb.xml, dupes_fmb.xml, picker_fmb.xml, toolbar_fmb.xml, mainmenu_mmb.xml, objects_olb.xml, utils.pld) and copied into the cache.
  3. A single StAX pass parses the XML into a structured index (blocks with items, triggers with decoded PL/SQL, program units, LOVs, record groups, windows, canvases, …). PL/SQL bodies are extracted to .sql sidecar files; every named XML element gets a line-range reference so get_object_xml can slice it back out of the converted file.
  4. The other tools read the cached index. Caching is fingerprint-based (size + mtime + sha256 of the source file): editing a module marks it STALE and read tools ask for a re-fetch.
  5. annotate_element and relate_elements let the assistant write durable meta-information back about individual elements (notes, tags, summaries, classifications, cross-references). This is kept in a separate store β€” not the derived index β€” so it survives re-fetching, and the read tools surface it inline. An annotation made before a source change is flagged, never dropped.

Tools

ToolWhat it returns
list_modulesModules in the forms dir with type, size, and cache status; filter by pattern/regex, type, status and page via limit/cursor
fetch_moduleConverts + indexes one module (idempotent; progress notifications)
get_module_overviewNames of every section + counts β€” the first call after a fetch (verbosity=detailed adds window and canvas objects)
list_blocksBlocks with base table, item count, trigger count
get_blockOne block: items with type, property class, prompt and trigger names, and its master-detail relations (verbosity=detailed adds data type, column, canvas, size, visible/required/LOV and the DML properties resolved through each item's property class; columns=true adds the base table's columns and the ones no item supplies); flags subclassed blocks/items
list_triggersTriggers with level/scope; filter by block, item, or level (verbosity=detailed adds a PL/SQL preview)
get_triggerOne trigger's decoded PL/SQL body (same-named triggers told apart by ownerPath or level); resolve follows a subclassing pointer into a cached parent module
list_program_unitsProcedures, functions, package specs/bodies with line counts
get_program_unitOne program unit's PL/SQL (disambiguate spec/body via unitType); resolve as for get_trigger
search_sourceLine search over one fetched module: extracted PL/SQL (plsql), the raw XML (xml), or both; paginated via offset/nextOffset
search_modulesThe same search across every cached module β€” cross-form calls, shared :GLOBALs, subclassing pointers; reports the modules it could not reach; paged via an opaque cursor
read_sourceA line range of a cached file, by uri (which names its module) or module + file β€” the converted XML or an extracted PL/SQL sidecar
get_object_xmlThe raw XML fragment of any named object β€” the escape hatch

Every tool checks its arguments against its own input schema before running. An argument it does not have is never silently dropped: the call fails with every problem listed at once (unknown arguments with the name most likely meant, missing ones with their permitted values, values outside an enum), plus an example call where the tool has one.

Where an object's meaning lives

Two Forms properties carry more meaning than anything else in a module, and both used to be reachable only one get_object_xml call at a time.

An item's property class is usually its role: Forms shops name their classes for what the object does, so a push button is an LOV button and a text item is a filter field only because of the class it inherits. get_block reports propertyClass on every item and block, confirmed against the classes the module actually declares.

A window's modality decides how a form is read β€” a modal window is a dialog, so the code that fills it and the code that consumes the result sit on opposite sides of one interaction. get_module_overview(verbosity: "detailed") returns the window and canvas objects behind two of its name lists: modality, size, toolbar canvases, and the window each canvas sits on.

A property Forms did not write comes back as null, meaning the object keeps the Forms default β€” never false. On an item that has a property class it does not even mean the default: the class supplies the value, and in a real form that is where most of an item's behaviour lives. So get_block(verbosity: "detailed") returns both β€” items[].dml, what the item itself wrote, and effectiveDml, the same properties with the class applied (item, then class, then whatever that class is based on, followed into other modules that are already fetched). An item is listed in effectiveDml only when that chain resolved to the end, so a null there really is the Forms default. Every other item is a row of unresolvedItems, with the reason and β€” when fetching fixes it β€” the module to fetch; propertyClasses and the result's hint give the same account per class and name the fetch_module call. items: [...] narrows all of it to the items a question is about.

Read the full README β†’View source on GitHub β†’

Related MCP Servers

View all in Developer Tools View all alternatives
  • Shadcn Ui MCP Server logoShadcn Ui MCP Server

    MCP server that gives AI assistants seamless access to shadcn/ui v4 components, blocks, demos, and metadata.

    πŸ’» Developer Tools3 views
    Compare vs Shadcn Ui MCP Server β†’
  • Openapi MCP Server logoOpenapi MCP Server

    Connect any HTTP/REST API server using an Open API spec (v3)

    πŸ’» Developer Tools3 views
    Compare vs Openapi MCP Server β†’
  • Apple Books logoApple Books

    Access your Apple Books library, annotations, reading progress, and highlights through Claude

    πŸ’» Developer Tools2 views
    Compare vs Apple Books β†’
  • Claude Task Master logoClaude Task Master

    AI-powered task management system for AI-driven development. Features PRD parsing, task expansion, multi-provider support (Claude, OpenAI, Gemini, Perplexity, xAI), and selective tool loading for optimized context usage.

    πŸ’» Developer Tools8 views
    Compare vs Claude Task Master β†’

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks β€” not a rating.

GitHub stars
3
Stargazers on the source repository.
Last commit
14d ago
Most recent push to the default branch.
Tools exposed
18
Callable tools this server registers over MCP.

Reviews

No reviews yet β€” be the first to share how this listing worked for you.

Frequently Asked Questions about Oracle Forms MCP

oracle-forms-mcp is a hosted MCP server. Add it as a remote server in your client's config: "mcpServers": { "oracle-forms-mcp": { "url": "http://127.0.0.1:3000/mcp" } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewOracle Forms MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/oracle-forms-mcp?style=directory)](https://allmcps.com/mcp/oracle-forms-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/oracle-forms-mcp"><img src="https://allmcps.com/api/badge/oracle-forms-mcp?style=directory" alt="Oracle Forms MCP on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ’»Developer Tools
More technical detailsExpand β–Ύ
TransportSSE (Remote)
Last updatedSep 11, 2026
2/6 checks healthy over the last 46d
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
GitHub stars3
GitHub Star CountTotal stargazers on GitHub representing community popularity (3 stars).
Last commit14d ago
Last Repository CommitThe most recent commit or push recorded for this server's GitHub repository.Last commit on Sep 11, 2026
53Quality signal: Good Β· 53/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership10/20
Documentation & tools25/30
Adoption & activity5/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to unlock edit access and the Official badge β€” proof is checked automatically, then reviewed by our team.

Free dofollow backlink: add your website and place the AllMCPs badge on it β€” no claim needed. We detect it automatically and keep it verified as long as the badge stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ’» Developer Tools β†’Best MCP servers for Developers β†’Alternatives to Oracle Forms MCP β†’Install in Claude DesktopInstall in CursorInstall in VS CodeSetup guides for all 13 MCP clients