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,以获取相关信息。它适用于构建搜索工作流或 Agent 系统,支持直接、Agent 和 MCP 服务模式,并可使用本地或云端 LLM。

主要功能

  1. 01使用 Exa 搜索网页
  2. 02使用 FireCrawl 获取网页内容
  3. 03通过 FAISS 向量存储运行 RAG
  4. 04支持直接、Agent 或服务模式
  5. 05支持 Ollama 和 OpenAI 模型

适用场景

  1. 01搜索网页并获取相关页面
  2. 02构建基于 Agent 的搜索工作流
  3. 03通过 MCP 服务提供搜索能力

MCP 相关

在服务模式下,它通过 MCP 向连接的客户端提供标准化工具调用。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

使用 RAG 和 MCP 的搜索引擎

一款功能强大的搜索引擎,整合 LangChain、Model Context Protocol(MCP)、检索增强生成(RAG)和 Ollama,打造能够搜索网络、检索信息并提供相关答案的 Agentic AI 系统。

功能

  • 使用 Exa API 搜索网络
  • 使用 FireCrawl 获取网页内容
  • 通过 RAG(检索增强生成)提取更相关的信息
  • MCP(Model Context Protocol)服务,支持标准化工具调用
  • 支持通过 Ollama 使用本地大模型,以及通过 OpenAI 使用云端大模型
  • 灵活的架构,支持直接搜索、基于 Agent 的搜索或服务模式
  • 完善的错误处理和优雅的回退机制
  • Python 3.13+,带类型提示
  • 异步处理,高效执行网络操作

架构

本项目整合了多个关键组件:

  1. 搜索模块:使用 Exa API 搜索网络,并使用 FireCrawl 获取内容
  2. RAG 模块:为文档生成嵌入、拆分文档,并将其存储在 FAISS 向量存储中
  3. MCP 服务:提供标准化的工具调用协议
  4. Agent:基于 LangChain 的 Agent,使用搜索和 RAG 功能

项目结构

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)
使用方法

应用有三种主要运行模式:

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. Agent 模式
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(可选)

如需使用 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 文件。

致谢

评论

支持 Markdown

第一次接触 MCP?

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

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