使用说明
用于游标的SQL Server MCP服务器
一个本地模型上下文协议(MCP)服务器,使Cursor AI能够与SQL server数据库交互。此MCP服务器提供全面的数据库功能,包括查询、报告和直接在Cursor中生成图表。
这是什么?
这是一个 本地MCP服务器 您可以在Cursor中安装和配置,使AI助手能够:
- 连接到SQL Server数据库
- 执行SQL查询
- 探索数据库模式和表
- 生成报告和可视化
- 以各种格式导出数据
所有数据库操作都是通过Cursor的AI界面进行的——您可以要求AI查询您的数据库、生成报告或创建图表。
快速入门指南
步骤1:安装和构建
-
安装依赖项:
npm install -
生成Prisma客户端:
npm run prisma:generate -
构建项目:
npm run build
步骤2:在游标中配置
-
打开光标设置:
- 按
Ctrl+,(或Cmd+,在Mac上)打开设置 - 点击
{}打开JSON设置的图标
- 按
-
添加MCP服务器配置:
查找或创建
mcpServers部分并添加:{ "mcpServers": { "sql-server": { "command": "node", "args": ["D:\\Work\\Code\\Projects\\local_MCPs\\SQLMCP\\dist\\index.js"] } } }重要提示: 将路径替换为实际的项目路径。在Windows上,使用双反斜杠
\\或正斜杠/. -
重新启动游标 加载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使用它们):
list_connections-查看所有连接的数据库list_tables-列出数据库中的所有表get_table_structure-获取详细的表架构list_schemas-列出所有数据库架构execute_query-运行SQL查询(SELECT、INSERT、UPDATE、DELETE、EXEC)generate_report-从表生成数据报告generate_chart_report-创建图表(条形图、折线图、饼图、散点图、甜甜圈图、面积图)export_report-将数据导出为JSON或CSVconnect_database-手动连接到数据库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→ useprod作为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”