mcpField
W
Web Search MCP Server with ChromaDB Vector Database

Web Search MCP Server with ChromaDB Vector Database

ローカル
github.com/joao-santillo検索078 週間前に更新

Web Search MCP Server with ChromaDB Vector Database について

ウェブ検索と ChromaDB のベクトルデータベースを組み合わせた MCP サーバーです。ライブラリのドキュメント検索やベクトル文書の管理に使え、セマンティック検索、メタデータによる絞り込み、一括処理に対応します。

主な機能

  1. 01主要ライブラリのドキュメント検索
  2. 02ウェブページの内容抽出
  3. 03ChromaDB 文書の保存と取得
  4. 04セマンティック類似検索
  5. 05メタデータ絞り込みと一括処理

活用シーン

  1. 01LangChain、LlamaIndex、OpenAI の文書検索
  2. 02ベクトルデータベースへの文書追加と検索
  3. 03メタデータによる検索結果の絞り込み

MCP 対応

ウェブ文書検索と、ChromaDB 文書の保存・検索・削除、リトリーバー作成のツールを MCP クライアントに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

ChromaDB ベクトルデータベースを使用した Web 検索 MCP サーバー

この MCP サーバーは、LangChain と ChromaDB を使用して、Web 検索およびベクトルデータベース機能を提供します。

機能

Web 検索
  • 人気のライブラリ(LangChain、LlamaIndex、OpenAI)のドキュメントを検索します
  • Web ページからコンテンツを抽出します
ベクトルデータベース(ChromaDB)
  • ベクトル埋め込みを使ってドキュメントを保存・取得します
  • セマンティック類似検索を実行します
  • メタデータに基づいてドキュメントをフィルタリングします
  • 効率化のためのバッチ操作に対応します

セットアップ

  1. 依存関係をインストールします:
pip install -e .
# or
uv pip install -e .
  1. 次の変数を含む .env ファイルを作成します:
# Serper API for web search
USER_AGENT=Mozilla/5.0
SERPER_API_URL=https://google.serper.dev/search
SERPER_API_KEY=your_serper_api_key

# ChromaDB configuration
CHROMA_PERSIST_DIRECTORY=./chroma_db
EMBEDDING_MODEL_NAME=sentence-transformers/all-MiniLM-L6-v2

# Transport mode (stdio or sse)
TRANSPORT=stdio
  1. サーバーを実行します:
python main.py

利用可能なツール

Web 検索
  • get_docs(query: str, library: str):指定したライブラリのドキュメントを検索します
ベクトルデータベース(ChromaDB)
  • add_document_to_vectordb(content: str, metadata: Optional[Dict[str, Any]]):単一のドキュメントを ChromaDB に追加します
  • search_vectordb(query: str, top_k: int, filter_criteria: Optional[Dict[str, Any]]):ベクトルデータベースを検索します
  • delete_document_from_vectordb(document_id: str):ID を指定してドキュメントを削除します
  • batch_add_documents_to_vectordb(documents: List[Dict[str, Any]]):複数のドキュメントをバッチで追加します
  • create_retriever(search_type: str, search_kwargs: Optional[Dict[str, Any]]):ベクトルデータベース用のリトリーバーを作成します

使用例

# Add a document to the vector database
doc_id = await add_document_to_vectordb(
    content="This is a sample document about ChromaDB vector databases.",
    metadata={"source": "example", "category": "vector_db"}
)

# Search for similar documents
results = await search_vectordb(
    query="How do vector databases work?",
    top_k=2,
    filter_criteria={"category": "vector_db"}
)

# Delete a document
status = await delete_document_from_vectordb(document_id=doc_id)

# Add multiple documents at once
doc_ids = await batch_add_documents_to_vectordb([
    {
        "content": "Document 1 content",
        "metadata": {"source": "example", "category": "general"}
    },
    {
        "content": "Document 2 content",
        "metadata": {"source": "example", "category": "specific"}
    }
])

開発

  • コードをフォーマットします:black . および isort .
  • コードを lint します:ruff check .
  • 型をチェックします:mypy .

コメント

MCP は初めてですか?

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

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