Web Search MCP Server with ChromaDB Vector Database について
ウェブ検索と ChromaDB のベクトルデータベースを組み合わせた MCP サーバーです。ライブラリのドキュメント検索やベクトル文書の管理に使え、セマンティック検索、メタデータによる絞り込み、一括処理に対応します。
主な機能
- 01主要ライブラリのドキュメント検索
- 02ウェブページの内容抽出
- 03ChromaDB 文書の保存と取得
- 04セマンティック類似検索
- 05メタデータ絞り込みと一括処理
活用シーン
- 01LangChain、LlamaIndex、OpenAI の文書検索
- 02ベクトルデータベースへの文書追加と検索
- 03メタデータによる検索結果の絞り込み
MCP 対応
ウェブ文書検索と、ChromaDB 文書の保存・検索・削除、リトリーバー作成のツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
インストール方法は未掲載です
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ChromaDB ベクトルデータベースを使用した Web 検索 MCP サーバー
この MCP サーバーは、LangChain と ChromaDB を使用して、Web 検索およびベクトルデータベース機能を提供します。
機能
Web 検索
- 人気のライブラリ(LangChain、LlamaIndex、OpenAI)のドキュメントを検索します
- Web ページからコンテンツを抽出します
ベクトルデータベース(ChromaDB)
- ベクトル埋め込みを使ってドキュメントを保存・取得します
- セマンティック類似検索を実行します
- メタデータに基づいてドキュメントをフィルタリングします
- 効率化のためのバッチ操作に対応します
セットアップ
- 依存関係をインストールします:
pip install -e .
# or
uv pip install -e .
- 次の変数を含む
.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
- サーバーを実行します:
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 .
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。