在 CodeRider 中使用 MCP
配置MCP服务器
MCP服务器配置可以在两个级别进行管理:
- 全局配置:存储在mcp_settings.json文件中,可通过VS Code设置访问(见下文)。这些设置适用于所有工作区,除非被项目级配置覆盖。
- 项目级配置:在项目根目录的.coderider/mcp.json文件中定义。这允许你设置项目特定的服务器,并通过将文件提交到版本控制与团队共享配置。如果存在,CodeRider 会自动检测并加载此文件。
优先级:如果服务器名称同时存在于全局和项目配置中,则项目级配置优先。
编辑MCP设置文件
你可以直接从 CodeRider MCP设置视图编辑全局和项目级MCP配置文件:
- 单击 CodeRider 窗格顶部导航栏中的 MCP服务器。
- 单击相应的按钮:
- 编辑全局 MCP:打开全局 mcp_settings.json 文件。
- 编辑项目 MCP:打开项目特定的 .coderider/mcp.json 文件。如果此文件不存在,CodeRider 将为您创建它。
两个文件都使用JSON格式,其中包含一个mcpServers对象,包含命名的服务器配置:
text1{ 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配置示例:
text1{ 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配置示例:
text1{ 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}
删除服务器
- 点击要删除的MCP服务器旁边的
- 在确认框中点击删除按钮
重启服务器
- 点击要重启的MCP服务器旁边的按钮
启用或禁用服务器
- 点击MCP服务器旁边的切换开关以启用/禁用
网络超时
设置调用MCP服务器工具后等待响应的最长时间:
-
点击单个MCP服务器配置框底部的网络超时下拉菜单并更改时间。默认值为1分钟,但可以设置为30秒到5分钟之间。
自动批准工具
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_repository | Fork 项目到指定命名空间 |
| 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 将自动检测可用的工具和资源。要使用它们:
- 在CodeRider 聊天界面中输入你的请求
- CodeRider 将识别何时MCP工具可以帮助完成任务
- 在提示时批准工具使用(或使用自动批准)
示例:"分析我的API性能"可能会使用一个测试API端点的MCP工具。
故障排除MCP服务器
常见问题及解决方案:
- 服务器无响应:检查服务器进程是否正在运行并验证网络连接
- 权限错误:确保在mcp_settings.json(用于全局设置)或.coderider/mcp.json(用于项目设置)中配置了正确的API密钥和凭据。
- 工具不可用:确认服务器是否正确实现了该工具且未在设置中禁用
- 性能缓慢:尝试调整特定MCP服务器的网络超时值
平台特定的MCP配置示例
Windows配置示例
在Windows上设置MCP服务器时,你需要使用Windows命令提示符(cmd)来执行命令。以下是在Windows上配置Puppeteer MCP服务器的示例:
text1{ 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,你将使用不同的配置:
text1{ 2 "mcpServers": { 3 "puppeteer": { 4 "command": "npx", 5 "args": [ 6 "-y", 7 "@modelcontextprotocol/server-puppeteer" 8 ] 9 } 10 } 11}
相同的方法可以用于Windows上的其他MCP服务器,根据需要调整包名称以匹配不同的服务器类型。