当前位置: 首页 > news >正文

HoRain云--OpenCode MCP 服务器配置

HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍基础配置结构实例实例本地 MCP 服务器实例本地服务器配置项示例添加测试用 MCP 服务器实例远程 MCP 服务器实例远程服务器配置项引用环境变量实例OAuth 身份验证自动认证流程1、自动 OAuth无需额外配置实例2、预注册客户端凭据实例3、禁用 OAuth使用 API 密钥认证实例OAuth 配置项认证管理命令覆盖远程默认配置实例工具管理1、全局禁用指定 MCP 的工具实例2、使用 Glob 模式批量禁用实例3、按代理启用特定 MCP 工具实例Glob 模式规则配置示例Sentry实例Context7实例实例Grep by Vercel实例MCPModel Context Protocol模型上下文协议是一种开放协议允许你为 OpenCode 接入外部工具和数据源。添加 MCP 服务器后其提供的工具会自动与 OpenCode 的内置工具并列LLM 可以在对话中直接调用它们。OpenCode 同时支持两种 MCP 服务器本地local在你的机器上通过命令行启动的 MCP 进程适合本地工具和脚本远程remote通过 HTTPS 连接的远端 MCP 服务适合云端服务和第三方平台上下文消耗提醒每个 MCP 服务器都会占用对话的上下文空间。启用的工具越多每次对话消耗的 Token 越多越容易触达模型的上下文上限。建议只启用当前任务实际需要的 MCP 服务器用完即关。某些服务器如 GitHub MCP工具数量众多Token 消耗尤其显著使用时请格外注意。基础配置结构所有 MCP 服务器配置写在opencode.json的mcp字段下。每个服务器需要一个唯一的名称作为键名该名称也可以在提示词中用来指定调用哪个 MCP实例{$schema: https://opencode.ai/config.json,mcp: {my-mcp-server: { // 服务器名称自定义全局唯一type: local, // 连接类型local 或 remote// ...其他配置项enabled: true // 是否启用默认为 true},another-mcp-server: { // 可同时配置多个 MCP 服务器type: remote,// ...}}}将enabled设置为false可以临时禁用某个服务器而无需将其从配置文件中删除方便按需开关实例{$schema: https://opencode.ai/config.json,mcp: {my-mcp-server: {type: local,command: [npx, -y, my-mcp-command],enabled: false // 暂时禁用配置保留下次需要时改回 true 即可}}}本地 MCP 服务器本地 MCP 服务器通过在你的机器上运行一个命令进程来提供工具。将type设置为local并通过command指定启动命令实例{$schema: https://opencode.ai/config.json,mcp: {my-local-mcp-server: {type: local, // 连接类型本地command: [npx, -y, my-mcp-command], // 启动命令数组// 第一个元素是可执行文件// 后续元素是参数// 也可以写成 [bun, x, my-mcp-command]enabled: true,environment: { // 运行时注入的环境变量可选MY_ENV_VAR: my_env_var_value}}}}本地服务器配置项配置项类型必填说明type字符串是连接类型本地服务器必须填写localcommand数组是启动 MCP 服务器的命令及参数数组形式如[npx, -y, my-mcp]environment对象否运行服务器时注入的环境变量键值对形式enabled布尔值否是否在启动时启用该服务器默认为truetimeout数字否从 MCP 服务器获取工具列表的超时时间毫秒默认为50005 秒示例添加测试用 MCP 服务器以下是添加官方测试用 MCP 服务器modelcontextprotocol/server-everything的示例可用于验证 MCP 功能是否正常工作实例{$schema: https://opencode.ai/config.json,mcp: {mcp_everything: {type: local,command: [npx, -y, modelcontextprotocol/server-everything]// npx -y 表示自动确认安装无需手动 npm install}}}配置完成后在提示词中加入服务器名称即可让 LLM 调用该 MCP 的工具use the mcp_everything tool to add the number 3 and 4远程 MCP 服务器远程 MCP 服务器通过 HTTPS 连接到云端服务。将type设置为remote并通过url指定服务器地址实例{$schema: https://opencode.ai/config.json,mcp: {my-remote-mcp: {type: remote, // 连接类型远程url: https://my-mcp-server.com, // 远程服务器地址必填enabled: true,headers: { // 随请求发送的 HTTP 请求头可选Authorization: Bearer MY_API_KEY // 常用于 API 密钥认证}}}}远程服务器配置项配置项类型必填说明type字符串是连接类型远程服务器必须填写remoteurl字符串是远程 MCP 服务器的完整 HTTPS 地址enabled布尔值否是否在启动时启用该服务器默认为trueheaders对象否随每次请求发送的 HTTP 请求头常用于 API 密钥认证oauth对象 /false否OAuth 身份验证配置或设为false禁用自动 OAuth 检测timeout数字否从 MCP 服务器获取工具列表的超时时间毫秒默认为50005 秒引用环境变量在配置文件中不应将 API 密钥等敏感信息直接写成明文。OpenCode 支持通过{env:变量名}语法在运行时读取系统环境变量实例{$schema: https://opencode.ai/config.json,mcp: {my-remote-mcp: {type: remote,url: https://my-mcp-server.com,headers: {Authorization: Bearer {env:MY_API_KEY} // 运行时自动读取环境变量 MY_API_KEY 的值// 需要提前在系统中设置该环境变量// export MY_API_KEYyour_actual_key}}}}OAuth 身份验证OpenCode 内置了对远程 MCP 服务器的 OAuth 身份验证支持整个流程几乎全自动无需手动处理 Token。自动认证流程当服务器需要 OAuth 认证时OpenCode 会自动完成以下步骤检测到服务器返回 401未授权响应自动启动 OAuth 授权流程打开浏览器引导你完成登录在服务器支持的情况下使用动态客户端注册RFC 7591自动注册应用将获取到的 Token 安全存储在~/.local/share/opencode/mcp-auth.json中后续请求自动携带 Token无需重复登录1、自动 OAuth无需额外配置对于大多数支持 OAuth 的 MCP 服务器只需配置url即可OpenCode 会在首次使用时自动引导你完成认证实例{$schema: https://opencode.ai/config.json,mcp: {my-oauth-server: {type: remote,url: https://mcp.example.com/mcp// 无需任何额外配置OpenCode 自动处理 OAuth 流程}}}也可以手动触发认证流程例如 Token 过期后重新登录opencode mcp auth my-oauth-server2、预注册客户端凭据如果你已经从服务提供商处拿到了固定的客户端 ID 和密钥可以直接在配置中指定跳过动态注册步骤实例{$schema: https://opencode.ai/config.json,mcp: {my-oauth-server: {type: remote,url: https://mcp.example.com/mcp,oauth: {clientId: {env:MY_MCP_CLIENT_ID}, // 从环境变量读取避免明文暴露clientSecret: {env:MY_MCP_CLIENT_SECRET},scope: tools:read tools:execute // 请求的权限范围具体值由服务提供商规定}}}}3、禁用 OAuth使用 API 密钥认证如果服务器使用 API 密钥而非 OAuth 认证可以将oauth设为false禁用自动 OAuth 检测改用headers传递密钥实例{$schema: https://opencode.ai/config.json,mcp: {my-api-key-server: {type: remote,url: https://mcp.example.com/mcp,oauth: false, // 禁用 OAuth 自动检测headers: {Authorization: Bearer {env:MY_API_KEY} // 直接用 API 密钥认证}}}}OAuth 配置项配置项类型说明oauth对象 /falseOAuth 配置对象设为false可完全禁用 OAuth 自动检测clientId字符串OAuth 客户端 ID。若未提供OpenCode 将尝试动态客户端注册clientSecret字符串OAuth 客户端密钥如果授权服务器要求提供scope字符串授权时请求的权限范围多个权限用空格分隔具体值由服务提供商规定认证管理命令OpenCode 提供了一组命令行工具用于管理 MCP 的认证状态# 对指定 MCP 服务器进行身份验证会打开浏览器完成 OAuth 授权 opencode mcp auth my-oauth-server # 列出所有已配置的 MCP 服务器及其当前认证状态 opencode mcp list # 删除指定服务器已存储的凭据下次使用时需要重新登录 opencode mcp logout my-oauth-server # 调试指定服务器的连接和 OAuth 流程显示认证状态、测试连接、执行 OAuth 发现流程 opencode mcp debug my-oauth-server # 查看所有支持 OAuth 的服务器的认证状态 opencode mcp auth list覆盖远程默认配置组织可以通过.well-known/opencode端点为成员提供预置的 MCP 服务器配置这些服务器可能默认处于禁用状态。如果你需要启用其中某个服务器在本地配置中添加同名条目并设置enabled: true即可本地配置会覆盖远程默认值实例{$schema: https://opencode.ai/config.json,mcp: {jira: { // 与组织远程配置中的服务器名称一致type: remote,url: https://jira.example.com/mcp,enabled: true // 本地设为 true覆盖远程的默认禁用状态}}}工具管理MCP 服务器注册后其工具会以服务器名称_工具名称的形式出现在 OpenCode 的工具列表中可以通过tools字段进行统一管理。1、全局禁用指定 MCP 的工具实例{$schema: https://opencode.ai/config.json,mcp: {my-mcp-foo: {type: local,command: [bun, x, my-mcp-command-foo]},my-mcp-bar: {type: local,command: [bun, x, my-mcp-command-bar]}},tools: {my-mcp-foo: false // 禁用 my-mcp-foo 服务器的所有工具服务器仍会启动但工具不可用}}2、使用 Glob 模式批量禁用使用 Glob 通配符可以一次性匹配并禁用多个 MCP 服务器的工具实例{$schema: https://opencode.ai/config.json,mcp: {my-mcp-foo: {type: local,command: [bun, x, my-mcp-command-foo]},my-mcp-bar: {type: local,command: [bun, x, my-mcp-command-bar]}},tools: {my-mcp*: false // Glob 模式禁用所有名称以 my-mcp 开头的服务器的工具}}3、按代理启用特定 MCP 工具如果你配置了大量 MCP 服务器但每个代理只需要其中一部分可以先全局禁用所有 MCP 工具再在特定代理的配置中按需启用。这样可以精确控制每个代理能访问哪些工具避免上下文浪费实例{$schema: https://opencode.ai/config.json,mcp: {my-mcp: {type: local,command: [bun, x, my-mcp-command],enabled: true // 服务器本身保持启动状态否则代理也无法使用}},tools: {my-mcp*: false // 第一步全局禁用该 MCP 的所有工具默认对话中不可用},agent: {my-agent: {tools: {my-mcp*: true // 第二步仅在 my-agent 代理中启用其他代理不受影响}}}}Glob 模式规则通配符含义示例*匹配零个或多个任意字符my-mcp*匹配my-mcp_search、my-mcp_list等?精确匹配一个任意字符my-mcp?匹配my-mcpA但不匹配my-mcpAB其他字符按字面值精确匹配my-mcp-foo只匹配名称完全相同的服务器MCP 服务器的工具在注册时会以服务器名称作为前缀例如服务器myserver的工具会注册为myserver_toolname。因此要禁用某个服务器的所有工具使用myserver_*: false即可精确匹配。配置示例Sentry添加 Sentry MCP 服务器可以在对话中直接查询 Sentry 项目的错误、问题和事件数据实例{$schema: https://opencode.ai/config.json,mcp: {sentry: {type: remote,url: https://mcp.sentry.dev/mcp,oauth: {} // 空对象表示启用 OAuth 自动认证OpenCode 会自动处理整个 OAuth 流程}}}添加配置后执行以下命令完成账号授权会打开浏览器进行 OAuth 登录opencode mcp auth sentry认证完成后在提示词中加入use sentry即可调用 Sentry 工具Show me the latest unresolved issues in my project. use sentryContext7添加 Context7 MCP 服务器可以在对话中搜索各类技术文档帮助 LLM 获取最新准确的 API 参考实例// 基础版无速率限制优化{$schema: https://opencode.ai/config.json,mcp: {context7: {type: remote,url: https://mcp.context7.com/mcp}}}实例// 注册免费账户后使用 API 密钥可获得更高的速率限制{$schema: https://opencode.ai/config.json,mcp: {context7: {type: remote,url: https://mcp.context7.com/mcp,headers: {CONTEXT7_API_KEY: {env:CONTEXT7_API_KEY} // 从环境变量读取 API 密钥// 需提前设置export CONTEXT7_API_KEYyour_key}}}}在提示词中加入use context7即可调用文档搜索功能Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7也可以在项目的AGENTS.md中添加全局规则让 LLM 在需要查阅文档时自动使用 Context7无需每次手动指定When you need to search docs, use context7 tools.Grep by Vercel添加 Grep by Vercel MCP 服务器可以直接在对话中搜索 GitHub 上的真实代码片段帮助 LLM 找到正确的 API 用法和实现参考实例{$schema: https://opencode.ai/config.json,mcp: {gh_grep: { // 服务器命名为 gh_grep提示词中通过此名称引用type: remote,url: https://mcp.grep.app}}}在提示词中加入use the gh_grep tool即可搜索 GitHub 上的代码示例Whats the right way to set a custom domain in an SST Astro component? use the gh_grep tool同样可以在AGENTS.md中设置全局规则让 LLM 在不确定用法时自动搜索代码示例If you are unsure how to do something, use gh_grep to search code examples from GitHub.❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧
http://www.gsyq.cn/news/1414133.html

相关文章:

  • 基于Git历史分析构建架构演进图与可执行简报的实践
  • Super Productivity容器化部署实战指南:如何构建高效个人生产力系统
  • Real-ESRGAN-GUI:专业级AI图像超分辨率桌面应用技术解析
  • Keil µVision中ARM编译器版本切换全攻略
  • 多模态大模型原理:一切皆向量,一切皆可生成
  • 告别龟速搜索!用Everything搞定局域网共享文件,5分钟配置保姆级教程
  • SQLite4Unity3d:Unity游戏开发中的高效数据库解决方案完整指南
  • 选择Taotoken的Token Plan套餐后月度AI开发成本下降明显
  • 汇报材料AI化失败真相大起底,深度解析GPT-4o在党政机关/国企/外企三大场景的7个合规性雷区与绕行路径
  • Arduino按钮控制多LED灯序切换:从硬件电路到状态机编程实战
  • 告别SGM后处理:用GC-Net思想在KITTI数据集上实战端到端立体匹配
  • Mi-Create:三步打造专属小米手表表盘的终极免费开源工具
  • 别再只把Vulfocus当靶场了!用它深度剖析Jupyter Notebook CVE-2019-9644的漏洞原理与修复
  • 完全掌握BG3模组管理器:专业解决博德之门3模组冲突的实战指南
  • 基于Arduino的自动植物浇水系统:从传感器到执行器的闭环控制实践
  • 从源码到架构:mytv-android电视直播软件深度解析与实战指南
  • 猫抓浏览器扩展:解锁网页媒体资源的终极自由
  • 我的C#软件被破解了?从零搭建一个‘一机一码’授权体系的避坑实录
  • 星露谷物语农场规划器:从新手到专家的完美农场设计指南
  • 感受taotoken对claude code等工具高频率调用的稳定支持
  • 别再为期末作业发愁了!用Asset Store资源快速拼出一个Unity坦克对战游戏
  • 浏览器用户行为分析与流失预测数据加工实验
  • Cesium三维热力图:突破传统GIS可视化的三维革命
  • 科研小白也能搞定!Windows 10/11下OOMMF 2.0b0保姆级安装与配置避坑指南
  • 美光单日狂飙19.29%跻身万亿巨头,存储行业底层逻辑重构引市场分歧
  • 如何快速掌握抖音无水印视频下载:5个高效技巧让内容获取更轻松
  • 英雄联盟终极助手:免费开源工具助你轻松上分,游戏效率提升300%
  • 如何用Stardew Valley农场规划器避免游戏中的布局失误
  • Real-ESRGAN-GUI:基于NCNN-Vulkan的跨平台AI图像超分辨率技术实现
  • 保姆级教程:用PyTorch复现CycleGAN和pix2pix论文,从数据集准备到模型训练(附避坑指南)