🔍 我的Tavily搜索MCP代理
我已经创建了一个强大的模型上下文协议(MCP)服务器,由Tavily API提供支持。有了这个,您可以从商业、新闻、金融和政治中获得高质量、可靠的信息,所有这些都可以通过一个强大且对开发人员友好的界面来实现。
](https://smithery.ai/server/mcp-tavily-search)   
🌟 我为什么建立Tavily搜索MCP
在当今快节奏的数字环境中,我认识到需要快速访问精确的信息。我需要一个与我的顺序思维MCP服务器配合使用的网络搜索工具。这就是为什么我开发了Tavily Search MCP,它擅长:
⚡️ 闪电般快速的异步搜索响应\ 🛡️ 内置容错功能,可自动重试\ 🎯 干净、标记格式的结果\ 🔍 智能内容片段\ 🛠️ 全面的错误处理\ 🖼️ 可选图像结果\ 📰 专业新闻搜索
🚀 快速开始
通过Smithery安装
通过以下方式自动安装Tavily Search for Claude Desktop 史密瑟里:
npx -y @smithery/cli install mcp-tavily-search --client claude手动安装
以下是如何在几分钟内启动并运行我的项目:
# 1. Create environment
uv venv && .venv\Scripts\activate # Windows
# OR
uv venv && source .venv/bin/activate # Unix/MacOS
# 2. Install dependencies
uv pip install -e .
# 3. Set up configuration
echo TAVILY_API_KEY=your-key-here > .env
# 4. Start server
cd mcp_tavily_search && uv run server.py💡 核心功能
⚡️ 性能和可靠性
- 我已经实现了异步请求处理
- 内置错误处理和自动重试
- 可配置的请求超时
- 综合测井系统
🎯 搜索配置
- 我已将搜索深度设置为可配置(基本/高级)
- 可调结果限制(1-20个结果)
- 清除markdown格式的输出
- 带有源URL的片段预览
- 可选图像结果
- 专业新闻搜索主题
🛡️ 错误处理
- API身份验证
- 速率限制检测
- 网络错误恢复
- 请求超时管理
🛠️ 开发人员集成
先决条件
Claude桌面设置
我已经使用此配置优化了Claude Desktop体验:
{
"mcpServers": {
"tavily-search": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-tavily-search/mcp_tavily_search",
"run",
"server.py"
],
"env": {
"TAVILY_API_KEY": "YOUR-API-KEY"
}
}
}
}📁 配置路径:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - Unix/MacOS:
~/.config/Claude/claude_desktop_config.json
项目架构
我设计了一个干净的模块化结构,使开发变得轻而易举:
mcp-tavily-search/
├── mcp_tavily_search/ # Core package
│ ├── server.py # Server implementation
│ ├── client.py # Tavily API client
│ ├── test_server.py # Server tests
│ ├── test_client.py # Client tests
│ └── __init__.py # Package initialization
├── .env # Environment configuration
├── README.md # Documentation
└── pyproject.toml # Project configuration关键组件
服务器(Server.py)
- 我已经实现了MCP协议
- 请求处理和路由
- 错误恢复和健康监控
客户端(Client.py)
- Tavilly API集成
- 具有指数回退的重试机制
- 结果格式化和处理
- 错误处理和日志
测试(test_server.py和test_client.py)
- 服务器和客户端的全面单元测试
- 确保实施的可靠性和正确性
使用示例
以下是一些如何使用我实现的增强搜索功能的示例:
- 基本搜索:
{
"name": "search",
"arguments": {
"query": "Latest news on artificial intelligence"
}
}- 使用图像进行高级搜索:
{
"name": "search",
"arguments": {
"query": "Elon Musk SpaceX achievements",
"search_depth": "advanced",
"include_images": true,
"max_results": 10
}
}- 新闻特定搜索:
{
"name": "search",
"arguments": {
"query": "Climate change impact on agriculture",
"topic": "news",
"max_results": 5
}
}- 使用原始内容搜索:
{
"name": "search",
"arguments": {
"query": "Python programming best practices",
"include_raw_content": true,
"max_results": 3
}
}故障排除指南
连接问题
如果事情没有按预期进行,请按照我概述的步骤进行操作:
- 验证您的配置路径
- 检查克劳德桌面日志:
# Windows
type %APPDATA%\Claude\logs\latest.log
# Unix/MacOS
cat ~/.config/Claude/logs/latest.log- 使用快速启动命令手动测试服务器
API故障排除
如果您遇到API问题:
- 验证API密钥权限
- 检查您的网络连接
- 监视服务器日志中的API响应
运行测试
要运行此项目的单元测试,请执行以下步骤:
- 安装开发依赖项:
uv pip install -e ".[dev]"- 使用pytest运行测试:
pytest mcp_tavily_search这将运行中的所有测试 mcp_tavily_search 目录,包括两者 test_client.py 和 test_server.py.
社区与支持
- 我鼓励你在GitHub上报告问题并做出贡献
- 分享您的实施和改进
- 加入我们的讨论,帮助他人
安全和最佳实践
安全在我的实施中至关重要。服务器包括:
- 通过环境变量安全地处理API密钥
- 自动请求超时管理
- 全面的错误跟踪和记录
许可证
我已经在麻省理工学院授权了这个项目。有关详细信息,请参阅LICENSE文件。
致谢
我要特别感谢:
- 创新的Tavily API团队
- MCP协议社区
