nicobailon/pi-mcp-adapter

Token-efficient MCP adapter for Pi coding agent

解決的問題

Pi MCP Adapter 防止 LLM 上下文窗口被冗長的工具定義淹沒。在標準的 Model Context Protocol (MCP) 設定中,單個伺服器僅用於描述其可用工具就可能消耗數千個 token,無論這些工具是否實際使用,這都會消耗 token。此適配器將數百個單獨的工具定義替換為單一代理工具,允許代理按需發現並呼叫工具。

工作原理

該適配器不是將每個連接的 MCP 伺服器的每個工具直接註冊到 LLM,而是提供一個單一的 mcp 代理工具。代理使用此代理來搜尋特定工具並執行它們。

關鍵技術特性包括:

  • Lazy Loading:在實際呼叫工具之前不會連接伺服器,從而減少啟動開銷。
  • Configuration Merging:自動偵測並合併來自多個來源的配置,包括標準的 .mcp.json 檔案和特定於主機的配置(例如來自 Cursor 或 Claude Code 的配置)。
  • Output Guarding:為了防止海量的工具輸出撐爆上下文窗口,適配器將文本輸出限制在 50 KiB 或 2,000 行,並將過大的結果儲存到暫存檔中供代理選擇性讀取。
  • Lifecycle Management:支援包括 lazyeagerkeep-alivelazy-keep-alive 在內的多種連接模式,以優化資源使用。

適用對象

使用 Pi 且希望在不犧牲上下文窗口的情況下整合 MCP 伺服器(資料庫、瀏覽器、API)的開發者。

亮點

  • 上下文效率:將工具定義開銷從數千個 token 降低到約 200 個 token。
  • 靈活配置:支援專案本地和使用者全域的共享 MCP 配置。
  • 安全 OAuth:與作業系統憑證儲存整合以進行安全的 token 管理,並支援遠端/無頭 OAuth 流程。
  • 資源管理:包含「Output Guard」,防止過大的工具回應導致工作階段崩潰。
  • 按需發現:允許代理透過搜尋而不是將所有工具預載入到提示詞中來尋找工具。