🔖

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.
Aprender Tech Blog

Discussion