mcp-server-sql-analyzer

mcp-server-sql-analyzer

site icon
2025.01.31 12
PythonSQL 分析SQL 转换数据库工具数据库开发效率
mcp-server-sql-analyzer 是一个基于 Model Context Protocol (MCP) 的服务,专注于 SQL 查询的分析、语法检查和方言转换。它利用 SQLGlot 提供强大的 SQL 处理能力,帮助用户验证 SQL 语法、转换不同数据库方言的查询、分析表引用和列依赖关系等。
View on GitHub

Overview

基本能力

产品定位

mcp-server-sql-analyzer 是一个 SQL 分析工具,旨在提供 SQL 查询的验证、转换和分析功能,帮助开发者和数据分析师更高效地处理 SQL 查询。

核心功能

  1. SQL 语法验证和检查:确保 SQL 查询的语法正确性。
  2. SQL 方言转换:支持不同 SQL 方言之间的转换(如 MySQL 到 PostgreSQL)。
  3. 表引用分析:提取查询中的表和 CTE 引用。
  4. 列引用分析:分析查询中的列引用及其上下文。
  5. SQL 方言发现:提供支持的 SQL 方言列表。

适用场景

  1. SQL 查询验证:在编写 SQL 查询时即时验证语法。
  2. 数据库迁移:将查询从一种数据库方言转换为另一种。
  3. 查询优化:分析查询结构以优化性能。
  4. 代码审查:检查 SQL 查询中的潜在问题。

工具列表

  1. lint_sql:验证 SQL 查询的语法,返回错误信息。
  2. transpile_sql:将 SQL 查询从一种方言转换为另一种。
  3. get_all_table_references:提取查询中的表和 CTE 引用。
  4. get_all_column_references:分析查询中的列引用及其上下文。

常见问题解答

  1. 如何验证 SQL 语法?:使用 lint_sql 工具,传入 SQL 查询和可选方言。
  2. 如何转换 SQL 方言?:使用 transpile_sql 工具,指定源方言和目标方言。
  3. 如何获取支持的 SQL 方言列表?:访问 dialects://all 获取支持的方言列表。

使用教程

使用依赖

  1. 确保已安装 uvxuv 工具。
  2. 确保已安装 Node.js 和 npm(用于开发模式)。

安装教程

  1. 使用 uvx(推荐)json { "mcpServers": { "sql-analyzer": { "command": "uvx", "args": [ "--from", "git+https://github.com/j4c0bs/mcp-server-sql-analyzer.git", "mcp-server-sql-analyzer" ] } } }
  2. 使用 uvjson { "mcpServers": { "sql-analyzer": { "command": "uv", "args": [ "--directory", "/path/to/mcp-server-sql-analyzer", "run", "mcp-server-sql-analyzer" ] } } }

调试方式

  1. 开发模式bash git clone [email protected]:j4c0bs/mcp-server-sql-analyzer.git npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-server-sql-analyzer run mcp-server-sql-analyzer
  2. 运行单元测试bash uv run pytest .

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。