ReActMCP Web Search 是一个 MCP(模型上下文协议)服务器,它将网络搜索功能集成到您的 AI 助手框架中。它利用 Exa API 执行基本和高级网络搜索,返回实时的 Markdown 格式结果,包括标题、URL、发布日期和内容摘要。
此仓库是更广泛的 ReActMCP 项目的一部分,该项目连接了各种 MCP 工具和服务器,以增强您的 AI 助手的功能。
克隆仓库
git clone https://github.com/mshojaei77/ReActMCP.git
cd ReActMCP
创建虚拟环境(可选但推荐)
python -m venv venv
source venv/bin/activate # 在 Windows 上使用: venv\Scripts\activate
安装依赖
pip install -r requirements.txt
在项目根目录下创建一个 .env 文件,并至少包含以下变量:
EXA_API_KEY=your_exa_api_key_here
OPENAI_API_KEY=...
此密钥是使用 Exa API 进行网络搜索所必需的。
MCP 配置文件 mcp_config.json 定义了您的 MCP 服务器的设置和可用工具。提供了一个示例配置:
{
"websearch": {
"script": "web_search.py",
"encoding_error_handler": "ignore",
"description": "使用 Exa API 提供实时互联网搜索结果的网络搜索功能。支持基本和高级搜索,包括域名限制、文本包含要求和日期过滤等过滤选项。返回带有标题、URL、发布日期和内容摘要的格式化结果。",
"required_env_vars": ["EXA_API_KEY"],
"active": true
},
"settings": {
"model": "gpt-4o",
"system_prompt_path": "system_prompt.txt"
}
}
您可以通过修改默认结果数量或添加新的 MCP 工具来个性化或扩展此配置。
system_prompt.txt 文件配置了您的 AI 助手的行为和语气。它指导助手提供友好、引人入胜且信息丰富的回应,包括表情符号。提供了一个示例提示:
您是一个具有网络搜索能力的帮助、知识渊博的 AI 助手。您的目标是为用户提供准确、全面且最新的信息。
使用大量表情符号,使您的回应有趣且引人入胜。
## 可用的搜索工具
- `search_web`:基于查询返回结果的基本网络搜索
- `advanced_search_web`:具有域名、所需文本和日期范围过滤选项的高级搜索
## 回应问题的指南
1. 对于自训练数据以来可能发生变化的当前信息或事实,使用适当的搜索工具查找最新和相关的信息。
2. 使用 `search_web` 处理一般查询,使用 `advanced_search_web` 并应用适当的过滤器处理更具体的需求。
3. 制定精确的搜索查询以最大化结果的相关性。
4. 对于最近的信息,使用高级搜索中的 `max_age_days` 参数将结果限制为最近的出版物。
5. 当针对特定来源时,使用 `include_domains` 参数集中搜索。
6. 引用来源,包括来自搜索结果的 URL。
7. 对于不足或矛盾的结果,承认局限性并解释发现。
8. 将复杂主题分解为有组织的部分。
9. 提供争议话题的平衡观点。
10. 对不确定性保持透明,而不是编造信息。
11. 保持帮助、信息丰富且对话式的语气。
## 回应质量标准
您的回应应结构良好、事实准确且根据用户对主题的理解水平量身定制。在回应时间敏感或事实查询之前,使用网络搜索功能作为获取当前信息的主要工具。
请根据所需的助手行为调整系统提示。
MCP 服务器实现在 servers 目录中。要运行服务器,只需执行以下命令:
python servers/web_search.py
此命令将启动 MCP 服务器,该服务器监听请求并暴露以下工具:
在 web_search.py 中提供了一个测试函数 test_search()(目前被注释掉),用于演示搜索功能的基本用法。您可以通过取消注释测试执行块并使用 Python 的 asyncio 运行器来运行此测试:
if __name__ == "__main__":
import asyncio
# 取消以下行的注释以执行测试搜索
# asyncio.run(test_search())
mcp.run()
这将打印样本查询的搜索结果,帮助您验证工具是否按预期工作。
通过在配置中添加以下内容来配置 Claude Desktop 使用此服务器:
{
"mcpServers": {
"websearch": {
"command": "python",
"args": ["path/to/servers/exa_web_search.py"]
}
}
}
.env 文件已正确设置您的有效 Exa API 密钥。requirements.txt 文件)。如有必要,重新安装包。本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
欢迎贡献!如果您有建议、错误修复或改进,请提交问题或拉取请求。
愉快编码,享受使用 ReActMCP Web Search 构建个性化、多工具 AI 助手的乐趣! 🚀😊