01|即時文件查詢(upstash/context7)
🎯 一句話:解決「模型訓練資料過期」這個老問題——查詢時把目標函式庫的最新文件與程式碼範例塞進 prompt,而不是靠模型記憶。
- Repo:https://github.com/upstash/context7
- 授權:MIT(僅 MCP server 原始碼;索引/爬蟲/解析引擎閉源,屬 Upstash 後端服務)
- 套件:
@upstash/context7-mcp(MCP server)、ctx7(CLI)、@upstash/context7-sdk(TS SDK)、@upstash/context7-tools-ai-sdk(Vercel AI SDK 工具)
作者背景
Upstash 是一家無伺服器資料平台公司,本業是 Redis(serverless、低延遲、HTTP/REST 存取,適合 edge/serverless 環境)、Vector(向量資料庫)、QStash(訊息佇列/排程)、Workflow(流程編排)、Search(全文搜尋),計價方式是「按請求付費、可以縮到零」。背後投資人包含 a16z,以及 Vercel 創辦人 Guillermo Rauch、Auth0 共同創辦人 Matias Woloski、Naval Ravikant 等天使投資人。
Context7 是這家「資料基礎設施公司」做的開發者工具——邏輯上不算他們的核心產品線,但解決的是同一種問題:讓開發者不用自己維護一份「隨時可查、隨時最新」的資料。
解決什麼問題
LLM 訓練資料有截止日期,遇到快速迭代的函式庫(框架版本、API 簽名常變)時,很容易:
- 給出過期的用法範例
- 幻覺出不存在的 API
- 混用不同版本的語法
Context7 的做法不是「訓練更新的模型」,而是在查詢當下把目標函式庫的最新文件、程式碼範例直接注入 prompt,讓模型依據當下真實內容回答,而不是靠記憶。
怎麼運作:兩段式查詢
MCP 工具只有兩個,刻意設計成「先解析、再查詢」:
| 工具 | 參數 | 作用 |
|---|---|---|
| resolve-library-id | query、libraryName | 把一個函式庫名稱解析成 Context7 專用的穩定 ID,依相關性排序 |
| query-docs | libraryId、query | 用已解析的 ID 查詢對應版本的文件與程式碼範例 |
CLI 版本(ctx7)對應同一組邏輯:
ctx7 library <name> <query> # 對應 resolve-library-id:搜尋索引,回傳符合的函式庫與 ID
ctx7 docs <libraryId> <query> # 對應 query-docs:用確切 ID 抓文件
也可以完全跳過解析步驟,直接在 prompt 裡用 slash 語法點名資源:
use library /supabase/supabase
還能指定版本(例如「Next.js 14」),避免抓到最新版但你實際用的是舊版 API。
怎麼安裝
一鍵設定(推薦):
npx ctx7 setup
會走 OAuth 登入、產生 API key,並依偵測到的 agent 自動安裝對應整合。可用旗標指定目標:--cursor、--claude、--opencode。有兩種模式:
- CLI + Skills:不需要 MCP,改裝一個引導模型呼叫
ctx7指令的 Skill - 原生 MCP:直接註冊 Context7 MCP server
移除:
npx ctx7 remove
# 若是全域安裝,另外 npm uninstall -g ctx7
手動設定 MCP(不用 CLI 精靈時):
- Server URL:
https://mcp.context7.com/mcp - 認證:
CONTEXT7_API_KEYheader - 需求:Node.js ≥ 18;免費 API key(context7.com/dashboard 申請)可提高速率限制,官方文件列出 30+ 種支援的 MCP client
限制與免責聲明
文件內容多為社群貢獻,官方明講「不保證正確性、完整性或安全性」,並提供「Report」按鈕讓使用者回報問題內容。這個 repo 只公開 MCP server 的原始碼——實際的 API 後端、解析引擎、爬蟲引擎都是 Upstash 的閉源服務,等於「介面開源、資料引擎閉源」的模式。
值得抄的兩件事
- 穩定 ID 當作查詢的中介層——先解析成 ID 再查內容,比每次都做模糊比對更省成本、更可預測。
- 給使用者一條跳過解析的捷徑——slash 語法直接點名資源,是「工具鏈路徑」與「使用者直覺路徑」並存的好示範。