Aklman · Library

07 / 第七章

接外部 · 接一个真数据源,完成一次查询.

agent 默认只看得见你的终端。这章真的接上一个外部数据源 —— 一个只读的 GitHub MCP —— 用它回答一个光看终端答不了的问题,然后把权限收成只读。能连是接口给的能力,该连是你给的判断,红线本章划清。

MD海报

到这里,agent 看得见的还只是你的终端和仓库。但你大半上下文不在那儿 —— 在 issue 跟踪、数据库、监控面板、内部 API 里。MCP(Model Context Protocol)是那根接线。这章不空谈接线图:真的接一个只读的 GitHub MCP,用它回答一个光看终端答不了的问题,然后把权限收成只读。接完这一次,你就有了判断「下一个该不该接」的全部手感。

I

主线:接一次只读 GitHub MCP,答一题,收权限.

为什么选 GitHub:几乎人人都有,只读 token 好申请,答错了代价为零。问题也挑一个终端答不了的:「我们 repo 里,open 超过 30 天、最近一周还有人评论的 issue 有哪些?」—— 答案不在你的文件系统里,在 GitHub 的 API 后面。1注 1Warp Docs · Model Context Protocol (MCP) —— 截至 2026-08-06:MCP servers 用标准接口给 Warp 本地 agent 暴露工具和数据源;支持 CLI command server 与 Streamable HTTP / SSE URL server、自定义 headers、环境变量;入口:Settings > Agents > MCP servers、Drive Personal > MCP Servers、命令面板「Open MCP Servers」;OAuth 服务器首次启动弹授权窗;2026-07-31 起,工具确认面板会显示正在运行的是哪个 tool、来自哪个 server。
01

接:Settings > Agents > MCP servers 加一个 GitHub server

入口有三个:Settings > Agents > MCP servers、Drive 的 Personal > MCP Servers、命令面板搜 Open MCP Servers。用 GitHub 官方 MCP,token 只给只读 scope;OAuth 类的服务器首次启动会弹授权窗,授权完才上线。加完不用重启 Warp —— 下一条消息新工具就进上下文。1注 1Warp Docs · Model Context Protocol (MCP) —— 截至 2026-08-06:MCP servers 用标准接口给 Warp 本地 agent 暴露工具和数据源;支持 CLI command server 与 Streamable HTTP / SSE URL server、自定义 headers、环境变量;入口:Settings > Agents > MCP servers、Drive Personal > MCP Servers、命令面板「Open MCP Servers」;OAuth 服务器首次启动弹授权窗;2026-07-31 起,工具确认面板会显示正在运行的是哪个 tool、来自哪个 server。
02

问:把那句话交给它

⌘↩ 开会话,贴上下面 PromptBox 示例 tab 那段。注意它要求 agent 说出用了哪个 tool、数据来自哪 —— 这是防「凭空编」的验收钩子。
03

验:看它真读了外部数据

它调用 MCP 工具时,确认面板会显示正在跑的是哪个 tool、来自哪个 server —— 你看得见它碰的是 GitHub 而不是在猜。答案回来,抽查两个 issue 号去 GitHub 上核对:真实存在、日期对得上,才算这次接线成功。1注 1Warp Docs · Model Context Protocol (MCP) —— 截至 2026-08-06:MCP servers 用标准接口给 Warp 本地 agent 暴露工具和数据源;支持 CLI command server 与 Streamable HTTP / SSE URL server、自定义 headers、环境变量;入口:Settings > Agents > MCP servers、Drive Personal > MCP Servers、命令面板「Open MCP Servers」;OAuth 服务器首次启动弹授权窗;2026-07-31 起,工具确认面板会显示正在运行的是哪个 tool、来自哪个 server。
04

收:权限锁成只读

回到 MCP 设置,把这个 server 的写类工具(create_issue、add_comment 之类)放进 denylist —— denylist 优先于一切,命中必须人工批准。以后它只能读,想写得先过你。这一步就是「能连」和「该连」之间的那道闸。3注 3Warp Docs · Agent Profiles & Permissions —— 可针对每个 MCP 服务器选择「Agent decides」、allowlist 或 denylist;denylist 优先于 allowlist 与「Agent decides」,命中必须人工批准(详见第八章「管住它」)。
提示词主线同款:一个光看终端答不了的问题
用 GitHub MCP 回答:<repo> 里 open 超过 <天数> 天、
最近 <天数> 天内还有人评论的 issue 有哪些?
要求:
1. 说明你调用了哪个 tool、数据来自哪里;
2. 列出 issue 号、标题、open 天数、最近评论时间;
3. 只读,不要创建或修改任何 issue / comment。
用 GitHub MCP 回答:我们 repo 里 open 超过 30 天、
最近 7 天内还有人评论的 issue 有哪些?
要求:
1. 说明你调用了哪个 tool、数据来自哪里;
2. 列出 issue 号、标题、open 天数、最近评论时间;
3. 只读,不要创建或修改任何 issue / comment。

没有 MCP 的同一题

开浏览器,进 Issues 页,按 updated 排序,一页页翻;open 天数要心算,最近评论要逐个 issue 点进去看;二十分钟后你有一份「大概齐」的清单,漏没漏你没把握。

刚才这三分钟

一句话,一张带 issue 号和日期的表,工具调用过程全程可见,你抽查了两个号都对。剩下的问题是判断:这些僵尸 issue 哪些该关 —— 那是你的活,agent 把找答案的活干完了。

II

它能读你已有的配置.

你不必重新配一遍。Warp 认这些位置的 MCP 配置:自己的 ~/.warp/.mcp.json(全局)和项目里的 .warp/.mcp.json,Claude Code 的 ~/.claude.json / .mcp.json,Codex 的 ~/.codex/config.toml,以及其他 agent 的 ~/.agents/.mcp.json。auto-spawn 规则分三层:Warp 自己的全局 file-based servers 默认自动启动;第三方全局 servers 要你显式打开「Auto-spawn servers from third-party agents」;项目级 servers 永不自动启动,会话级生效,重启后要重新批准 —— 从陌生 repo clone 下来的 .warp/.mcp.json 不能自己启动本地命令,这条规则是你的保险。2注 2Warp Docs · MCP security behavior —— 全局 Warp file-based servers 默认 auto-spawn;第三方全局 servers 需显式开启「Auto-spawn servers from third-party agents」;项目级 servers 永不自动启动、会话级生效(重启后重新批准);MCP 配置编辑需要批准;共享时 env 值会被 scrub,队友各自重填;日志可能含 token,分享前先清理;相对路径命令要显式设 working_directory。
{
  "docs-ro": {
    "command": "npx",
    "args": ["-y", "mcp-remote", "https://example.com/mcp"],
    "env": {
      "DOCS_TOKEN": "<read_only_token>"
    },
    "working_directory": "/absolute/path/to/project"
  }
}

一个只读 MCP 服务器条目(CLI 型,示意;包名与参数以对应 server 文档为准)

提示词MCP 接入审查模板(接下一个之前先跑这个)
我要给 Warp Agent 接一个 MCP server:<server-name>。
先不要安装或启动。
请帮我审查:
1. 它能读什么;
2. 它能写什么;
3. 凭据放在哪里,能否撤销;
4. 日志在哪里,是否可能含 token;
5. 该设为 allowlist、Agent decides 还是 denylist;
6. 第一次只读验证问题应该问什么。
我要给 Warp Agent 接一个 MCP server:linear-mcp。
先不要安装或启动。
请帮我审查:
1. 它能读什么;
2. 它能写什么;
3. 凭据放在哪里,能否撤销;
4. 日志在哪里,是否可能含 token;
5. 该设为 allowlist、Agent decides 还是 denylist;
6. 第一次只读验证问题应该问什么。

III

能连不等于该连.

每多接一个 MCP 服务器,agent 能做的事变多,能闯的祸也变多。三笔代价要算:多一个外部依赖就多一份攻击面,多一组工具就多烧 token,多一处写权限就多一处它能改坏的地方。所以默认连只读,写权限单独想清楚 —— denylist 优先于 allowlist 与「Agent decides」,命中必须人工批准,生产库的写口就该进 denylist。3注 3Warp Docs · Agent Profiles & Permissions —— 可针对每个 MCP 服务器选择「Agent decides」、allowlist 或 denylist;denylist 优先于 allowlist 与「Agent decides」,命中必须人工批准(详见第八章「管住它」)。连之前先问三句:这服务器要的权限是只读还是能写?它的工具会不会把敏感数据带出去?这件事我多久用一次、值不值得让它常驻?「能连」是接口给的能力,「该连」是你给的判断。
风险级别例子默认策略
只读文档、只读数据库、GitHub issue 读取、日志查询可先接,但仍记录权限和日志位置
草拟起草 issue 回复、生成 PR 描述、创建草稿工单允许生成,不自动发布
写入改 issue 状态、写数据库、改云资源默认 denylist,每次批准
高风险支付、客户数据导出、密码管理器、生产控制台、邮件发送不要接,或只在隔离环境临时接
你要做的事优先选原因
一次性调用一个公开 APIAPI CLI / curl轻,不扩大长期权限边界
重复查内部资料或 issueMCP让 agent 直接读上下文
固定的数据清洗流程shell script / Workflow可审计、可复现、少 token
需要网页登录、点按钮、看页面状态浏览器 / Computer Use 类工具MCP 不是 GUI 自动化
验收这一章 —— 主线那一次接线,你自己也要做成:

能连的是接口, 该连的是判断.

What can connect is the interface, what should connect is judgment.

Aklman Library

讨论

讨论.

评论区初始化中…