tavily_mcp_server_for_all_tools
Tavily Web Search MCP Server
基于 Tavily 智搜官方 Python SDK 开发的联网搜索 MCP 服务,使用标准 MCP Python SDK 实现,采用 Streamable HTTP 传输协议,通过 FastAPI + uvicorn 对外提供服务。
功能
服务提供 8 个 MCP 工具,覆盖 Tavily 官方 SDK 的主要能力:
工具名 | 说明 | 底层 Tavily 接口 |
| 根据查询关键字执行联网搜索,返回标题、链接、摘要、相关性得分,并可选生成总结答案 |
|
| 抓取指定 URL 网页,返回其正文文本内容(markdown / text) |
|
| 从根 URL 出发按图遍历整个网站,批量抓取多个页面正文,适合系统性收集某网站内容 |
|
| 遍历网站结构,只发现页面 URL 不抓正文,适合先摸清站点范围 |
|
| 针对一个具体问题直接返回一句话式答案 |
|
| 返回适合直接喂给 LLM / RAG 流程的压缩检索上下文(自动做 token 限额与截断) |
|
| 提交一个深度研究任务(Tavily 自动多轮搜索 + 生成综合报告),任务异步执行,立即返回 |
|
| 根据 |
|
deep_research_start/deep_research_result对应的研究任务在 Tavily 服务端异步执行,可能耗时数分钟,请先调用deep_research_start拿到request_id,再用deep_research_result轮询直到status变为completed(或failed)。
Related MCP server: tavily-pool-mcp
目录结构
tavily-mcp-server/
├── app/
│ ├── config.py # 环境变量配置加载(.env)
│ ├── tavily_tools.py # TavilyToolkit:封装 web_search / web_fetch
│ ├── server.py # FastMCP 实例与工具注册
│ └── main.py # FastAPI 应用 + uvicorn 入口,挂载 Streamable HTTP
├── client/
│ └── test_client.py # 本地测试客户端(连接 MCP 服务并调用工具)
├── deploy/
│ ├── deploy.sh # 一键同步 + 部署到远程服务器
│ └── tavily-mcp.service # systemd 服务单元
├── requirements.txt
├── .env.example
└── .gitignore环境要求
Python 3.12(本地通过 conda 环境
llm_factory_envs开发,远程服务器使用llm_env)Tavily API Key(app.tavily.com 申请)
本地开发与测试
1. 准备环境变量
cp .env.example .env
# 编辑 .env,填入 TAVILY_API_KEY;本地测试保持 MCP_HOST=127.0.0.12. 安装依赖(conda 环境 llm_factory_envs)
conda activate llm_factory_envs
pip install -r requirements.txt3. 启动 MCP 服务
python -m app.main
# 服务启动后监听 http://127.0.0.1:20260/mcp
# 健康检查: curl http://127.0.0.1:20260/health4. 使用测试客户端验证
另开一个终端:
conda activate llm_factory_envs
python -m client.test_client --url http://127.0.0.1:20260/mcp测试客户端会依次:连接服务 → 列出可用工具 → 调用 web_search / web_fetch / web_crawl / web_map / qna_search / search_context,并打印结果。
深度研究任务耗时较长(可能数分钟),默认不测试,如需一并验证 deep_research_start / deep_research_result:
python -m client.test_client --url http://127.0.0.1:20260/mcp --deep-research
# 也可自定义研究任务描述:
python -m client.test_client --url http://127.0.0.1:20260/mcp --deep-research "近期国产大模型有哪些重要发布"该模式会提交任务后每 10 秒轮询一次 deep_research_result,直到状态变为 completed / failed。
部署到远程服务器
远程服务器信息:101.47.67.15,通过 SSH(已配置免密登录)部署,使用远程 conda 环境 llm_env,服务端口固定为 20260。
1. 配置远程 .env
本地 .env 中把 MCP_HOST 改为 0.0.0.0(对公网监听),MCP_PORT 保持 20260,再执行部署脚本会自动通过 scp 同步 .env(如需远程与本地使用不同的 key,可直接在远程手动维护 /opt/tavily-mcp-server/.env)。
2. 一键部署
bash deploy/deploy.sh该脚本会:
rsync项目文件到root@101.47.67.15:/opt/tavily-mcp-server(排除.git、__pycache__等)同步
.env(如本地存在)在远程
llm_env环境中安装依赖安装/更新
systemd服务并重启
3. 服务器防火墙 / 安全组
请确认云服务商控制台的安全组规则已放行 TCP 20260 端口(deploy.sh 不会自动修改云安全组,需要在服务商控制台手动开放)。若服务器本机启用了 firewalld/ufw,也需放行该端口,例如:
# firewalld
ssh root@101.47.67.15 "firewall-cmd --permanent --add-port=20260/tcp && firewall-cmd --reload"4. 验证远程部署
curl http://101.47.67.15:20260/health
python -m client.test_client --url http://101.47.67.15:20260/mcp常用运维命令
ssh root@101.47.67.15 "systemctl status tavily-mcp.service --no-pager"
ssh root@101.47.67.15 "journalctl -u tavily-mcp.service -f"
ssh root@101.47.67.15 "systemctl restart tavily-mcp.service"MCP 客户端配置
部署完成后,可在任意支持 Streamable HTTP 的 MCP 客户端中通过以下 JSON 配置接入本服务:
{
"mcpServers": {
"tavily-web-search": {
"type": "streamable_http",
"url": "http://101.47.67.15:20260/mcp"
}
}
}如需本地联调,将 url 替换为 http://127.0.0.1:20260/mcp 即可。
环境变量说明
变量名 | 说明 | 默认值 |
| Tavily 官方 API Key(必填) | 无 |
| 服务监听地址 |
|
| 服务监听端口 |
|
| MCP Server 名称 |
|
| Streamable HTTP 挂载路径 |
|
| 是否无状态 HTTP 模式 |
|
| 是否强制 JSON 响应(而非 SSE 流) |
|
| 调用 Tavily search/extract/qna/context/research 等接口的超时时间(秒) |
|
| 调用 Tavily crawl/map 接口的超时时间(秒),站点遍历通常耗时更久 |
|
| 日志级别 |
|
安全说明
.env文件已在.gitignore中排除,切勿提交到 GitHub 仓库。请勿在代码中硬编码任何密钥,所有敏感信息均通过环境变量注入(
python-dotenv动态加载)。提交代码前请再次确认
git status中不包含.env或其他包含密钥的文件。
This server cannot be installed
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 Servers
- FlicenseAqualityDmaintenanceEnables web search capabilities through the Tavily API and serves as a demonstration platform for building custom MCP tools. Designed for educational purposes to showcase MCP server development and LangGraph integration.6
- AlicenseBqualityDmaintenanceA local MCP server that exposes Tavily search as a tool and rotates across multiple API keys for reliability.1MIT
- AlicenseAqualityCmaintenanceMCP server for web page fetching (converting to Markdown/text with automatic fallback between Tavily and Firecrawl) and web search via Tavily.2MIT
- AlicenseBqualityDmaintenanceMCP server providing search, extract, map, and crawl tools powered by Tavily for real-time web data access.414MIT
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/La0bALanG/tavily_mcp_server_for_all_tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server