Ref MCP

Ref MCP

Ref MCP 是一個模型上下文協議 (MCP) 伺服器,旨在為人工智慧代理和編碼工具提供高效、最新的 API、函式庫和服務技術文檔訪問。它使文檔上下文的檢索更加精確,並提高代碼理解和自動化的效率。

Author: ref-tools


查看協議

Ref MCP 是什麼?

Ref MCP 是一個專門的 MCP 伺服器,將編碼代理和開發工具連接到精心策劃的技術文檔宇宙。它使代理能夠按需搜索、檢索和分析最相關的文檔部分,減少令牌使用,改善與 APIs 和函式庫的 LLM 表現。

如何配置 Ref MCP

有兩種主要方法來設置 Ref MCP 作為 MCP 伺服器:

1. 可串流的 HTTP (推薦):

  • 透過支持的客戶端 (例如 Cursor) 使用提供的安裝鏈接或直接指定伺服器配置來安裝 Ref MCP:
    "Ref": {
      "type": "http",
      "url": "https://api.ref.tools/mcp?apiKey=YOUR_API_KEY"
    }
    
  • 你需要在 ref.tools 註冊以獲取 API 密鑰。

2. 本地標準輸入伺服器 (舊版):

"Ref": {
  "command": "npx",
  "args": ["ref-tools-mcp@latest"],
  "env": {
    "REF_API_KEY": <your_api_key>
  }
}
  • 需要 Node.js 和 npm。

另外,對於本地開發和調試,你可以克隆 Ref MCP 倉庫,使用 npm install 安裝依賴,並使用 npm run dev 運行。

如何使用 Ref MCP

  1. 使用上述配置,將支援 MCP 的代理或工具連接到 Ref MCP 伺服器。
  2. 使用可用工具,例如 ref_search_documentation 來搜索 API 文檔,或 ref_read_url 獲取並提煉相關文檔內容。
  3. 代理可以進行迭代搜索和閱讀,智能地減少上下文,只保留生成代碼或理解所需的部分。
  4. 對於 OpenAI 因用,Ref MCP 自動將其工具映射到與 OpenAI 相容的函數名稱。

在開發和檢查中,使用 MCP 檢查器 進行可視化測試和監控互動。

主要特點

  • 令牌高效的文檔檢索: 僅返回最相關的上下文部分,避免過多的令牌成本和性能下降。
  • 迭代的友好搜索: 在會話中調整搜索結果,對於相似的提示,永遠不會重複結果。
  • 按需上下文豐富: 讓 LLM 在需要的時候提取文檔。
  • 支持公共和私人資源: 搜索公共文檔、網頁、GitHub 及內部庫或 PDF 等私人資源。
  • 集成會話管理: 在代理會話中跟蹤搜索和閱讀的軌跡,實現最佳的上下文編排。
  • 與 OpenAI 的相容性: 自動調整工具命名,以便與 OpenAI 的研究和編碼代理無縫使用。

使用案例

  • AI 驅動的代碼助手: 為編碼代理 (如 Claude Desktop 或 Cursor) 提供精確的技術文檔訪問。
  • 自動化 API 集成: 幫助代理理解、實施和故障排除 API 端點,通過呈現最相關的文檔。
  • 代碼審查和審計機器人: 裝備代理在審查代碼時能夠檢索和引用權威文檔。
  • 開發人員入職工具: 通過搜索和提取公司或公共文檔中的信息,動態地回答常見的開發問題。
  • 深入技術研究: 高效地查詢多個來源,專注於最小的上下文集以獲得準確的答案。

常見問題

Q1: 為什麼減少文檔上下文中的令牌數量很重要?
A1: LLM 在面對大且噪音多的上下文窗口時表現較差,而令牌是需要付費的。通過僅提取相關的文檔部分,Ref MCP 提升 LLM 的性能,並減少不必要的 API 開支。

Q2: Ref MCP 可以搜索哪些類型的文檔?
A2: Ref MCP 可以搜索廣泛的公共文檔 (API、函式庫、網頁文檔),還可以索引私人/內部資源,包括 GitHub 倉庫和 PDF 文件。

Q3: Ref MCP 如何確保 LLM 代理避免重複閱讀相同的內容?
A3: 在活動會話中,Ref MCP 追踪之前的搜索和返回的結果,確保每次相似的搜索都能獲得新的、不重複的文檔,促進有效的提示工程。

Q4: 我可以用自己的代理或工具使用 Ref MCP 嗎?
A4: 可以,任何支持 MCP 協議的代理或應用都可以使用 HTTP 或標準輸入模式連接 Ref MCP。

Q5: ref_search_documentationref_read_url 有什麼區別?
A5: ref_search_documentation 通過查詢查找相關的文檔鏈接和上下文;ref_read_url 抓取並將目標頁面轉換為 markdown 總結,便於代理消化。