- 项目简介
- 该仓库实现了一个可运行的 MCP 服务器,围绕对 SQL Server 的只读访问、SQL 脚本评审、数据库模式摘要、执行计划分析等功能,通过 MCP 的工具(Tools)接口向 LLM 客户端暴露多种能力,客户端可通过统一的 MCP 请求来读取资源、执行工具、获取 Prompts 等。
- 主要功能点
- 资源管理与数据访问:提供对数据库元数据、模式摘要等资源的读取能力,便于 LLM 获取上下文信息。
- 工具注册与执行:暴露 query_readonly、review_sql_script、schema_summary、explain、config_info、get_best_practices 等工具,LLM 可以调用外部功能来查询或分析数据库内容。
- Prompt 与交互模板:服务器端可按 MCP 规范对 Prompt 模板进行定义和渲染,支持可定制的对话交互模式。
- 安全与保护机制:内置只读校验、并发控制、执行计划分析、成本控制、结果集大小限制等,多层防护确保对数据库的安全、可控访问。
- 多传输与会话:通过 MCP 框架提供的传输方式(如 SSE、WebSocket、Stdio 等)与客户端进行会话管理与能力声明。
- 安装与运行
- 依赖要求:Python 3.11+、ODBC Driver for SQL Server、以及容器化组件(如 Docker)用于本地测试与部署(仓库中提供了 Docker 及本地运行示例)。
- 启动方式(核心思路):
- 直接在命令行运行服务器入口文件(例如 python server.py),它会启动 MCP 服务器并对外暴露工具。
- 也可结合容器化环境,基于 README 提供的示例,使用 docker-compose 启动相关服务,再通过 Cursor/MCP 客户端对接。
- 服务器配置(MCP 客户端与 MCP 服务器连接所需的最小信息)
为了与 MCP 客户端建立连接,客户端需要至少包含以下信息来启动和对接服务器:
- server_name:sql-server-mcp
- command:python
- args:["server.py"]
- 说明:服务器名称在 MCP 管理端唯一识别,启动命令与参数用于客户端在容器或环境中启动 MCP 服务器。实际数据库连接信息(如数据库连接字符串)通过服务器内部的配置文件/环境变量进行配置,客户端连接时不需要暴露密码等敏感信息。 备注:以上信息为常见的客户端配置示例,实际部署中可结合具体环境将启动命令放在部署脚本或容器编排中。
- 基本使用方法
- 启动与对接:在服务器所在环境中启动服务器进程,确保数据库连接信息正确配置(环境变量或配置文件中设置了数据库连接字符串或连接组件)。
- 调用工具:向 MCP 服务器发送 JSON-RPC 请求,指定要执行的工具名称与参数,例如查询只读数据、获取数据库模式、解释执行计划等。
- 结果处理:服务器返回标准的 JSON-RPC 风格响应,包含结果数据、错误信息与必要的上下文信息,便于将结果嵌入到 LLM 的对话中。
- 安全性与限制:遵循服务器的只读策略、并发控制、查询成本与结果集大小等限制,避免对数据库造成资源压力。
信息
分类
AI与计算