一个基于 MCP 框架的 SQL 服务器,用于与 SQL Server 数据库进行交互,能帮助开发者高效地完成数据库相关操作。
# 安装依赖项
npm install
# 构建项目
npm run build
# 启动服务
npm start
SqlService
类可使用环境变量生成连接字符串并执行查询。sql-mcp-server/
├── src/
│ ├── services/ # 应用程序的服务模块
│ │ └── sql-service.ts
│ ├── tools/ # MCP 工具集
│ │ ├── execute-select-query-tool.ts
│ │ ├── get-database-schema-tool.ts
│ │ └── get-databases-tool.ts
│ └── index.ts # 服务程序入口文件
├── .env # 环境变量配置文件
├── package.json
└── tsconfig.json
在 .env
文件中配置数据库连接信息:
DB_SERVER=localhost\SQLEXPRESS
DB_DATABASE=AdventureWorks2019
DB_USERNAME=readonly_user
DB_PASSWORD=StrongPassword!123
DB_PORT=1433
该项目使用的是 AdventureWorks 样例数据库。您可从以下链接下载并安装:
按照 Microsoft 文档中的说明下载数据库备份文件并将其还原到您的 SQL Server 实例中。
为了创建一个仅供读取数据的用户:
-- 在 master 数据库中创建新的登录账户和用户
CREATE LOGIN readonly_user WITH PASSWORD = 'StrongPassword!123';
GO
-- 切换到目标数据库AdventureWorks2019
USE AdventureWorks2019;
GO
-- 为MasterDB 登录创建数据库用户
CREATE USER readonly_user FOR LOGIN readonly_user;
-- 将用户添加到 db_datareader 角色以实现只读访问
ALTER ROLE db_datareader ADD MEMBER readonly_user;
GO
⚠️ 重要提示
您需要先使用 SQL Server Management Studio 或通过
CREATE LOGIN
命令在 master 数据库中创建登录账户,然后再运行上述命令。
项目提供了以下 SQL 相关的工具:
SqlService
类提供了核心功能,包括:
要在 VS Code 中配置 MCP 服务器,请按照以下步骤操作:
.vscode/mcp.json
文件:
.vscode
目录,请先创建mcp.json
文件,内容如下:{
"servers": {
"sql-mcp-server": {
"url": "http://localhost:1337/mcp"
}
}
}
npm run build
进行编译您可以通过以下方式使用 mcp-debug
工具进行调试:
# 在一个终端中启动服务
npm start
# 在另一个终端中运行 mcp-debug
npx mcp-debug
mcp-debug
工具提供了一个命令行界面,用于: