/ ディレクトリ / プレイグラウンド / mcp-documentation-server
● コミュニティ andrea9293 ⚡ 即起動

mcp-documentation-server

作者 andrea9293 · andrea9293/mcp-documentation-server

PDF、Markdown、テキストドキュメントをローカルのベクトルストアに投入し、ハイブリッド検索でAIに質問できます。クラウド不要。

andrea9293によるmcp-documentation-serverはローカルRAGサーバーです。Web UI(ポート3080)で .txt / .md / .pdf ファイルをドラッグ&ドロップ、またはツール経由で取り込めます。親子チャンキングによるフルテキスト+ベクトルのハイブリッド検索に対応。ビルトインのエンベディングで完全ローカル動作し、よりスマートな検索のためにオプションでGeminiキーを設定できます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

documentation-server.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "documentation-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "documentation-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "documentation-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "documentation-server": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "documentation-server",
      "command": "npx",
      "args": [
        "-y",
        "mcp-documentation-server"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "documentation-server": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcp-documentation-server"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add documentation-server -- npx -y mcp-documentation-server

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: mcp-documentation-server

新しいフレームワークのドキュメントをAIで検索可能にする

👤 新しいライブラリを導入する開発者 ⏱ ~20 min beginner

使うタイミング: 公式ドキュメントが膨大で、Claudeに根拠付きの引用で回答してほしいとき。

前提条件
  • mcp-documentation-serverがインストール済み — npx -y @andrea9293/mcp-documentation-server
フロー
  1. ドキュメントを取り込む
    ライブラリのドキュメント .md ファイルを http://localhost:3080 のダッシュボードにアップロードしてください。✓ コピーしました
    → ファイルがチャンクに処理される
  2. 的を絞った質問をする
    search_documentsで「ミドルウェアの設定方法」を検索し、ソースパス付きの上位3チャンクを返してください。✓ コピーしました
    → 引用付きの抜粋
  3. 根拠に基づいた統合的な質問をする
    それらのチャンクを基に、このフレームワークでミドルウェアの最小構成を書いてください。✓ コピーしました
    → 引用されたドキュメント行に裏付けられた動作するコンフィグ

結果: ソースを引用できるパーソナルなドキュメントアシスタント。

注意点
  • スキャン画像のPDFはOCR処理されない — アップロード前にocrmypdfなどのツールでOCR処理を行う
  • Geminiなしで大量のドキュメントを扱うとエンベディングにノイズが入る — オプションのGEMINI_API_KEYを設定すると高品質なセマンティック検索が利用可能
組み合わせ: filesystem

社内WikiのエクスポートデータをRAGソースにする

👤 Markdownエクスポートに対応したWikiを持つチーム ⏱ ~25 min beginner

使うタイミング: Notion/ConfluenceのコンテンツをMarkdownでエクスポート済みで、AIからアクセスしたいとき。

フロー
  1. process_uploadsで一括取り込み
    ./wiki-export/ に対してprocess_uploadsを実行し、すべての .md を処理してください。✓ コピーしました
    → フォルダごとのドキュメント数
  2. 全体検索
    search_all_documents: 'deployment runbook' — 上位5件。✓ コピーしました
    → ランク付きリスト

結果: ローカルでプライベートな検索可能Wiki。

個人の研究論文ライブラリを構築する

👤 研究者、学生 ⏱ ~30 min beginner

使うタイミング: ダウンロードした論文をDownloadsフォルダに溜めるのではなく、検索可能にしたいとき。

フロー
  1. PDFを投入する
    ~/Papers/ 内のすべてのPDFをdocumentation serverにアップロードしてください。✓ コピーしました
    → 論文がチャンク化・インデックス化される
  2. コーパス全体に対して質問する
    search_documents: 'attention variants with lower quadratic cost' — 著者名+年を返してください。✓ コピーしました
    → 引用付きの抜粋

結果: 自分の論文コレクションに対するローカル版ミニPerplexity。

組み合わせ

他のMCPと組み合わせて10倍の力を

documentation-server + filesystem

監視フォルダからの取り込みを自動化

~/Papers/Inbox に新しいPDFが追加されるたびに、process_uploadsでdocumentation serverに取り込んでください。✓ コピーしました
documentation-server + swarmvault

比較:documentation-serverは素早い取り込み向け、swarmvaultは構造化Wikiの構築向け

研究PDFを両方のシステムに取り込み、同じクエリで検索品質を比較してください。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
add_document title, content, metadata? プログラムによる取り込み free (local embeddings)
list_documents (none) インデックス済みの内容を確認 free
get_document id 特定のドキュメントを取得 free
delete_document id 不要なドキュメントの削除 free
search_documents query, top_k? 特定のドキュメントセット内を検索 free
search_all_documents query, top_k? 全体に対するRAGクエリ free
get_context_window chunk_id 狭い検索結果をより広いコンテキストに展開 free
search_documents_with_ai query ワンショットの回答合成 Gemini call (needs key)
process_uploads path?: str アップロードフォルダからの一括インポート free

コストと制限

運用コスト

APIクォータ
ローカル利用なら不要。GEMINI_API_KEY設定時はGeminiの使用量が発生
呼び出しあたりのトークン
検索はtop_kに応じて500〜3000トークンを返す
金額
無料。Geminiを有効にした場合は呼び出しごとに課金
ヒント
探索的な作業ではGeminiをスキップしてください。既知のアイテム検索にはローカルエンベディングで十分です。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: GEMINI_API_KEY(オプション)を環境変数に設定
データ送信先: Geminiを有効にしない限りローカルのみ。ダッシュボードはポート3080

トラブルシューティング

よくあるエラーと対処法

Port 3080 in use — ポート3080が使用中

WEB_PORT環境変数で別のポートを指定してください。

確認: lsof -i :3080
PDF parse error — PDF解析エラー

パスワード保護またはスキャンされたPDFは失敗します。パスワードを解除するか、先にOCR処理を行ってください。

確認: Try a plain PDF
search returns empty — 検索結果が空

list_documentsでドキュメントが取り込まれているか確認してください。空の場合はprocess_uploadsを再実行してください。

確認: list_documents

代替案

mcp-documentation-server 他との比較

代替案代わりに使う場面トレードオフ
swarmvault単なる検索ではなく、構造化されたWiki+ナレッジグラフが必要なときより重く、初期セットアップに手間がかかる
Cloud RAG (Pinecone, Weaviate)チーム共有やスケーラビリティが必要なとき有料。データがローカルマシンから外部に送信される
llm-context.py永続的なドキュメント検索ではなく、タスクごとのコンテキストが必要なとき解決する問題が異なる

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る