Skip to main content
Glama
yadu0323

AI Document Assistant MCP Server

by yadu0323

AI Document Assistant

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

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


機能

ドキュメントの質問応答

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

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

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

ドキュメントの要約

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

キーワード抽出

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

一般的な知識の質問

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

MCP統合

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

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

PDFアップロードサポート

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

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

Streamlitインターフェース

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

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


アーキテクチャ

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


-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yadu0323/AI-Document-Assistant'

If you have feedback or need assistance with the MCP directory API, please join our Discord server