Sql Mcp Server

Sql Mcp Server

🚀 SQL-MCP-Server 中文文档

一个基于 MCP 框架的 SQL 服务器,用于与 SQL Server 数据库进行交互,能帮助开发者高效地完成数据库相关操作。

🚀 快速开始

启动步骤

# 安装依赖项
npm install

# 构建项目
npm run build

# 启动服务
npm start

✨ 主要特性

  • 基于 MCP 框架,与 SQL Server 数据库交互。
  • 提供多个 SQL 相关工具,方便数据库操作。
  • 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 示例数据库

该项目使用的是 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 相关的工具:

  1. get-databases-tool - 列出 SQL Server 上可用的数据库
  2. get-database-schema-tool - 获取指定数据库的架构信息
  3. execute-select-query-tool - 执行参数化 SELECT 查询语句

SQL 服务

SqlService 类提供了核心功能,包括:

  • 使用环境变量生成连接字符串
  • 对 SQL Server 数据库执行查询操作

📚 详细文档

与 VS Code 集成

要在 VS Code 中配置 MCP 服务器,请按照以下步骤操作:

  1. 在项目根目录下创建一个 .vscode/mcp.json 文件:
    • 如果没有 .vscode 目录,请先创建
    • 在该目录中添加 mcp.json 文件,内容如下:
{
"servers": {
"sql-mcp-server": {
"url": "http://localhost:1337/mcp"
}
}
}

构建与测试

  1. 修改您的工具代码
  2. 运行 npm run build 进行编译
  3. 启动后,服务器会自动加载您的工具

调试指南

您可以通过以下方式使用 mcp-debug 工具进行调试:

# 在一个终端中启动服务
npm start

# 在另一个终端中运行 mcp-debug
npx mcp-debug

mcp-debug 工具提供了一个命令行界面,用于:

  • 列出 MCP 服务器上的可用工具
  • 执行特定参数的工具
  • 查看服务器返回的完整结果

学习资源

  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-24 21:03

相似服务问题