关于 Search Engine with RAG and MCP
Search Engine with RAG and MCP 结合网页搜索、内容抓取与 RAG,以获取相关信息。它适用于构建搜索工作流或 Agent 系统,支持直接、Agent 和 MCP 服务模式,并可使用本地或云端 LLM。
主要功能
- 01使用 Exa 搜索网页
- 02使用 FireCrawl 获取网页内容
- 03通过 FAISS 向量存储运行 RAG
- 04支持直接、Agent 或服务模式
- 05支持 Ollama 和 OpenAI 模型
适用场景
- 01搜索网页并获取相关页面
- 02构建基于 Agent 的搜索工作流
- 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+,带类型提示
- 异步处理,高效执行网络操作
架构
本项目整合了多个关键组件:
- 搜索模块:使用 Exa API 搜索网络,并使用 FireCrawl 获取内容
- RAG 模块:为文档生成嵌入、拆分文档,并将其存储在 FAISS 向量存储中
- MCP 服务:提供标准化的工具调用协议
- 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 密钥
安装
- 克隆代码仓库
git clone https://github.com/yourusername/search-engine-with-rag-and-mcp.git
cd search-engine-with-rag-and-mcp
- 安装依赖
# Using pip
pip install -r requirements.txt
# Or using poetry
poetry install
- 创建
.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 提供本地嵌入和大模型功能:
- 安装 Ollama:https://ollama.ai/
- 拉取模型:
ollama pull mistral:latest
- 在
.env文件中设置相应的环境变量:
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=mistral:latest
开发
本项目遵循以下最佳实践:
- 代码格式化:使用 Black 和 isort 保持代码风格一致
- 类型检查:使用 mypy 进行静态类型检查
- 代码检查:使用 flake8 确保代码质量
- 测试:使用 pytest 进行单元测试和集成测试
- 环境管理:使用 python-dotenv 管理环境变量
- 日志记录:将结构化日志同时记录到控制台和文件
许可证
本项目基于 MIT License 授权,详情请参阅 LICENSE 文件。
致谢
- 感谢 LangChain 提供 Agent 框架
- 感谢 Model Context Protocol 提供标准化的工具调用协议
- 感谢 Ollama 提供本地大模型功能
- 感谢 Exa 提供网络搜索功能
- 感谢 FireCrawl 提供网页内容获取功能
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。