Skip to main content
Glama
yadu0323

AI Document Assistant MCP Server

by yadu0323

AI Document Assistant

RAG(Retrieval-Augmented Generation)、FAISS、MCP(Model Context Protocol)、Ollama、Streamlit を使用して構築されたAI搭載のドキュメントアシスタントです。

PDFドキュメントをアップロードして、その内容について質問したり、要約を生成したり、キーワードを抽出したり、Wikipedia連携を使用して一般的な知識の質問に回答したりできます。


機能

ドキュメントの質問応答

  • アップロードされたPDFドキュメントについて質問できます。

  • FAISSベクトル検索を使用して関連するドキュメントチャンクを取得します。

  • Ollamaを使用して自然言語の回答を生成します。

ドキュメントの要約

  • アップロードされたドキュメントの簡潔な要約を生成します。

キーワード抽出

  • ドキュメントから重要なキーワードやトピックを抽出します。

一般的な知識の質問

  • アップロードされたドキュメント以外の質問に対するWikipedia連携。

MCP統合

  • MCPを通じてツールを公開します。

  • MCPクライアントを通じてツールの検出と実行を可能にします。

PDFアップロードサポート

  • Streamlitインターフェースから直接PDFファイルをアップロードできます。

  • 埋め込みを自動的に作成し、検索用にドキュメントをインデックス化します。

Streamlitインターフェース

  • シンプルで使いやすいチャットインターフェース。

  • PDFをアップロードして、ドキュメントとリアルタイムにやり取りできます。


Related MCP server: MinerU Document Explorer

アーキテクチャ

PDF
 │
 ▼
PDF Loader
 │
 ▼
Text Chunking
 │
 ▼
Embeddings
 │
 ▼
FAISS Vector Store
 │
 ▼
Retrieval
 │
 ▼
LLM (Ollama)
 │
 ▼
Answer Generation

技術スタック

バックエンド

  • Python

LLM

  • Ollama

  • Qwen 2.5 Coder 7B

ベクトルデータベース

  • FAISS

埋め込み

  • Sentence Transformers

プロトコル

  • MCP(Model Context Protocol)

フロントエンド

  • Streamlit

外部知識

  • Wikipedia API


プロジェクト構造

AI-Document-Assistant/
│
├── datas/
│
├── src/
│   ├── pdf_loader.py
│   ├── chunker.py
│   ├── embeddings.py
│   ├── vector_store.py
│   └── rag_store.py
│
├── tools/
│   ├── search_tool.py
│   ├── summary_tool.py
│   ├── keyword_tool.py
│   ├── qa_tool.py
│   └── wiki_tool.py
│
├── app.py
├── agent.py
├── build_rag.py
├── mcp_client.py
├── mcp_server.py
├── requirements.txt
├── README.md
└── .gitignore

インストール

リポジトリのクローン

git clone https://github.com/yourusername/AI-Document-Assistant.git

cd AI-Document-Assistant

仮想環境の作成

python -m venv .venv

環境のアクティベート

Windows:

.venv\Scripts\activate

Linux/macOS:

source .venv/bin/activate

依存関係のインストール

pip install -r requirements.txt

Ollamaのインストール

Ollamaをダウンロードしてインストールします:

https://ollama.com

モデルをプルします:

ollama pull qwen2.5-coder:7b

Ollamaを起動します:

ollama serve

アプリケーションの実行

streamlit run app.py

開く:

http://localhost:8501

動作の仕組み

ドキュメントに関する質問

例:

What is MySQL Workbench?

アシスタントは:

  1. 関連するドキュメントチャンクを検索します。

  2. FAISSを使用して一致するコンテキストを取得します。

  3. コンテキストをOllamaに送信します。

  4. 最終的な回答を生成します。


一般的な知識の質問

例:

Who is Elon Musk?

アシスタントは:

  1. 質問がドキュメント固有ではないことを検出します。

  2. Wikipediaを使用します。

  3. 簡潔な回答を返します。


MCPツール

利用可能なMCPツール:

document_search

関連するドキュメントチャンクを検索します。

document_summary

ドキュメントの要約を生成します。

document_keywords

重要なキーワードを抽出します。

ask_document

アップロードされたドキュメントに対する質問応答。

wiki_search

Wikipediaを使用した一般的な知識の検索。


今後の改善点

  • 複数PDFのサポート

  • チャット履歴のメモリ

  • 会話コンテキスト

  • ソースの引用

  • ハイブリッド検索(BM25 + ベクター検索)

  • 永続的なベクトルデータベース

  • Dockerデプロイメント

  • 認証とユーザー管理



著者

Yadu


Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP-based AI agent that retrieves and processes documents to answer queries using a RAG pipeline with LangChain and Claude models. It enables document indexing, context-aware retrieval, and multi-tool orchestration for research and knowledgebase applications.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to search, deep-read, and build knowledge bases from Markdown, PDF, DOCX, and PPTX documents via MCP tools for retrieval, document navigation, and ingestion.
    27 npm
    641
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables RAG (Retrieval-Augmented Generation) with tools for vector search, document access, and OpenAI integration, plus MySQL storage and file system operations via MCP.
    -