返回市场
MCP服务器SQL分析器

MCP服务器SQL分析器

作者:j4c0bs26 星标更新:2025-07-01

项目介绍

mcp-server-sql-analyzer

一个使用SQLGlot提供SQL分析、检查和方言转换能力的模型上下文协议(MCP)服务器。

概述

SQL分析器MCP服务器提供了用于分析和处理SQL查询的工具。它可以帮助:

  • SQL语法验证和检查
  • 在不同SQL方言之间转换查询(例如,从MySQL到PostgreSQL)
  • 提取并分析表引用和依赖关系
  • 识别列的使用情况和关系
  • 发现支持的SQL方言

Claude如何使用此服务器

作为AI助手,这个服务器增强了我帮助用户高效地使用SQL的能力,具体方式如下:

  1. 查询验证:在向用户提供建议之前,我可以即时验证SQL语法,确保提供的查询是正确且符合特定方言的。
  2. 方言转换:当用户需要在不同的数据库系统之间迁移查询时,我可以准确地转换语法,同时保持查询的逻辑。
  3. 代码分析:表和列引用分析帮助我理解复杂的查询,使解释查询结构和提出优化建议变得更加容易。
  4. 兼容性检查:通过了解支持的方言及其特定功能,我可以指导用户遵循数据库特定的最佳实践。

这一套工具允许我提供更精确和有用的SQL相关帮助,同时减少语法错误或特定方言问题的风险。

小贴士

更新Claude Desktop设置中的个人偏好,以请求生成的SQL首先使用lint_sql工具进行验证。

工具

  1. lint_sql

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

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

    • 从SQL中提取表和CTE引用
    • 输入:
      • sql (字符串):要分析的SQL语句
      • dialect (字符串,可选):SQL方言
    • 返回:TableReferencesResult包含:
      • is_valid (布尔值):分析是否成功
      • message (字符串):状态消息
      • tables (数组):表引用列表,包括类型、目录、数据库、表名、别名和完全限定名
  4. get_all_column_references

    • 带有表上下文的列引用提取
    • 输入:
      • sql (字符串):要分析的SQL语句
      • dialect (字符串,可选):SQL方言
    • 返回:ColumnReferencesResult包含:
      • is_valid (布尔值):分析是否成功
      • 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"
          ]
      }
  }
}

使用uv

克隆此仓库后,在你的claude_desktop_config.json中添加以下内容:

{
  "mcpServers": {
      "sql-analyzer": {
          "command": "uv",
          "args": [
              "--directory",
              "/path/to/mcp-server-sql-analyzer",
              "run",
              "m-服务器-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