mcp-server-sql-analyzer
一个使用 SQLGlot 提供SQL分析、语法检查和方言转换功能的模型上下文协议(MCP)服务器。
概述
SQL分析MCP服务器提供用于分析和处理SQL查询的工具。它有助于:
- SQL语法验证和语法检查
- 在不同SQL方言之间转换查询(例如,从MySQL转换到PostgreSQL)
- 提取和分析表引用和依赖关系
- 识别列使用和关系
- 发现支持的SQL方言
Claude如何使用此服务器
作为AI助手,此服务器通过以下方式增强我帮助用户高效处理SQL的能力:
-
查询验证:我可以在向用户建议SQL之前立即验证其语法,确保我提供的查询正确且符合方言要求。
-
方言转换:当用户需要在不同的数据库系统之间迁移查询时,我可以准确转换语法,同时保留查询的逻辑。
-
代码分析:表和列引用分析帮助我理解复杂的查询,使解释查询结构和建议优化更加容易。
-
兼容性检查:通过了解支持的方言及其特定功能,我可以引导用户遵循特定数据库的最佳实践。
这套工具使我能够提供更准确和有帮助的SQL相关协助,同时降低语法错误或方言特定问题的风险。
小贴士
在Claude桌面设置中更新您的个人偏好,以请求使用 lint_sql 工具首先验证生成的SQL。
工具
-
lint_sql
- 验证SQL查询语法并返回任何错误
- 输入:
- sql (string): 要分析的SQL查询
- dialect (string, optional): SQL方言(例如,'mysql', 'postgres')
- 返回:包含以下内容的ParseResult:
- is_valid (boolean): SQL是否有效
- message (string): 错误消息或"无语法错误"
- position (object, optional): 如果存在错误,则包含错误行和列
-
transpile_sql
- 在不同方言之间转换SQL
- 输入:
- sql (string): 要转换的SQL语句
- read_dialect (string): 源SQL方言
- write_dialect (string): 目标SQL方言
- 返回:包含以下内容的TranspileResult:
- is_valid (boolean): 转换是否成功
- message (string): 错误消息或成功确认
- sql (string): 如果成功,则包含转换后的SQL
-
get_all_table_references
- 从SQL中提取表和CTE引用
- 输入:
- sql (string): 要分析的SQL语句
- dialect (string, optional): SQL方言
- 返回:包含以下内容的TableReferencesResult:
- is_valid (boolean): 分析是否成功
- message (string): 状态消息
- tables (array): 包含类型、目录、数据库、表名、别名和完全限定名的表引用列表
-
get_all_column_references
- 提取带表上下文的列引用
- 输入:
- sql (string): 要分析的SQL语句
- dialect (string, optional): SQL方言
- 返回:包含以下内容的ColumnReferencesResult:
- is_valid (boolean): 分析是否成功
- message (string): 状态消息
- columns (array): 包含列名、表名和完全限定名的列引用列表
资源
SQL方言发现
dialects://all
返回所有支持的SQL方言列表,用于所有工具。
配置
使用uvx(推荐)
将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"sql-analyzer": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/j4c0bs/mcp-server-sql-analyzer.git",
"mcp-server-sql-analyzer"
]
}
}
}
使用uv
克隆此仓库后,将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"sql-analyzer": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-server-sql-analyzer",
"run",
"mcp-server-sql-analyzer"
]
}
}
}
开发
要在开发模式下运行服务器:
# 克隆仓库
git clone git@github.com:j4c0bs/mcp-server-sql-analyzer.git
# 运行服务器
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-server-sql-analyzer run mcp-server-sql-analyzer
要运行单元测试:
uv run pytest .
许可证
MIT