Files
tool-notes/context7-plugin-notes.md
Timmy 05c8cc205e 新增 Context7 Claude Code plugin 安裝筆記
安裝 context7@claude-plugins-official,用於即時拉取 library 官方文件
避免 LLM 訓練資料過時造成的幻覺 API。於 README、SUMMARY、QUICKSTART
建立索引。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 12:18:19 +08:00

145 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Context7 Plugin (Claude Code) 安裝與使用筆記
## 基本資訊
- **專案頁**: https://claude.com/plugins/context7
- **官方**: [Upstash](https://upstash.com)
- **原始碼**: https://github.com/upstash/context7
- **Marketplace**: `claude-plugins-official`Anthropic 官方)
- **類型**: Claude Code 外掛(包裝 `@upstash/context7-mcp` MCP server
- **核心套件**: [`@upstash/context7-mcp`](https://www.npmjs.com/package/@upstash/context7-mcp)`npx -y @upstash/context7-mcp`
- **安裝規模**: 230,000+(官方 marketplace 顯示)
- **安裝日期**: 2026-04-19
## 是什麼
Context7 是 Upstash 推出的 MCP server用來解決 LLM 訓練資料過時、產生幻覺 API 或沿用已廢棄寫法的問題。它從各函式庫的**原始 repo 直接抓取文件**餵給 Claude支援指定版本。
Plugin 提供兩個工具:
| 工具 | 用途 |
|------|------|
| `resolve-library-id` | 把「react」「supabase」這類自然語言名稱解析成 Context7 內部 ID |
| `query-docs` | 依據 library ID 取回該版本的官方文件與範例程式 |
**適用**:寫 library-specific 程式API 呼叫、框架設定、CLI 用法、版本升級、debug 特定套件問題、確認某個 API 在 vX 版是否存在。
**不適用**重構、從頭寫業務邏輯、一般程式概念、code review。
## 安裝
### CLI推薦
```bash
claude plugin install context7@claude-plugins-official
```
### Claude Code 對話內
```text
/plugin install context7@claude-plugins-official
```
官方 marketplace `claude-plugins-official` 預設已加入,不需額外設定。
### 安裝後驗證
```bash
claude plugin list # 應列出 context7@claude-plugins-official
ls ~/.claude/plugins/cache/claude-plugins-official/context7/
```
Plugin 真正的能力來自 `@upstash/context7-mcp`,第一次使用時 `npx` 會自動下載。
## 架構
和 Playwright plugin 一樣,這是一層薄殼:
```
context7/
├── .claude-plugin/plugin.json # plugin metadata
└── .mcp.json # 啟動 MCP server 的指令
```
`.mcp.json`
```json
{
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
}
}
```
### 系統需求
- Node.js`npx` 可用即可)
- 第一次啟動會從 npm 下載 `@upstash/context7-mcp`,需要網路
## 使用方式
安裝並重啟 Claude Code 後,對話中會出現 `mcp__context7__resolve-library-id``mcp__context7__query-docs` 兩個工具。觸發方式有兩種:
### 1. 在 prompt 尾端加 `use context7`
Upstash 官方建議寫法,最直覺:
> 「寫一段 Next.js middleware 檢查 cookie 中的 JWT。use context7」
>
> 「用 Cloudflare Workers 寫一個會快取 JSON API 回應的 script。use context7」
### 2. 指定特定 library 版本
```text
use library /supabase/supabase for API and docs
```
或在問題中直接提到 library 與版本:
> 「我在用 Prisma 5.10,幫我寫一個 soft delete 的 middleware。use context7」
### 觸發時機(本 repo CLAUDE 規範)
本 repo 的工具層規範已指定:**當使用者問到 library / framework / SDK / API / CLI / cloud service 的用法時即使是很熟的React、Next.js、Django…也應優先用 Context7**,理由是訓練資料可能過時。不適用於一般重構或業務邏輯。
## 常見使用情境
- **版本遷移**Next.js 13 → 15、React 18 → 19、Prisma 4 → 5。
- **API 語法確認**:某個 method 的參數、deprecated 警告、replacement。
- **設定檔樣板**`vite.config.ts``tailwind.config.js``drizzle.config.ts` 的最新格式。
- **CLI 指令查詢**`gh``wrangler``supabase` 等工具的現行子指令。
- **冷門 library**:訓練資料很少、但 repo 裡有文件的專案。
## 常用檢查與移除
```bash
# 檢查安裝狀態
claude plugin list
# 檢視 plugin metadata
cat ~/.claude/plugins/marketplaces/claude-plugins-official/external_plugins/context7/.claude-plugin/plugin.json
cat ~/.claude/plugins/marketplaces/claude-plugins-official/external_plugins/context7/.mcp.json
# 手動測試 MCP server
npx -y @upstash/context7-mcp --help
```
移除:
```bash
claude plugin uninstall context7@claude-plugins-official
```
或在 Claude Code 對話中:
```text
/plugin uninstall context7@claude-plugins-official
```
## 備註
- Plugin 本體沒有鎖版本(顯示為 `unknown`),能力跟著 `@upstash/context7-mcp` 的 latest 走。
- Context7 是 Upstash 提供的線上服務,每次查詢會連到他們的 endpoint離線環境無法使用。
- 與 web search 的差異Context7 專注在 library docs結構化、版本化web search 則是通用搜尋;優先用 Context7 查文件,減少雜訊。