极狐 GitLab

在 CodeRider 中使用 MCP

配置MCP服务器#

MCP服务器配置可以在两个级别进行管理:

  1. 全局配置:存储在mcp_settings.json文件中,可通过VS Code设置访问(见下文)。这些设置适用于所有工作区,除非被项目级配置覆盖。
  2. 项目级配置:在项目根目录的.coderider/mcp.json文件中定义。这允许你设置项目特定的服务器,并通过将文件提交到版本控制与团队共享配置。如果存在,CodeRider 会自动检测并加载此文件。

优先级:如果服务器名称同时存在于全局和项目配置中,则项目级配置优先。

编辑MCP设置文件#

你可以直接从 CodeRider MCP设置视图编辑全局和项目级MCP配置文件:

  1. 单击 CodeRider 窗格顶部导航栏中的 MCP服务器。
  2. 单击相应的按钮:
    • 编辑全局 MCP:打开全局 mcp_settings.json 文件。
    • 编辑项目 MCP:打开项目特定的 .coderider/mcp.json 文件。如果此文件不存在,CodeRider 将为您创建它。

两个文件都使用JSON格式,其中包含一个mcpServers对象,包含命名的服务器配置:

text
1{ 2 "mcpServers": { 3 "server1": { 4 "command": "python", 5 "args": ["/path/to/server.py"], 6 "env": { 7 "API_KEY": "your_api_key" 8 }, 9 "alwaysAllow": ["tool1", "tool2"], 10 "disabled": false 11 } 12 } 13}

理解传输类型#

MCP支持两种服务器通信的传输类型:

STDIO传输#

用于在本地机器上运行的服务器:

  • 通过标准输入/输出流通信
  • 延迟更低(无网络开销)
  • 安全性更好(无网络暴露)
  • 设置更简单(不需要HTTP服务器)
  • 作为本地机器上的子进程运行

有关STDIO传输工作原理的深入信息,请参见STDIO传输

STDIO配置示例:

text
1{ 2 "mcpServers": { 3 "local-server": { 4 "command": "node", 5 "args": ["/path/to/server.js"], 6 "env": { 7 "API_KEY": "your_api_key" 8 }, 9 "alwaysAllow": ["tool1", "tool2"], 10 "disabled": false 11 } 12 } 13}

SSE传输#

用于通过HTTP/HTTPS访问的远程服务器:

  • 通过服务器发送事件协议通信
  • 可以托管在不同的机器上
  • 支持多个客户端连接
  • 需要网络访问
  • 允许集中部署和管理

有关SSE传输工作原理的深入信息,请参见SSE传输

SSE配置示例:

text
1{ 2 "mcpServers": { 3 "remote-server": { 4 "url": "https://your-server-url.com/mcp", 5 "headers": { 6 "Authorization": "Bearer your-token" 7 }, 8 "alwaysAllow": ["tool3"], 9 "disabled": false 10 } 11 } 12}

删除服务器#

  1. 点击要删除的MCP服务器旁边的
  2. 在确认框中点击删除按钮
mcp

重启服务器#

  1. 点击要重启的MCP服务器旁边的按钮

启用或禁用服务器#

  1. 点击MCP服务器旁边的切换开关以启用/禁用

网络超时#

设置调用MCP服务器工具后等待响应的最长时间:

  1. 点击单个MCP服务器配置框底部的网络超时下拉菜单并更改时间。默认值为1分钟,但可以设置为30秒到5分钟之间。

    mcp

自动批准工具#

MCP工具自动批准按工具进行,默认禁用。要配置自动批准:

  • 首先在自动批准操作中启用全局"使用MCP服务器"自动批准选项

    mcp

启用后,CodeRider 将自动批准此特定工具而无需提示。请注意,全局"使用MCP服务器"设置优先 - 如果它被禁用,则不会自动批准任何MCP工具。

查找和安装MCP服务器#

CodeRider 不附带任何预安装的MCP服务器。你需要单独查找并安装它们。

  • 社区仓库:在GitHub上查看社区维护的MCP服务器列表
  • 询问CodeRider:你可以请CodeRider 帮助你查找甚至创建MCP服务器
  • 自行构建:使用SDK创建自定义MCP服务器,使用你自己的工具扩展CodeRider 有关完整的SDK文档,请访问MCP GitHub仓库

GitLab MCP 服务器#

CodeRider 在 MCP 市场中上线一个官方的GitLab MCP服务器,用于与GitLab API进行交互。

你可以通过在 CodeRider MCP 市场找到“GitLab Communication Server”来安装它,安装完成后将支持与 GitLab 进行交互。

GitLab Communication Server 提供以下工具:

模块工具名称功能描述
Project 项目管理search_repositories搜索GitLab项目
Project 项目管理create_repository创建新项目
Project 项目管理fork_repositoryFork 项目到指定命名空间
Project 项目管理get_project获取项目详情
Project 项目管理list_projects列出当前用户可访问的项目
Project 项目管理list_group_projects列出组下的项目
Project 项目管理get_repository_tree获取项目的文件树
Project 项目管理create_branch创建分支
Issue 议题管理create_issue创建新 Issue
Issue 议题管理list_issues列出项目下的 Issue
Issue 议题管理get_issue获取单个 Issue 详情
Issue 议题管理update_issue更新 Issue
Issue 议题管理delete_issue删除 Issue
Issue 议题管理list_issue_links列出 Issue 关联
Issue 议题管理get_issue_link获取 Issue 关联
Issue 议题管理create_issue_link创建 Issue 关联
Issue 议题管理delete_issue_link删除 Issue 关联
Issue 议题管理list_issue_discussions列出 Issue 讨论
Issue 议题管理update_issue_note修改 Issue 讨论中的 Note
Issue 议题管理create_issue_note在 Issue 讨论中添加 Note
Issue 议题管理create_note在 Issue 或 MR 下添加评论(noteable_type=issue 时)
Issue 议题管理push_files批量推送文件(可用于 Issue 自动化操作)
MR 合并请求create_merge_request创建新 MR
MR 合并请求get_merge_request获取 MR 详情
MR 合并请求get_merge_request_diffs获取 MR 变更内容
MR 合并请求list_merge_request_diffs分页获取 MR 变更
MR 合并请求update_merge_request更新 MR
MR 合并请求list_merge_requests列出 MR
MR 合并请求mr_discussions列出 MR 讨论
MR 合并请求update_merge_request_note修改 MR 讨论中的 Note
MR 合并请求create_merge_request_note在 MR 讨论中添加 Note
MR 合并请求create_merge_request_thread在 MR 下创建新讨论线程
MR 合并请求get_branch_diffs获取两个分支/提交的差异
MR 合并请求create_note在 Issue 或 MR 下添加评论(noteable_type=merge_request 时)
User 用户管理get_users根据用户名获取用户信息
Namespace 命名空间list_namespaces列出所有可用命名空间
Namespace 命名空间get_namespace获取命名空间详情
Namespace 命名空间verify_namespace校验命名空间路径是否存在
Label 标签管理list_labels列出项目标签
Label 标签管理get_label获取单个标签
Label 标签管理create_label创建标签
Label 标签管理update_label更新标签
Label 标签管理delete_label删除标签
Commit 提交管理list_commits列出项目下的提交
Commit 提交管理get_commit获取单个提交
Commit 提交管理get_commit_diff获取提交的diff
Tree/Repository 仓库文件树get_file_contents获取文件或目录内容
Tree/Repository 仓库文件树create_or_update_file创建或更新单个文件
Tree/Repository 仓库文件树push_files批量推送文件
Tree/Repository 仓库文件树get_repository_tree获取仓库树

在工作流中使用MCP工具#

配置MCP服务器后,CodeRider 将自动检测可用的工具和资源。要使用它们:

  1. 在CodeRider 聊天界面中输入你的请求
  2. CodeRider 将识别何时MCP工具可以帮助完成任务
  3. 在提示时批准工具使用(或使用自动批准)

示例:"分析我的API性能"可能会使用一个测试API端点的MCP工具。

故障排除MCP服务器#

常见问题及解决方案:

  • 服务器无响应:检查服务器进程是否正在运行并验证网络连接
  • 权限错误:确保在mcp_settings.json(用于全局设置)或.coderider/mcp.json(用于项目设置)中配置了正确的API密钥和凭据。
  • 工具不可用:确认服务器是否正确实现了该工具且未在设置中禁用
  • 性能缓慢:尝试调整特定MCP服务器的网络超时值

平台特定的MCP配置示例#

Windows配置示例#

在Windows上设置MCP服务器时,你需要使用Windows命令提示符(cmd)来执行命令。以下是在Windows上配置Puppeteer MCP服务器的示例:

text
1{ 2 "mcpServers": { 3 "puppeteer": { 4 "command": "cmd", 5 "args": [ 6 "/c", 7 "npx", 8 "-y", 9 "@modelcontextprotocol/server-puppeteer" 10 ] 11 } 12 } 13}

此Windows特定配置:

  • 使用cmd命令访问Windows命令提示符
  • 使用/c告诉cmd执行命令然后终止
  • 使用npx运行包而无需永久安装
  • -y标志在安装期间自动回答"是"任何提示
  • 运行提供浏览器自动化功能的@modelcontextprotocol/server-puppeteer

备注:

对于macOS或Linux,你将使用不同的配置:

text
1{ 2 "mcpServers": { 3 "puppeteer": { 4 "command": "npx", 5 "args": [ 6 "-y", 7 "@modelcontextprotocol/server-puppeteer" 8 ] 9 } 10 } 11}

相同的方法可以用于Windows上的其他MCP服务器,根据需要调整包名称以匹配不同的服务器类型。