MCP工具:捕獲AI代理範圍蔓延
Overreach 是一款獨立的 MCP 工具,用於檢測 AI 代理生成的程式碼差異是否超出使用者提示指定的範圍。它透過三個階段:LLM 範圍提取、確定性差異解析和比較,標記未授權的依賴、環境變數、端點、定時任務等。支援多種 LLM 提供商,無需 API 金鑰時自動進入偏執模式。提供 CLI、MCP 伺服器、預提交鉤子和 CI 門控功能,幫助開發者確保 AI 代理行為可控。
Overreach 是一款創新的開源工具,專門用於檢測 AI 編碼代理的範圍蔓延問題。當開發者向 AI 代理提供提示並生成程式碼差異時,Overreach 能夠自動判斷該差異是否嚴格遵循了原始提示的要求,還是代理悄悄新增了未授權的修改,例如新的端點、依賴項、環境變數或定時任務。
該工具的核心工作流程分為三個階段。第一階段是範圍提取,利用 LLM(如 Anthropic 的 Claude 或 OpenAI 的 GPT)解析使用者提示,生成一份授權的範圍 JSON,明確指出了哪些檔案、功能、依賴、端點、環境變數和行為是使用者實際要求的。此階段是唯一呼叫模型的環節。第二階段是差異解析,透過確定性正規表示式解析程式碼差異,提取實際新增的內容。第三階段是比較階段,使用集合運算和模糊匹配找出實際新增與授權範圍之間的差異,從而產生髮現項。這種設計使得後兩個階段無需呼叫模型,確保了工具的可審計性和測試的零成本。
Overreach 對發現項進行了分類和嚴重性分級。例如,環境變數、端點和定時任務被視為高風險;依賴項和檔案修改為中風險;新功能為低風險。最終的綜合得分根據最高風險項確定:高風險為 HIGH,中風險為 MEDIUM,低風險為 LOW。這種分級有助於開發者優先處理關鍵問題。
在部署方面,Overreach 提供了多種整合方式。CLI 工具可以直接執行手動檢查,支援管道輸入差異。MCP 伺服器可與 Claude Code、Cursor、Codex 等主流工具無縫整合,自動暴露檢查功能。預提交鉤子可以在程式碼提交前攔截高風險的範圍蔓延,阻止提交併輸出錯誤資訊。CI 門控則可以在 GitHub Actions 中執行,確保每次拉取請求都經過檢查,失敗則阻止合併。
Overreach 的設計充分考慮了靈活性。它支援 Anthropic、OpenAI(包括相容服務如 OpenRouter、Groq)、Ollama 等多種 LLM 提供商,使用者可以根據自己的環境選擇最合適的模型。此外,如果沒有 API 金鑰,工具會自動進入偏執模式,基於正規表示式解析提示,標記所有差異中的內容為潛在未授權,雖然理解力不如 LLM,但仍能提供基本保障。
該專案完全開源,採用 MIT 許可證。它不自帶遙測或回傳功能,完全在本地執行,保護使用者隱私。Overreach 的文件完善,包括詳細的安裝指南、使用示例、常見問題解答以及一個零金鑰的演示命令,方便使用者快速體驗。透過社群反饋和問題跟蹤,工具持續改進,確保準確性和實用性。