SQL数据库接口服务

一个基于MCP协议的SQL Server数据库接口服务,提供标准化的API执行查询、管理表结构和数据操作。

  • by techybolek
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 techybolek/mcp_sql_server2

使用说明

mcp-mssql服务器

一种模型上下文协议(MCP)服务器,为AI模型与MS SQL server数据库交互提供标准化接口。该服务器实现MCP规范,通过一致的API实现无缝数据库操作。

特性

  • 使用参数支持执行SQL查询
  • 列出数据库中的所有表
  • 描述表模式
  • 支持stdio和HTTP传输模式
  • 综合测井系统
  • 基于环境的配置
  • 错误处理和优雅关机

先决条件

  • Node.js(支持ES模块的版本)
  • MS SQL Server实例
  • 数据库的访问凭据

安装

  1. 克隆存储库
  2. 安装依赖项:
npm install

您还可以全局安装该软件包:

npm install -g mcp-mssql-server
  1. 创建一个 .env 项目根目录中的文件,其中包含以下必需变量:
DB_SERVER=your_server_address
DB_USER=your_username
DB_PASSWORD=your_password
DB_DATABASE_NAME=your_database_name

用法

服务器可以以两种不同的传输模式启动:

stdio模式(默认)

npm start
# or
npm run start:stdio

HTTP模式

npm run start:http

开发模式

npm run dev

JSON-RPC协议

服务器使用以下关键方法实现JSON-RPC 2.0协议:

  1. initialize -初始化服务器连接:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {
      "tools": {}
    },
    "clientInfo": {
      "name": "your-client",
      "version": "1.0.0"
    }
  }
}
  1. tools/list -列出可用工具
  2. tools/call -调用特定工具

测试

该包包括一个测试客户端(test.package.js)演示如何与MCP服务器交互:

node test.package.js

测试客户端实现了 MCPTestClient 类:

  • 使用生成服务器进程 npx mcp-mssql-server
  • 使用协议版本“2024-11-05”初始化连接
  • 列出可用工具
  • 执行示例查询,包括:
    • 列出所有表格
    • 运行特定的SQL查询以计数文档
  • 通过stdio流处理服务器响应和错误
  • 包括正确的错误处理和流程清理

来自客户端的示例测试查询:

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "execute_sql_query",
    "arguments": {
      "query": "SELECT COUNT(*) as document_count FROM document_new"
    }
  }
}

测试客户端提供了一种验证服务器功能的简单方法,可以作为实现自己客户端的参考。

可用工具

服务器提供以下MCP工具:

1.执行_sql_query

使用可选参数化对数据库执行SQL查询。

{
  "query": "SELECT * FROM Users WHERE id = @userId",
  "parameters": [
    {
      "name": "userId",
      "type": "int",
      "value": 1
    }
  ]
}

2.列表表

列出连接数据库中的所有可用表。

3.描述表

获取特定表的详细架构信息。

{
  "table_name": "Users"
}

日志记录

日志存储在 logs 目录:

  • error.log:错误级别日志
  • combined.log:所有日志

在HTTP模式下,日志也会输出到控制台。

依赖项

主要依赖关系:

  • @模型上下文协议/sdk:^1.13.0
  • Dotenv:^16.4.5
  • 快递:^5.1.0
  • mssql:^11.0.1
  • 温斯顿:^3.11.0

开发依赖关系:

  • 轴距:^1.10.0

许可证

麻省理工学院

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支
  5. 创建新的Pull请求