mdx-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mdx-mcpwhat were total sales in 2023?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mdx-mcp
An open-source, verified natural-language → MDX MCP server for OLAP cubes.
Ask an OLAP/SSAS multidimensional cube questions in plain English and get back a verified answer — the number, the MDX that produced it, and an honest abstain/clarify when the query is ambiguous. Cross-platform (XMLA), provider-agnostic (Claude by default), and MCP-native.
question ──▶ introspect the cube ──▶ generate k candidate MDX ──▶ execute (read-only)
──▶ self-consistency verify ──▶ { status, value, mdx, agreement }Why it's different
Verified, not vibes. It runs k diverse candidate queries and only answers when they agree; on divergence it abstains or asks to clarify instead of guessing a number.
Works on any cube. Cube-schema introspection auto-grounds generation — no per-cube hand-authoring.
Read-only by construction. Only
SELECT/WITHMDX ever executes.Open-core. Three clean seams (
LLMClient,MdxExecutor,Verifier) let you plug in a private trust layer without forking. SeeARCHITECTURE.md.
Related MCP server: Cube.js MCP Server
Install
pip install mdx-mcp[claude] # engine + Claude reference providerThe XMLA executor and cube introspection use only the Python standard library.
Configure (env)
export MDX_MCP_ENDPOINT="http://your-ssas-host/olap/msmdpump.dll" # XMLA endpoint
export MDX_MCP_CATALOG="YourDatabase"
export MDX_MCP_CUBE="Your Cube"
export MDX_MCP_USER="user" # optional (basic auth)
export MDX_MCP_PASSWORD_FILE="/run/secrets/olap_pw" # or MDX_MCP_PASSWORD
export ANTHROPIC_API_KEY="sk-..." # for the default Claude producerRun
mdx-mcp # starts the MCP server (stdio)Tools
Tool | Purpose |
| the cube's grounding block (measures / dimensions / hierarchies) |
| NL question → |
| execute a provided MDX query (read-only) |
| explain an MDX query in plain language |
Ships a Cube-Analyst persona (persona/) and Claude skills
(skills/) that drive the flow.
Bring your own provider / backend
Implement LLMClient (any model), MdxExecutor (e.g. a Windows ADOMD backend), or Verifier
(e.g. a calibrated trust gate) and inject it — the engine is unchanged.
License
Apache-2.0. No vendor lock-in, no client data.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tghanchidnx/mdx-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server