关于 sqlfmt-mcp
sqlfmt-mcp 是一款 MCP 服务,可为 19 种 SQL 方言生成一致的格式,适用于需要稳定 SQL 输出以供审查和比较的编码 Agent 与下游工具。
主要功能
- 01格式化 19 种 SQL 方言
- 02设置关键字大小写和缩进
- 03列出支持的方言
适用场景
- 01统一代码审查中的 SQL 格式
- 02生成差异前格式化查询
MCP 相关
向 MCP 客户端提供 `format_sql` 和 `list_dialects` 工具,用于格式化 SQL 并查询支持的方言。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sql | string | 是 | 要格式化的原始 SQL。 |
| dialect | enum | 否 | 通用的 `sql` 涵盖大多数 ANSI 场景;对于仅特定方言支持的语法,请明确选择对应方言。sql | bigquery | db2 | db2i | duckdb | hive | mariadb | mysql | n1ql | plsql | postgresql | redshift | singlestoredb | snowflake | spark | sqlite | tidb | transactsql | trino |
| use_tabs | boolean | 否 | |
| tab_width | integer | 否 | |
| keyword_case | enum | 否 | preserve | upper | lower |
详细介绍
@mukundakatta/sqlfmt-mcp
支持 19 种方言的 MCP 服务,可确定性地格式化 SQL。
工具
format_sql(sql, dialect?, keyword_case?, tab_width?, use_tabs?)— 使用指定方言格式化(默认为 ANSI 的sql)。返回格式化文本和行数。list_dialects()— 返回支持的方言列表,供大模型在格式化前确认。
为什么需要它
大模型在不同轮次中格式化 SQL 的方式并不一致:相同的查询,缩进不同,关键字大小写也不同。代码审查 Agent 和下游工具需要对 SQL 进行差异比较,因此需要一种统一的规范形式。在这里封装经过充分测试的 sql-formatter 库即可实现这一点。
支持的方言
sql、bigquery、db2、db2i、duckdb、hive、mariadb、mysql、n1ql、plsql、postgresql、redshift、singlestoredb、snowflake、spark、sqlite、tidb、transactsql、trino。
安装 — Claude Desktop
{
"mcpServers": {
"sqlfmt": { "command": "npx", "args": ["-y", "@mukundakatta/sqlfmt-mcp"] }
}
}
Cursor / Cline / Windsurf / Zed 的配置格式相同。
许可证
MIT OR Apache-2.0。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。