OpenCode · 第 10 章 MCP 集成与外部能力扩展


文档摘要

OpenCode · 第 10 章 MCP 集成与外部能力扩展 章节摘要:一个 Agent 再强,也只活在它自己的进程里——除非有一种标准方式让它连上外部世界。模型上下文协议(MCP,Model Context Protocol)就是这件事:它定义了 Agent 如何标准化、安全地连接任意外部资源(数据库、文件系统、API、浏览器……)。OpenCode 既是一个 MCP 客户端(连别人提供的 MCP 服务器,把外部工具拉进来),也能把自己暴露成一个 MCP 服务器(让别人连进来用它的能力)。本章重点讲客户端这一面:三种传输方式(stdio/SSE/流式 HTTP)各自适合什么、OAuth 认证流程怎么走、MCP 工具如何进入第 5 章的注册表并受第 4 章的权限规则约束。

OpenCode · 第 10 章 MCP 集成与外部能力扩展

章节摘要:一个 Agent 再强,也只活在它自己的进程里——除非有一种标准方式让它连上外部世界。模型上下文协议(MCP,Model Context Protocol)就是这件事:它定义了 Agent 如何标准化、安全地连接任意外部资源(数据库、文件系统、API、浏览器……)。OpenCode 既是一个 MCP 客户端(连别人提供的 MCP 服务器,把外部工具拉进来),也能把自己暴露成一个 MCP 服务器(让别人连进来用它的能力)。本章重点讲客户端这一面:三种传输方式(stdio/SSE/流式 HTTP)各自适合什么、OAuth 认证流程怎么走、MCP 工具如何进入第 5 章的注册表并受第 4 章的权限规则约束。这里最值得讲的工程点是:MCP 工具不是法外之地——它们和内置工具走同一套权限求解,「询问/允许/拒绝」一样适用。读完本章,你能让 OpenCode 安全地接入任意外部资源,并理解「标准化连接」背后那套统一的治理逻辑。

学习目标

阅读完本章,你应当能够:

  1. 列出 MCP 三种传输方式(stdio / SSE / 流式 HTTP)及各自适用场景,并为给定需求选对传输。
  2. 描述 OAuth 流程与浏览器认证:MCP 服务器要求授权时,OpenCode 如何引导用户走 OAuth、如何处理回调。
  3. 解释 MCP 工具如何进入注册表:它们通过一个目录(catalog)汇入第 5 章的注册表,与内置工具并列。
  4. 讲清 MCP 工具受同一套权限约束:它们不是法外之地,第 4 章的允许/询问/拒绝规则同样适用。
  5. 说明如何把 OpenCode 自身暴露成 MCP 服务器,让别人连进来用它的能力。

核心概念速览

一句话总结:MCP 让 Agent 突破进程边界,但「突破」不等于「失控」——所有 MCP 工具都经认证进入、经目录汇入、经注册表统一、经权限求解放行,内置工具与外部工具走的是同一套治理流水线。

子章节导航

01 三种传输方式

讲 stdio(本地子进程,适合自带工具)、SSE(服务端推送,适合远程)、流式 HTTP(现代双向流,适合新式服务)三种传输的特点与适用场景。给出选型建议:本地工具用 stdio,远程服务优先流式 HTTP。

02 OAuth 流程与浏览器认证

讲 MCP 服务器要求授权时怎么办:OAuth 流程如何启动、回调如何处理、浏览器认证如何引导用户登录。重点说明这套认证如何与第 4 章权限体系协作(认证解决「你是谁」,权限解决「你能干什么」)。

03 MCP 工具如何进入注册表并受权限约束

本章核心工程点。讲 MCP 工具如何通过一个目录(catalog)汇入第 5 章的注册表,与内置工具并列;然后强调它们同样受第 4 章权限规则约束——「询问/允许/拒绝」一样适用,MCP 工具不是法外之地。

04 把 OpenCode 自身暴露为 MCP 服务器

讲反向用法:OpenCode 能把自己暴露成一个 MCP 服务器,让别人(别的 Agent、别的工具)连进来用它的能力。这一节展示了 MCP 的对称性——同一套协议既可拉(pull)也可推(push)。

子章节之间的逻辑关系

本章遵循「怎么连 → 怎么认证 → 连进来后怎么管 → 反过来怎么暴露」的能力扩展路径:

传输方式 (01) ──三种连接方式 │ ▼ OAuth 认证 (02) ──连接时的身份问题 │ ▼ 进入注册表 (03) ──连接后的统一治理 │ ▼ 反向暴露 (04) ──让别人也能连我 │ ▼ 第 11 章:除了 MCP,还有哪些扩展点

前三节是「作为客户端连接外部」的完整链路,最后一节是反向对称用法。理解了全部四节,你才算完整掌握 OpenCode 与外部世界的交互模型。

前置知识与后续延伸

前置知识:

  • 第 4 章权限模型(MCP 工具受同一套权限约束)
  • 第 5 章工具系统(MCP 工具通过目录进入注册表)
  • 对 HTTP、OAuth、子进程的基本概念

本章为后续章节奠定的基础:

  • MCP 客户端用法为第 11 章插件体系(另一种扩展方式)形成对照
  • MCP 目录(catalog)概念为理解第 13 章客户端契约的分层铺路
  • 反向暴露用法为理解 OpenCode 在更大生态里的定位铺垫

发布者: 作者: 灏天文库 转发
评论区 (0)
U