context について
context は、AI エージェント向けのローカル文書検索 MCP サーバーです。コミュニティレジストリや任意のソースからバージョンに対応したドキュメントを取得し、SQLite データベースに保存してオフラインで検索できます。
主な機能
- 01コミュニティレジストリのドキュメントパッケージ検索
- 02リポジトリ、ディレクトリ、Web サイトからのパッケージ作成
- 03ローカル SQLite データベースの検索
- 04オフラインでの利用
- 05CLI によるパッケージの導入、管理、共有
活用シーン
- 01特定バージョンのライブラリドキュメントの参照
- 02社内または非公開ライブラリのパッケージ作成
- 03オフラインでのローカル文書検索
- 04チームメンバー間でのパッケージ共有
MCP 対応
MCP サーバーとして対応するエージェントに接続し、必要に応じてレジストリからドキュメントパッケージを取得してローカル検索します。HTTP トランスポートでも実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Context
AI エージェント向けの最新ドキュメント — ローカルで即座に利用でき、すぐに使えます。
AI エージェントは古いドキュメントをもとにトレーニングされています。ライブラリが新しいバージョンをリリースしても、AI はそれを知らず、自信満々に間違った回答をします。
// Your AI, mass-trained on AI SDK v5 docs, will suggest:
import { Experimental_Agent as Agent, stepCountIs } from 'ai';
// But v6 changed the API entirely:
import { ToolLoopAgent } from 'ai';
解決策は、プロンプトを改善することではありません。AI に適切なドキュメントを与えることです。
仕組み
Context は、すでに構築済みですぐに使える人気ライブラリ 100 種以上を備えたコミュニティ主導のパッケージレジストリを基盤とする MCP サーバーです。AI エージェントがドキュメントを必要とすると、レジストリを検索し、適切なパッケージをダウンロードして、ローカルでクエリを実行します。すべて自動で行われます。
インストールは一度だけ。設定も一度だけ。あとは AI に尋ねるだけです。
:rocket: クイックスタート
1. インストール
npm install -g @neuledge/context
2. AI エージェントに接続する
Context は MCP 互換のあらゆるエージェントで動作します。利用するものを選んでください。
Claude Code
claude mcp add context -- context serve
Claude Desktop
設定ファイルに追加します。
- Linux:
~/.config/claude/claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"context": {
"command": "context",
"args": ["serve"]
}
}
}
変更を適用するには、Claude Desktop を再起動してください。
Cursor
~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト固有)に追加します。
{
"mcpServers": {
"context": {
"command": "context",
"args": ["serve"]
}
}
}
または、Settings > Developer > Edit Config を使って、UI からサーバーを追加できます。
OpenAI Codex
CLI を使う場合
codex mcp add context -- context serve
または、~/.codex/config.toml(グローバル)または .codex/config.toml(プロジェクト固有)に追加します。
[mcp_servers.context]
command = "context"
args = ["serve"]
変更を適用するには、OpenAI Codex を再起動してください。
VS Code (GitHub Copilot)
GitHub Copilot を備えた VS Code 1.102 以降が必要です
ワークスペースの .vscode/mcp.json に追加します。
{
"servers": {
"context": {
"type": "stdio",
"command": "context",
"args": ["serve"]
}
}
}
ファイルに表示される Start ボタンをクリックし、Copilot Chat でエージェントモードを使用してください。
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します。
- Windows:
%USERPROFILE%\.codeium\windsurf\mcp_config.json
{
"mcpServers": {
"context": {
"command": "context",
"args": ["serve"]
}
}
}
または、Windsurf Settings > Cascade > MCP Servers から設定できます。
Zed
Zed の settings.json に追加します(cmd+, または ctrl+, を 2 回押します)。
{
"context_servers": {
"context": {
"command": {
"path": "context",
"args": ["serve"]
}
}
}
}
Agent Panel の設定で、サーバーに緑色のインジケーターが表示されていることを確認してください。
Goose
goose configure を実行して Command-line Extension を選択するか、~/.config/goose/config.yaml に直接追加します。
extensions:
context:
type: stdio
command: context
args:
- serve
timeout: 300
OpenCode
~/.config/opencode/opencode.json に追加します。
{
"mcp": {
"context": {
"command": ["context", "serve"],
"enabled": true,
"type": "local"
}
}
}
これだけです。質問するだけです。
「Next.js でミドルウェアを作成するには?」
エージェントがコミュニティレジストリを検索し、ドキュメントをダウンロードして、正確なバージョン固有の情報を回答します。すべて自動で行われるため、レジストリのパッケージに対して手動で context install を実行する必要はありません。
コミュニティレジストリ
レジストリがあることで、Context はインストールしてすぐに使えます。コミュニティが管理する、100 以上の構築済みドキュメントパッケージが増え続けています。AI 対応ドキュメント向けのパッケージマネージャーのようなものです。
現在利用できる人気のパッケージ:
| カテゴリ | ライブラリ |
|---|---|
| フレームワーク | Next.js、Nuxt、Astro、SvelteKit、Remix、Hono |
| React エコシステム | React、React Router、TanStack Query、Zustand、Redux Toolkit |
| データベースと ORM | Prisma、Drizzle、Mongoose、TypeORM |
| スタイリング | Tailwind CSS、shadcn/ui、Styled Components |
| テスト | Vitest、Playwright、Jest、Testing Library |
| API と認証 | tRPC、GraphQL、NextAuth.js、Passport |
| AI と LLM | LangChain、AI SDK、OpenAI、Anthropic SDK |
誰でも貢献できます。 お使いのライブラリが掲載されていない場合は、PR を送信して追加してください。あなたの貢献は、すべての Context ユーザーに役立ちます。
ローカルで使う理由
Context はすべてお使いのマシン上で動作します。ドキュメントは一度ダウンロードされ、~/.context/packages/ にコンパクトな SQLite データベースとして保存されます。その後は、すべてローカルで処理されます。
- 高速 — ローカルの SQLite クエリは 10 ミリ秒未満で返されます
- オフライン — 飛行機内やカフェなど、どこでも使えます
- プライベート — クエリがマシンの外に送信されることはありません
- 無料 — サブスクリプション、レート制限、使用上限はありません
- 安定 — サービス停止、API の変更、サービス終了はありません
レジストリ以外のソース
レジストリには人気のオープンソースライブラリが揃っていますが、Context はあらゆるドキュメントソースにも対応しています。context add を使って、プライベートリポジトリ、社内ライブラリ、llms.txtに対応したウェブサイト、またはレジストリに未掲載のものからパッケージを構築できます。
# Build from a git repository
context add https://github.com/your-company/design-system
# Build from a local directory
context add ./my-project
# Specific version tag
context add https://github.com/vercel/next.js/tree/v16.0.0
# Build from a website's llms.txt
context add https://svelte.dev
構築したパッケージはチームと共有できます。ポータブルな .db ファイルなので、すぐにインストールできます。
# Export a package
context add ./my-project --name my-lib --pkg-version 2.0 --save ./packages/
# Teammate installs it (no build step needed)
context add ./packages/[email protected]
再構築とインストールでは、置き換え用のファイルを保存先の隣に用意し、インストール済みパッケージを置き換える前に、ファイルを閉じて検証します。ビルド、ダウンロード、置き換えに失敗しても、以前のパッケージは引き続き利用できます。一時ファイルはパッケージの検出対象から除外されます。オペレーティングシステムが開いているファイルの置き換えをブロックする場合(Windows など)は、リーダーを閉じてからインストールを再試行してください。
:whale: Docker
複数のクライアントでの利用や Kubernetes へのデプロイ向けに、コンテナ化された HTTP サーバーとして Context を実行します。
# Run from the repository root (required for the monorepo lockfile)
docker build -t context:local -f packages/context/Dockerfile .
docker run --rm -p 8080:8080 context:local
コンテナはポート 8080 で HTTP トランスポートを使って Context を起動し、http://localhost:8080/mcp からアクセスできます。このイメージでは、ネイティブモジュールとの互換性を確保するため、node:22-bookworm-slim を使用したマルチステージビルドを採用しています。
:books: CLI リファレンス
context browse <package>
レジストリサーバーで利用できるパッケージを検索します。
# Browse by registry/name
context browse npm/next
# Output:
# npm/[email protected] 3.4 MB The React Framework for the Web
# npm/[email protected] 3.2 MB The React Framework for the Web
# ...
#
# Found 12 versions. Install with: context install npm/next
# Browse with just a name (defaults to npm)
context browse react
context install <registry/name> [version]
レジストリサーバーから構築済みパッケージをダウンロードしてインストールします。
# Install latest version
context install npm/next
# Install a specific version
context install npm/next 15.0.4
# Install from other registries
context install pip/django
context add <source>
ソースからドキュメントパッケージをビルドしてインストールします。レジストリにないライブラリや、プライベート/社内ドキュメントに使用します。ソースの種類は自動検出されます。
Git リポジトリから:
GitHub、GitLab、Bitbucket、Codeberg、または任意の git URL に対応しています。
# HTTPS URLs
context add https://github.com/vercel/next.js
context add https://gitlab.com/org/repo
context add https://bitbucket.org/org/repo
# Specific tag or branch
context add https://github.com/vercel/next.js/tree/v16.0.0
# SSH URLs
context add [email protected]:user/repo.git
context add ssh://[email protected]/user/repo.git
# Custom options
context add https://github.com/vercel/next.js --path packages/docs --name nextjs
ローカルディレクトリから:
ローカルフォルダー内のドキュメントからパッケージをビルドします。
# Auto-detects docs folder (docs/, documentation/, doc/)
context add ./my-project
# Specify docs path explicitly
context add /path/to/repo --path docs
# Custom package name and version
context add ./my-lib --name my-library --pkg-version 1.0.0
| オプション | 説明 |
|---|---|
--pkg-version <version> | カスタムバージョンラベル |
--path <path> | リポジトリ/ディレクトリ内のドキュメントフォルダーへのパス |
--name <name> | カスタムパッケージ名 |
--save <path> | パッケージのコピーを指定したパスに保存します |
共有用にパッケージを保存する:
# Save to a directory (auto-names as [email protected])
context add https://github.com/vercel/next.js --save ./packages/
# Save to a specific file
context add ./my-docs --save ./my-package.db
ウェブサイトから(llms.txt):
多くのウェブサイトでは、AI 対応ドキュメントを含む llms.txt ファイルを公開しています。Context はこれを自動検出して取得します。サイトがインライン形式の llms-full.txt ではなくリンクの一覧である llms.txt のみを提供している場合、Context は各リンクをたどって、リンク先のドキュメントを取得します。
# Auto-fetches llms-full.txt or llms.txt from the site
context add https://svelte.dev
context add https://mui.com/material-ui
# Direct URL to a specific llms.txt file
context add https://svelte.dev/docs/svelte/llms.txt
# Custom package name
context add https://react-aria.adobe.com --name react-aria
有料アカウントを持っているプラットフォームの購読者限定コンテンツについては、以下の context auth を参照してください。
任意の URL から(ブログ記事、記事、raw Markdown):
llms.txt が見つからない場合、Context はページを直接取得します。HTML ページには読みやすさ抽出ツール(defuddle)が適用されるため、購読を促す CTA、ナビゲーション、コメントウィジェットがパッケージに含まれることはありません。
# A blog post
context add https://overreacted.io/things-i-dont-know-as-of-2018/
# Raw Markdown from GitHub
context add https://raw.githubusercontent.com/neuledge/context/main/README.md --name context-readme
URL から:
context add https://cdn.example.com/[email protected]
ローカルファイルから:
context add ./[email protected]
適切なドキュメントリポジトリを見つける:
多くの人気プロジェクトでは、メインのコードベースとは別のリポジトリにドキュメントを保管しています。見つかったセクションが少ないという警告が表示された場合、ドキュメントは別の場所にある可能性があります。
# Example: React's docs are in a separate repo
context add https://github.com/facebook/react
# ⚠️ Warning: Only 45 sections found...
# The warning includes a Google search link to help find the docs repo
# The actual React docs repository:
context add https://github.com/reactjs/react.dev
ドキュメントリポジトリによくあるパターン:
project-docs(例:prisma/docs)project.devまたはproject.io(例:reactjs/react.dev)project-website(例:expressjs/expressjs.com)
CLI がドキュメントのセクションが少ないことを検出すると、適切なリポジトリを見つけるための Google 検索リンクが表示されます。
context list
インストール済みパッケージを表示します。
$ context list
Installed packages:
[email protected] 4.2 MB 847 sections
[email protected] 3.9 MB 790 sections
react@18 2.1 MB 423 sections
Total: 3 packages (10.2 MB)
同じパッケージの複数のバージョンを並行してインストールできます。各名前は新しい順に表示されます。名前のみを指定するコマンド(context query react、context serve --libs react)では、インストール済みの中で最も新しいバージョンが使用されます。
context remove <name>
パッケージを削除します。特定のバージョンを削除するには、name@version を指定します。名前のみの指定が受け付けられるのは、そのパッケージのバージョンが1つだけインストールされている場合に限られます。それ以外の場合はインストール済みバージョンが一覧表示され、いずれかを選択するよう求められるため、推測で削除されることはありません。
context remove nextjs
context remove [email protected]
context auth
プラットフォームごとの Cookie またはヘッダーを保存すると、正規のアカウントを持つ購読者限定コンテンツ(有料の Substack または Medium の購読など)を context add <url> で取得できます。認証情報は 0600 権限で ~/.context/auth.json に保存され、ドメインに基づいて照合されます(サブドメインに対しては、親ドメインを1階層までフォールバックとして使用します)。
# Store cookies for a domain
context auth add substack.com --cookies "substack.sid=YOUR_SID"
# Add a custom header too
context auth add medium.com --cookies "sid=..." --header "x-frontend: web"
# List configured auth
context auth list
# Remove auth
context auth remove substack.com
context serve
MCP サーバーを起動します(AI エージェントが使用します)。
# Stdio transport (default, for single-client MCP integrations)
context serve
# HTTP transport (for multi-client access over the network)
context serve --http
context serve --http 3000
context serve --http 3000 --host 0.0.0.0
# Restrict the session to a subset of installed packages
context serve --libs react [email protected]
| オプション | 説明 |
|---|---|
--http [port] | stdio の代わりに HTTP サーバーとして起動します(デフォルトのポート:8080) |
--host <host> | バインドするホスト(デフォルト:127.0.0.1) |
--libs <names...> | セッションで使用するインストール済みライブラリを固定のセットに制限します。各項目は名前(react。インストール済みのすべてのバージョンを公開)または name@version([email protected]。そのバージョンのみを公開)です。設定すると、search_packages と download_package は非表示になり、セッションで使用できるライブラリはそのリストに限定されます。グローバルに多数のパッケージをインストールしている場合に、プロジェクトごとに対象を限定するのに便利です。 |
HTTP トランスポートでは MCP Streamable HTTP プロトコルを使用し、ローカルネットワーク上の複数のクライアントが単一のサーバーインスタンスに接続できます。エンドポイントは http://<host>:<port>/mcp です。
stdio セッションは自動的に再読み込みされます。stdio の context serve に接続している間に、別途 context add または context remove を実行すると、サーバーのインストール済みパッケージリストが更新され、get_docs ツールが再読み込みされます。そのため、接続中の MCP クライアントは、サーバーに再接続したり再起動したりせずに、tools/list_changed 通知を通じて変更を反映できます。このライブ再読み込みは stdio のみで利用できます。--http で起動した HTTP サーバーはパッケージディレクトリを監視しないため、CLI で追加または削除したパッケージを反映するには再起動してください。
context query <library> <topic>
コマンドラインからドキュメントを直接検索します。テストやデバッグに便利です。
# Query a package (use name@version format from 'context list')
context query '[email protected]' 'middleware authentication'
# A bare name queries the highest installed version
context query nextjs 'middleware authentication'
# Returns the same JSON format as the MCP get_docs tool
トピックはそのままのキーワードとして扱われ、すべての語句に一致する結果が検索されます(AND)。句読点は単語の区切りになるため、ExecStart=、systemctl --user、spring.main.banner-mode をそのまま使用できます。アンダースコアは単語内に残るため、spring_boot は2つの単語ではなく識別子に一致します。AND、OR、NOT、NEAR などの単語もテキストとして検索されます。高度な FTS 構文には対応していません。
フレーズを検索するには、二重引用符で囲みます。たとえば、context query nextjs '"server components" rendering' のように指定します。フレーズ内の単語は、通常の検索ステミングが適用されたうえで、記載された順序で隣り合っている必要があります。閉じていない二重引用符は無視され、残りの単語がキーワードとして検索されます。トピックが空、または句読点のみの場合は、結果が返されません。これらのルールは MCP の get_docs にも適用されます。
:gear: アーキテクチャ
┌─────────────────────────────────────────────────────────┐
│ Your Machine │
│ │
│ ┌──────────┐ ┌──────────────────┐ ┌────────────┐ │
│ │ AI │ │ Context MCP │ │ ~/.context │ │
│ │ Agent │───▶│ Server │───▶│ /packages │ │
│ │ │ │ │ └────────────┘ │
│ └──────────┘ └────────┬─────────┘ │ │
│ │ ┌──────────┐ │
│ │ │ SQLite │ │
│ │ │ FTS5 │ │
│ │ └──────────┘ │
└───────────────────────────┼─────────────────────────────┘
│ (first use only)
▼
┌────────────────┐
│ Community │
│ Registry │
└────────────────┘
ライブラリについて初めて質問したとき:
- MCP サーバーがコミュニティレジストリを検索します
- ビルド済みのドキュメントパッケージ(SQLite の
.dbファイル)をダウンロードします ~/.context/packages/にローカル保存します
2回目以降:
- FTS5 の全文検索で関連セクションをローカル検索します
- スマートフィルタリングによって、結果をトークン予算内に収めます
- 10ms 未満で、AI に焦点を絞った正確なドキュメントを提供します
:question: よくある質問
Spring Boot、Django、Rails など、JavaScript 以外のフレームワークでも Context を使えますか?
はい! Context は言語に依存しません。Markdown(.md、.mdx)、AsciiDoc(.adoc)、reStructuredText(.rst)、HTML にネイティブ対応しているため、変換は不要です。
# Python - FastAPI (Markdown)
context add https://github.com/fastapi/fastapi --path docs/en/docs
# Python - Django (reStructuredText)
context add https://github.com/django/django --path docs
# Java - Spring Boot (AsciiDoc)
context add https://github.com/spring-projects/spring-boot --path spring-boot-project/spring-boot-docs/src/docs
# Rust - The Rust Book
context add https://github.com/rust-lang/book --path src
--path でドキュメントフォルダーを Context に指定すれば、残りは自動的に処理されます。
新しいエコシステム向けのパッケージ定義に貢献できますか?
はい!registry/ ディレクトリには、パッケージマネージャーごとに整理された YAML 定義があります。
registry/npm/— JavaScript/TypeScript(Next.js、React、Tailwind など)registry/pip/— Python(FastAPI、Flask、Django、Pydantic)registry/maven/— Java(Spring Boot、JUnit、Micrometer)registry/go/— 完全なモジュールパスによる Go モジュール(Cobra)
パッケージを追加するには、YAML ファイルを作成します。次の2種類のソースに対応しています。
Git ソース — バージョンタグでリポジトリをクローンします。
# registry/pip/my-library.yaml
name: my-library
description: "Short description of the library"
repository: https://github.com/org/my-library
versions:
- min_version: "2.0.0"
source:
type: git
url: https://github.com/org/my-library
docs_path: docs
tag_pattern: "v{version}"
ZIP ソース — URL から HTML ドキュメントをダウンロードします({version} プレースホルダーに対応)。
# registry/python/python.yaml
name: python
description: "Python programming language official documentation"
versions:
- versions: ["3.14", "3.13", "3.12"]
source:
type: zip
url: "https://docs.python.org/3/archives/python-{version}-docs-html.zip"
docs_path: "python-{version}-docs-html"
exclude_paths:
- "whatsnew/**"
- "changelog.html"
npm、PyPI、Maven Central、Hex、Go モジュールプロキシでは、バージョンの検出に対応しています。例については既存の定義を参照してください。
:wrench: 開発
# Install dependencies
pnpm install
# Build
pnpm build
# Test
pnpm test
# Lint
pnpm lint
:page_facing_up: License
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。