mcp服务器sql分析器
一种模型上下文协议(MCP)服务器,使用以下命令提供SQL分析、linting和方言转换功能 SQLGlot.
概述
SQL Analyzer MCP服务器提供用于分析和处理SQL查询的工具。它有助于:
- SQL语法验证和linting
- 在不同SQL方言之间转换查询(例如MySQL到PostgreSQL)
- 提取和分析表引用和依赖关系
- 确定列的使用和关系
- 发现支持的SQL方言
Claude如何使用此服务器
作为一名人工智能助手,这台服务器通过以下方式增强了我帮助用户高效使用SQL的能力:
- 查询验证:在向用户建议之前,我可以立即验证SQL语法,确保我提供正确和方言适当的查询。
- 方言转换:当用户需要在不同的数据库系统之间迁移查询时,我可以准确地转换语法,同时保留查询的逻辑。
- 代码分析:表和列引用分析有助于我理解复杂的查询,从而更容易解释查询结构并提出优化建议。
- 兼容性检查:通过了解支持的方言及其特定功能,我可以引导用户采用特定于数据库的最佳实践。
这个工具集使我能够提供更准确和有用的SQL相关帮助,同时降低语法错误或方言特定问题的风险。
提示
在Claude Desktop设置中更新您的个人首选项,以请求首先使用验证生成的SQL lint_sql 工具。
工具
- lint_sql
- 验证SQL查询语法并返回任何错误 - 输入: - sql(string):要分析的sql查询 - 方言(字符串,可选):SQL方言(例如“mysql”、“postgres”) - 返回:ParseResult包含: - is_valid(布尔值):SQL是否有效 - message(字符串):错误消息或“无语法错误” - position(object,可选):错误的行和列(如果存在)
- transpile_sql
- 在不同方言之间转换SQL - 输入: - sql(string):要转换的sql语句 - read_dialect(字符串):源SQL方言 - write_dialect(字符串):目标SQL方言 - 返回:TranspileResult包含: - is_valid(boolean):转译是否成功 - message(string):错误消息或成功确认 - sql(string):如果成功,则转换sql
- get_all_table_references
- 从SQL中提取表和CTE引用 - 输入: - sql(string):要分析的sql语句 - 方言(字符串,可选):SQL方言 - 返回:TableReferences结果包含: - is_valid(boolean):分析是否成功 - message(字符串):状态消息 - 表(数组):包含类型、目录、数据库、表名、别名和完全限定名的表引用列表
- 获取所有列引用
- 使用表上下文提取列引用 - 输入: - 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 .许可证
麻省理工学院
