使用说明
-
项目简介
- 该仓库提供基于 MCP(Model Context Protocol)的后端服务器实现,用于对 MSSQL 数据库暴露资源、工具与提示模板。核心功能包括:管理数据库相关资源、注册并执行工具、定义与渲染提示模板,以及通过 JSON-RPC 与 LLM 客户端交互,支持多种传输方式(如标准输入输出、Server-Sent Events、WebSocket)。
- 代码包含多语言实现示例,核心是一个 MCP 服务器框架,能够发现和执行一组针对 MSSQL 的工具(如创建/删除表、查询、数据读写、表描述等),并提供会话管理与环境/权限控制能力。
-
主要功能点
- MCP 服务器核心能力:处理 MCP 请求与响应(JSON-RPC 风格),注册和暴露工具集合,支持资源管理、工具执行与提示模板渲染。
- MSSQL 集成工具集合:提供大量对 MSSQL 的操作工具,如创建表、描述表、列出表、读取数据、插入/更新/删除数据、执行脚本、查询计划等。
- 环境与权限管理:通过 EnvironmentManager 管理连接信息、访问控制、数据库/模式访问策略,以及对执行工具的只读、审批等策略控制。
- 审计与日志:内置审计日志系统,对工具调用、环境、参数、结果及耗时等进行记录,支持敏感字段脱敏和日志截断。
- Node 与 .NET 多实现:仓库内同时给出 Node.js 与 .NET 两种实现示例,演示在同一 MCP 服务器协议下的不同语言实现。
-
安装与运行(简要要点,具体以各实现的 README/文档为准)
- Node 版本(src/node)
- 需要 Node.js 环境,安装依赖后构建并运行。环境变量用于数据库连接和环境配置信息(如 CONNECTION_STRING、ENVIRONMENTS_CONFIG_PATH 等)。
- 运行时将通过 MCP 服务器框架暴露工具集合,LLM 客户端通过 JSON-RPC 调用工具。
- .NET 版本(src/dotnet)
- 需要 .NET 编译运行环境,编译后启动 MCP 服务器,加载 MSSQL 相关工具并通过标准 MCP 传输(如 Stdio)对外提供服务。
- Node 版本(src/node)
-
服务器配置(MCP 客户端需要)
- 说明:MCP 客户端需要提供一个服务器配置,包含服务器名称、启动命令与参数,用于连接并与 MCP 服务器建立通信。下方给出符合仓库实现的示例配置(JSON 形式,供参考,不是运行代码)。
- Node 实现示例(你可以启动后提供给客户端使用):
- server_name: mssql-mcp-server-node
- command: node
- args: ["dist/index.js"] // 需先编译输出到 dist 目录
- .NET 实现示例(你可以启动后提供给客户端使用):
- server_name: mssql-mcp-server-dotnet
- command: dotnet
- args: ["bin/Debug/net6.0/MssqlMcpServer.dll"] // 根据实际发布路径填写
-
基本使用方法
- 启动服务器
- 进入对应实现的目录,执行构建/启动命令,确保环境变量(如 CONNECTION_STRING、ENVIRONMENTS_CONFIG_PATH、SCRIPTS_PATH 等)已正确设置。
- MCP 客户端通过配置的命令和参数与服务器建立连接,发送 JSON-RPC 请求,获取工具列表、执行工具、获取资源等。
- 使用流程
- 客户端请求工具列表,浏览可用工具。
- 依据需求选择工具传入必要参数,发起调用。
- 服务器返回执行结果以及可选的审计信息。
- 如需审计与合规控制,可以查看审计日志(若开启审计)。
- 注意事项
- 确保 MSSQL 数据库可访问,且环境策略(只读、授权工具、审批等)已在环境配置中正确设置。
- 某些工具具备“修改数据/架构”的能力,请结合环境策略与确认(confirm/审批)机制使用。
- 启动服务器
信息
分类
AI与计算