Skip to main content
Glama

FMEPM Connect for Oracle EPM

Server Details

I connect Claude to your own Oracle Cloud EPM pod and help the people who run EPM check jobs, run rules, load data and read metadata or a slice of numbers.

Each person connects as themselves, so Oracle applies their own roles. I encrypt credentials on my server; they never reach Claude.

Every call passes a policy check and is logged. Risky writes ask for confirmation first, with a preview of what will change. On a production pod that is every write. The activity log holds no cell values.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target clearly different resources or actions, and the descriptions distinguish connection setup, demo setup, job execution, and status checks well. The main overlap is between about_connector and get_effective_policy, since both expose plan limits and tool availability, though the policy-vs-about distinction is explained.

Naming Consistency4/5

The set is overwhelmingly consistent snake_case and mostly follows a verb_noun pattern such as list_applications, get_api_version, run_business_rule, and update_substitution_variable. A few names are noun phrases or preposition-led (point_of_view, remembered_results, about_connector), which is a minor deviation rather than a real inconsistency.

Tool Count5/5

Fourteen tools is comfortably within a well-scoped range and reflects the connector's multiple concerns: connections, applications, data export, policy, POV, remembered results, and jobs. No single tool appears redundant enough to remove, and the set does not feel bloated.

Completeness3/5

Core workflows are covered: listing applications/connections, exporting data, reading and writing substitution variables, running rules, checking job status, and managing POV. However, there are notable gaps: no list_business_rules tool to discover rules before run_business_rule, and no list_dimension_members or cube/dimension browsing tool even though export_data_slice explicitly refers to list_dimension_members. These gaps can dead-end an agent trying to discover valid rule names or resolve empty data slices.

Available Tools

14 tools
about_connectorAbout this connectorA
Read-onlyIdempotent
Inspect

Returns the current plan and its limits, usage so far (this minute and today), the tools available on this plan, the person's profile and guidance level, the connector version and build, and the portal links available on this plan. Use it when the user asks what the connector can do, which plan they are on, why a tool is missing, or what Oracle added recently.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds valuable behavioral context by listing the returned information and diagnostic use cases, though it does not describe response structure or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is only two sentences and front-loads the returned contents before giving usage guidance. The long enumeration in the first sentence is functional because each listed item clarifies the tool's scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless informational tool with no output schema, the description explains both what is returned and when to call it. Combined with the rich annotations, it gives the agent enough information to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. There is no parameter semantics to explain and no schema gap for the description to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, "Returns," and enumerates the exact resources: plan limits, usage, available tools, profile, connector version/build, and portal links. This makes it clearly distinguishable from siblings such as list_applications, get_api_version, and get_effective_policy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear triggering scenarios: asking what the connector can do, which plan is active, why a tool is missing, or what Oracle added recently. It does not explicitly state when not to use it or name an alternative, so it stops short of the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_job_statusCheck job statusA
Read-onlyIdempotent
Inspect

Returns the status of a job in the connected application: Processing (-1), Completed (0), Error (1), Cancelled (2), with Oracle's details text. Use it after run_business_rule or any job submission to see whether the job finished and how.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob id returned by run_business_rule or another job submission
appNameNoApplication name. Defaults to the connection's application.
connectionNoConnection id or label from list_connections. Defaults to the user's default connection.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that by enumerating the status code semantics (Processing -1, Completed 0, Error 1, Cancelled 2) and noting that Oracle's details text is returned, which helps an agent interpret results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the return-value semantics followed by the usage context. No filler, every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing return values, and it does so reasonably by listing status codes and the details text. It lacks guidance on polling cadence or whether status is eventually consistent, which is a minor gap for a status-check tool with full safety annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with jobId, appName, and connection all documented in the schema itself, including defaults. The description only implicitly references jobId via 'a job in the connected application' and adds no format or syntax detail beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Returns the status of a job') and enumerates the exact status codes with their numeric values. This distinguishes it cleanly from sibling tools like run_business_rule, which it explicitly cross-references.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says when to invoke it ('Use it after run_business_rule or any job submission to see whether the job finished'), which is a clear usage trigger. It stops short of stating exclusions or naming alternative polling/status mechanisms, so it is not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connect_epm_environmentConnect an EPM environmentA
Read-onlyIdempotent
Inspect

Returns the link to the connect portal and the three ways to connect an Oracle EPM environment: traditional credentials, Oracle SSO, or a demo connection with sample data. Credentials are entered in the portal, not in chat; this tool takes no credentials and stores nothing. Use it when the user has no connection yet, wants another one, or needs to fix a failing one.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond them — that it takes and stores no credentials and that authentication happens out-of-band in the portal — which is meaningful for an agent reasoning about a connect flow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the return value and the connection options, then the security constraint, then the usage conditions. No filler and every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, non-destructive read with no output schema, the description covers purpose, return value, security expectations, and triggers. Minor gap: it does not clarify how this relates to its closest sibling use_demo_environment, which also concerns sample-data connections.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is nothing to disambiguate; the description correctly reinforces this by stating the tool takes no credentials. The baseline for no-param tools applies and no parameter detail is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('connect an EPM environment') and what the tool actually returns ('the link to the connect portal'), plus the three connection paths it describes. An agent can distinguish it from list_connections or use_demo_environment because the description positions it as the zero-input guidance/portal-link tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the three triggering conditions: no connection yet, wanting another one, or fixing a failing one. It also pre-empts the wrong expectation by saying credentials are entered in the portal, not here, which routes the agent away from trying to collect secrets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_data_sliceExport data sliceA
Read-onlyIdempotent
Inspect

Exports a slice of numbers from any cube of the connected application. It reads the cube's dimensions first, puts the account dimension on rows and the period dimension on columns, maps scenario, year and entity to the cube's matching dimensions whatever they are called (Entity or Subsidiary, Year or Fiscal Year), and gives every other dimension its top member unless pov names a member for it, for example pov: { Version: "NSP_Base", Currency: "USD" }. Returns the rows as a table and as structured data, cut to the policy's cell limit with a note when that happens, and reports which member was used for each dimension. Scenario, Version and Currency usually need a leaf member (Actual, Base, USD) because their top members hold no data, and in many applications the top member of a custom dimension holds no total either. When a slice comes back empty, the result names the dimensions left at their top member with their first children; pass members for them, or browse a dimension with list_dimension_members when it is available. Use it to read actuals, plan or forecast numbers for analysis or commentary.

ParametersJSON Schema
NameRequiredDescriptionDefault
povNoMembers for any other dimension, for example { Version: "NSP_Base", Currency: "USD" }; dimensions you leave out use their top member
rowsNoDimension names to put on rows, e.g. ["Account", "Department"]. Defaults to the account dimension.
yearNoYear member, e.g. FY26 or FY24
freshNoSet true to ignore the scenario, year, entity, cube and pov remembered from the user's previous request, start from scratch and read Oracle again even inside the policy's cache window.
entityNoEntity member, e.g. North America. Goes to the cube's entity-like dimension (Entity, Subsidiary, Company).
periodNoPeriod member or comma-separated list, e.g. Jan, Q1 or TP1,TP2,TP3. Member functions such as ILvl0Descendants(YearTotal) work. Defaults to level 0 members under YearTotal.
accountNoAccount member or comma-separated list, e.g. Revenue or Descendants(Net Income). Defaults to all level 0 accounts.
appNameNoApplication name. Defaults to the connection's application.
columnsNoDimension names to put on columns, e.g. ["Period"] or ["Period", "Scenario"]. Defaults to the period dimension.
planTypeNoCube (plan type) to export from, e.g. Plan1 or NSP_NFS. When the application has one cube it is used; with several, pass one. Otherwise Plan1.
scenarioNoScenario member, e.g. Actual, Plan, NSP_Actual
connectionNoConnection id or label from list_connections. Defaults to the user's default connection.
planningDataNoSet true to read through the application's form engine (Smart List labels, form-level security) instead of the plain cube export. The cube export is the default because the form engine returns nothing when a parent member is in the point of view.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld, and the description goes well beyond them: it discloses the policy cell-limit truncation with a note, the top-member/leaf-member data-availability trap, the caching behavior that 'fresh' overrides, and the planningData form-engine caveat where a parent in the POV returns nothing. These are non-obvious behavioral traits an agent could not infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is one long paragraph, but the core purpose and default behavior are front-loaded and nearly every clause conveys operational information (mapping rules, empty-slice recovery, cell-limit note). A little denser than ideal — splitting the empty-result recovery advice out would read better.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

13 parameters, zero required, nested POV object, no output schema — the description compensates fully: it describes the return shape (table plus structured data, truncated with a note, per-dimension member report) and covers the main failure mode. Nothing material is missing for a correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description earns extra by explaining the POV fallback-to-top-member rule, the requirement for leaf members on Scenario/Version/Currency, and worked examples like pov: { Version: "NSP_Base", Currency: "USD" } that show how dimensions map regardless of naming.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Exports a slice of numbers from any cube') and then details exactly what the slice consists of — rows/columns defaults, scenario/year/entity mapping to cube-specific names, other dimensions at top member. An agent can tell this apart from point_of_view or run_business_rule without reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use case ('read actuals, plan or forecast numbers for analysis or commentary') and actionable guidance for the empty-result case (pass members or browse with list_dimension_members). It does not explicitly contrast itself with the sibling point_of_view or remembered_results tools, so routing among those is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_api_versionGet API versionA
Read-onlyIdempotent
Inspect

Returns the REST API versions the connected Oracle EPM environment supports (for example v3). Use it to confirm that a connection works before making other calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionNoConnection id or label from list_connections. Defaults to the user's default connection.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds useful context beyond that by explaining it returns supported API versions and can serve as a connection check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences, front-loaded with the return value and followed by the primary use case. No unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only version-check tool with rich annotations and fully documented schema, the description covers what it returns, an example value, and why an agent would call it. No output schema is needed given the clear return description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the optional connection parameter is already fully documented in the schema. The description does not add parameter-specific semantics beyond referring to the connected environment, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns the REST API versions supported by the connected Oracle EPM environment, with an example output (v3). This clearly distinguishes it from connection-management and job-status siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: use it to confirm a connection works before making other calls. It does not name explicit alternatives or exclusions, but the intended timing is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_effective_policyShow effective policyA
Read-onlyIdempotent
Inspect

Returns the policy in force for this user and plan: allowed and denied tools, applications, environments, business rules, job types, confirmation rules, limits and time window. It is the merge of the baseline, the plan policy, the tenant policy, the person's profile and their guidance level, with the tenant's own guidance text. Use it to explain why a call was refused or to check what is allowed before proposing a change.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description goes beyond that by disclosing the composition semantics — the result is a merge of baseline, plan policy, tenant policy, person's profile, guidance level, plus tenant guidance text — which tells the agent the output is derived, not stored, and will change as those layers change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what is returned, then why it exists. The long enumeration of policy facets is not padding — it substitutes for the absent output schema, so every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by listing the returned facets and explaining how they are assembled from the policy layers. Combined with the annotations, an agent has everything needed to call it with no arguments and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters with an empty schema, so the baseline of 4 applies; there is nothing for the description to disambiguate. The description correctly implies the tool is implicitly scoped to the calling user and plan rather than accepting selectors.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource ('returns the policy in force for this user and plan') and then enumerates exactly what the policy covers (tools, applications, environments, business rules, limits, time window). No sibling tool in the list returns policy, so it is unambiguously distinguishable from about_connector, list_applications, or point_of_view.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two explicit triggering scenarios: explaining why a call was refused and checking what is allowed before proposing a change. It never names an alternative tool or a when-not condition, but the usage context is concrete enough that an agent knows when to reach for it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_substitution_variablesGet substitution variablesA
Read-onlyIdempotent
Inspect

Reads all substitution variables of an application (for example CurrMonth, CurrYear) with their values and plan type scope. These control which period, year, scenario and version the application points at. Use it before changing one or when a form or rule depends on one.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameNoApplication name. Defaults to the connection's application.
connectionNoConnection id or label from list_connections. Defaults to the user's default connection.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful domain context: that these variables control period, year, scenario and version, which tells the agent why the read matters and what the returned values mean.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the core read operation front-loaded and the usage cue placed last. Every sentence contributes distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by explaining what comes back: variable names, values and plan type scope. The only omission is whether results are paginated or filtered, which is minor for a small read-only lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both appName and connection documented including their defaults, so the schema carries the parameter burden. The description adds no syntax or format detail for either parameter, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Reads all substitution variables of an application,' and illustrates with concrete examples (CurrMonth, CurrYear) plus scope (values and plan type scope). It does not name the sibling update_substitution_variable outright, but the phrase 'before changing one' clearly separates it from the mutation counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it before changing one or when a form or rule depends on one' gives two concrete triggering conditions, which is stronger than implied usage. It stops short of naming the alternative tool or stating explicit exclusions, so it falls below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_applicationsList applicationsA
Read-onlyIdempotent
Inspect

Lists the applications in the connected Oracle EPM environment with their type and settings. Use it to find the application name other tools need.

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionNoConnection id or label from list_connections. Defaults to the user's default connection.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description only adds that each application's type and settings are returned; it says nothing about result size, pagination, or what happens when the connection has no applications. With annotations carrying the main burden, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with what is listed and followed by the usage hint. No filler, though the second sentence could have been used to add sibling routing rather than a soft usage note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only, single-optional-parameter list tool with full annotation coverage and complete schema descriptions, the description covers what it returns and why an agent would call it. Only minor gaps remain (empty-connection behavior, result scope).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'connection' parameter already documents that it can be an id or label from list_connections and defaults to the user's default connection. The description adds no parameter-level information, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Lists the applications in the connected Oracle EPM environment') and names what is returned ('type and settings'). It does not contrast itself with siblings like list_connections, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it to find the application name other tools need' gives a concrete usage context, which is more than nothing. However, there are no exclusions, no prerequisites, and no explicit pointer to the alternative tools that consume the returned name (e.g. run_business_rule, export_data_slice).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_connectionsList connectionsA
Read-onlyIdempotent
Inspect

Lists the Oracle EPM connections this user can use: their own and the ones shared across their tenant. Returns id, label, environment (production, test or demo; a per-connection override set on the Connect page wins over the address), the default application, the applications the pod hosts as of the last test, auth type, status and which one is the default. Use it to pick the connection argument for other tools or to check whether a connection exists before calling Oracle. With more than one connection, name the connection in every call and say which pod a number came from.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false. The description adds substantial behavioral context beyond that: scoping to the user's own and shared connections, the environment override precedence, the fact that hosted applications reflect the last test, and multi-connection naming expectations. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with 'Lists the Oracle EPM connections' and then efficiently covers return fields and usage guidance. Despite being dense, every sentence adds useful information for selecting and interpreting the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description appropriately explains the important return fields (id, label, environment, default application, hosted applications, auth type, status, default flag). For a zero-parameter, read-only listing tool with annotations already covering safety, this is complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics to document and the baseline score is 4. The description does not need to compensate for missing parameter coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a precise verb and resource: it lists Oracle EPM connections, states the scope (the user's own plus tenant-shared ones), and enumerates the returned fields. An agent can distinguish this listing tool from siblings like connect_epm_environment without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool to choose the connection argument for other tools or to verify that a connection exists before calling Oracle. It also gives multi-connection guidance about naming the connection in every call. It does not name explicit alternatives or when-not-to-use conditions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

point_of_viewPoint of view memoryA
Read-onlyIdempotent
Inspect

Shows, sets or clears the point of view that carries over between the user's requests on a connection: the scenario, year, entity, cube and other dimension members that export_data_slice reuses when a request leaves them out. Use it when the user says to keep looking at the same entity or year, to switch the context for the next questions, or to start over.

ParametersJSON Schema
NameRequiredDescriptionDefault
povNoMembers for other dimensions to keep, e.g. { "Version": "NSP_Base", "Currency": "USD" }. An empty string removes that dimension.
yearNoYear member to keep, e.g. FY24
actionNoshow (default), set or clear
entityNoEntity member to keep, e.g. SUB_2
planTypeNoCube (plan type) to keep, e.g. NSP_NFS
scenarioNoScenario member to keep, e.g. NSP_Actual
connectionNoConnection id or label from list_connections. Defaults to the user's default connection.

TDQS

A3.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and destructiveHint=false, yet the description says the tool 'sets or clears' state that 'carries over between the user's requests on a connection.' Setting or clearing persistent state is a mutation, so an agent trusting the read-only annotation could call action=set or clear expecting no side effects. Side-effect semantics that matter this much are stated in contradiction to the structured safety metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what the tool does, followed by the usage triggers; there is no filler. The first sentence is long because it enumerates dimensions, but each clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, zero-required tool with a nested object, the description explains persistence scope and the downstream consumer (export_data_slice) well. The remaining gap is that 'show' presumably returns the current POV and no output schema exists, so an agent does not know the shape of that response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (pov, year, entity, planType, scenario, connection, action) is already documented, including the empty-string removal trick and the connection default. The description only adds the semantic frame that these members are reused by export_data_slice when a request omits them; it adds no format or syntax beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names concrete verbs (shows, sets, clears) and a specific resource (the connection-scoped point of view: scenario, year, entity, cube, other dimension members). It also distinguishes the tool from the sibling that consumes its state (export_data_slice), so an agent can tell what it does and what it feeds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete triggers: the user asks to keep looking at the same entity/year, to switch context for upcoming questions, or to start over. That covers show/set/clear selection implicitly. It stops short of an explicit 'do not use this when…' clause or naming a true alternative tool, so it is clear context rather than a full when/when-not/alternatives contract.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remembered_resultsRemembered resultsA
Read-onlyIdempotent
Inspect

Lists the data slices the connector remembers for the user (connection, application, cube, point of view, when each was read, how many cells, whether the numbers are stored or only a hash per cell) and, given a fingerprint from that list, reads that slice from Oracle again and reports whether the numbers changed since and which cells. Entries are per user and kept for the days the policy's answers.historyDays sets; the Usage page in the portal forgets them. Use it when the user asks what a slice showed before, whether the numbers moved since an earlier answer, or to compare today's read with the remembered one.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many entries to list (default 20, newest first)
fingerprintNoFingerprint from the list: reads that slice again and compares it with the remembered result

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, yet the description adds substantial context beyond them: entries are per user, retained only for the days set by the policy's answers.historyDays, and can be forgotten via the portal Usage page. It also discloses that some entries store numbers while others store only a per-cell hash, which explains why a comparison may be limited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The dual-mode behavior is front-loaded in the first sentence, followed by retention and usage. It is dense and the first sentence is long, but every clause carries information; only the slight run-on quality keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining returns and does so: it enumerates the listed fields and states that the comparison reports whether numbers changed and which cells. Retention policy and per-user scoping round out what an agent needs to call it and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning the schema does not: the two parameters are really two modes — limit lists newest-first, and supplying a fingerprint switches to re-read-and-compare. That mode-switching semantics is the key thing an agent needs and is not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (lists remembered data slices) and explicitly describes the second mode: given a fingerprint, it re-reads that slice from Oracle and reports whether numbers changed. The enumerated per-entry fields (connection, application, cube, point of view, read time, cell count, stored vs hash) make the resource concrete and distinguishable from any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggers: when the user asks what a slice showed before, whether numbers moved since an earlier answer, or to compare today's read with a remembered one. No sibling is named as an alternative or exclusion, which keeps it short of a 5, but the usage context is clear enough that an agent will pick it over export_data_slice or get_job_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_business_ruleRun business ruleA
Destructive
Inspect

Launches a business rule (calculation script) in the connected application and returns the job id. The rule runs in Oracle and changes data; the call returns before it finishes. Use it when the user wants a calculation, aggregation or allocation run, then follow up with check_job_status. For a write, I require a preview first, then confirm: true and its confirmationToken. The token lasts ten minutes and works once.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameNoApplication name. Defaults to the connection's application.
confirmNoSet true after the user has approved the previewed change
ruleNameYesExact business rule name, e.g. Agg_AllData
connectionNoConnection id or label from list_connections. Defaults to the user's default connection.
parametersNoRuntime prompt values by prompt name
confirmationTokenNoSingle-use token from this exact preview. Send it with confirm: true after the user approves. It expires after ten minutes.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint and non-idempotent, so this description only needs added context — and it delivers: it discloses that the rule mutates data in Oracle, that the call returns before completion (async), and that the confirmation token lasts ten minutes and is single-use. That is exactly the extra behavioral context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, front-loaded with the action, followed by side effects, usage trigger, and the confirmation protocol. No filler; the token-lifetime sentence is repeated from the schema but serves the safety-critical confirmation flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming the return value (job id) and the async follow-up path via check_job_status. For a destructive, non-idempotent, open-world mutation with a nested parameters object, the agent has everything needed to call it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description largely restates what the schema already documents (confirm, confirmationToken lifetime, job-id return). It adds the preview-then-confirm sequencing relationship between confirm and confirmationToken, which is modest added value over per-field descriptions; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Launches a business rule (calculation script)') plus the return value ('returns the job id'), which immediately separates it from read-only siblings like list_applications or get_effective_policy. The parenthetical and the 'runs in Oracle' note make the resource unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when the user wants a calculation, aggregation or allocation run') and routes the agent to the correct follow-up sibling, check_job_status. Leaves one gap: it says a preview is required before a write but, since no preview sibling exists, the agent must infer that omitting confirm on this same tool produces the preview.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_substitution_variableUpdate substitution variableA
DestructiveIdempotent
Inspect

Sets a substitution variable to a new value in the connected application, for example rolling CurrMonth from Mar to Apr at month end. The change takes effect for every form, rule and report that uses the variable. A change set with plan_change and run_change is the safer option. Use it when the user asks to move a period, year or scenario pointer. For a write, I require a preview first, then confirm: true and its confirmationToken. The token lasts ten minutes and works once.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameNoApplication name. Defaults to the connection's application.
confirmNoSet true after the user has approved the previewed change
newValueYesNew value, e.g. Apr
planTypeNoPlan type scope. Defaults to ALL.ALL
connectionNoConnection id or label from list_connections. Defaults to the user's default connection.
variableNameYesVariable name, e.g. CurrMonth
confirmationTokenNoSingle-use token from this exact preview. Send it with confirm: true after the user approves. It expires after ten minutes.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing blast radius (change applies to every form, rule and report), a mandatory preview-then-confirm flow, a 10-minute token lifetime and single use. That is exactly the extra context destructiveHint/openWorldHint cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and example, then scope, then the safer alternative, then the gating workflow. Every sentence carries information, though the first-person 'I require' phrasing is slightly informal and the token details partly duplicate the schema description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world, 7-parameter write with no output schema, the description covers impact, safeguards and timing. It stops short of naming the specific tool that produces the preview/confirmationToken, which is the one operational detail an agent still needs to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining the sequencing semantics of confirm and confirmationToken ('preview first, then confirm: true and its confirmationToken') rather than just restating field definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Sets a substitution variable to a new value') plus a concrete example (CurrMonth Mar→Apr) and the blast radius ('every form, rule and report'). It is cleanly distinguishable from the read-only sibling get_substitution_variables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when the user asks to move a period, year or scenario pointer') and points at a safer alternative (change set with plan_change and run_change). Minor weakness: plan_change and run_change are not in the sibling tool list provided, so the routing hint points at names the agent may not be able to resolve.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

use_demo_environmentUse the demo environmentA
Read-onlyIdempotent
Inspect

Creates the demo EPM connection with sample data (the Vision application, no real Oracle pod) for this user, or reuses it when it already exists, and makes it the default when the user has no default connection. Returns ready-made prompts to try. Works on every plan, including the FMEPM Demo plan. Use it when the user has no connection yet and wants to try the connector before adding a real Oracle EPM pod.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says the tool 'Creates the demo EPM connection' and 'makes it the default when the user has no default connection', which are state-changing actions. The annotations declare readOnlyHint=true, so the description contradicts the safety profile; this is an annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and includes only operationally relevant details: sample data, reuse behavior, default behavior, return value, plan availability, and usage condition. It is dense but appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the tool does, what it returns ('ready-made prompts'), plan availability, and when to use it. With no output schema, the return value is briefly but adequately described; the main remaining gap is the annotation inconsistency, scored separately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to explain. The baseline for a zero-parameter tool applies, and the description needs no parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Creates the demo EPM connection with sample data'. It distinguishes the demo environment from a real Oracle EPM pod and clearly names the Vision application, so an agent can tell it apart from connect_epm_environment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage condition: 'Use it when the user has no connection yet and wants to try the connector before adding a real Oracle EPM pod.' That is a strong contextual cue, though it does not explicitly name connect_epm_environment as the alternative for real connections.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updates
    • First observedabout_connector
    • First observedcheck_job_status
    • First observedconnect_epm_environment
    • First observedexport_data_slice
    • First observedget_api_version
    • First observedget_effective_policy
    • First observedget_substitution_variables
    • First observedlist_applications
    • First observedlist_connections
    • First observedpoint_of_view
    • First observedremembered_results
    • First observedrun_business_rule
    • First observedupdate_substitution_variable
    • First observeduse_demo_environment

Publisher details

Operator
FMEPM · Publisher source
Vendor relationship
Independent
Restrictions
Work email required. Requires an Oracle EPM Cloud environment. Full access needs an FMEPM Connect plan. Free demo environment available on request. Contact sales@fmepm.com. · Publisher source

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    4 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources