🚀 mcp-server-sql-analyzer
这是一个基于SQLGlot构建的Model Context Protocol (MCP)服务器,它具备强大的SQL分析、linting和方言转换功能,能为SQL查询处理提供全方位的支持。
🚀 快速开始
项目提供了使用uvx或uv两种方式来运行MCP服务器。你需要将相关配置添加到claude_desktop_config.json文件中,以实现与Claude Desktop的集成,从而获得增强的SQL处理能力。
使用uvx运行:
uvx run mcp-server-sql-analyzer --config your_config.json
使用uv运行:
uv run mcp-server-sql-analyzer --env-file .env
✨ 主要特性
SQLAnalyzer MCP服务器提供了分析和处理SQL查询的强大工具,可帮助实现以下功能:
- SQL语法验证和代码检查
- 查询在不同数据库方言之间的转换(如MySQL到PostgreSQL)
- 表引用和依赖关系的提取与分析
- 列使用情况及关系的识别
- 支持的SQL方言发现
Claude如何利用此服务器
作为AI助手,此服务器增强了Claude在处理SQL查询方面的能力:
- 语法验证:在向用户建议之前,Claude可以先验证SQL语法的有效性,确保提供的查询语法正确且符合目标数据库方言的要求。
- 方言转换:当用户需要将查询在不同数据库系统之间迁移时,Claude可以准确地进行语法转换,同时保持查询逻辑的完整性。
- 代码分析:通过表和列引用分析,Claude能够更好地理解复杂的查询结构,从而更轻松地解释其工作原理并提出优化建议。
- 兼容性检查:了解各数据库方言及其特定功能后,Claude可以引导用户采用最佳实践,并帮助避免因方言差异导致的问题。
这些工具使Claude能提供更为精准和有效的SQL相关支持,同时降低语法错误或方言适配问题的风险。
小技巧
在Claude Desktop设置中更新您的个人偏好,以要求生成的SQL首先通过lint_sql工具进行验证。
📦 安装指南
对于开发者,可通过克隆仓库并执行适当的命令,快速启动开发环境:
git clone https://github.com/yourusername/mcp-server-sql-analyzer.git
cd mcp-server-sql-analyzer
uv run start
💻 使用示例
基础用法
项目集成了pytest用于单元测试,确保功能的稳定性和可靠性。
uv run pytest .
📚 详细文档
工具
-
lint_sql
- 验证SQL查询语法并返回任何错误信息
- 输入:
- sql (字符串):待分析的SQL查询
- dialect (可选字符串):SQL方言(如'mysql'、'postgresql')
- 返回结果包含:
- is_valid (布尔值):是否有效
- message (字符串):错误信息或"无语法错误"
- position (可选对象):错误所在行和列
-
transpile_sql
- 在不同SQL方言之间转换查询
- 输入:
- sql (字符串):待转换的SQL语句
- read_dialect (字符串):源SQL方言
- write_dialect (字符串):目标SQL方言
- 返回结果包含:
- is_valid (布尔值):转换是否成功
- message (字符串):错误信息或成功确认
- sql (字符串):若成功则返回转换后的SQL
-
get_all_table_references
- 提取SQL中的表和CTE引用
- 输入:
- sql (字符串):待分析的SQL语句
- dialect (可选字符串):SQL方言
- 返回结果包含:
- is_valid (布尔值):分析是否成功
- 表示所有表引用的信息
-
get_all_column_references
- 提取SQL中引用的所有列信息
- 输入:
- sql (字符串):待分析的SQL语句
- dialect (可选字符串):SQL方言
- 返回结果包含:
- is_valid (布尔值):分析是否成功
- 表示所有列引用的信息
资源
- dialects://all:返回所有支持的SQL方言列表,这对于选择合适的方言进行转换非常有用。
📄 许可证
本项目采用MIT许可证,允许自由使用、修改和分发,但需在衍生作品中引用原作者。