tavily-search
by 543366565
README.md
# Tavily Search MCP Server 🔍
> **让你的 AI Agent 拥有实时的网络搜索能力!**
一个基于 [Model Context Protocol (MCP)](https://modelcontextprotocol.io) 的服务器,为 Claude Desktop、Cursor、Hermes Agent 等支持 MCP 的 AI 客户端提供**实时网络搜索**和**网页内容提取**能力。
## ✨ 功能
| 工具 | 描述 |
|------|------|
| **`web_search_tool`** | 搜索互联网获取实时信息。支持通用搜索、新闻搜索、金融数据。返回带标题、URL 和摘要的格式化结果。 |
| **`extract_content_tool`** | 从一个或多个 URL 提取干净、LLM 可读的网页内容。完美适用于阅读文章、文档等。 |
## 🚀 快速开始
### 1. 安装
```bash
pip install mcp-tavily-search
```
或者从源码安装:
```bash
git clone https://github.com/lingxi-dev/mcp-tavily-search.git
cd mcp-tavily-search
pip install -e .
```
### 2. 设置 API Key
```bash
# Linux / macOS
export TAVILY_API_KEY="tavily-xxxxxxxxxxxxxxxx"
# Windows (cmd)
set TAVILY_API_KEY=tavily-xxxxxxxxxxxxxxxx
# Windows (PowerShell)
$env:TAVILY_API_KEY="tavily-xxxxxxxxxxxxxxxx"
```
也可以在项目目录创建 `.env` 文件:
```env
TAVILY_API_KEY=tavily-xxxxxxxxxxxxxxxx
```
获取 API Key:[app.tavily.com](https://app.tavily.com)
### 3. 启动服务器
```bash
# stdio 模式(默认,适用于 Claude Desktop 等本地客户端)
mcp-tavily-search
# SSE 模式(适用于远程/网络连接)
mcp-tavily-search --transport sse --host 0.0.0.0 --port 8000
```
### 4. 配置 Claude Desktop
编辑 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"tavily-search": {
"command": "mcp-tavily-search",
"env": {
"TAVILY_API_KEY": "tavily-xxxxxxxxxxxxxxxx"
}
}
}
}
```
### 5. 配置 Hermes Agent
在 `~/.hermes/config.yaml` 中添加:
```yaml
mcp_servers:
tavily-search:
command: mcp-tavily-search
env:
TAVILY_API_KEY: tavily-xxxxxxxxxxxxxxxx
```
## ⚙️ 高级用法
### 搜索参数
```python
# 搜索工具支持以下参数:
web_search_tool(
query="2026年 AI Agent 发展趋势",
max_results=10, # 结果数量 (1-20)
search_depth="advanced", # "basic" 快速 / "advanced" 高质量
include_answer=True, # 是否包含 AI 摘要
topic="news", # "general" / "news" / "finance"
days=30 # 回溯天数
)
```
### 提取内容
```python
extract_content_tool(
urls=[
"https://example.com/article1",
"https://example.com/article2"
]
)
```
## 🏗️ 项目结构
```
mcp-tavily-search/
├── pyproject.toml # 项目配置 & 依赖
├── README.md # 本文档
├── LICENSE # MIT 许可证
├── .env.example # 环境变量模板
└── src/
└── mcp_tavily_search/
├── __init__.py
├── server.py # FastMCP 服务器入口
└── tools/
├── __init__.py
├── search.py # Tavily 搜索 API 封装
└── content.py # Tavily 内容提取 API 封装
```
## 🔧 技术栈
- **[FastMCP](https://github.com/PrefectHQ/fastmcp)** — MCP 服务器框架(官方推荐,70% MCP 服务器使用)
- **[Tavily API](https://app.tavily.com)** — 为 AI Agent 优化的搜索引擎
- **[httpx](https://www.python-httpx.org/)** — 异步 HTTP 客户端
## 📦 发布到 PyPI
```bash
pip install build twine
python -m build
twine upload dist/*
```
## 📄 许可证
MIT
TDQS
A3.9/5.0
Scored across 2 tools
Disambiguation5/5
The two tools have clearly distinct purposes: one for extracting content from URLs, the other for web search. No overlap or ambiguity.
Naming Consistency5/5
Both tools follow a consistent verb_noun snake_case pattern with 'tool' suffix: extract_content_tool and web_search_tool.
Tool Count4/5
Two tools is minimal but reasonable for a focused search server covering search and content extraction. Slightly under typical scopes but not insufficient.
Completeness4/5
Covers core search and content extraction, but missing advanced search options (filters, pagination) which are common in search servers.
Maintenance
ActivityInactive
ResponsivenessNo issues