Mcp Server Sql Analyzer

Mcp Server Sql Analyzer

🚀 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查询方面的能力:

  1. 语法验证:在向用户建议之前,Claude可以先验证SQL语法的有效性,确保提供的查询语法正确且符合目标数据库方言的要求。
  2. 方言转换:当用户需要将查询在不同数据库系统之间迁移时,Claude可以准确地进行语法转换,同时保持查询逻辑的完整性。
  3. 代码分析:通过表和列引用分析,Claude能够更好地理解复杂的查询结构,从而更轻松地解释其工作原理并提出优化建议。
  4. 兼容性检查:了解各数据库方言及其特定功能后,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 .

📚 详细文档

工具

  1. lint_sql

    • 验证SQL查询语法并返回任何错误信息
    • 输入:
      • sql (字符串):待分析的SQL查询
      • dialect (可选字符串):SQL方言(如'mysql'、'postgresql')
    • 返回结果包含:
      • is_valid (布尔值):是否有效
      • message (字符串):错误信息或"无语法错误"
      • position (可选对象):错误所在行和列
  2. transpile_sql

    • 在不同SQL方言之间转换查询
    • 输入:
      • sql (字符串):待转换的SQL语句
      • read_dialect (字符串):源SQL方言
      • write_dialect (字符串):目标SQL方言
    • 返回结果包含:
      • is_valid (布尔值):转换是否成功
      • message (字符串):错误信息或成功确认
      • sql (字符串):若成功则返回转换后的SQL
  3. get_all_table_references

    • 提取SQL中的表和CTE引用
    • 输入:
      • sql (字符串):待分析的SQL语句
      • dialect (可选字符串):SQL方言
    • 返回结果包含:
      • is_valid (布尔值):分析是否成功
      • 表示所有表引用的信息
  4. get_all_column_references

    • 提取SQL中引用的所有列信息
    • 输入:
      • sql (字符串):待分析的SQL语句
      • dialect (可选字符串):SQL方言
    • 返回结果包含:
      • is_valid (布尔值):分析是否成功
      • 表示所有列引用的信息

资源

  • dialects://all:返回所有支持的SQL方言列表,这对于选择合适的方言进行转换非常有用。

📄 许可证

本项目采用MIT许可证,允许自由使用、修改和分发,但需在衍生作品中引用原作者。

  • 0 关注
  • 0 收藏,13 浏览
  • system 提出于 2025-09-24 03:12

相似服务问题

相关AI产品