SQL服务器MCP服务

一个本地模型上下文协议(MCP)服务器,使Cursor AI能够与SQL Server数据库交互,提供查询、报告和图表生成功能。

  • by Abdelrahmanghoniem
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Abdelrahmanghoniem/SQL-MCP

使用说明

用于游标的SQL Server MCP服务器

一个本地模型上下文协议(MCP)服务器,使Cursor AI能够与SQL server数据库交互。此MCP服务器提供全面的数据库功能,包括查询、报告和直接在Cursor中生成图表。

这是什么?

这是一个 本地MCP服务器 您可以在Cursor中安装和配置,使AI助手能够:

  • 连接到SQL Server数据库
  • 执行SQL查询
  • 探索数据库模式和表
  • 生成报告和可视化
  • 以各种格式导出数据

所有数据库操作都是通过Cursor的AI界面进行的——您可以要求AI查询您的数据库、生成报告或创建图表。

快速入门指南

步骤1:安装和构建

  1. 安装依赖项:

    npm install
    
  2. 生成Prisma客户端:

    npm run prisma:generate
    
  3. 构建项目:

    npm run build
    

步骤2:在游标中配置

  1. 打开光标设置:

    • 按 Ctrl+, (或 Cmd+, 在Mac上)打开设置
    • 点击 {} 打开JSON设置的图标
  2. 添加MCP服务器配置:

    查找或创建 mcpServers 部分并添加:

    {
      "mcpServers": {
        "sql-server": {
          "command": "node",
          "args": ["D:\\Work\\Code\\Projects\\local_MCPs\\SQLMCP\\dist\\index.js"]
        }
      }
    }
    

    重要提示: 将路径替换为实际的项目路径。在Windows上,使用双反斜杠 \\ 或正斜杠 /.

  3. 重新启动游标 加载MCP服务器

步骤3:配置数据库连接

您有两个连接数据库的选项:

选项A:自动连接(推荐)

创建一个 .env 项目根目录中的文件:

# Format: DATABASE_URL_<connectionId>
# Use any name you want for <connectionId> - this will be how you reference the database

DATABASE_URL_production=sqlserver://server:1433;database=ProductionDB;user=admin;password=YourPassword;encrypt=true
DATABASE_URL_staging=sqlserver://server:1433;database=StagingDB;user=admin;password=YourPassword;encrypt=true
DATABASE_URL_local=sqlserver://localhost:1433;database=LocalDB;user=sa;password=YourPassword;encrypt=true

连接字符串格式:

sqlserver://[server]:[port];database=[database];user=[username];password=[password];encrypt=true

创建后 .env:

  • 重新启动Cursor(或MCP服务器)
  • 数据库将自动连接
  • 使用connectionId(例如。, production, staging, local)当要求AI查询数据库时

选项B:手动连接

您可以通过要求AI使用 connect_database 工具与您的连接字符串。

步骤4:使用MCP服务器

配置后,您可以通过以下方式使用MCP服务器 询问Cursor的AI 与您的数据库进行交互。以下是一些示例:

示例1:列表表

"List all tables in the production database"

AI将使用 list_tables 工具与 connectionId: "production"

示例2:查询数据

"Show me the top 10 customers from the production database"

AI将执行SQL查询,如下所示:

SELECT TOP 10 * FROM Customers ORDER BY ...

示例3:获取表结构

"What columns are in the Orders table in production?"

AI将使用 get_table_structure 向您显示表模式

示例4:生成报告

"Generate a report of all orders from 2024 in the production database"

示例5:创建图表

"Create a bar chart showing monthly sales from the Sales table in production, using Month as labels and Revenue as data"

示例6:导出数据

"Export the Customers table from production as CSV"

可用工具

MCP服务器提供这些工具(您可以要求AI使用它们):

  1. list_connections -查看所有连接的数据库
  2. list_tables -列出数据库中的所有表
  3. get_table_structure -获取详细的表架构
  4. list_schemas -列出所有数据库架构
  5. execute_query -运行SQL查询(SELECT、INSERT、UPDATE、DELETE、EXEC)
  6. generate_report -从表生成数据报告
  7. generate_chart_report -创建图表(条形图、折线图、饼图、散点图、甜甜圈图、面积图)
  8. export_report -将数据导出为JSON或CSV
  9. connect_database -手动连接到数据库
  10. disconnect_database -断开与数据库的连接

特性

  • 多个数据库连接:同时连接到多个SQL Server数据库
  • 自动连接:从自动连接数据库 .env 启动时的文件
  • SQL查询执行:运行任何SQL查询(SELECT、INSERT、UPDATE、DELETE、EXEC)
  • 模式探索:浏览表、列和数据库结构
  • 报告生成:创建具有过滤和限制的数据报告
  • 图表可视化:生成各种图表类型(条形图、折线图、饼图等)
  • 数据导出:以JSON或CSV格式导出数据
  • 安全:SQL注入保护和输入验证

故障排除

MCP服务器未加载

  • 验证游标设置中的路径是否正确
  • 确保你已经跑过了 npm run build
  • 检查Cursor的MCP服务器日志(通常在输出面板中)

连接错误

  • 验证您的连接字符串格式是否正确
  • 检查您的SQL Server是否可访问
  • 确保凭据正确
  • 尝试先使用手动连接 connect_database 工具

未找到数据库

  • 如果使用 .env 文件,确保变量名以开头 DATABASE_URL_
  • 将数据库添加到后重新启动Cursor .env
  • 检查connectionId是否匹配(例如。, DATABASE_URL_prod → use prod 作为connectionId)

查询错误

  • 验证SQL语法是否正确
  • 检查您是否具有适当的数据库权限
  • 确保表名和列名拼写正确

发展

项目结构

SQLMCP/
├── src/
│   ├── server/          # MCP server implementation
│   ├── database/        # Database connection management
│   ├── reporting/       # Report generation
│   └── charts/          # Chart generation
├── dist/                # Compiled JavaScript
├── prisma/              # Prisma schema
└── package.json

建筑

npm run build

发展模式

npm run dev

安全说明

  • 中的连接字符串 .env 文件应保持安全
  • 永不承诺 .env 文件到版本控制
  • 所有SQL输入都经过验证,以防止注入攻击
  • 只允许使用SELECT、INSERT、UPDATE、DELETE和EXEC语句
  • 表名和列名已被净化

许可证

麻省理工学院

“#SQL-MCP”