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. 03存取 ChromaDB 文档
  4. 04语义相似度搜索
  5. 05按元数据筛选与批量处理

适用场景

  1. 01查询 LangChain、LlamaIndex 或 OpenAI 文档
  2. 02将文档写入向量数据库并检索
  3. 03按元数据筛选向量检索结果

MCP 相关

该 MCP 服务向客户端提供网页文档搜索,以及 ChromaDB 文档存储、检索、删除和检索器创建工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

使用 ChromaDB 向量数据库的 Web 搜索 MCP 服务

此 MCP 服务使用 LangChain 和 ChromaDB 提供 Web 搜索和向量数据库功能。

功能

Web 搜索
  • 搜索热门库的文档(LangChain、LlamaIndex、OpenAI)
  • 提取网页内容
向量数据库(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 .
  • 检查代码:ruff check .
  • 类型检查:mypy .

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。