semantic-warehouse-mcp
Enables AI agents to describe, query, and compute metrics against ClickHouse databases using a semantic model, with read-only checked SQL and bounded results.
Imports semantic models from dbt projects so agents can use dbt-defined datasets, fields, metrics, and relationships when querying databases.
Enables AI agents to describe, query, and compute metrics against DuckDB databases using a semantic model, with read-only checked SQL and bounded results.
Enables AI agents to describe, query, and compute metrics against MySQL databases using a semantic model, with read-only checked SQL and bounded results.
Enables AI agents to describe, query, and compute metrics against PostgreSQL databases using a semantic model, with read-only checked SQL and bounded results.
Enables AI agents to describe, query, and compute metrics against Snowflake databases using a semantic model, with read-only checked SQL and bounded results.
Click on "Deploy 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., "@semantic-warehouse-mcpcompute MRR by plan for Q3 and show the SQL you ran"
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.
semantic-warehouse-mcp
A read-only MCP server that lets any AI agent work with SQL databases the way an analyst does: knowing what the data means. You give it your semantic model in an open format (Apache Ossie, formerly OSI), your metrics, your own context and skills — and it lets agents describe, query and compute metrics on any database, safely.
Status: pre-alpha, being designed. Nothing here is ready to use yet. The plan is in dev/PLAN.md, the design in dev/DESIGN.md.
Why
An agent with a bare SQL connection writes plausible queries over the wrong tables. What makes its answers right is semantics: what a table holds, which column is the date, how a metric is defined, what not to mix. That knowledge already exists in teams — in dbt projects, semantic layers, wikis — but every tool wants it in its own shape. This server reads it in an open, vendor-neutral format and serves it beside the data.
Related MCP server: sql-steward
What it will do
Any SQL database: ClickHouse, PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB and more — each through an adapter; configured in YAML.
A semantic layer in an open format: datasets, fields, metrics and relationships in Apache Ossie YAML, with
ai_context(instructions, synonyms, examples) for agents andcustom_extensionsfor anything of your own — links to code, owners, anything — passed to agents as they are. Importers from dbt.Metrics computed from their definitions — by dimensions, filters and time ranges — not re-invented in every query.
Your own context and skills: folders of documents and
SKILL.mdfiles the agent reads with the data.Saved query sets: named, parameterised SQL with filters — the substance of a dashboard, without the drawing.
Read-only, checked: one
SELECTat a time, parsed and checked for the database's own dialect, only the tables you allow, large tables bounded, rows and time capped — on top of a read-only database user. Every answer carries the SQL as it ran.Any MCP client: stdio or Streamable HTTP — Claude, ChatGPT, Cursor, Codex, any client that speaks MCP.
Configuration (planned)
One YAML file names the connections (secrets by variable name, never written in it), the semantic models, the context and skills folders and the limits. A draft is in examples/.
Development
Python 3.12, uv, the official MCP Python SDK, sqlglot for parsing SQL of many dialects.
uv sync
uv run pytest
uv run ruff check . && uv run ruff format --check .
uv run semantic-warehouse-mcp # the server over stdioLicense
Available Tools
1 toolaboutARead-only
What this server is and what it will offer. Call it to check the connection.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered structurally. The description reinforces this implicitly as a diagnostic/connection-check call but adds no detail on what the response contains or how failures manifest, leaving modest added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste, and the identity statement is front-loaded ahead of the call-to-action. Nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should ideally say what an agent gets back (server name, version, capabilities) so the tool's result can be reasoned about. It gestures at this with 'what this server is and what it will offer' but stops short of concrete return-value disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain; the baseline for a param-less tool applies. The description correctly does not fabricate any inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns information about the server and its offerings, but 'what it will offer' is vague about the actual content. There's no concrete verb+resource framing (e.g., 'returns server name, version, capabilities') and no siblings to differentiate from, so the purpose is only loosely established.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: 'Call it to check the connection.' With no sibling tools, there are no alternatives to exclude, so the usage context is clear enough for an agent to know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.0.1- First observed
about
TDQS
Scored across 1 tool
With only a single tool, there is nothing to confuse it with, so an agent cannot misselect. The tool's purpose (report server identity and capabilities) is unambiguous.
A single name ('about') offers no pattern to evaluate, but it is a readable, conventional diagnostic name with no style clashes. Neutral score reflects the absence of any naming convention rather than a violation.
A server whose entire surface is one trivial informational tool is an extreme mismatch for a 'semantic-warehouse' purpose. The tool only reports what the server 'will offer', indicating it is a stub with no actual capability.
There are no query, schema, catalog, or data-access tools at all, only a connection check. Any real warehouse task (list tables, run queries, inspect semantics) is impossible, making the surface severely incomplete.
Maintenance
Related MCP Connectors
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
Ask your databases questions in plain English, run read-only SQL and set up data alerts.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to understand and query your database safely by providing a semantic layer of metadata, with tools to search, explain, validate, and generate safe SQL.2MIT
- AlicenseAqualityFmaintenanceA governed SQL gateway that exposes typed tools to AI agents, compiling safe read-only queries from a semantic layer while blocking PII before execution, supporting SQL Server, Postgres, and SQLite.9MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to securely interact with multiple databases (MySQL, PostgreSQL) via natural language queries, with cross-database querying and enterprise-grade security.6 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to query governed data warehouses through plain language, returning grounded answers with SQL, confidence grades, and signed receipts while enforcing access, testing, and audit controls.1,159 PyPI16Apache 2.0