本地 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。
最後更新於