Snowflake SQL 代码检查器 MCP 服务器
这个仓库托管了一个模型上下文协议(MCP)服务器,用于对Snowflake SQL进行语法检查。它封装了 SQLFluff(注:SQLFluff是一个用于SQL代码格式化和风格检查的工具,此处为直译,实际使用时可根据上下文调整为更贴切的表述,如“SQL格式化工具SQLFluff”等) 并且提供了两种工具——一种用于内联查询,另一种用于文件处理——以便编辑器和AI代理可以请求结构化的代码检查结果,或将其作为自动化工作流的一部分运行。
特点/特性
- 完全本地运行;无需网络调用或Snowflake连接。
- 荣誉项目级别的 sqlfluff 配置(方言、规则、排除项等)。
- 提供结构化的回复(
LintResult) 包含规则代码、位置和固定元数据。 - 与MCP-aware客户端兼容(Cursor、Claude Code、VS Code扩展、MCP Inspector等)。
仓库布局
agent.py– FastMCP服务器定义和代码检查工具。requirements.txt– Python 依赖项(mcp,sqlfluff)。.sqlfluff– 示例配置设置为Snowflake方言。queries/– 存放SQL示例的占位符文件夹(my_query.sql)。
先决条件
- Python 3.10+(与您的MCP客户端环境相同的解释器)。
pip安装要求。- 可选:Node.js(仅当您希望通过MCP Inspector UI使用时)
npx)。
安装
python3 -m pip install -r requirements.txt本地运行
独立测试(MCP 检测器)
npx @modelcontextprotocol/inspector python3 agent.py --transport stdio打开打印出的URL,使用命令添加服务器 python3 和参数(args) agent.py --transport stdio然后,从检查器用户界面调用工具。
CLI 客户端
mcp --stdio "python3 agent.py --transport stdio"列出工具并在终端中以交互方式调用它们。
与MCP客户端集成
在您的MCP配置(Cursor、Claude Code、VS Code等)中添加一项条目:
{
"mcpServers": {
"snowflake-sql-linter": {
"command": "python3",
"args": [
"/absolute/path/to/agent.py",
"--transport",
"stdio"
],
"cwd": "/absolute/path/to/repo"
}
}
}编辑配置后重启客户端。工具将在以下名称下出现 snowflake-sql-linter.
可用的MCP工具
| 工具 | 描述 | 参数 |
|---|---|---|
lint_snowflake_query | 对内联SQL字符串进行语法检查。 | query (字符串) |
lint_snowflake_file | 语法检查工具 .sql 仓库内的文件。 | path (字符串,相对或绝对) |
两者都返回一个 LintResult 与;带有;和……一起
status:pass,fail,或者error。summary日志的一行消息。issues违规规则列表(rule,line,column,description,fixable,fixes)。
lint_snowflake_file 确保文件位于仓库内且具有 .sql 扩展。
定制化
- 扩展
.sqlfluff实施额外规则或配置忽略模式。 - 使用MCP客户端或任务运行器将MCP工具集成到更高层次的工作流中(例如,自动重构或报告生成)。
做出贡献
- 创建一个虚拟环境(
python3 -m venv .venv && source .venv/bin/activate)。 - 安装依赖项(
pip install -r requirements.txt)。 - 跑
python3 agent.py --transport stdio与您偏好的客户端一起验证更改。 - 针对(某项目/仓库)打开拉取请求
main。
许可证
麻省理工学院(MIT)(请参考上游参考仓库以获取灵感)。MD
