Forms26 MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ORACLE_DSN | No | Oracle connect string, e.g. db.example:1521/app_pdb. Optional; required only for the optional database schema checks. | |
| ORACLE_USER | No | Dedicated account with the necessary dictionary visibility. Optional; used with the database schema checks. | |
| FORMS26_ROOT | Yes | Absolute path to the directory containing exported Forms XML modules, passed to the server via --root. Required to launch the server. | |
| ORACLE_SCHEMA | No | One target owner, e.g. APP. Optional; used with the database schema checks. | |
| ORACLE_PASSWORD | No | Password for the Oracle account, provided through your local secret mechanism. Optional; used with the database schema checks. | |
| ORACLE_CONFIG_DIR | No | Optional directory containing tnsnames.ora. | |
| ORACLE_WALLET_LOCATION | No | Optional wallet directory for python-oracledb Thin mode. | |
| ORACLE_WALLET_PASSWORD | No | Optional wallet password. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_formsB | List XML files within the configured Forms root, with pagination. |
| analyze_formC | Summarize Forms metadata and heuristic complexity; optionally use a team-calibrated hourly rate. |
| list_componentsC | List blocks/items/triggers/program units etc. Use exact kind, e.g. Trigger or Item; blank means all. |
| get_sourceB | Read original code in character chunks; risk line numbers refer to the complete component source. |
| migration_risksC | Find Forms navigation, session, integration, dynamic-SQL and transaction risks with source evidence. |
| plan_apexB | Build a draft APEX region/trigger mapping and acceptance checklist. Does not create an APEX export. |
| draft_apiB | Return PL/SQL stubs, unpublished ORDS definition and draft OpenAPI contract; no SQL is executed. |
| inspect_database_objectsA | Read fixed Oracle dictionary queries for up to 20 objects in the server-configured schema. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| modernize_form | Guide the host LLM through an evidence-linked Forms-to-APEX and API modernization. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| workflow |
TDQS
Scored across 8 tools
Each tool targets a distinct migration-analysis step: listing forms, analyzing metadata, listing components, reading source, assessing risks, planning APEX mapping, drafting API artifacts, and inspecting DB objects. Overlap between analyze_form and migration_risks is limited because one summarizes complexity while the other surfaces specific risk evidence. An agent can select the right tool from the descriptions.
Most names follow a clear verb_noun snake_case pattern, e.g. list_forms, analyze_form, get_source, plan_apex, draft_api. The main deviation is migration_risks, which is a noun phrase rather than an action phrase, but it remains readable and consistent in casing.
Eight tools is a well-scoped set for an Oracle Forms analysis and migration-planning server. Each tool covers a distinct phase of discovery, inspection, risk assessment, or drafting, with no obvious filler tools.
The surface covers the main analysis workflow: discovering forms, inspecting components and source, assessing risks, planning APEX mappings, drafting API artifacts, and checking DB objects. The main limitation is that it intentionally stops at drafts and does not create APEX exports or execute SQL, but that appears to be a deliberate scope boundary rather than an accidental gap.