Tavily Search MCP Agent

by arben-adm
Verified
MIT License
1
  • Apple
  • Linux

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

🔍 我的 Tavily 搜索 MCP 代理

我创建了一个功能强大的模型上下文协议 (MCP) 服务器,该服务器由 Tavily API 提供支持。借助它,您可以通过一个强大且开发者友好的界面,获取高质量、可靠的商业、新闻、金融和政治信息。

🌟 我为什么创建 Tavily Search MCP

在当今快节奏的数字时代,我意识到快速获取精准信息的重要性。我需要一款能够与我的序列思维MCP服务器配合使用的网页搜索工具。因此,我开发了Tavily Search MCP,它的优势在于:

⚡️ 闪电般快速的异步搜索响应
🛡️ 内置容错功能,可自动重试
🎯 干净的 Markdown 格式结果
🔍 智能内容片段
🛠️ 全面的错误处理
🖼️ 可选图像结果
📰 专业新闻搜索

🚀 快速入门

通过 Smithery 安装

要通过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" } } } }

📁配置路径:

  • Windows: %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)

  • Tavily API 集成
  • 采用指数退避算法的重试机制
  • 结果格式化和处理
  • 错误处理和日志记录

测试(test_server.py 和 test_client.py)

  • 对服务器和客户端进行全面的单元测试
  • 确保实施的可靠性和正确性

使用示例

以下是我所实现的如何使用增强搜索功能的一些示例:

  1. 基本搜索:
{ "name": "search", "arguments": { "query": "Latest news on artificial intelligence" } }
  1. 带图像的高级搜索:
{ "name": "search", "arguments": { "query": "Elon Musk SpaceX achievements", "search_depth": "advanced", "include_images": true, "max_results": 10 } }
  1. 新闻特定搜索:
{ "name": "search", "arguments": { "query": "Climate change impact on agriculture", "topic": "news", "max_results": 5 } }
  1. 使用原始内容搜索:
{ "name": "search", "arguments": { "query": "Python programming best practices", "include_raw_content": true, "max_results": 3 } }

故障排除指南

连接问题

如果事情没有按预期进行,请按照我概述的以下步骤操作:

  1. 验证您的配置路径
  2. 检查 Claude Desktop 日志:
    # Windows type %APPDATA%\Claude\logs\latest.log # Unix/MacOS cat ~/.config/Claude/logs/latest.log
  3. 使用快速启动命令手动测试服务器

API 故障排除

如果您遇到 API 问题:

  1. 验证您的 API 密钥权限
  2. 检查网络连接
  3. 监控服务器日志中的 API 响应

运行测试

要运行该项目的单元测试,请按照以下步骤操作:

  1. 安装开发依赖项:
    uv pip install -e ".[dev]"
  2. 使用 pytest 运行测试:
    pytest mcp_tavily_search

这将运行mcp_tavily_search目录中的所有测试,包括test_client.pytest_server.py

社区和支持

  • 我鼓励你在 GitHub 上报告问题并做出贡献
  • 分享您的实施和改进
  • 加入我们的讨论并帮助他人

安全和最佳实践

在我的实现中,安全性至关重要。服务器包括:

  • 通过环境变量来保护 API 密钥处理
  • 自动请求超时管理
  • 全面的错误跟踪和记录

执照

我已经根据 MIT 授权了此项目。详情请参阅 LICENSE 文件。

致谢

我要特别感谢:

  • 创新的Tavily API团队
  • MCP 协议社区
ID: p0w4whs3l4