使用说明
MCP SQL Server
提供SQL server数据库查询功能的模型上下文协议(MCP)服务器。
特性
- 使用繁琐的驱动程序支持SQL Server数据库
- 无原生依赖-纯JavaScript实现
- 用于执行SQL语句的简单查询工具
- 基于环境变量的配置
- 支持加密和未加密连接
安装
npm install
npm run build
配置
使用环境变量配置服务器:
DB_HOST:SQL Server主机(默认值:localhost)DB_PORT:SQL Server端口(默认值:1433)DB_DATABASE(必填):数据库名称DB_USER(必填):数据库用户DB_PASSWORD:数据库密码DB_TRUST_SERVER_CERTIFICATE:设置为true信任服务器证书(默认值:false)DB_ENCRYPT:设置为false禁用加密(默认值:true)
用法
基础示例
DB_HOST=localhost \
DB_PORT=1433 \
DB_DATABASE=mydb \
DB_USER=sa \
DB_PASSWORD=MyPassword123! \
npm start
使用受信任的证书
DB_HOST=sqlserver.example.com \
DB_DATABASE=production \
DB_USER=appuser \
DB_PASSWORD=SecurePass \
DB_TRUST_SERVER_CERTIFICATE=true \
npm start
无加密(用于本地开发)
DB_HOST=localhost \
DB_DATABASE=testdb \
DB_USER=sa \
DB_PASSWORD=DevPassword \
DB_ENCRYPT=false \
npm start
MCP集成
此服务器提供一个工具:
query:对连接的SQL Server数据库执行SQL查询- 参数:
sql(string):要执行的SQL查询
- 返回:JSON格式的查询结果
- 参数:
查询示例
-- Select data
SELECT TOP 10 * FROM Users
-- Join tables
SELECT o.OrderID, c.CustomerName, o.OrderDate
FROM Orders o
INNER JOIN Customers c ON o.CustomerID = c.CustomerID
-- Aggregate data
SELECT COUNT(*) as TotalOrders, SUM(Amount) as TotalRevenue
FROM Orders
WHERE OrderDate >= '2024-01-01'
发展
# Install dependencies
npm install
# Run in development mode
DB_HOST=localhost \
DB_DATABASE=testdb \
DB_USER=sa \
DB_PASSWORD=TestPass123! \
npm run dev
# Build for production
npm run build
故障排除
连接问题
- 登录失败:确保启用了SQL Server身份验证并且凭据正确
- 证书错误:设置
DB_TRUST_SERVER_CERTIFICATE=true用于自签名证书 - 加密错误:设置
DB_ENCRYPT=false适用于较旧的SQL Server版本或本地开发 - 网络错误:检查防火墙设置,并确保SQL Server正在侦听正确的端口
SQL Server配置
确保您的SQL Server实例:
- 是否启用了SQL Server身份验证(不仅仅是Windows身份验证)
- 配置为接受TCP/IP连接
- 是否配置了必要的防火墙规则
许可证
麻省理工学院
