返回市场
麦普SQL服务器

麦普SQL服务器

作者:ian-cowley14 星标更新:2025-03-02

项目介绍

SQL Server MCP Server for Windsurf IDE

这是一个用C#编写的独立MCP(模型上下文协议)服务器,作为Windsurf IDE的一个插件提供SQL Server集成功能。

特性

  • SQL Server连接
  • 数据库模式探索
  • 表和视图检查
  • 列元数据检索
  • 存储过程枚举
  • SQL查询执行
  • 存储过程执行
  • 故障排除调试模式
  • 可配置的日志路径

预备条件

  • .NET 9.0 SDK或更高版本
  • SQL Server实例(本地或远程)
  • SQL Server客户端工具

安装

  1. 构建项目:
dotnet build
  1. 配置应用程序:

    • 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"
    }
    
  2. 在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"
        }
      }
    }
    
  3. 设置GitHub集成:

    • 为您的项目创建一个新的GitHub仓库
    • 使用git init在您的项目目录中初始化一个新的Git仓库
    • 使用git remote add origin <repository-url>将您的GitHub仓库添加为远程仓库
    • 使用git push -u origin master将更改推送到远程仓库

配置选项

appsettings.json文件包含以下配置选项:

  • ConnectionStrings:DefaultConnection:SQL Server连接字符串
  • LogPath:日志文件存储的目录
  • DebugMode:设置为"true"以启用详细的调试日志

发布

您可以发布应用程序作为一个自包含的可执行文件:

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true

这将创建一个包含所有依赖项的单一可执行文件。

协议

MCP服务器通过标准输入/输出使用基于JSON的协议进行通信。

请求格式

{
  "id": "请求ID",
  "action": "操作名称",
  "parameters": {
    "参数1": "值1",
    "参数2": "值2"
  }
}

响应格式

{
  "success": true,
  "data": {
    "键": "值"
  }
}

或者在发生错误时:

{
  "success": false,
  "error": {
    "code": "错误代码",
    "message": "错误描述"
  }
}

支持的操作

1. 连接到SQL Server

{
  "action": "connect",
  "parameters": {
    "connectionString": "Data Source=服务器;Initial Catalog=master;Integrated Security=True;"
  }
}

2. 列出数据库

{
  "action": "get_databases",
  "parameters": {}
}

3. 列出数据库中的表

{
  "action": "get_tables",
  "parameters": {
    "database": "AdventureWorks"
  }
}

4. 获取表列

{
  "action": "get_columns",
  "parameters": {
    "database": "AdventureWorks",
    "schema": "Person",
    "table": "Person"
  }
}

5. 列出存储过程

{
  "action": "get_procedures",
  "parameters": {
    "database": "AdventureWorks"
  }
}

6. 执行数据库查询

{
  "action": "execute_database_query",
  "parameters": {
    "database": "AdventureWorks",
    "query": "SELECT TOP 10 * FROM Person.Person",
    "parameters": {
      "参数1": "值1"
    }
  }
}

7. 执行系统查询

{
  "action": "execute_system_query",
  "parameters": {
    "query": "SELECT name FROM sys.databases",
    "parameters": {
      "参数1": "值1"
    }
  }
}

8. 执行存储过程

{
  "action": "execute_procedure",
  "parameters": {
    "database": "AdventureWorks",
    "schema": "dbo",
    "procedure": "uspGetEmployeeManagers",
    "parameters": {
      "BusinessEntityID": 5
    }
  }
}

与Windsurf的集成

此MCP服务器可以从Windsurf IDE用于:

  1. 浏览数据库模式
  2. 执行SQL查询并查看结果
  3. 获取表名和列名的代码补全
  4. 运行存储过程
  5. 生成SQL代码片段
  6. 分析数据库结构

代码结构

应用程序组织成以下组件:

  • Program.cs:主入口点和请求处理
  • JsonRpcHandler.cs:处理JSON-RPC协议并分派请求
  • 配置从appsettings.json加载
  • 日志写入由LogPath设置指定的文件

贡献

欢迎贡献!请随意提交拉取请求。

  1. 分叉仓库
  2. 创建您的功能分支(git checkout -b feature/amazing-feature
  3. 提交您的更改(git commit -m '添加一些惊人的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开拉取请求

许可证

本项目根据MIT许可证授权 - 查看LICENSE文件获取详情。

错误处理

常见的错误代码:

  • invalid_request:格式不正确的JSON或缺少必需的字段
  • connection_failed:无法连接到SQL Server
  • missing_parameter:未提供必需的参数
  • query_execution_error:执行SQL查询时出现错误
  • database_not_found:指定的数据库不存在
  • table_not_found:指定的表不存在