Interface EssMcp
- All Known Implementing Classes:
EssMcpImpl
EssServer.getMcp().
This is the integration that points the other way from EssCubeAi: there, Essbase is the
client and a model answers it; here, Essbase is the tool provider and the model is somebody else's
- which is what lets ChatGPT query a cube directly. The two share nothing but the word AI, and a
server can perfectly well have this working while every /ai endpoint is unconfigured.
Spoken to over the plain endpoints (/ess-mcp, /ess-mcp/tools,
/ess-mcp/call) rather than the JSON-RPC interface the same path also serves. Both work and
return the same envelopes; these are three ordinary requests instead of a protocol.
Some tools relay the caller's session to Essbase rather than re-presenting credentials, so they fail with an internal 401 for a caller using HTTP Basic and nothing else. That never arises through this library, which authenticates and keeps a session - but it is worth knowing when the same call made by hand behaves differently.
-
Method Summary
Modifier and TypeMethodDescriptionRuns one tool.What the MCP server calls itself, e.g.getTools()The tools it offers.booleanWhether this server has an MCP server at all.
-
Method Details
-
isAvailable
boolean isAvailable()Whether this server has an MCP server at all. False on anything older than 26.1, which answers 404 to the discovery endpoint.- Returns:
- true if the endpoint answered
-
getServerInfo
What the MCP server calls itself, e.g.Essbase MCP 0.2.3.- Returns:
- the name and version, or empty if there is no MCP server here
-
getTools
List<EssMcpTool> getTools()The tools it offers.- Returns:
- the tools, empty if there is no MCP server here
-
call
Runs one tool.Arguments are sent as given; the endpoint validates them. A tool that fails comes back as a result with
EssMcpResult.isError()set rather than as an exception.- Parameters:
toolName- which toolarguments- its arguments, by name- Returns:
- what it said
-