Context7で最新のドキュメントを元にした回答を生成させる
Context7とは
Context7は、LLMに最新のライブラリやツールのドキュメント情報を提供するMCPサーバーです。トレーニングデータに含まれていない新しいバージョンの情報や、最新のAPIドキュメントを参照することで、より正確なコード生成や回答が可能になります。
LLMは、学習データに含まれていない最新のライブラリの仕様変更(例: 非推奨になったメソッドなど)を把握できず、古い記述方法でコードを生成してしまう場合があります。Context7は、こうした問題を解決するのに役立ちます。
導入方法
READMEにワンクリックで導入できるボタンが用意されており、これを利用するのが最もスムーズです。
以下に、マニュアルでの導入例をいくつか記載します。
Claude Code
claude mcp add context7 -- npx -y @upstash/context7-mcp
Cursor
設定ファイル( ~/.cursor/mcp.json
)に以下の内容を追加します。
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
}
}
}
使用方法
プロンプトの末尾に use context7
を追加することで、Context7が持つ最新のドキュメント情報を参照してLLMが回答を生成するようになります。
使用例 (Zod v4 でのスキーマ定義)
以下は、LLMがZod v3までの知識しか持っていない状況での比較例です。
Context7を使用しない場合
プロンプト
zod v4のスキーマ定義で「文字列かつ最低5文字以上」という制約を持たせ、かつエラーメッセージを任意の文字列にしたいです。これを満たすスキーマの例を出力してください。
LLMの出力を抜粋(エラーメッセージの指定方法が誤っている)
import { z } from 'zod';
const schema1 = z.string().min(5, { message: "5文字以上で入力してください" });
この場合、プロンプトではv4と指定していますが、LLMはv4の知識を持っていないためv3の書き方で出力しています。
Context7を使用した場合
プロンプト
zod v4のスキーマ定義で「文字列かつ最低5文字以上」という制約を持たせ、かつエラーメッセージを任意の文字列にしたいです。これを満たすスキーマの例を出力してください。 use context7
LLMの出力を抜粋(正確)
import { z } from "zod";
const schema = z.string().min(5, { error: "5文字以上で入力してください" });
Context7により最新のv4ドキュメントが参照され、正しい書き方({ error: "..." }
)で出力されています。
備考
MCPサーバーの利用要否はLLMが判断するため、Context7を使用してほしい場面で使用されない場合があります。
以下の設定をCursorのRulesやCLAUDE.mdに記載することで、Context7の使用を促すことができます(内容はREADMEから抜粋)
Always use context7 when I need code generation, setup or configuration steps, or
library/API documentation. This means you should automatically use the Context7 MCP
tools to resolve library id and get library docs without me having to explicitly ask.
Discussion