Skip to main content
Glama
Unity-Billal-mesloub

MCP Documentation Server

MCP Registry npm version GitHub Stars Ask DeepWiki

MCP Documentation Server

AIコーディングエージェント向けのローカルファーストのドキュメント管理とセマンティック検索。 外部データベース不要、クラウドAPI不要、ベンダーロックインなし。

他のCLI専用のMCPサーバーとは異なり、これはフルWebダッシュボードを備えています。ブラウザからナレッジベースの閲覧、検索、アップロード、管理ができます。すべてのMCPツールはREST APIとしても公開されており、AIエージェントにシンプルでスキーマ不要のインターフェースを提供します。

  • 🏠 完全オフラインで動作 — OramaベクターDBとローカルAI埋め込み(Transformers.js)を使用

  • 🌐 内蔵Web UI — MCPサーバーと同時にポート3080で自動起動

  • 🔍 ハイブリッド検索 — 親子チャンキングによる全文+ベクター類似度

  • 🤖 オプションのAI検索 — 高度なドキュメント分析用のGoogle Gemini(独自キーを使用)

  • 📁 ドラッグ&ドロップアップロード — .txt、.md、.pdf 対応

  • 📦 MCP Registry に公開 — npxでインストール可能、クローン不要

クイックスタート

{
  "mcpServers": {
    "documentation": {
      "command": "npx",
      "args": ["-y", "@Unity-Billal-mesloub/mcp-documentation-server"]
    }
  }
}

🤖 エージェントスキル(REST API)— AIエージェントに推奨

すべてのMCPツールは、`` 上のREST APIからもアクセスできます。これはAIエージェント(Claude Code、OpenCode、Gemini CLI、Cursor)からの操作に推奨される方法です。MCPツールのスキーマを会話コンテキストに読み込むことを避け、応答JSONのみが入るためです。


  -H "Content-Type: application/json" \
  -d '{"query": "your search", "limit": 5}'

すぐに使えるスキルが skills/documentation-server/SKILL.md に含まれています。エージェントにすべてのエンドポイントを例付きで教えます。インストールするには:

npx skills add https://github.com/Unity-Billal-mesloub/mcp-documentation-server --skill documentation-server

基本的なワークフロー

  1. add_document を使用してドキュメントを追加するか、.txt / .md / .pdf ファイルをアップロードフォルダに置いて process_uploads を呼び出します。

  2. search_all_documents ですべてを検索するか、search_documents で単一のドキュメント内を検索します。

  3. get_context_window を使用して隣接するチャンクを取得し、LLMにより広いコンテキストを提供します。

Related MCP server: RAG MCP Server

ウェブUI

Webインターフェースは、MCPサーバー起動時にポート3080で自動的に起動します。Web UIから次のことができます:

  • 📊 ダッシュボード — すべてのドキュメントと統計の概要

  • 📄 ドキュメント — ドキュメントの閲覧、表示、削除

  • ➕ ドキュメント追加 — タイトル、コンテンツ、メタデータでドキュメントを作成

  • 🔍 全体検索 — すべてのドキュメントに対するセマンティック検索

  • 🎯 ドキュメント内検索 — 特定のドキュメント内を検索

  • 🤖 AI検索 — Geminiによる分析(GEMINI_API_KEY が設定されている場合)

  • 📁 ファイルアップロード — ファイルをドラッグ&ドロップしてナレッジベースに処理

  • 🪟 コンテキストウィンドウ — 特定のインデックスの周囲のチャンクを探索

MCPクライアントの設定

最小構成

{
  "mcpServers": {
    "documentation": {
      "command": "npx",
      "args": ["-y", "@Unity-Billal-mesloub/mcp-documentation-server"]
    }
  }
}

環境変数を使用(すべてオプション)

{
  "mcpServers": {
    "documentation": {
      "command": "npx",
      "args": ["-y", "@Unity-Billal-mesloub/mcp-documentation-server"],
      "env": {
        "MCP_BASE_DIR": "/path/to/workspace",
        "GEMINI_API_KEY": "your-api-key-here",
        "MCP_EMBEDDING_MODEL": "Xenova/all-MiniLM-L6-v2",
        "START_WEB_UI": "true",
        "WEB_HOST": "127.0.0.1",
        "WEB_PORT": "3080"
      }
    }
  }
}

すべての環境変数はオプションです。GEMINI_API_KEY がない場合、ローカル埋め込みベースの検索ツールのみが利用可能です。

MCPツール

サーバーは以下のツールを登録します(すべてZodスキーマで検証済み):

📄 ドキュメント管理

Tool

Description

add_document

ドキュメントを追加(タイトル、コンテンツ、オプションのメタデータ)

list_documents

すべてのドキュメントをメタデータとコンテンツプレビュー付きで一覧表示

get_document

IDでドキュメントの全コンテンツを取得

delete_document

ドキュメント、そのチャンク、データベースエントリ、関連ファイルを削除

📁 ファイル処理

Tool

Description

process_uploads

アップロードフォルダ内のすべてのファイルを処理(チャンキング+埋め込み)

get_uploads_path

アップロードフォルダの絶対パスを返す

list_uploads_files

アップロードフォルダ内のファイルをサイズと形式情報付きで一覧表示

get_ui_url

Web UIのURLを返す(例:http://localhost:3080)— ダッシュボードを開いたり、ブラウザからアップロードフォルダを特定するのに便利

🔍 検索

Tool

Description

search_documents

特定のドキュメント内でのセマンティックベクター検索

search_all_documents

ハイブリッド(全文+ベクター)クロスドキュメント検索

get_context_window

指定されたチャンクインデックスの周囲のチャンクウィンドウを返す

search_documents_with_ai

🤖 Geminiを使用したAI検索(GEMINI_API_KEY が必要)

設定

環境変数またはプロジェクトルートの .env ファイルで設定します:

Variable

Default

Description

MCP_BASE_DIR

~/.mcp-documentation-server

データ保存用のベースディレクトリ

MCP_EMBEDDING_MODEL

Xenova/all-MiniLM-L6-v2

埋め込みモデル名

GEMINI_API_KEY

—

Google Gemini APIキー(search_documents_with_ai を有効化)

MCP_CACHE_ENABLED

true

LRU埋め込みキャッシュの有効/無効

START_WEB_UI

true

false に設定すると内蔵Webインターフェースを無効化

WEB_HOST

127.0.0.1

Web UIのバインドアドレス(すべてのインターフェースに公開するには 0.0.0.0 を使用)

WEB_PORT

3080

Web UIのポート

MCP_STREAMING_ENABLED

true

大きなファイルのストリーミング読み取りを有効化

MCP_STREAM_CHUNK_SIZE

65536

ストリーミングバッファサイズ(バイト単位、64KB)

MCP_STREAM_FILE_SIZE_LIMIT

10485760

ストリーミングに切り替えるしきい値(10MB)

ストレージレイアウト

~/.mcp-documentation-server/     # Or custom path via MCP_BASE_DIR
├── data/
│   ├── orama-chunks.msp         # Orama vector DB (child chunks + embeddings)
│   ├── orama-docs.msp           # Orama document DB (full content + metadata)
│   ├── orama-parents.msp        # Orama parent chunks DB (context sections)
│   ├── migration-complete.flag   # Written after legacy JSON migration
│   └── *.md                     # Markdown copies of documents
└── uploads/                     # Drop .txt, .md, .pdf files here

埋め込みモデル

MCP_EMBEDDING_MODEL で設定:

Model

Dimensions

Notes

Xenova/all-MiniLM-L6-v2

384

デフォルト — 高速、良好な品質

Xenova/paraphrase-multilingual-mpnet-base-v2

768

推奨 — 最高品質、多言語

モデルは初回使用時にダウンロードされます(約80〜420 MB)。ベクターの次元はプロバイダーから自動的に決定されます。

⚠️ 重要: 埋め込みモデルを変更するには、すべてのドキュメントを再追加する必要があります。異なるモデルの埋め込みは互換性がありません。次元が変更されると、Oramaデータベースは自動的に再作成されます。

アーキテクチャ

Server (FastMCP, stdio)
  ├─ Web UI (Express, port 3080)
  │    └─ REST API → DocumentManager
  └─ MCP Tools
       └─ DocumentManager
            ├─ OramaStore          — Orama vector DB (chunks DB + docs DB + parents DB), persistence, migration
            ├─ IntelligentChunker  — Parent-child chunking (code, markdown, text, PDF)
            ├─ EmbeddingProvider   — Local embeddings via @xenova/transformers
            │    └─ EmbeddingCache — LRU in-memory cache
            └─ GeminiSearchService — Optional AI search via Google Gemini
  • OramaStore は3つのOramaインスタンスを管理します:ドキュメントのメタデータ/コンテンツ用、ベクター埋め込み付きの子チャンク用、親チャンク(コンテキストセクション)用です。すべてディスク上のバイナリファイルに永続化され、起動時に復元されます。

  • IntelligentChunker は親子チャンキングパターンを実装しています:ドキュメントはまず完全なコンテキスト(セクション、段落)を保持する大きな親チャンクに分割され、次に各親は正確なベクター検索のために小さな子チャンクにさらに分割されます。クエリ時には、結果は親ごとに重複排除され、LLMは一致したフラグメントとより広いコンテキストの両方を受け取ります。

  • EmbeddingProvider はローカル推論用のTransformers.jsモデルを遅延ロードします — API呼び出しは不要です。

開発

git clone https://github.com/Unity-Billal-mesloub/mcp-documentation-server.git
cd mcp-documentation-server
npm install
npm run dev       # FastMCP dev mode with hot reload
npm run build     # TypeScript compilation
npm run inspect   # FastMCP web UI for interactive tool testing
npm start         # Direct tsx execution (MCP server + web UI)
npm run web       # Run only the web UI (development)
npm run web:build # Run only the web UI (compiled)

コントリビューション

  1. リポジトリをフォークします

  2. フィーチャーブランチを作成します:git checkout -b feature/name

  3. メッセージは Conventional Commits に従ってください

  4. プルリクエストを開きます

サポート


スター履歴

Star History Chart

FastMCP、Orama、TypeScript で構築

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Provides AI assistants with a local knowledge base and research library, enabling semantic and full-text retrieval, memory persistence, and multi-agent collaboration via 58 MCP tools.
    76
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides tools for ingesting documents into a local vector database and retrieving relevant information via semantic search, enabling retrieval-augmented generation for MCP clients.
    6
    -
  • F
    license
    A
    quality
    D
    maintenance
    A local-first document retrieval engine that mounts as an MCP tool for agents to index files, search for relevant passages, and let the agent's own LLM answer.
    4
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables local knowledge base management with retrieval-augmented generation (RAG), providing semantic search, document reading, listing, and Q&A via MCP tools and REST endpoints, all running locally without cloud dependencies.
    MIT