sqlmesh-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SQLMESH_PROJECT_PATH | Yes | Path to the SQLMesh project directory. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_modelsA | List every model in the SQLMesh project with its kind, columns, owner, and description. |
| get_modelA | Full detail for one model: rendered query, columns, kind, owner, tags, description. |
| planA | Preview what a plan against an environment would change. Does not apply anything. Returns a plan_id -- pass it to apply_plan to actually apply this exact plan. |
| apply_planA | Apply a previously-previewed plan. THIS CHANGES REAL DATA in the target warehouse. Requires confirm=true. plan_id must come from a plan() call in this same session -- plans aren't kept across server restarts. |
| lineageB | Column-level lineage: which upstream models/columns does this column depend on. |
| run_auditA | Run audits for a model (or all models if omitted). start/end bound the data checked. |
| run_testA | Run unit tests for a model (or all tests if omitted). |
| diff_environmentA | Diff the current context against a target environment. |
| list_environmentsA | List every environment that exists in this project's state (e.g. prod, dev, ...). |
| runA | Execute scheduled/due model runs for an environment. THIS CHANGES REAL DATA. Distinct from plan/apply_plan: this runs already-promoted models for their due intervals (what a cron trigger would do), rather than previewing or promoting structural changes. Requires confirm=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a distinct action or resource: list/get separate models, plan/apply_plan are explicitly linked via plan_id, and run_audit/run_test/diff_environment/list_environments have clear boundaries. The plan/apply_plan and run descriptions explicitly prevent confusion between planning, applying, and executing scheduled runs.
Most tools follow a clean verb_noun pattern (list_models, get_model, apply_plan, run_audit, run_test, diff_environment, list_environments). Minor deviations exist with bare verbs like 'plan' and 'run' and noun-only 'lineage', but the naming remains predictable and readable overall.
Ten tools is well-scoped for a SQLMesh project server, covering model inspection, environment planning, execution, testing, auditing, and lineage. Each tool has a clear purpose and none feel redundant or excessive.
The core SQLMesh workflow is covered: model inspection, plan preview/apply, environment listing/diffing, audits, tests, and scheduled runs. Missing explicit environment create/delete and model editing are minor because plan/apply and external file workflows can cover those needs, but there are no severe dead ends.