Documentation

Snapshot Discovery & Orchestration

Synchronize, traverse, and safely mutate Oracle EPM Planning metadata without breaking schemas.

The Baseline Strategy

Directly editing XML schema artifacts via natural language models often results in syntax corruption. Captain-MCP solves this through Baseline Synchronization. By pulling a complete snapshot of the EPM environment, the MCP server maps the exact schema structures into memory, allowing the AI to safely interact with them as JSON objects.

This strategy ensures that any modifications (like adding rows to a Form or updating a Business Rule) perfectly respect the environment's unique Oracle structural expectations.

Key Snapshot Tools

sync_baseline_snapshot

Syncs the baseline application snapshot (e.g., 'CaptainEPM') directly from Oracle EPM down to the local MCP workspace. This initializes the context bridge and safely unpacks the ZIP64 artifacts.

list_snapshot_artifacts

Crawls the extracted root directory, allowing the AI to list all available artifacts across the application—from Forms to SmartLists. Essential for dependency discovery.

read_artifact_definition

Reads the raw XML or CSV content of a specific artifact (e.g., Plan1/Forms/MyForm.xml). The MCP server safely transpiles XML structures so the LLM can interpret the exact schema configuration.

Safe Mutation Pipeline

To commit changes back to Oracle, Captain-MCP implements a safe mutation engine:

  1. The LLM requests targeted changes via mutate_xml_artifact — each mutation addresses a single node by path, so the rest of the artifact is never touched.
  2. A .bak backup of the original artifact is written before any change.
  3. The rebuilt XML is round-trip validated (it must re-parse cleanly) before it is committed to disk — invalid mutations are rejected and the file is left untouched.
  4. The LLM triggers deploy_minimal_snapshot, which bundles only the modified artifacts into a lightweight zip and orchestrates the Interop V2 upload — after you approve the deployment in your AI client.

Environment Diff

The classic pre-deployment question — what is actually different between TEST and PROD? — is built in:

  1. sync_snapshot_to_workspace pulls a snapshot into a labeled workspace (e.g. prod, test). Labels are shared across connection profiles, so each environment can be synced under its own credentials.
  2. diff_snapshots compares two labeled workspaces and reports every artifact added, removed, or changed — with element-level summaries showing which sections of a changed XML artifact actually differ.
  3. Formatting-only differences are flagged separately, so the drift report shows real configuration changes, not noise.