本地 MCP 服務器
應用可以開一個只監聽本機的 JSON-RPC 服務,讓本地 Agent 讀取倉庫狀態。默認關閉,需要時在「設置 → 高級 → 本地自動化(MCP)」裏啓用。
網絡邊界
- 只綁定
127.0.0.1,不接受外部網卡連接; - 只接受
POST /mcp;請求體上限 1 MiB; Host必須是127.0.0.1、localhost或::1;- 未知方法、未知工具直接拒絕。
端點與端口在設置裏可見,默認端口 47123,可改為 1024–65535 之間的值;改端口會重啓服務器。
令牌
- 每個請求都必須帶
Authorization: Bearer <token>; - 令牌由加密隨機數生成,保存在系統憑據庫,不寫入設置文件,也不進日誌;
- 可以在設置裏顯示、複製與輪換;輪換後舊令牌立即失效。
讀取工具
讀取工具不改變倉庫狀態,可以隨時調用:
狀態、diff、日誌、分支、遠端、Stash、文件搜索、文件讀取、blame、標籤、提交詳情,以及兩個版本之間的 diff。
每次調用都有邊界:
| 項目 | 上限 |
|---|---|
| 單次調用時限 | 30 秒 |
| diff | 512 KiB |
| 單文件讀取 | 256 KiB |
| 日誌 | 100 條提交 |
| blame | 1000 行 |
| 搜索 | 500 條匹配 |
超出部分會被截斷,而不是讓響應無限增長。
寫操作需要逐次批准
目前只有三個變更動作:git.fetch、index.stage、index.unstage。
調用它們時不會立即執行,而是返回 approval_required 與一個審批 ID,並把動作排隊最多兩分鐘:
- 應用在主線程彈出確認框,寫明倉庫、動作與路徑或遠端;
- Agent 也可以用
approval.resolve回答同一個請求; - 拒絕、超時、未知 ID 與重放都不會執行任何操作;
- 動作與結果會寫進日誌,令牌不會。
能拿到令牌的 Agent 也能用 approval.resolve 自行回答同一個請求,所以彈窗只是讓你看見調用,不是阻止 Agent 自我確認。令牌只應交給你信任的 Agent。
當前不提供
- 創建或修改文件的工具;
- 按客戶端劃分的令牌權限;
- 流式響應(返回單個 JSON 響應)。
與其他功能的區別
MCP 是給本地 Agent 的接口,不是給 ACP Agent 用的通道;兩者互不依賴。ACP 的只讀策略見 ACP Agent。
最後更新於