sqlmesh mcp
MCP服务器 SQLMesh --将数据转换操作作为AI代理(Claude、GPT-4和任何兼容MCP的客户端)的工具公开。
   ](https://github.com/sherman94062/sqlmesh-mcp)
______________________________________________________________________
这是什么?
sqlmesh mcp 允许AI代理通过以下方式与SQLMesh项目交互 模型上下文协议(MCP)。代理可以检查模型、生成和应用计划、运行测试和审计、探索列级沿袭、管理环境和执行SQL——所有这些都不需要离开AI聊天界面。
这尤其强大,因为SQLMesh的列级沿袭(相对于dbt的一个关键优势)变得可以直接查询:问AI“在哪里 revenue 列在 finance.daily_summary 来自?“并在整个DAG中获得跟踪答案。
______________________________________________________________________
工具
| 工具 | 说明 |
|---|---|
sqlmesh_model_list | 列出所有带有种类、克戎、粒度和标签的型号 |
sqlmesh_model_info | 单个模型的详细元数据(列、审核、查询预览) |
sqlmesh_model_render | 为模型渲染完全扩展的SQL |
sqlmesh_plan | 只读 --预览环境中会发生什么变化 |
sqlmesh_apply | 将计划应用于环境(计划+自动应用) |
sqlmesh_run | 执行定时间隔到期的计划模型 |
sqlmesh_test | 运行SQLMesh单元测试(基于夹具,无仓库) |
sqlmesh_audit | 对仓库进行数据质量审核 |
sqlmesh_dag | 遍历模型DAG(上游/下游) |
sqlmesh_lineage | 列级沿袭 --跨啤酒花追踪柱来源 |
sqlmesh_environment_list | 列出所有环境及其状态 |
sqlmesh_diff | 将环境与产品区分开来 |
sqlmesh_table_diff | 两种环境之间的行级数据差异 |
sqlmesh_fetchdf | 执行SQL并以JSON格式返回结果 |
sqlmesh_invalidate_environment | 使开发/功能环境过期 |
______________________________________________________________________
安装
来源(开发期间推荐)
git clone https://github.com/arthursherman/sqlmesh-mcp
cd sqlmesh-mcp
pip install -e ".[dev]"PyPI(一旦发布)
pip install sqlmesh-mcp______________________________________________________________________
配置
服务器是通过环境变量配置的:
| 变量 | 描述 | 默认值 |
|---|---|---|
SQLMESH_PROJECT_PATH | SQLMesh项目的绝对路径 | 当前工作目录 |
SQLMESH_GATEWAY | 中定义的命名网关 config.yaml (可选) | 默认网关 |
______________________________________________________________________
用法
使用克劳德桌面
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sqlmesh": {
"command": "python",
"args": ["-m", "sqlmesh_mcp.server"],
"env": {
"SQLMESH_PROJECT_PATH": "/path/to/your/sqlmesh/project"
}
}
}
}使用克劳德代码
claude mcp add sqlmesh -- python -m sqlmesh_mcp.server通过以下方式设置项目路径:
export SQLMESH_PROJECT_PATH=/path/to/your/project配备MCP检查员(建议开发)
SQLMESH_PROJECT_PATH=/path/to/project \
npx @modelcontextprotocol/inspector python -m sqlmesh_mcp.server打开 http://localhost:6274 在浏览器中交互式测试每个工具。
______________________________________________________________________
交互示例
一旦连接到Claude或其他MCP客户端,您可以问:
"List all models in my SQLMesh project"
"What columns does db.orders have and what are their types?"
"Show me a plan for the dev environment"
"Where does the revenue column in finance.daily_summary come from?"
"Run tests for the orders model"
"What's the difference between prod and dev right now?"
"Execute: SELECT COUNT(*) FROM db.orders WHERE status = 'complete'"______________________________________________________________________
发展
运行测试
pytest tests/代码检查
ruff check src/针对真实SQLMesh项目进行测试
最快的入门方法是SQLMesh内置的DuckDB快速入门:
mkdir sqlmesh-demo && cd sqlmesh-demo
pip install sqlmesh
sqlmesh init duckdb
# Then point this server at it:
SQLMESH_PROJECT_PATH=$(pwd) npx @modelcontextprotocol/inspector python -m sqlmesh_mcp.server______________________________________________________________________
安全注意事项
- 此服务器使用进程用户的权限执行SQLMesh操作。
- 这
sqlmesh_apply和sqlmesh_run工具 修改数据 --考虑使用治理层进行包装(请参见 卡斯特兰)如果部署在共享或生产环境中。 - 这
sqlmesh_fetchdf该工具执行任意SQL——相应地限制访问。 - 仅将MCP Inspector代理绑定到localhost;做 不 公开揭露。
______________________________________________________________________
路线图
- \[\]dbt到SQLMesh迁移辅助工具
- \[\]通过MCP资源暴露语义模型/度量
- \[\]CI/CD集成(GitHub行动计划摘要)
- \[\]多项目支持(monorepo)
- \[\]MCP取样用于代理回填决策
______________________________________________________________________
相关项目
- castellan治理mcp --MCP服务器的治理和安全包装
- SQLMesh --底层数据转换框架
______________________________________________________________________
许可证
麻省理工学院——见 许可证.
