SQL分析服务

提供SQL语法验证、方言转换和代码分析功能的MCP服务器,适用于数据库查询优化和迁移场景。

  • by j4c0bs
  • Python
  • 本地部署
  • 31 星标
  • 更新于
在 GitHub 查看 j4c0bs/mcp-server-sql-analyzer

使用说明

mcp服务器sql分析器

一种模型上下文协议(MCP)服务器,使用以下命令提供SQL分析、linting和方言转换功能 SQLGlot.

概述

SQL Analyzer MCP服务器提供用于分析和处理SQL查询的工具。它有助于:

  • SQL语法验证和linting
  • 在不同SQL方言之间转换查询(例如MySQL到PostgreSQL)
  • 提取和分析表引用和依赖关系
  • 确定列的使用和关系
  • 发现支持的SQL方言

Claude如何使用此服务器

作为一名人工智能助手,这台服务器通过以下方式增强了我帮助用户高效使用SQL的能力:

  1. 查询验证:在向用户建议之前,我可以立即验证SQL语法,确保我提供正确和方言适当的查询。

  2. 方言转换:当用户需要在不同的数据库系统之间迁移查询时,我可以准确地转换语法,同时保留查询的逻辑。

  3. 代码分析:表和列引用分析有助于我理解复杂的查询,从而更容易解释查询结构并提出优化建议。

  4. 兼容性检查:通过了解支持的方言及其特定功能,我可以引导用户采用特定于数据库的最佳实践。

这个工具集使我能够提供更准确和有用的SQL相关帮助,同时降低语法错误或方言特定问题的风险。

提示

在Claude Desktop设置中更新您的个人首选项,以请求首先使用验证生成的SQL lint_sql 工具。

工具

  1. lint_sql

    • 验证SQL查询语法并返回任何错误
    • 输入:
      • sql(string):要分析的sql查询
      • 方言(字符串,可选):SQL方言(例如“mysql”、“postgres”)
    • 返回:ParseResult包含:
      • is_valid(布尔值):SQL是否有效
      • message(字符串):错误消息或“无语法错误”
      • position(object,可选):错误的行和列(如果存在)
  2. transpile_sql

    • 在不同方言之间转换SQL
    • 输入:
      • sql(string):要转换的sql语句
      • read_dialect(字符串):源SQL方言
      • write_dialect(字符串):目标SQL方言
    • 返回:TranspileResult包含:
      • is_valid(boolean):转译是否成功
      • message(string):错误消息或成功确认
      • sql(string):如果成功,则转换sql
  3. get_all_table_references

    • 从SQL中提取表和CTE引用
    • 输入:
      • sql(string):要分析的sql语句
      • 方言(字符串,可选):SQL方言
    • 返回:TableReferences结果包含:
      • is_valid(boolean):分析是否成功
      • message(字符串):状态消息
      • 表(数组):包含类型、目录、数据库、表名、别名和完全限定名的表引用列表
  4. 获取所有列引用

    • 使用表上下文提取列引用
    • 输入:
      • sql(string):要分析的sql语句
      • 方言(字符串,可选):SQL方言
    • 返回:ColumnReferences结果包含:
      • is_valid(boolean):分析是否成功
      • message(字符串):状态消息
      • columns(数组):包含列名、表名和完全限定名的列引用列表

资源

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"
          ]
      }
  }
}

使用紫外线

克隆此仓库后,将其添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
      "sql-analyzer": {
          "command": "uv",
          "args": [
              "--directory",
              "/path/to/mcp-server-sql-analyzer",
              "run",
              "mcp-server-sql-analyzer"
          ]
      }
  }
}

发展

要在开发模式下运行服务器,请执行以下操作:

# Clone the repository
git clone git@github.com:j4c0bs/mcp-server-sql-analyzer.git

# Run the server
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-server-sql-analyzer run mcp-server-sql-analyzer

要运行单元测试,请执行以下操作:

uv run pytest .

许可证

麻省理工学院