README
🚀 SQL Server MCP 服务器用于 Windsurf IDE
这是一个独立的 MCP(模型上下文协议)服务器,基于 C# 编写,专门为 Windsurf IDE 提供 SQL Server 集成功能,助力开发者高效操作 SQL Server 数据库。
🚀 快速开始
先决条件
- .NET 9.0 SDK 或更高版本
- SQL Server 实例(本地或远程)
- SQL Server 客户端工具
设置步骤
- 构建项目:
dotnet build
- 配置应用程序:
- 复制
appsettings.example.json到appsettings.json。 - 在
appsettings.json中更新连接字符串和其他 SQL Server 详细信息:
- 复制
{
"ConnectionStrings": {
"DefaultConnection": "Server=your-server;Database=master;User ID=your-username;Password=your-password;TrustServerCertificate=True"
},
"LogPath": "C:\\Path\\To\\Your\\LogDirectory\\",
"DebugMode": "false"
}
- 在 Windsurf 中配置 MCP 服务器:
- 复制
windsurf_mcp_config.json到您的 Windsurf MCP 配置文件(通常位于~/.codeium/windsurf/mcp_config.json)。 - 更新路径以指向您的构建可执行文件:
- 复制
{
"mcpServers": {
"sqlMcpService": {
"command": "path/to/your/MCPSqlServer.exe",
"args": [],
"description": "SQL Server MCP Service"
}
}
}
- 设置 GitHub 集成:
- 创建项目的新 GitHub 仓库。
- 在项目目录中初始化新的 Git 仓库使用
git init。 - 将您的 GitHub 仓库添加为远程使用
git remote add origin <repository-url>。 - 推送更改到远程仓库使用
git push -u origin master。
发布
您可以发布一个自包含的可执行文件:
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
这将生成一个单独的可执行文件。
✨ 主要特性
- SQL Server 连接性:实现与 SQL Server 的稳定连接。
- 数据库架构探索:方便开发者探索数据库的整体架构。
- 表和视图检查:可对表和视图进行详细检查。
- 列元数据检索:能够检索列的元数据信息。
- 存储过程枚举:枚举数据库中的存储过程。
- SQL 查询执行:支持执行 SQL 查询语句。
- 存储过程执行:可执行数据库中的存储过程。
- 调试模式用于故障排除:开启调试模式,便于排查问题。
- 可配置的日志路径:允许用户自定义日志文件的存储路径。
📦 安装指南
构建项目
dotnet build
配置应用程序
复制 appsettings.example.json 到 appsettings.json,并更新其中的连接字符串和 SQL Server 详细信息。
在 Windsurf 中配置 MCP 服务器
复制 windsurf_mcp_config.json 到指定的 Windsurf MCP 配置文件,并更新路径指向构建的可执行文件。
设置 GitHub 集成
按步骤创建 GitHub 仓库、初始化本地 Git 仓库、添加远程仓库并推送更改。
📚 详细文档
配置选项
appsettings.json 文件包含以下配置选项:
| 属性 | 详情 |
|------|------|
| ConnectionStrings:DefaultConnection | SQL Server 连接字符串 |
| LogPath | 日志文件存储目录 |
| DebugMode | 设置为 "true" 以启用详细调试日志 |
错误处理
常见错误代码:
| 错误代码 | 详情 |
|------|------|
| invalid_request | 模型 JSON 或缺少必需字段 |
| connection_failed | 连接 SQL Server 失败 |
| missing_parameter | 缺少所需的参数 |
| query_execution_error | 执行 SQL 查询时出错 |
| database_not_found | 指定的数据库不存在 |
| table_not_found | 指定的表不存在 |
🔧 技术细节
应用程序组织如下:
Program.cs:作为主入口点,负责处理请求。JsonRpcHandler.cs:处理 JSON-RPC 协议并分发请求。- 配置信息从
appsettings.json加载。 - 日志写入由
LogPath设置指定的文件。
📄 许可证
此项目在 MIT License 下许可 - 请查看 LICENSE 文件了解详细信息。
🤝 贡献
欢迎贡献!请随意提交一个 Pull Request,步骤如下:
- 叉库。
- 创建您的功能分支 (
git checkout -b feature/amazing-feature)。 - 提交更改 (
git commit -m 'Add some amazing feature')。 - 推送到分支 (
git push origin feature/amazing-feature)。 - 打开一个 Pull Request。
微信扫一扫