Repository navigation
Expand file tree
/
Copy pathmcp.html
More file actions
88 lines (83 loc) · 28.9 KB
/
Copy pathmcp.html
File metadata and controls
88 lines (83 loc) · 28.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!doctype html>
<html lang="zh-CN">
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>MCP 与 Plugins</title><!-- guide:theme-bootstrap:start -->
<script src="assets/theme.js"></script>
<!-- guide:theme-bootstrap:end -->
<link rel="stylesheet" href="assets/site.css"> <!-- guide:metadata:start -->
<meta name="description" content="区分 MCP servers 与 installable plugins,并管理 tools、resources 和外部能力权限。">
<meta name="guide-build" content="ee947e14a0a9">
<link rel="icon" href="favicon.svg" type="image/svg+xml">
<link rel="canonical" href="https://whojay0609.github.io/codex-usage-guide/mcp.html">
<meta property="og:type" content="website">
<meta property="og:locale" content="zh_CN">
<meta property="og:site_name" content="Codex 使用指南">
<meta property="og:title" content="MCP 与 Plugins">
<meta property="og:description" content="区分 MCP servers 与 installable plugins,并管理 tools、resources 和外部能力权限。">
<meta property="og:url" content="https://whojay0609.github.io/codex-usage-guide/mcp.html">
<meta property="og:image" content="https://whojay0609.github.io/codex-usage-guide/figures/social-preview.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Codex 使用指南">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="MCP 与 Plugins">
<meta name="twitter:description" content="区分 MCP servers 与 installable plugins,并管理 tools、resources 和外部能力权限。">
<meta name="twitter:image" content="https://whojay0609.github.io/codex-usage-guide/figures/social-preview.png">
<meta name="twitter:image:alt" content="Codex 使用指南">
<!-- guide:metadata:end -->
</head>
<body>
<!-- guide:header:start -->
<script src="assets/site-data.js"></script><a class="skip-link" href="#main-content">跳到正文</a><header class="topbar"><div class="topbar-inner"><a class="brand" href="index.html"><span class="brand-mark" aria-hidden="true"></span><span>Codex 使用指南</span></a><div class="topbar-actions"><label class="theme-control"><span class="sr-only">主题</span><select class="theme-select" id="theme-select" name="theme" aria-label="主题"><option value="light" selected>浅色</option><option value="dark">深色</option></select></label><span class="theme-status sr-only" aria-live="polite"></span><button class="search-trigger" type="button" aria-haspopup="dialog" aria-controls="site-search-dialog">搜索</button><button class="menu-toggle" type="button" aria-controls="global-nav" aria-expanded="false">目录</button></div></div></header><dialog class="search-dialog" id="site-search-dialog" role="dialog" aria-modal="true" aria-labelledby="site-search-title"><div class="search-dialog-panel"><div class="search-dialog-head"><p class="search-title" id="site-search-title">搜索全站</p><button class="search-close" type="button" aria-label="关闭搜索">关闭</button></div><label class="search-label" for="site-search-input">搜索标题、正文和可复用 prompt</label><input class="search-input" id="site-search-input" type="search" role="combobox" autocomplete="off" aria-autocomplete="list" aria-controls="site-search-results" aria-describedby="site-search-status" aria-expanded="false"><p class="search-message" id="site-search-status" aria-live="polite">输入关键词开始搜索。</p><ul class="search-results" id="site-search-results" role="listbox" aria-label="搜索结果"></ul></div></dialog>
<!-- guide:header:end -->
<!-- guide:shell-open:start -->
<div class="toolbook-shell"><aside class="global-nav" id="global-nav" aria-label="全站导航"><section class="global-nav-group"><strong>开始</strong><a data-nav href="index.html">首页</a><a data-nav href="install-desktop.html">安装</a><a data-nav href="desktop-cli.html">Desktop</a></section><section class="global-nav-group"><strong>基础概念</strong><a data-nav href="codex.html">Codex</a><a data-nav href="git.html">Git</a><a data-nav href="worktrees.html">Worktrees</a><a data-nav href="permissions.html">权限</a><a data-nav href="agents-md.html">AGENTS.md</a><a data-nav href="skills.html">Skills</a><a data-nav href="mcp.html" aria-current="page">MCP</a><a data-nav href="subagents.html">Subagents</a><a data-nav href="goal.html">Goal</a></section><section class="global-nav-group"><strong>任务路径</strong><a data-nav href="workflows.html">任务</a><a data-nav href="daily-workflow.html">日常</a><a data-nav href="engineering.html">工程</a><a data-nav href="research.html">学术</a><a data-nav href="automation.html">定时任务</a></section><section class="global-nav-group"><strong>扩展与资料</strong><a data-nav href="compound-engineering.html">Compound</a><details class="global-nav-disclosure"><summary>Skills 仓库</summary><a data-nav href="skills-repositories.html">全部仓库</a><a href="skills-repositories.html#compound-engineering">Compound Engineering</a><a href="skills-repositories.html#mattpocock-skills">Matt Pocock skills</a><a href="skills-repositories.html#academic-research-skills-codex">ARS</a><a href="skills-repositories.html#aris-auto-claude-code-research-in-sleep">ARIS</a><a href="skills-repositories.html#refine-user-prompt">refine-user-prompt</a></details><a data-nav href="prompt-guidance.html">提示词</a><a data-nav href="resources.html">资料</a></section></aside><div class="toolbook-main"><nav class="breadcrumbs" aria-label="面包屑"><a href="index.html">首页</a><span aria-hidden="true">/</span><span>基础概念</span><span aria-hidden="true">/</span><span aria-current="page">MCP</span></nav><div class="page-freshness"><span>页面更新:<time datetime="2026-07-16">2026-07-16</time></span><span>事实核验:<time datetime="2026-07-16">2026-07-16</time></span></div><aside class="page-sources" aria-label="本页资料依据"><strong>本页依据</strong><a class="page-source-link external-link" href="https://learn.chatgpt.com/docs/extend/mcp" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer"><span class="external-link-indicator" data-search-exclude aria-hidden="true">↗</span><span class="sr-only" data-search-exclude>(外部链接)</span><span class="source-kind">OpenAI 官方</span>MCP</a><a class="page-source-link external-link" href="https://learn.chatgpt.com/docs/skills-and-plugins" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer"><span class="external-link-indicator" data-search-exclude aria-hidden="true">↗</span><span class="sr-only" data-search-exclude>(外部链接)</span><span class="source-kind">OpenAI 官方</span>Skills & Plugins</a></aside><aside class="page-toc" aria-label="本页目录"><details><summary>本页目录</summary><nav><a class="toc-h2" href="#它是什么">它是什么</a><a class="toc-h2" href="#什么时候用-不用">什么时候用 / 不用</a><a class="toc-h2" href="#可复制示例">可复制示例</a><a class="toc-h2" href="#补充内容">补充内容</a><a class="toc-h2" href="#最近较火的-mcp-能力">最近较火的 MCP 能力</a><a class="toc-h3" href="#github-全链路">GitHub 全链路</a><a class="toc-h3" href="#浏览器自动化-playwright">浏览器自动化(Playwright)</a><a class="toc-h3" href="#搜索与情报聚合">搜索与情报聚合</a><a class="toc-h3" href="#数据库与知识库查询">数据库与知识库查询</a><a class="toc-h3" href="#设计与协作工具">设计与协作工具</a><a class="toc-h3" href="#命令与执行接口">命令与执行接口</a><a class="toc-h2" href="#热点功能怎么选">热点功能怎么选</a><a class="toc-h3" href="#你要写代码但不想查网页">你要写代码但不想查网页</a><a class="toc-h3" href="#你要做研究复核">你要做研究复核</a><a class="toc-h3" href="#你要修复部署问题">你要修复部署问题</a><a class="toc-h3" href="#最容易踩雷的误区">最容易踩雷的误区</a><a class="toc-h2" href="#mcp-适合解决什么问题">MCP 适合解决什么问题</a><a class="toc-h3" href="#github">GitHub</a><a class="toc-h3" href="#设计工具">设计工具</a><a class="toc-h3" href="#数据和文档">数据和文档</a><a class="toc-h2" href="#使用-mcp-前的-5-个问题">使用 MCP 前的 7 个问题</a><a class="toc-h2" href="#mcp-安全调用模板">MCP 安全调用模板</a><a class="toc-h2" href="#真实实例-只读拉取-issue-上下文">真实实例:只读拉取 issue 上下文</a><a class="toc-h2" href="#真实实例-只读核对-pages-状态">真实实例:只读核对 Pages 状态</a></nav></details></aside>
<!-- guide:shell-open:end -->
<main id="main-content"><section class="hero compact"><div class="hero-copy"><p class="hero-kicker">概念</p><h1>MCP 与 Plugins</h1><p class="lead">MCP 是连接外部 tools 和 resources 的协议;Plugin 是可安装、可分发的能力包,可以包含 skills、apps、MCP 配置和其他组件。两者会配合,但不是同一个概念。</p></div></section>
<div class="doc-layout"><article class="doc-content">
<section class="content-block" id="what"><p class="section-kicker">是什么</p><span class="fragment-alias" id="heading-mcp-1" data-canonical-fragment="它是什么" aria-hidden="true"></span><h2 id="它是什么">它是什么<a class="heading-permalink" data-heading-permalink data-search-exclude href="#它是什么" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><p>MCP 的全称是 <strong>Model Context Protocol</strong>(模型上下文协议)。MCP server 可以暴露可执行的 <strong>tools</strong>,也可以提供只读的 <strong>resources</strong> 或其他上下文;“能读到资源”不等于“可以执行写操作”。Plugin 是更上层的能力包,可以同时打包 skill 与 app;其中 app 的外部数据和操作通常由 MCP server 支撑。</p><div class="decision-table"><div class="decision-row"><strong>只需要可复用步骤</strong><span>Skill</span><span>说明、模板、脚本和 references</span><span>无需外部服务时,从 skill 开始。</span></div><div class="decision-row"><strong>要安装和共享一组能力</strong><span>Plugin</span><span>可组合 skills、apps、MCP 配置与展示信息</span><span>已有 plugin 时优先安装并审查其权限。</span></div><div class="decision-row"><strong>要连接外部系统</strong><span>MCP server</span><span>暴露 tools、resources 或 prompts</span><span>按 server、凭据和读写能力逐项授权。</span></div></div><p><strong>Desktop 添加路径:</strong>打开 <strong>Settings → MCP servers → Add server</strong>,选择 <strong>STDIO</strong>(启动本地进程)或 <strong>Streamable HTTP</strong>(连接远程服务),保存后重启应用。回到 composer 可输入 <code>/mcp</code> 查看或管理当前可用 server。</p><p>Desktop、CLI 和 IDE 共享用户级 <code>~/.codex/config.toml</code>;项目也可以在可信项目中使用 <code>.codex/config.toml</code>。项目配置可能影响可启动的程序或可访问的服务,所以只对你信任的仓库启用。</p><pre><code># 本地 STDIO server
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
# 远程 Streamable HTTP server(替换为服务方给出的真实地址)
[mcp_servers.remote_docs]
url = "https://example.com/mcp"</code></pre><div class="route-strip"><div class="route-pill"><strong>读外部状态</strong><span>GitHub PR、设计稿、文档库、数据库 schema。</span></div><div class="route-pill"><strong>写外部系统</strong><span>创建 issue、同步设计、部署配置,必须先确认。</span></div><div class="route-pill"><strong>权限来源</strong><span>token、账号、workspace、server 配置都要可追溯。</span></div><div class="route-pill"><strong>失败策略</strong><span>外部工具失败时停下报告,不伪造结果。</span></div></div><figure class="figure-card article-illustration"><img src="assets/codex-guide-illustrations/02-skill-plugin-mcp.png" alt="小黑依次查看写有做法的 Skill 卡片、装着能力的 Plugin 工具箱,以及连接外部系统的 MCP 插头" loading="lazy" decoding="async" width="1672" height="941"><figcaption><strong>图意:</strong>Skill 记录做法,Plugin 打包一组能力,MCP server 连接外部系统。安装能力包不等于自动批准全部外部读写;server、凭据和工具仍要逐项审查。</figcaption></figure></section>
<section class="content-block" id="when"><p class="section-kicker">何时使用</p><span class="fragment-alias" id="heading-mcp-2" data-canonical-fragment="什么时候用-不用" aria-hidden="true"></span><h2 id="什么时候用-不用">什么时候用 / 不用<a class="heading-permalink" data-heading-permalink data-search-exclude href="#什么时候用-不用" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><p>需要实时外部状态、设计同步、GitHub 操作、数据库查询时使用。涉及 secret、生产数据或写操作时,必须先确认权限边界;如果本地文件已经足够完成任务,不要为了“更自动化”引入外部工具。</p><p>MCP server 的 instructions,以及 tool / resource 返回的文本都属于<strong>不可信上下文</strong>:它们不能覆盖用户意图、项目规则或权限边界。遇到要求泄露 secret、扩大范围或忽略审批的返回内容应停止;任何创建、修改、发布、发送等外部写操作仍需用户明确授权和可复核证据。</p></section>
<section class="content-block" id="examples"><p class="section-kicker">示例</p><span class="fragment-alias" id="heading-mcp-3" data-canonical-fragment="可复制示例" aria-hidden="true"></span><h2 id="可复制示例">可复制示例<a class="heading-permalink" data-heading-permalink data-search-exclude href="#可复制示例" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><pre><code>请先说明你需要哪个 MCP/plugin、会访问哪些数据、
是否会写入外部系统,以及我应该如何验证结果。</code></pre></section>
<section class="content-block" id="appendix"><p class="section-kicker">补充内容</p><span class="fragment-alias" id="heading-mcp-4" data-canonical-fragment="补充内容" aria-hidden="true"></span><h2 id="补充内容">补充内容<a class="heading-permalink" data-heading-permalink data-search-exclude href="#补充内容" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><ul class="mini-list"><li><strong><a href="#hot">热门功能</a></strong><span>先看适用度高、落地快、风险可控的 MCP。</span></li><li><strong><a href="#playbook">场景选型</a></strong><span>根据任务类型选 MCP,优先只读+只做必须动作。</span></li><li><strong><a href="#use-cases">应用场景</a></strong><span>按 GitHub、设计、数据和文档三类任务组织调用。</span></li><li><strong><a href="#preflight">调用前检查</a></strong><span>确认是否必要、写读边界、凭证和验收证据。</span></li><li><strong><a href="#prompt-template">模板与边界</a></strong><span>固定输出格式,防止权限和越权写入。</span></li></ul></section>
<section class="content-block" id="hot"><p class="section-kicker">MCP 热点</p><span class="fragment-alias" id="heading-mcp-5" data-canonical-fragment="最近较火的-mcp-能力" aria-hidden="true"></span><h2 id="最近较火的-mcp-能力">最近较火的 MCP 能力<a class="heading-permalink" data-heading-permalink data-search-exclude href="#最近较火的-mcp-能力" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><p>以下不是完整列表,重点是社区落地快、价值明确、与 Codex 工作流最容易结合的功能。</p><div class="bento"><article class="card span-4"><span class="fragment-alias" id="heading-mcp-6" data-canonical-fragment="github-全链路" aria-hidden="true"></span><h3 id="github-全链路">GitHub 全链路<a class="heading-permalink" data-heading-permalink data-search-exclude href="#github-全链路" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>查看 PR、提交、checks、issue 与 release 状态;支撑 review、发布验证、自动更新追踪。</p><ul><li>典型:核对 Pages、依赖更新后检查 CI。</li><li>优先级:高(开发者第一选择)</li></ul></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-7" data-canonical-fragment="浏览器自动化-playwright" aria-hidden="true"></span><h3 id="浏览器自动化-playwright">浏览器自动化(Playwright)<a class="heading-permalink" data-heading-permalink data-search-exclude href="#浏览器自动化-playwright" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>可执行网页导航、点击、截图和可访问性检查,适合 UI 回归和发布验收。</p><ul><li>典型:页面加载失败截图取证、关键信息抓取。</li><li>优先级:高(网页内容类任务常用)</li></ul></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-8" data-canonical-fragment="搜索与情报聚合" aria-hidden="true"></span><h3 id="搜索与情报聚合">搜索与情报聚合<a class="heading-permalink" data-heading-permalink data-search-exclude href="#搜索与情报聚合" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>用专用搜索 MCP 把网页、文档和代码片段统一拉取,适合研究与调研任务。</p><ul><li>典型:快速补充官方引用、竞品功能对比。</li><li>优先级:中高(研究场景非常常见)</li></ul></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-9" data-canonical-fragment="数据库与知识库查询" aria-hidden="true"></span><h3 id="数据库与知识库查询">数据库与知识库查询<a class="heading-permalink" data-heading-permalink data-search-exclude href="#数据库与知识库查询" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>连接 Postgres/SQL、Notion、Confluence 这类知识库,直接回答业务问题或核实配置。</p><ul><li>典型:核对字段定义、抽查记录样例、文档溯源。</li><li>优先级:中高(企业场景热门)</li></ul></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-10" data-canonical-fragment="设计与协作工具" aria-hidden="true"></span><h3 id="设计与协作工具">设计与协作工具<a class="heading-permalink" data-heading-permalink data-search-exclude href="#设计与协作工具" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>读取设计稿元信息、截图、组件、版本差异,支持设计稿与实现对齐。</p><ul><li>典型:更新页面后比对 Figma 与代码差异。</li><li>优先级:中(产品/前端任务常用)</li></ul></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-11" data-canonical-fragment="命令与执行接口" aria-hidden="true"></span><h3 id="命令与执行接口">命令与执行接口<a class="heading-permalink" data-heading-permalink data-search-exclude href="#命令与执行接口" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>在受控沙箱中执行命令和脚本、收集日志,形成可追踪的工程闭环。</p><ul><li>典型:跑测试后上传日志摘要给用户。</li><li>优先级:高(自动化工作流底层能力)</li></ul></article></div></section>
<section class="content-block" id="playbook"><p class="section-kicker">操作手册</p><span class="fragment-alias" id="heading-mcp-12" data-canonical-fragment="热点功能怎么选" aria-hidden="true"></span><h2 id="热点功能怎么选">热点功能怎么选<a class="heading-permalink" data-heading-permalink data-search-exclude href="#热点功能怎么选" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><div class="bento"><article class="card span-4"><span class="fragment-alias" id="heading-mcp-13" data-canonical-fragment="你要写代码但不想查网页" aria-hidden="true"></span><h3 id="你要写代码但不想查网页">你要写代码但不想查网页<a class="heading-permalink" data-heading-permalink data-search-exclude href="#你要写代码但不想查网页" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>优先 GitHub + 浏览器截图 MCP。一个负责仓库上下文,一个负责页面效果核验。</p></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-14" data-canonical-fragment="你要做研究复核" aria-hidden="true"></span><h3 id="你要做研究复核">你要做研究复核<a class="heading-permalink" data-heading-permalink data-search-exclude href="#你要做研究复核" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>优先搜索 MCP + 文档检索 MCP + 本地记忆 MCP,先聚合证据再输出结论。</p></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-15" data-canonical-fragment="你要修复部署问题" aria-hidden="true"></span><h3 id="你要修复部署问题">你要修复部署问题<a class="heading-permalink" data-heading-permalink data-search-exclude href="#你要修复部署问题" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>优先命令执行 MCP + GitHub MCP。拿到运行日志,再回到 PR/issue 形成证据。</p></article><article class="card span-12"><span class="fragment-alias" id="heading-mcp-16" data-canonical-fragment="最容易踩雷的误区" aria-hidden="true"></span><h3 id="最容易踩雷的误区">最容易踩雷的误区<a class="heading-permalink" data-heading-permalink data-search-exclude href="#最容易踩雷的误区" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>把每个外部动作都设为自动化。建议原则是:先问“只读可否满足”,能只读时先只读;一旦涉及写操作,强制加上目标页边界、目标文件和验收条件。</p></article></div></section>
<section class="content-block" id="use-cases"><p class="section-kicker">使用场景</p><span class="fragment-alias" id="heading-mcp-17" data-canonical-fragment="mcp-适合解决什么问题" aria-hidden="true"></span><h2 id="mcp-适合解决什么问题">MCP 适合解决什么问题<a class="heading-permalink" data-heading-permalink data-search-exclude href="#mcp-适合解决什么问题" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><div class="bento"><article class="card span-4"><span class="fragment-alias" id="heading-mcp-18" data-canonical-fragment="github" aria-hidden="true"></span><h3 id="github">GitHub<a class="heading-permalink" data-heading-permalink data-search-exclude href="#github" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>读取 PR 状态、查看 checks、创建或回复 issue、核对 Pages 发布状态。写操作要先确认。</p></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-19" data-canonical-fragment="设计工具" aria-hidden="true"></span><h3 id="设计工具">设计工具<a class="heading-permalink" data-heading-permalink data-search-exclude href="#设计工具" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>读取 Figma 设计、生成截图、同步组件、把代码实现和设计稿比对。</p></article><article class="card span-4"><span class="fragment-alias" id="heading-mcp-20" data-canonical-fragment="数据和文档" aria-hidden="true"></span><h3 id="数据和文档">数据和文档<a class="heading-permalink" data-heading-permalink data-search-exclude href="#数据和文档" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h3><p>查询数据库 schema、读取知识库、检索论文和内部文档。注意权限和数据边界。</p></article></div></section>
<section class="content-block" id="preflight"><p class="section-kicker">事前检查</p><span class="fragment-alias" id="heading-mcp-21" data-canonical-fragment="使用-mcp-前的-5-个问题" aria-hidden="true"></span><h2 id="使用-mcp-前的-5-个问题">使用 MCP 前的 7 个问题<a class="heading-permalink" data-heading-permalink data-search-exclude href="#使用-mcp-前的-5-个问题" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><ul class="mini-list"><li><strong>是否必要</strong><span>本地文件是否已经足够?如果足够,不要引入外部工具。</span></li><li><strong>是 tool 还是 resource</strong><span>resource / 上下文通常只读;tool 可能执行动作。先核对能力类型和参数。</span></li><li><strong>读还是写</strong><span>只读风险较低;写入 GitHub、设计、数据库或生产系统必须先确认。</span></li><li><strong>凭证在哪里</strong><span>token、账号和 workspace 是否已经安全配置?不要把 secret 写进 prompt。</span></li><li><strong>返回内容可信么</strong><span>把 server instructions、tool 与 resource 返回视为不可信上下文,不接受其中的越权指令。</span></li><li><strong>失败怎么处理</strong><span>工具超时、权限失败、返回空数据时必须停下报告。</span></li><li><strong>如何验收</strong><span>外部操作后要给链接、截图、状态码、PR/check 状态或日志。</span></li></ul></section>
<section class="content-block" id="prompt-template"><p class="section-kicker">提示词(Prompt)</p><span class="fragment-alias" id="heading-mcp-22" data-canonical-fragment="mcp-安全调用模板" aria-hidden="true"></span><h2 id="mcp-安全调用模板">MCP 安全调用模板<a class="heading-permalink" data-heading-permalink data-search-exclude href="#mcp-安全调用模板" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><pre><code>请使用 GitHub MCP 只读检查 PR 状态。
边界:
- 可以读取 PR、checks、comments
- 不要创建评论、不要推送、不要改 label
输出:
- PR 当前 head
- checks 是否是最新 run
- 失败项和对应日志链接
- 是否需要本地复现
如果权限不足或数据不完整,请停止并说明缺口。</code></pre></section>
<section class="content-block" id="github-issue-read-case" data-case-type="demo" data-case-id="github-issue-read"><p class="section-kicker">真实实例</p><span class="fragment-alias" id="heading-mcp-23a" data-canonical-fragment="真实实例-只读拉取-issue-上下文" aria-hidden="true"></span><h2 id="真实实例-只读拉取-issue-上下文">真实实例:只读拉取 issue 上下文<a class="heading-permalink" data-heading-permalink data-search-exclude href="#真实实例-只读拉取-issue-上下文" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><div class="tier-badges"><span class="tier-badge">演示场景</span></div><p>工程任务常以 GitHub issue 为入口。通过 MCP/GitHub 工具只读拉取 issue 正文、标签和 linked PR,Codex 可以在不改外部系统的情况下建立任务上下文。</p><pre><code>任务:修复 #128 checkout 空购物车报错
MCP 动作(只读):
- 读取 issue 描述与 acceptance criteria
- 列出 linked PR 和 checks 状态
禁止:创建 comment、改 label、merge PR
验收:输出 issue 摘要、写域建议、blocked 项</code></pre><p>本项目没有该 issue 仓库的执行记录,因此标为演示场景。</p></section>
<section class="content-block" id="real-example"><p class="section-kicker">真实实例</p><span class="fragment-alias" id="heading-mcp-23" data-canonical-fragment="真实实例-只读核对-pages-状态" aria-hidden="true"></span><h2 id="真实实例-只读核对-pages-状态">真实实例:只读核对 Pages 状态<a class="heading-permalink" data-heading-permalink data-search-exclude href="#真实实例-只读核对-pages-状态" aria-label="本节永久链接"><span aria-hidden="true">#</span></a></h2><p>本指南每次推送后,Codex 用 GitHub API 查询 <code>codex-usage-guide</code> 的 Pages 状态,再用公开 URL 抓取关键章节标题。这是一个典型 MCP/GitHub 工具场景:需要外部实时状态,但只读即可完成,不需要创建 issue、评论或修改仓库设置。</p><pre><code>真实验证目标:
- gh api repos/WhoJay0609/codex-usage-guide/pages
- curl 公开页面 HTML
验收证据:
- Pages status: built
- daily-workflow.html 包含“五类高频日常任务”
- compound-engineering.html 包含“核心七步怎么用”,且第 1 步为 /ce-ideate</code></pre></section>
</article></div>
</main>
<!-- guide:shell-close:start -->
<nav class="page-sequence" aria-label="前后页"><a rel="prev" href="skills.html">← Skills</a><a rel="next" href="subagents.html">Subagents →</a></nav></div></div>
<!-- guide:shell-close:end --><footer class="footer"><p><strong>Codex 使用指南</strong></p><a class="button" href="subagents.html">下一页:Subagents</a></footer>
<!-- guide:runtime:start -->
<script src="assets/site.js"></script>
<!-- guide:runtime:end -->
</body></html>