使用说明
sqlmesh mcp
MCP服务器 SQLMesh --将数据转换操作作为AI代理(Claude、GPT-4和任何兼容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 --底层数据转换框架
许可证
麻省理工学院——见 许可证.