get_api_versionLABSCO SUMMARY
The manual month-end close sequence, expressed as six calls.
The tool set is small because it is shaped around one routine: read CurrMonth, run the aggregation, wait for the job, validate the numbers with an export, move the variable to the next month, read it back to confirm. Mock mode matters more than it sounds — it lets you rehearse that whole chain and see the shape of every response before anyone has to approve a connection to a production planning environment.
What it is
A client for the Oracle EPM Cloud REST APIs. Seven tools cover the calls a planning administrator makes by hand through Postman or EPM Automate, and a mock mode answers all of them from sample data before any credentials exist.
What you get
- get_api_version tests connectivity and reports the API versions the environment exposes, against GET /HyperionPlanning/rest/.
- list_applications returns the EPM applications in the environment.
- get_substitution_variables reads the current month, year and scenario variables that drive everything else.
- update_substitution_variable writes one back — the step that rolls a period forward.
- run_business_rule submits a calc script or business rule as a job.
- check_job_status polls the returned job id for completion or error.
- export_data_slice pulls data out of the cube by dimension members.
Requirements
Node.js 18+, or the packaged .mcpb extension for Claude Desktop, which installs without editing a config file. Mock mode is the default and needs no Oracle credentials. Live mode takes EPM_MODE, EPM_BASE_URL, EPM_USERNAME, EPM_PASSWORD and EPM_APP_NAME as environment variables. The REST APIs use Basic Authentication and the username must be written as identitydomain.username — the wrong form is what produces a 401. An account with multi-factor authentication cannot use Basic Auth at all, and OAuth 2.0 is not in this version.
Setup effort
Build from source — git clone https://github.com/fmepm/oracle-epm-mcp-server.git
USE CASES
Rolling the close period forward
Read the current month, aggregate, wait for the job, then move the variable and read it back to confirm.
Checking the numbers after a rule runs
Pull the slice for the accounts you care about by dimension member, rather than opening the form.
Finding out what is in an environment you inherited
List the applications and read the variables that drive them before changing anything.
Proving the connection works before trusting it
Test connectivity and the API version first; a 401 here usually means the username is missing its identity domain prefix.
7 tools
Listed in project docs. Your client may show a different list.
list_applicationsget_substitution_variablesrun_business_rulecheck_job_statusexport_data_sliceupdate_substitution_variableBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
- Node.js 18+
- EPM_PASSWORD in your environment
- EPM_USERNAME in your environment
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
git clone https://github.com/fmepm/oracle-epm-mcp-server.git
cd oracle-epm-mcp-server/server
npm installMCP Clients
Claude Desktop — MCPB bundle
Download oracle-epm-cloud-2.0.0.mcpb from the latest release:
https://github.com/fmepm/oracle-epm-mcp-server/releases/latestOpen Claude Desktop, go to Settings → Extensions → Advanced → Install Extension, and select the .mcpb file
Claude Desktop — Local build
{
"mcpServers": {
"oracle-epm-cloud": {
"command": "node",
"args": [
"<YOUR_PATH_TO_ORACLE_EPM_MCP_SERVER>/server/index.js"
],
"env": {
"EPM_MODE": "live",
"EPM_BASE_URL": "https://epm-YOURDOMAIN.epm.REGION.oraclecloud.com",
"EPM_USERNAME": "<YOUR_EPM_USERNAME>",
"EPM_PASSWORD": "<YOUR_EPM_PASSWORD>",
"EPM_APP_NAME": "Vision"
}
}
}
}