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:
- 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. - A
.bakbackup of the original artifact is written before any change. - 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.
- 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:
sync_snapshot_to_workspacepulls 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.diff_snapshotscompares 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.- Formatting-only differences are flagged separately, so the drift report shows real configuration changes, not noise.