塔维利搜索MCP服务
一个集成了Tavily搜索API的MCP服务器实现,为大型语言模型提供优化的搜索功能。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"tavily-search-server": {
"args": [
"/Users/\u003cusername\u003e/\u003cFULL_PATH...\u003e/tavily-search-mcp-server/dist/sse.js"
],
"command": "node",
"env": {
"TAVILY_API_KEY": "your_api_key_here"
},
"port": 3001
}
}
}
服务介绍
Tavily Search MCP 服务器
这是一个集成了 Tavily 搜索 API 的 MCP 服务器实现,为 LLMs 提供了优化的搜索功能。
功能
- 网页搜索: 执行针对 LLMs 优化的网页搜索,可以控制搜索深度、主题和时间范围。
- 内容提取: 从搜索结果中提取最相关的内容,优化质量和大小。
- 可选功能: 包括图片、图片描述、简短的 LLM 生成的答案以及原始 HTML 内容。
- 域名过滤: 在搜索结果中包含或排除特定域名。
工具
- tavily_search
- 使用 Tavily 搜索 API 执行网页搜索。
- 输入:
query(字符串,必填):搜索查询。search_depth(字符串,可选):"basic" 或 "advanced"(默认:"basic")。topic(字符串,可选):"general" 或 "news"(默认:"general")。days(数字,可选):新闻搜索的时间范围(默认:3 天)。time_range(字符串,可选):时间范围过滤器 ("day", "week", "month", "year" 或 "d", "w", "m", "y")。max_results(数字,可选):最大结果数(默认:5)。include_images(布尔值,可选):是否包含相关图片(默认:false)。include_image_descriptions(布尔值,可选):是否包含图片描述(默认:false)。include_answer(布尔值,可选):是否包含一个简短的 LLM 生成的答案(默认:false)。include_raw_content(布尔值,可选):是否包含原始 HTML 内容(默认:false)。include_domains(字符串数组,可选):要包含的域名。exclude_domains(字符串数组,可选):要排除的域名。
设置指南 🚀
1. 前提条件
- 计算机上安装了 Claude Desktop。
- 一个 Tavily API 密钥:
a. 注册一个 Tavily API 账户。
b. 选择一个计划(提供免费层级)。
c. 从 Tavily 仪表板生成您的 API 密钥。
2. 安装
-
克隆此仓库到您的计算机上的某个位置:
git clone https://github.com/apappascs/tavily-search-mcp-server.git -
安装依赖并构建项目:
cd tavily-search-mcp-servernpm installnpm run build
3. 与 Claude Desktop 集成
-
打开你的 Claude Desktop 配置文件:
# 在 Mac 上: ~/Library/Application\ Support/Claude/claude_desktop_config.json # 在 Windows 上: %APPDATA%\Claude\claude_desktop_config.json -
根据你希望使用
npm还是docker来运行服务器,在配置文件的mcpServers对象中添加以下 其中一个 选项:选项 A: 使用 NPM (stdio 传输)
{ "mcpServers": { "tavily-search-server": { "command": "node", "args": [ "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server/dist/index.js" ], "env": { "TAVILY_API_KEY": "your_api_key_here" } } } }选项 B: 使用 NPM (SSE 传输)
{ "mcpServers": { "tavily-search-server": { "command": "node", "args": [ "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server/dist/sse.js" ], "env": { "TAVILY_API_KEY": "your_api_key_here" }, "port": 3001 } } }选项 C: 使用 Docker
{ "mcpServers": { "tavily-search-server": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "TAVILY_API_KEY", "-v", "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server:/app", "tavily-search-mcp-server" ], "env": { "TAVILY_API_KEY": "your_api_key_here" } } } } -
重要步骤:
- 将
/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server替换为你克隆仓库的实际完整路径。 - 在
env部分添加你的 Tavily API 密钥。最好将如 API 密钥这样的敏感信息作为环境变量。 - 确保路径中使用正斜杠 (
/),即使在 Windows 上也是如此。 - 如果你使用 docker,请先使用
docker build -t tavily-search-mcp-server:latest .构建镜像。
- 将
-
重启 Claude Desktop 以使更改生效。
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Tavily Search:
npx -y @smithery/cli install @apappascs/tavily-search-mcp-server --client claude
环境设置(针对 npm)
-
将
.env.example复制为.env:cp .env.example .env -
使用你的实际 Tavily API 密钥更新
.env文件:TAVILY_API_KEY=your_api_key_here注意:切勿将实际的 API 密钥提交到版本控制系统中。出于安全原因,
.env文件被 git 忽略。
使用 NPM 运行
使用 Node.js 启动服务器:
node dist/index.js
对于 sse 传输:
node dist/sse.js
使用 Docker 运行
-
构建 Docker 镜像(如果你还没有构建的话):
docker build -t tavily-search-mcp-server:latest . -
使用以下命令运行 Docker 容器:
对于 stdio 传输:
docker run -it --rm -e TAVILY_API_KEY="your_api_key_here" tavily-search-mcp-server:latest对于 sse 传输:
docker run -it --rm -p 3001:3001 -e TAVILY_API_KEY="your_api_key_here" -e TRANSPORT="sse" tavily-search-mcp-server:latest你也可以直接利用 shell 的环境变量,这是更安全的做法:
docker run -it --rm -p 3001:3001 -e TAVILY_API_KEY=$TAVILY_API_KEY -e TRANSPORT="sse" tavily-search-mcp-server:latest注意: 第二个命令展示了推荐的方法,即使用
-e TAVILY_API_KEY=$TAVILY_API_KEY将TAVILY_API_KEY环境变量的值传递到 Docker 容器中。这样可以避免你的 API 密钥出现在命令历史记录中,并且通常优于在命令中硬编码密钥。 -
使用 docker compose
运行:
docker compose up -d停止服务器:
docker compose down
许可证
此 MCP 服务器遵循 MIT 许可证。这意味着你可以自由地使用、修改和分发该软件,但必须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。