Skip to main content

SSAS MCP Server

A Model Context Protocol (MCP) server that connects AI agents to SQL Server Analysis Services (SSAS). It lets tools like GitHub Copilot, Claude (via Codex or Claude Code), and other MCP clients run DAX and MDX queries, explore models, and list measures, all through natural language.

Windows only
SSAS uses the ADOMD.NET client library, which requires .NET Framework on Windows.

Features

Tool Description
execute_query Run any DAX (EVALUATE ...) or MDX (SELECT ...) query
list_catalogs List all databases on the SSAS instance
list_tables List tables, dimensions, and measure groups
list_columns List columns for a specific table
list_measures List all visible measures with their DAX expressions
describe_model High-level summary: tables, measures, metadata

Prerequisites

  1. Python 3.10+

  2. ADOMD.NET client library
    The DLL Microsoft.AnalysisServices.AdomdClient.dll must be present on the machine. It ships with any of these:

    The server auto-detects common install locations. If your DLL is elsewhere, set the ADOMD_DLL_PATH environment variable to the folder containing it.

Installation

pip install ssas-mcp-server

After installation, the server can be started with:

ssas-mcp-server

Or install from source:

git clone https://github.com/NexusAI-Solutions/ssas-mcp-server.git
cd ssas-mcp-server
pip install .

Configuration

The server is configured through environment variables:

Variable Required Description
SSAS_SERVER Yes SSAS instance name (e.g. SERVER\INSTANCE)
SSAS_DATABASE Yes Database / catalog name
SSAS_PROVIDER No OLAP provider (default: MSOLAP)
SSAS_CONNECTION_STRING No Full ADOMD connection string (overrides server/database/provider)
ADOMD_DLL_PATH No Explicit path to the folder containing the ADOMD.NET DLL

Usage

Run directly

set SSAS_SERVER=SERVER\INSTANCE
set SSAS_DATABASE=My Cube
ssas-mcp-server

The server starts in stdio mode and waits for an MCP client to connect.

You can also run it as a Python module:

python -m ssas_mcp_server

VS Code / Codex

Add this to your .vscode/mcp.json:

{
  "servers": {
    "ssas": {
      "command": "ssas-mcp-server",
      "env": {
        "SSAS_SERVER": "SERVER\\INSTANCE",
        "SSAS_DATABASE": "My Cube"
      }
    }
  }
}

Claude Code

claude mcp add ssas -- ssas-mcp-server

Then set the environment variables in your shell before starting Claude Code, or pass them inline.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "ssas": {
      "command": "ssas-mcp-server",
      "env": {
        "SSAS_SERVER": "SERVER\\INSTANCE",
        "SSAS_DATABASE": "My Cube"
      }
    }
  }
}

Example queries

Once connected, you can ask your AI assistant things like:

  • "List all tables in the SSAS model"
  • "Show me the measures and their DAX expressions"
  • "Run this DAX query: EVALUATE TOPN(10, 'Sales', [Revenue], DESC)"
  • "Describe the data model"
  • "What columns does the Customers table have?"

Troubleshooting

Could not load file or assembly 'Microsoft.AnalysisServices.AdomdClient'

The ADOMD.NET DLL was not found. Solutions:

  1. Install SSMS, Power BI Desktop, or the standalone AMO client libraries.
  2. Set ADOMD_DLL_PATH to the folder containing Microsoft.AnalysisServices.AdomdClient.dll.

To find the DLL on your system:

where /r "C:\Program Files" Microsoft.AnalysisServices.AdomdClient.dll

Server is not found or not accessible

  • Verify the server name matches exactly what works in SSMS or Power BI.
  • For named instances, use the SERVER\INSTANCE format.
  • Make sure the SQL Server Browser service is running if you are connecting by instance name.

License

MIT

Publishing to PyPI

Install the packaging tools:

python -m pip install --upgrade build twine

Build and validate the distribution files:

python -m build
python -m twine check dist/*

Upload to TestPyPI first:

python -m twine upload --repository testpypi dist/*

If the TestPyPI package installs and runs correctly, upload to PyPI:

python -m twine upload dist/*

Automatic publishing from GitHub

This repository includes a GitHub Actions workflow that builds and publishes the package to PyPI when a GitHub Release is published.

To enable it, create a PyPI Trusted Publisher for this project:

  • PyPI project name: ssas-mcp-server
  • Owner: NexusAI-Solutions
  • Repository name: ssas-mcp-server
  • Workflow name: publish.yml
  • Environment name: pypi

Then publish a GitHub Release after bumping the version in pyproject.toml. PyPI does not allow replacing an existing version, so every release must use a new version number.

Metadata

Release files for ssas-mcp-server 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ssas-mcp-server 0.1.1
File Size Uploaded Provenance
ssas_mcp_server-0.1.1.tar.gz 6.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ssas-mcp-server 0.1.1
File Interpreter ABI Platform
ssas_mcp_server-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 15.4 kB

Release files / ssas_mcp_server-0.1.1.tar.gz

Download URL ssas_mcp_server-0.1.1.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
7d249c5abff1f02ed4039da989b81dce56d542a1c320df167914f0ba529b0b05
BLAKE2b-256 checksum
How to use checksums
0543d6e55f3dd00f2b8983ae2cbcd7e3e9044415420f7cb91e02065e4098f81c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.

Transparency log

Release files / ssas_mcp_server-0.1.1-py3-none-any.whl

Download URL ssas_mcp_server-0.1.1-py3-none-any.whl
Size 8.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d8f8f05ee7db500d306efd580a1528b52a9ebeb5d903d819af637bf4d5385f70
BLAKE2b-256 checksum
How to use checksums
973f95004c81f96e6f6a1decbc978f2b14aecca827c79216521d829e83f61712
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.

Transparency log

Security for ssas-mcp-server 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ssas_mcp_server-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page