tavily-search
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tavily-searchsearch for latest AI news"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tavily Search MCP Server 🔍
让你的 AI Agent 拥有实时的网络搜索能力!
一个基于 Model Context Protocol (MCP) 的服务器,为 Claude Desktop、Cursor、Hermes Agent 等支持 MCP 的 AI 客户端提供实时网络搜索和网页内容提取能力。
✨ 功能
工具 | 描述 |
| 搜索互联网获取实时信息。支持通用搜索、新闻搜索、金融数据。返回带标题、URL 和摘要的格式化结果。 |
| 从一个或多个 URL 提取干净、LLM 可读的网页内容。完美适用于阅读文章、文档等。 |
Related MCP server: Tavily MCP Server
🚀 快速开始
1. 安装
pip install mcp-tavily-search或者从源码安装:
git clone https://github.com/lingxi-dev/mcp-tavily-search.git
cd mcp-tavily-search
pip install -e .2. 设置 API Key
# 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 文件:
TAVILY_API_KEY=tavily-xxxxxxxxxxxxxxxx获取 API Key:app.tavily.com
3. 启动服务器
# stdio 模式(默认,适用于 Claude Desktop 等本地客户端)
mcp-tavily-search
# SSE 模式(适用于远程/网络连接)
mcp-tavily-search --transport sse --host 0.0.0.0 --port 80004. 配置 Claude Desktop
编辑 claude_desktop_config.json:
{
"mcpServers": {
"tavily-search": {
"command": "mcp-tavily-search",
"env": {
"TAVILY_API_KEY": "tavily-xxxxxxxxxxxxxxxx"
}
}
}
}5. 配置 Hermes Agent
在 ~/.hermes/config.yaml 中添加:
mcp_servers:
tavily-search:
command: mcp-tavily-search
env:
TAVILY_API_KEY: tavily-xxxxxxxxxxxxxxxx⚙️ 高级用法
搜索参数
# 搜索工具支持以下参数:
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 # 回溯天数
)提取内容
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 — MCP 服务器框架(官方推荐,70% MCP 服务器使用)
Tavily API — 为 AI Agent 优化的搜索引擎
httpx — 异步 HTTP 客户端
📦 发布到 PyPI
pip install build twine
python -m build
twine upload dist/*📄 许可证
MIT
Available Tools
2 toolsextract_content_toolA
Extract clean, LLM-readable content from one or more URLs. Useful for reading articles, documentation, or any web page content and making it available to the LLM for analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions 'clean' content but lacks details on what cleaning entails, pagination, rate limits, authentication, or output format. The description is too brief for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and contains no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has low complexity (1 parameter) and an output schema (not shown), but the description still misses behavioral details like return structure or error handling. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'urls' is an array of strings. The description adds that it accepts 'one or more URLs', but does not explain URL format, maximum number, or any restrictions. With 0% schema description coverage, the description should provide more parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'extract', the resource 'content from URLs', and the purpose 'clean, LLM-readable'. It distinguishes from the sibling 'web_search_tool' by focusing on content extraction from given URLs rather than searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use the tool ('reading articles, documentation, or any web page content') and implies its utility for LLM analysis. However, it does not explicitly state when not to use it or mention alternatives beyond the sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_search_toolA
Search the web for real-time information. Returns clean, LLM-optimized results with titles, URLs, snippets, and an optional AI-generated answer summary. Use this to find current information, news, documentation, or any web content.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| query | Yes | ||
| topic | No | general | |
| max_results | No | ||
| search_depth | No | advanced | |
| include_answer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions return format (clean, LLM-optimized results with optional AI answer) but does not disclose rate limits, authentication, or error behavior. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with two sentences, front-loading the action verb 'Search'. It is efficient but could better structure parameter hints without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with 0% schema descriptions and no annotation support, the description is too minimal. It does not cover behavior like recency (days) or result limits, making it incomplete despite having an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 6 parameters beyond the implied query. No parameter names are mentioned, so the description fails to add meaning beyond the schema's basic structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: search the web for real-time information and return LLM-optimized results. It distinguishes from sibling 'extract_content_tool' by implying this is for general search while the sibling is for content extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides use cases ('find current information, news, documentation, or any web content') but does not explicitly exclude alternatives or state when not to use the tool. It implies the context but lacks direct guidance on comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
extract_content_tool - First observed
web_search_tool
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one for extracting content from URLs, the other for web search. No overlap or ambiguity.
Both tools follow a consistent verb_noun snake_case pattern with 'tool' suffix: extract_content_tool and web_search_tool.
Two tools is minimal but reasonable for a focused search server covering search and content extraction. Slightly under typical scopes but not insufficient.
Covers core search and content extraction, but missing advanced search options (filters, pagination) which are common in search servers.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceProvides AI-powered web search capabilities using Tavily's search API, enabling LLMs to perform sophisticated web searches, get direct answers to questions, and search recent news articles.72MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform up-to-date web searches through the Tavily API, providing comprehensive search results with AI-generated summaries.7MIT
- AlicenseBqualityDmaintenanceProvides AI assistants with real-time web search capabilities and intelligent data extraction from web pages through Tavily's advanced search API.216,976MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform real-time web searches, extract data from web pages, map website structures, and crawl websites using the Tavily API.72MIT