使用说明

  • 项目简介

    • 该仓库提供基于 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)对外提供服务。
  • 服务器配置(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与计算