mcpField
D
devdocs-mcp

devdocs-mcp

ローカル
github.com/madhan-g-p開発ツール1329 週間前に更新

devdocs-mcp について

DevDocs-MCPは、DevDocs.ioのバージョン固定ドキュメントをコーディングエージェントに提供するローカルMCPサーバーです。プロジェクトの依存関係に合わせて内容を絞り込み、オフライン検索用にキャッシュします。

主な機能

  1. 01依存関係に応じたドキュメントのバージョン選択
  2. 02オフライン利用向けのドキュメントキャッシュ
  3. 03ランキング付きファジー検索
  4. 04構造化されたドキュメント出力
  5. 05SQLiteによるメタデータ管理

活用シーン

  1. 01プロジェクト依存関係のAPIドキュメントを検索
  2. 02インターネット接続なしでキャッシュ済み文書を検索
  3. 03コーディング中のバージョン混同を防止

MCP 対応

MCPサーバーとしてドキュメントの取り込みと検索ツールを提供します。stdioに加え、リモートクライアント向けのHTTP SSEに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"madhan-g-p-devdocs": {
"command": "npx",
"args": [
"-y",
"@madhan-g-p/devdocs-mcp-server"
]
}
}
}
起動コマンドnpx -y @madhan-g-p/devdocs-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@madhan-g-p/devdocs-mcp-server1.0.0

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
limitnumberいいえ返す結果の最大数(デフォルトは 5)
querystringはい検索クエリ(例:“react hooks”“python list”)
projectIdstringいいえプロジェクトの依存関係に関連するドキュメントを優先するための任意のプロジェクト ID

詳細

DevDocs-MCP:AI エージェント向けドキュメントの信頼できる情報源

README の画像 README の画像

ローカルでバージョンを認識した信頼できるドキュメントを使い、AI のハルシネーションをなくしましょう。

DevDocs-MCP は、DevDocs.io を情報源とする、バージョンを固定した決定論的なドキュメントを AI アシスタント(Claude、RooCode、Cline、Copilot など)に提供する Model Context Protocol(MCP)サーバーです。ローカルのドキュメントインテリジェンスレイヤーとして機能し、ネットワーク遅延や学習データの変化に左右されることなく、エージェントが常に正しい API コンテキストを利用できるようにします。

このサーバーは、MCP が定める提案中の MCP サーバー標準に準拠しています。この標準は、Anthropic、OpenAI、Google などのプロバイダーが提供するものを含め、エコシステム全体の AI ツールやエージェントに採用されつつあります。


⚠️ プロジェクトのステータスに関するお知らせ ⚠️ このプロジェクトは現在、活発に開発を進めています。既存の機能のテストに加え、最適なキャッシュ、最新ドキュメントの自動更新およびリクエストに応じた更新、最適なクエリ処理など、さらに多くの新機能を実装する必要があります。設計上の決定、API、構成は、開発者コミュニティからの強い意見、レビュー、フィードバックを受けて進化していく予定です。このプロジェクトを正しい方向へ導くため、議論、批評、貢献を心より歓迎します。


📑 目次

  1. 概要
  2. 主な機能
  3. クイックスタート
  4. インストールとセットアップ
  5. AI エージェントの設定
  6. 詳しく読む

🎯 概要

このプロジェクトとは
  • NestJS(TypeScript)で記述されたローカル MCP サーバーです。
  • ドキュメントのメタデータとコンテンツに関する決定論的な情報源です。
  • DevDocs をオフラインでキャッシュする遅延取り込みエンジンです。
  • package.json のバージョンにドキュメントを固定する、プロジェクトを認識したコンテキストマネージャーです。
このプロジェクトではないもの
  • ❌ AI エージェントやコード生成ツールではありません。
  • ❌ ウェブスクレイパーではありません(構造化された DevDocs データセットを使用します)。
  • ❌ DevDocs UI の代替ではありません。
  • ❌ ホスト型 SaaS ではありません(100% ローカルで実行されます)。
このプロジェクトが存在する理由(課題)

最新の AI コーディングエージェントは、主に次の 3 つの課題に直面しています。

  1. ハルシネーション:API のシグネチャを推測したり、非推奨のメソッドを使用したりします。
  2. 遅延:クエリのたびに最新のウェブドキュメントを取得すると、時間がかかります。
  3. バージョンのずれ:React 18 と React 19 の機能を取り違えます。

解決策:DevDocs-MCP は、ローカルストレージから取得した「ジャストインタイム」のドキュメントを、プロジェクト固有の依存関係のバージョンに合わせて絞り込んで提供します。

メンタルモデル

DevDocs-MCP は、IDE エージェントとドキュメントの情報源の間に立つミドルウェアとして機能します。

graph TD
    Agent["AI Agents"] -->|MCP Search/Explain| Server["DevDocs-MCP Server"]
    Server -->|Metadata| DB[(SQLite - sql.js)]
    Server -->|Content| FS[Local Disk - JSON Cache]
    Server -.->|Lazy Fetch| Web[DevDocs.io API]

🚀 主な機能

  • オフラインファースト:ドキュメントはローカルにキャッシュされるため、取り込み後はインターネット接続が不要です。
  • ランキング付きあいまい検索:「intersection observer」などの関連項目をすぐに見つけられます。
  • バージョン認識:プロジェクト内の特定のライブラリバージョンに自動で対応付けます。
  • Node のみのアーキテクチャ:sql.js を使用するため、ネイティブ依存関係はありません(Python/C++ のビルド手順は不要です)。
  • 構造化された出力:LLM に最適化された、整理されたコンテンツを返します。

⚡ クイックスタート

  1. クローンとインストール
git clone https://github.com/madhan-g-p/DevDocs-MCP.git
cd DevDocs-MCP
pnpm install
  1. 環境を設定
cp .env.example .env
# Edit .env: Set DEVDOCS_DATA_PATH to where you want to store docs.
  1. ビルドして実行
pnpm build
pnpm start:prod

注: 開発およびコントリビューションでは、必ず pnpm を使用してください。


🛠️ インストールとセットアップ

DevDocs-MCP は、pnpm による手間のかからないセットアップに最適化されています。Node のみで動作するプロジェクトです。

前提条件
  • Node.js 18 以上(18.x および 20.x でテスト済み)。
🐳 Docker の使用

DevDocs-MCP は、軽量でデータを永続化できるように設計されています。大規模なドキュメントデータセットをダウンロードしてキャッシュするため、データボリュームを適切に管理することが重要です。

方法 A:Docker Compose(動的かつ永続的)

こちらが推奨される方法です。.env ファイル内の DEVDOCS_VOLUME_SOURCE 変数を使って、3 種類のストレージモードを利用できます。

  1. .env で使用するストレージを設定します:

    # モード 1:名前付きボリューム(デフォルト — Docker が管理)
    DEVDOCS_VOLUME_SOURCE=devdocs_data
    
    # モード 2:ホストパス(Docker の外部 — ローカルフォルダー)
    # DEVDOCS_VOLUME_SOURCE=./my-docs-storage
    
  2. サーバーを起動します:

    docker compose up -d
    

柔軟性:コンテナーを起動するたびに、.env ファイルの DEVDOCS_VOLUME_SOURCE を変更するだけで、新しいボリューム(新たに開始する場合)または既存のボリューム(データを保持する場合)を指定できます。mcp.db(データベースライブラリ)と data/(ダウンロードしたドキュメント)は、どちらもこのボリューム内に保存されます。

方法 B:Docker Run(手動)

Docker Hub から公開イメージを直接実行する場合は、次の手順を使用してください:

docker run -d -p 3000:3000 \
  -v "devdocs_data:/app/data" \
  --name devdocs-mcp \
  madhandock1/devdocs-mcp:latest
💾 データ戦略

このプロジェクトでは、/app/data を単一のマウントポイントとして使用し、次のものを格納します:

  • /app/data/mcp.db:SQLite レジストリ。
  • /app/data/docs/:キャッシュされたドキュメントファイル。 この統一された構成により、フォルダーまたはボリュームを移動するだけで、ドキュメントデータ一式を簡単にバックアップまたは移動できます。
設定(.env)
変数説明デフォルト
DEVDOCS_DATA_PATHダウンロードしたドキュメントの JSON を保存するパス。./data
MCP_DB_PATHSQLite メタデータデータベースのパス。mcp.db
LOG_LEVELログの詳細度(debug、info、warn、error)。info
ドキュメントの取り込み

サーバーをエージェントに接続したら、ingest ツールを使って、使用するスタックに対応するドキュメントをダウンロードします: サーバーが起動して稼働すると、エージェントが利用可能なツールを一覧表示し、それに応じて判断するはずです。

{
  "dependencies": {
    "react": "18.2.0",
    "typescript": "5.0.0"
  }
}

注意:取り込みに使用する Devdocs の取得 URL は、src/config/constants.ts で定義されています。現在、この URL は正しく、公式にサポートされているパスを指しています。devdocs コミュニティが将来このパスを変更した場合は、それに応じて設定を更新する必要がある可能性があります。
この方法ではウェブスクレイピングは行いません。DevDocs 自体でユーザーがドキュメントをダウンロードする方法と同様に、オフライン利用向けに DevDocs が提供する、同じサポート対象の仕組みに従います。


🤖 AI エージェントの設定

RooCode / Cline / Claude Desktop(推奨:STDIO)

これを mcp_settings.json に追加します。cwd(現在の作業ディレクトリ)を設定すると、サーバーが .env ファイルから設定を自動的に読み込むため、データの保存に相対パスを使用できます。

{
  "mcpServers": {
    "devdocs": {
      "command": "node",
      "args": ["dist/main.js"],
      "cwd": "file://path/to/your/DevDocs-MCP"
    }
  }
}

ヒント:cwd にはプロジェクトの絶対パスを使用してください。サーバーが .env を見つけて、そこで定義した DEVDOCS_DATA_PATH と MCP_DB_PATH(例:./data または mcp.db)を使用するため、セットアップを移植可能にできます!

リモート/ウェブクライアント(HTTP SSE)

ポートを介してサーバーを公開する必要がある場合(本番環境またはリモート環境でのセットアップ):

  1. ポートフラグを付けてサーバーを起動します:
    node dist/main.js --port 3000
    
  2. クライアントを設定します:
    • SSE URL:http://your-server:3000/mcp/sse
    • 種類:SSE(ほとんどの MCP クライアントでサポートされています。少なくともそうだと思います)

📖 さらに詳しく


このプロジェクトは、@Nathaniel Whiteinge による devdocs-local、 devdocs-local-demo に着想を得ています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。