Interface EssMcp

All Known Implementing Classes:
EssMcpImpl

public interface EssMcp
The MCP server built into Essbase 26.1, reached through 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 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

      Optional<String> 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

      EssMcpResult call(String toolName, Map<String,Object> arguments)
      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 tool
      arguments - its arguments, by name
      Returns:
      what it said