mcpField
S
Search Engine with RAG and MCP

Search Engine with RAG and MCP

ローカル
github.com/arkeodev検索279 週間前に更新

Search Engine with RAG and MCP について

Search Engine with RAG and MCPは、ウェブ検索、ページ取得、RAGを組み合わせて関連情報を返します。検索ワークフローやエージェントシステムの構築向けで、直接実行、エージェント、MCPサーバーの各モードと、ローカルまたはクラウドのLLMに対応します。

主な機能

  1. 01Exaによるウェブ検索
  2. 02FireCrawlによるウェブコンテンツ取得
  3. 03FAISSベクトルストアを使ったRAG
  4. 04直接実行・エージェント・サーバーモード
  5. 05OllamaとOpenAIのモデルに対応

活用シーン

  1. 01ウェブを検索して関連ページを取得
  2. 02エージェント型検索ワークフローの構築
  3. 03MCPサーバー経由で検索機能を提供

MCP 対応

サーバーモードでは、接続クライアントにMCPによる標準化されたツール呼び出しを提供します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

RAG と MCP を備えた検索エンジン

LangChain、Model Context Protocol(MCP)、Retrieval-Augmented Generation(RAG)、Ollama を組み合わせ、ウェブ検索や情報の取得、関連性の高い回答の提供が可能なエージェント型 AI システムを実現する、高性能な検索エンジンです。

特徴

  • Exa API を使用したウェブ検索機能
  • FireCrawl を使用したウェブコンテンツの取得
  • より関連性の高い情報を抽出する RAG(Retrieval-Augmented Generation)
  • ツールの呼び出しを標準化する MCP(Model Context Protocol)サーバー
  • Ollama 経由のローカル LLM と OpenAI 経由のクラウドベース LLM の両方をサポート
  • 直接検索、エージェントベースの検索、サーバーモードに対応する柔軟なアーキテクチャ
  • 包括的なエラー処理と適切なフォールバック
  • 型ヒントを備えた Python 3.13 以降
  • ウェブ操作を効率化する非同期処理

アーキテクチャ

このプロジェクトは、次の主要なコンポーネントを統合しています。

  1. 検索モジュール:Exa API でウェブを検索し、FireCrawl でコンテンツを取得します
  2. RAG モジュール:ドキュメントを埋め込み、チャンクに分割して、FAISS ベクトルストアに保存します
  3. MCP サーバー:ツールの呼び出しに標準化されたプロトコルを提供します
  4. エージェント:検索機能と RAG 機能を使用する LangChain ベースのエージェントです

プロジェクト構成

search-engine-with-rag-and-mcp/
├── LICENSE              # MIT License
├── README.md            # Project documentation
├── data/                # Data directories
├── docs/                # Documentation
│   └── env_template.md  # Environment variables documentation
├── logs/                # Log files directory (auto-created)
├── src/                 # Main package (source code)
│   ├── __init__.py      
│   ├── core/            # Core functionality
│   │   ├── __init__.py
│   │   ├── main.py      # Main entry point
│   │   ├── search.py    # Web search module
│   │   ├── rag.py       # RAG implementation
│   │   ├── agent.py     # LangChain agent
│   │   └── mcp_server.py # MCP server implementation
│   └── utils/           # Utility modules
│       ├── __init__.py
│       ├── env.py       # Environment variable loading
│       └── logger.py    # Logging configuration
├── pyproject.toml       # Poetry configuration
├── requirements.txt     # Project dependencies
└── tests/               # Test directory

はじめに

前提条件
  • Python 3.13 以降
  • Poetry(任意、開発用)
  • Exa と FireCrawl の API キー
  • (任意)ローカルにインストールした Ollama
  • (任意)OpenAI API キー
インストール
  1. リポジトリをクローンします
git clone https://github.com/yourusername/search-engine-with-rag-and-mcp.git
cd search-engine-with-rag-and-mcp
  1. 依存関係をインストールします
# Using pip
pip install -r requirements.txt

# Or using poetry
poetry install
  1. .env ファイルを作成します(参考として docs/env_template.md を使用してください)
使い方

このアプリケーションには、主に 3 つの動作モードがあります。

1. 直接検索モード(デフォルト)
# Using pip
python -m src.core.main "your search query"

# Or using poetry
poetry run python -m src.core.main "your search query"
2. エージェントモード
python -m src.core.main --agent "your search query"
3. MCP サーバーモード
python -m src.core.main --server

カスタムのホストとポートも指定できます。

python -m src.core.main --server --host 0.0.0.0 --port 8080
Ollama の使用(任意)

ローカルの埋め込みと LLM 機能に Ollama を使用するには、次の手順に従います。

  1. Ollama をインストールします:https://ollama.ai/
  2. モデルをプルします:
ollama pull mistral:latest
  1. .env ファイルで適切な環境変数を設定します:
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=mistral:latest

開発

このプロジェクトでは、次のベストプラクティスに従っています。

  • コードフォーマット:一貫したコードスタイルのために Black と isort を使用
  • 型チェック:静的型チェックに mypy を使用
  • リンティング:コード品質のチェックに flake8 を使用
  • テスト:単体テストと統合テストに pytest を使用
  • 環境管理:環境変数の管理に python-dotenv を使用
  • ロギング:コンソールとファイルの両方に構造化ログを出力

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。

謝辞

  • エージェントのフレームワークを提供する LangChain
  • ツールの呼び出しを標準化する Model Context Protocol
  • ローカル LLM 機能を提供する Ollama
  • ウェブ検索機能を提供する Exa
  • ウェブコンテンツの取得に使用する FireCrawl

コメント

MCP は初めてですか?

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

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