本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
工具組織
探索正確的工具並確保 LLM 可以有效地使用這些工具,是有效工具開發的最關鍵部分之一。當您開始開發 MCP 伺服器時,您需要決定下列項目的策略:
-
有多少工具進入一個 MCP 伺服器
-
哪些工具不應放入相同的 MCP 伺服器
-
如何命名工具以使其可供搜尋並防止名稱衝突 (具有相同名稱的不同工具)
-
如何記錄工具和 MCP 伺服器,以方便 LLM 使用
命名空間組織是一種設計模式,可防止工具名稱衝突、群組相關功能,並促進 LLMs 的有效工具識別。模式會建立結構化分類,類似於結構化儲存系統,而不是非結構化累積。我們建議使用 domain-noun-verb 模式來命名工具。例如,github_issue_create、github_issue_list、github_issue_update、github_pullrequest_list、 github_pullrequest_create或 github_pullrequest_merge。檢查字母排序行為時,此模式的優勢顯而易見。依字母順序列出工具時,所有與問題相關的操作叢集 (create、list、update),後面接著提取請求操作 (create、list、merge)。名詞 (資源類型) 做為組織界限。此結構有助於 LLM 工具掃描和人工文件導覽,因為相關功能自然分組在一起。
MCP 伺服器應在網域層級繫結,但可以根據其所提供功能的責任分離進行細分。例如,您可能有個別的 MCP 伺服器,用於資料庫的寫入操作和讀取操作。若要強制執行此區隔,建議您在代理程式層級實作護欄,以根據使用者意圖和許可限制可存取的 MCP 伺服器。這可以透過以下組合來實現:
-
條件式伺服器載入 – 只有在代理程式在使用者輸入中偵測到讀取操作時,才載入唯讀 MCP 伺服器。
-
許可型篩選 – 使用使用者授權僅授予適當 MCP 伺服器的存取權。
最後,您會想要在 MCP 伺服器提供的工具數量上建立上限。請勿假設客服人員將如何使用您的 MCP 伺服器。他們可能會從根本上列出所有可用的工具,並將其全部提供給 LLM。如果您在單一伺服器中有 50 個以上的工具,您應該考慮將其分割成多個伺服器。
MPC 工具組織的最佳實務
-
使用工具的 domain-noun-verb 命名標準 – 實作策略,以防止 MCP 伺服器和代理程式中的名稱衝突。
-
設定上限 – 限制單一 MCP 伺服器中的工具數量。
-
分割 MCP 伺服器 – 使用職責分離將 MCP 伺服器分割為邏輯群組。