Tavily MCP Server
使AI助手能够通过Tavily API执行最新的网络搜索,提供包含AI生成的摘要的全面搜索结果。
README
Tavily MCP 服务器
一个模型上下文协议 (MCP) 服务器,它使用 Tavily API 提供 AI 驱动的搜索功能。该服务器使 AI 助手能够执行全面的网络搜索并检索相关的、最新的信息。
功能
- AI 驱动的搜索功能
- 支持基本和高级搜索深度
- 丰富的搜索结果,包括标题、URL 和内容片段
- AI 生成的搜索结果摘要
- 结果评分和响应时间跟踪
- 具有缓存功能的全面搜索历史记录存储
- 用于灵活数据访问的 MCP 资源
前提条件
- Node.js (v16 或更高版本)
- npm (Node 包管理器)
- Tavily API 密钥 (在 Tavily 网站 获取)
- 一个 MCP 客户端 (例如,Cline、Claude Desktop 或您自己的实现)
安装
- 克隆存储库:
git clone https://github.com/it-beard/tavily-server.git
cd tavily-mcp-server
- 安装依赖项:
npm install
- 构建项目:
npm run build
配置
此服务器可以与任何 MCP 客户端一起使用。以下是常用客户端的配置说明:
Cline 配置
如果您使用的是 Cline(Claude 的 VSCode 扩展),请在以下位置创建或修改 MCP 设置文件:
- macOS:
~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Windows:
%APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
- Linux:
~/.config/Cursor/User/globalStorage/saoudrizwan.claude-dev\settings\cline_mcp_settings.json
添加以下配置(将路径和 API 密钥替换为您自己的):
{
"mcpServers": {
"tavily": {
"command": "node",
"args": ["/path/to/tavily-server/build/index.js"],
"env": {
"TAVILY_API_KEY": "your-api-key-here"
}
}
}
}
Claude Desktop 配置
如果您使用的是 Claude Desktop 应用程序,请修改以下位置的配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
使用与上面显示的相同的配置格式。
其他 MCP 客户端
对于其他 MCP 客户端,请查阅其文档以获取正确的配置文件位置和格式。服务器配置应包括:
- 运行服务器的命令(通常是
node
) - 编译后的服务器文件的路径
- 环境变量,包括 Tavily API 密钥
用法
工具
服务器提供一个名为 search
的工具,具有以下参数:
必需参数
query
(字符串): 要执行的搜索查询
可选参数
search_depth
(字符串): "basic" (更快) 或 "advanced" (更全面)
用法示例
// 使用 MCP SDK 的示例
const result = await mcpClient.callTool("tavily", "search", {
query: "latest developments in artificial intelligence",
search_depth: "basic"
});
资源
服务器提供静态和动态资源,以实现灵活的数据访问:
静态资源
tavily://last-search/result
: 返回最近一次搜索查询的结果- 持久化到磁盘上的数据目录中
- 在服务器重启后仍然存在
- 如果尚未进行任何搜索,则返回“尚未执行任何搜索”错误
动态资源(资源模板)
tavily://search/{query}
: 访问任何查询的搜索结果- 将 {query} 替换为 URL 编码的搜索词
- 示例:
tavily://search/artificial%20intelligence
- 如果之前已进行过查询,则返回缓存的结果
- 如果之前未搜索过查询,则执行并存储新的搜索
- 返回与搜索工具相同的格式,但通过资源接口
与工具相比,MCP 中的资源提供了一种访问数据的替代方法:
- 工具用于执行操作(例如执行新的搜索)
- 资源用于访问数据(例如检索现有搜索结果)
- 资源 URI 可以存储并在以后访问
- 资源支持静态(固定)和动态(模板化)访问模式
响应格式
interface SearchResponse {
query: string;
answer: string;
results: Array<{
title: string;
url: string;
content: string;
score: number;
}>;
response_time: number;
}
持久存储
服务器为搜索结果实现全面的持久存储:
存储位置
- 数据存储在
data
目录中 data/searches.json
包含所有历史搜索结果- 数据在服务器重启后仍然存在
- 存储在服务器启动时自动初始化
存储功能
- 存储完整的搜索历史记录
- 缓存所有搜索结果以进行快速检索
- 自动保存新的搜索结果
- 基于磁盘的持久性
- JSON 格式,便于调试
- 存储操作的错误处理
- 自动创建目录
缓存行为
- 所有搜索结果都会自动缓存
- 对同一查询的后续请求返回缓存的结果
- 缓存可提高响应时间并减少 API 调用
- 缓存在服务器重启后仍然存在
- 跟踪上次搜索以便快速访问
开发
项目结构
tavily-server/
├── src/
│ └── index.ts # 主要服务器实现
├── data/ # 持久存储目录
│ └── searches.json # 搜索历史记录和缓存存储
├── build/ # 编译后的 JavaScript 文件
├── package.json # 项目依赖项和脚本
└── tsconfig.json # TypeScript 配置
可用脚本
npm run build
: 编译 TypeScript 并使输出可执行npm run start
: 启动 MCP 服务器(构建后)npm run dev
: 在开发模式下运行服务器
错误处理
服务器为常见问题提供详细的错误消息:
- 无效的 API 密钥
- 网络错误
- 无效的搜索参数
- API 速率限制
- 找不到资源
- 无效的资源 URI
- 存储读/写错误
贡献
- Fork 存储库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开一个 Pull Request
许可证
该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
- 模型上下文协议 (MCP) 用于服务器框架
- Tavily API 用于提供搜索功能
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
Playwright MCP Server
提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。
@kazuph/mcp-fetch
用于获取网页内容和处理图像的模型上下文协议服务器。这使得 Claude Desktop(或任何 MCP 客户端)能够适当地获取网页内容和处理图像。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
DuckDuckGo MCP Server
一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。

Supabase MCP Server
一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。
YouTube Transcript MCP Server
这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。
serper-search-scrape-mcp-server
这个 Serper MCP 服务器支持搜索和网页抓取,并且支持 Serper API 引入的所有最新参数,例如位置信息。