SSAS Server
БесплатноНе проверенA read-only MCP server for querying SQL Server Analysis Services (multidimensional cubes via MDX and tabular models via DAX) using Windows Integrated Security.
Описание
A read-only MCP server for querying SQL Server Analysis Services (multidimensional cubes via MDX and tabular models via DAX) using Windows Integrated Security.
README
A read-only Model Context Protocol server for querying SQL Server Analysis Services — both multidimensional cubes (MDX) and tabular models (DAX) — with Windows Integrated Security (Kerberos/NTLM, no passwords).
Companion to mssql_mcp_server, but for the OLAP side of the house.
Features
list_metadata— discover a cube/model's measures, dimensions and hierarchies (viaMDSCHEMA_*DMVs, which work for both model types), so the agent never guesses bracketed unique names. The overview stays compact — measures, dimension names and multi-level user hierarchies; passdimension="[Dim Event]"to drill into one dimension's full attribute hierarchies and levels (a whole cube's attribute list can run to tens of thousands of tokens).execute_query— run an MDX (SELECT/WITH) or DAX (EVALUATE/DEFINE) query and get a flattened JSON table back.execute_dmv— guarded passthrough forSELECT ... FROM $SYSTEM.*schema rowsets (MDSCHEMA_*,TMSCHEMA_*,DISCOVER_*) for deeper introspection.- Read-only by construction — statements that don't start with
SELECT/WITH/EVALUATE/DEFINEare rejected, XMLA payloads are rejected, and there is no DDL/process surface at all. - Row cap + query timeout on every call so a runaway crossjoin can't flood the context window.
Requirements
Windows-only by construction (the server drives ADOMD.NET via pythonnet):
- Windows, domain-joined, with network access to the SSAS instance (default instance = TCP 2383).
- The Windows account running the server has Read access to the SSAS database (role membership). Integrated auth means "whoever runs the process".
- ADOMD.NET client libraries — ships with SSMS, or install the
Analysis Services client libraries
redistributable. Typically lands in
C:\Program Files\Microsoft.NET\ADOMD.NET\160. - Python 3.11+
Installation
git clone https://github.com/dbdave/mssas_mcp_server
cd mssas_mcp_server
pip install -e .
Smoke-test connectivity before wiring up MCP (if this fails it's network/auth/ADOMD install, not the server):
python test_connection.py <server> <catalog>
Configuration
| Variable | Required | Default | Notes |
|---|---|---|---|
SSAS_SERVER |
yes | — | Host, host\instance, or an http(s)://.../msmdpump.dll URL |
SSAS_CATALOG |
yes | — | SSAS database name |
SSAS_DEFAULT_CUBE |
no | — | Cube/model list_metadata uses when none is given |
SSAS_ROW_LIMIT |
no | 10000 |
Hard cap on returned rows |
SSAS_QUERY_TIMEOUT |
no | 60 |
Per-query timeout, seconds |
SSAS_ADOMD_DLL_DIR |
no | auto-detected | Folder containing Microsoft.AnalysisServices.AdomdClient.dll |
Authentication is always Windows Integrated Security (Integrated Security=SSPI) —
no credentials in config.
MCP registration (Claude Code / Claude Desktop)
{
"mcpServers": {
"ssas-cube": {
"command": "python",
"args": ["-m", "ssas_mcp.server"],
"env": {
"SSAS_SERVER": "my-ssas-host",
"SSAS_CATALOG": "My_Cube_Db",
"SSAS_DEFAULT_CUBE": "Sales"
}
}
}
}
One registered server targets one SSAS database. To use both a multidimensional and a
tabular instance, register the server twice with different SSAS_SERVER/SSAS_CATALOG
env blocks — the query language is chosen per call (execute_query accepts MDX or DAX,
and the engine itself only accepts the language matching the model type).
Example usage
Multidimensional (MDX):
SELECT NON EMPTY { [Measures].[Tickets Issued] } ON COLUMNS,
NON EMPTY { [Sales Item Fact Ordered Date].[Calendar].[Year Name].MEMBERS } ON ROWS
FROM [Sales]
Tabular (DAX):
EVALUATE SUMMARIZECOLUMNS('Date'[Year], "Total Sales", [Total Sales])
DMV introspection:
SELECT [MEASURE_NAME], [MEASUREGROUP_NAME] FROM $SYSTEM.MDSCHEMA_MEASURES WHERE [CUBE_NAME] = 'Sales'
SELECT * FROM $SYSTEM.TMSCHEMA_MEASURES -- tabular models
Result format
Tools return JSON:
{
"columns": ["[Sales Item Fact Ordered Date].[Calendar].[Year Name].[MEMBER_CAPTION]", "[Measures].[Tickets Issued]"],
"rows": [["2025", 123456], ["2026", 98765]],
"row_count": 2,
"truncated": false
}
Cells can be null and columns can be mixed-type — MDX cellsets are flattened
defensively (nulls preserved, Decimal → float, DateTime → ISO string).
Tests
pip install pytest
pytest tests/
License
MIT
Установка SSAS Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/dbdave/mssas_mcp_serverFAQ
SSAS Server MCP бесплатный?
Да, SSAS Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для SSAS Server?
Нет, SSAS Server работает без API-ключей и переменных окружения.
SSAS Server — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить SSAS Server в Claude Desktop, Claude Code или Cursor?
Открой SSAS Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
автор: wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
автор: madhurprashPostgres
Query your database in natural language
автор: AnthropicPostgreSQL
Read-only database access with schema inspection.
автор: modelcontextprotocolCompare SSAS Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории data
