跳至主要內容

MCP

在 Dashboard → MCP 儲存的是目前 Profile 的外部 Server 設定。設定儲存、連線就緒、工具實際呼叫成功是三件事:Probe 可選,不是儲存或啟用的前置條件;連線失敗也不會自動撤銷已儲存的定義。

先確定服務在哪裡執行​

型別需要準備
stdioAnyy 主機上的可執行程式、參數及其執行環境;使用 npx 就需要該主機的 Node.js/npm
http可存取的 Streamable HTTP MCP Endpoint;除 loopback 外使用 HTTPS

Anyy 不替本機 Server 安裝執行環境。stdio 只繼承包含 PATH、HOME 等項目的有限環境,需要的其他值應在 Server env 中明確設定。本機程序使用 Anyy 執行使用者的作業系統權限。

獨立 sse transport 不受支援;Streamable HTTP 內部仍可使用事件流。遠端 HTTP 連線不要求本機安裝 Node.js。

新增並驗證​

  1. 選擇 Add MCP server,填寫由字母、數字、連字元或底線構成的穩定 Server ID。
  2. 選擇 stdio 或 http,填寫指令/參數或 URL。
  3. 按服務要求設定環境、Header、Provider 認證或 OAuth 選項。
  4. 設定 Exposure;需要逐工具覆蓋時填寫依序比對的 JSON。
  5. 點選 Save,隨後按需 Probe,檢查連線和工具清單。

一般環境、Header 和 OAuth 字串按輸入儲存,不根據欄位名猜測 Secret。要使用 Anyy 已管理認證資料,應明確寫 Secret Reference,不可將認證資料放進 URL。值表示式說明環境變數、指令替換與 Profile/專案差異。

決定模型怎樣找到工具​

預設 codemode 供腳本發現與呼叫;deferred 經 tool_search;direct 直接向模型宣告;hidden 兩種探索路徑都不可見。逐工具規則優先精確名稱,其次按 JSON 物件順序採用首個匹配萬用字元:

{"search":"direct","read*":"deferred","*":"hidden"}

這不會產生 mcp-* 個人工具組。工具組、父任務限制和 Session 選擇保持獨立。Codemode與工具搜尋解釋兩種發現方式。

Tools 頁可檢視目前原生 Schema。Probe 的單一 tools 清單包含 name、visible_name、description、exposure、offered;offered 表示目前服務提供了它,不是核准或額外允許清單。

需要登入時​

HTTP 未設定 Authorization Header 或 Provider 引用時,可按服務的認證要求進行 OAuth;匿名服務無需為了連線強制登入。Provider 引用是 JSON,例如:

{"provider":"provider-id"}

OAuth 選項另填物件,例如 {"clientId":"registered-client"},不接受舊的 oauth/header/none 字串認證選擇器。

先儲存 Server,再在詳情頁點選登入。在瀏覽器完成授權;瀏覽器無法回呼 Anyy 主機時,把完整重新導向 URL 貼上到本次登入輸入框。離開或取消頁面會結束待完成登入。CLI 替代操作為:

anyy mcp login SERVER_ID --timeout 300
anyy mcp logout SERVER_ID

登出是 CLI 操作,頁面沒有另一個登出按鈕。它清除目前本機認證資料並關閉連線,保留定義和快取;不撤銷伺服器端授權。詳情見登出。缺少 token 不一定代表需要重新認證:匿名連線可以 ready,同時顯示 OAuth 材料 not_loaded。

修改設定後怎樣生效​

先看設定來源:Profile 定義在 config.yaml,專案覆蓋來自 canonical Workspace 的 .anyy/mcp.json。專案設定規則決定同名條目如何覆蓋。

啟用切換開關只影響這個 Server。編輯時若只修改 Exposure,使用設定操作並留空定義欄位;傳輸、認證資料、描述和依序比對的覆寫規則使用獨立的 Profile 定義操作,不混在一次儲存中。Exposure 修改不重連,連線錯誤不撤銷設定。

mcp reload 只按記憶體中已載入的值重連。手改檔案需要啟動時或空閒工作階段 session.reload RPC 重新讀取,Probe 不代替檔案重新載入。共享連線對外宣告的 Workspace 根在 manager 建立時固定;stdio 的 cwd 是另一個設定,不改變該根,也不是檔案權限邊界。

回到對話確認​

可以在有 Shell 工具的對話中,讓 Anyy 透過現有 CLI 新增明確的 MCP 位址或指令;沒有獨立的 MCP 設定模型工具。CLI 的顯式 Profile 路徑應是 Anyy Profile,而不一定等於 Shell 的 HOME。

儲存後重新整理頁面核對相同 Profile、Server ID、啟用與連線狀態,再在下一回合對話實際呼叫。頁面新增的服務同樣供該 Profile 對話使用。連線狀態單獨顯示 connected、pending、degraded、unavailable。

已啟用且設定為 Codemode/deferred 的服務會進入有大小限制的 mcp_servers 提示摘要,即使仍在連線。描述優先,否則使用 Server instructions 首行;direct-only、hidden-only、disabled 服務不列入。摘要在一回合執行開始時固定,修改後在下一提示詞更新。

資源能力透過共享 list_mcp_resources、list_mcp_resource_templates、read_mcp_resource 提供。狀態保留 resources_advertised、prompts_advertised、server_capabilities;不再有舊 resource/prompt enabled、posture、count 欄位或切換開關。Prompt 協定 API 不產生模型工具。

CLI 示例與排錯​

anyy mcp add docs --command mcp-docs --exposure codemode
anyy mcp configure docs --exposure deferred
anyy mcp set docs toolExposure '{"read*":"deferred","*":"hidden"}'
anyy mcp test docs
anyy mcp show docs
anyy mcp status --json

工具呼叫必須採用目前 show/Probe 回傳的原始工具名稱和參數 Schema。舊全域 mcp.client.enabled、工具 include/exclude/trusted 與 --activate-toolset 不再接受;RPC 依序比對的覆寫規則以 tool_exposure JSON 字串傳入,儲存為有序 toolExposure。

本機服務無法啟動時檢查指令、依賴、環境和 cwd;遠端認證失敗則檢查 Provider 引用、OAuth 或 Header。工具缺失時再檢查 Exposure、目前 offering 和探索工具。伺服器詳情與 CLI 記錄提供已遮蔽敏感資訊的診斷;完整傳輸、資源和復原規則見 MCP 整合。