Tavily智能搜索
将 Tavily 的搜索 API 与大型语言模型(LLMs)集成,以提供高级网络搜索功能,包括智能结果摘要、用于质量控制的域过滤以及可配置的搜索参数。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mcp-tavily-search": {
"args": [
"bash",
"-c",
"source ~/.nvm/nvm.sh \u0026\u0026 TAVILY_API_KEY=your-tavily-api-key /home/username/.nvm/versions/node/v20.12.1/bin/npx mcp-tavily-search"
],
"command": "wsl.exe"
}
}
}
该服务需要配置环境变量:TAVILY_API_KEY
服务介绍
mcp-tavily-search
⚠️ 通知
此仓库不再维护。
该工具的功能现在已整合到 mcp-omnisearch 中,它将多个 MCP 工具集成在一个统一的包中。
请改用 mcp-omnisearch。
这是一个用于将 Tavily 的搜索 API 与 LLMs 集成的 Model Context Protocol (MCP) 服务器。该服务器提供了优化后的高质量、事实性结果的智能网络搜索功能,包括为 RAG 应用生成上下文和直接回答问题的能力。
特性
- 🔍 通过 Tavily API 提供高级网络搜索功能
- 🤖 自动生成搜索结果摘要
- 🎯 域名过滤以获得更高质量的结果
- 📊 可配置的搜索深度和参数
- 🧠 为 RAG 应用生成上下文
- ❓ 直接回答问题的能力
- 💾 支持 TTL 的响应缓存
- 📝 多种响应格式(文本、JSON、markdown)
- 🔄 针对 LLMs 优化的结构化结果格式
- 🏗️ 构建于 Model Context Protocol 之上
配置
此服务器需要通过您的 MCP 客户端进行配置。以下是不同环境下的示例:
Cline 配置
在您的 Cline MCP 设置中添加以下内容:
{
"mcpServers": {
"mcp-tavily-search": {
"command": "npx",
"args": ["-y", "mcp-tavily-search"],
"env": {
"TAVILY_API_KEY": "your-tavily-api-key"
}
}
}
}
Claude Desktop with WSL 配置
对于 WSL 环境,在您的 Claude Desktop 配置中添加以下内容:
{
"mcpServers": {
"mcp-tavily-search": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"source ~/.nvm/nvm.sh && TAVILY_API_KEY=your-tavily-api-key /home/username/.nvm/versions/node/v20.12.1/bin/npx mcp-tavily-search"
]
}
}
}
环境变量
服务器需要以下环境变量:
TAVILY_API_KEY: 您的 Tavily API 密钥(必需)
API
该服务器实现了三个具有可配置参数的 MCP 工具:
tavily_search
使用 Tavily 搜索 API 进行网络搜索,针对高质量、事实性的结果进行了优化。
参数:
query(字符串,必填):搜索查询search_depth(字符串,可选):"basic"(更快)或 "advanced"(更全面)。默认为 "basic"topic(字符串,可选):"general" 或 "news"。默认为 "general"days(数字,可选):回溯搜索的天数(仅新闻主题有效)。默认为 3time_range(字符串,可选):结果的时间范围('day', 'week', 'month', 'year' 或 'd', 'w', 'm', 'y')max_results(数字,可选):最大结果数量。默认为 5include_answer(布尔值,可选):包含 AI 生成的摘要。默认为 trueinclude_images(布尔值,可选):包含相关图片。默认为 falseinclude_image_descriptions(布尔值,可选):包含图片描述。默认为 falseinclude_raw_content(布尔值,可选):包含原始 HTML 内容。默认为 falseinclude_domains(字符串数组,可选):要包含的可信域名列表exclude_domains(字符串数组,可选):要排除的域名列表response_format(字符串,可选):'text', 'json', 或 'markdown'。默认为 'text'cache_ttl(数字,可选):缓存生存时间(秒)。默认为 3600force_refresh(布尔值,可选):强制获取最新结果忽略缓存。默认为 false
tavily_get_search_context
使用 Tavily 搜索为 RAG 应用程序生成上下文。
参数:
query(字符串,必填):用于生成上下文的搜索查询max_tokens(数字,可选):生成上下文的最大长度。默认为 2000search_depth(字符串,可选):"basic" 或 "advanced"。默认为 "advanced"topic(字符串,可选):"general" 或 "news"。默认为 "general"- 其他参数与 tavily_search 相同
tavily_qna_search
使用 Tavily 搜索直接回答问题。
参数:
query(字符串,必填):需要回答的问题include_sources(布尔值,可选):包含来源引用。默认为 truesearch_depth(字符串,可选):"basic" 或 "advanced"。默认为 "advanced"topic(字符串,可选):"general" 或 "news"。默认为 "general"- 其他参数与 tavily_search 相同
域名过滤
服务器通过两个可选参数支持灵活的域名过滤:
include_domains:要在搜索结果中包含的可信域名数组exclude_domains:要从搜索结果中排除的域名数组
这允许你:
- 针对特定的可信源进行学术或技术搜索
- 排除潜在不可靠或不相关的源
- 根据你的具体需求自定义源
- 在未指定过滤时访问所有可用源
示例域名过滤:
{
"include_domains": ["arxiv.org", "science.gov"],
"exclude_domains": ["example.com"]
}
开发
设置
- 克隆仓库
- 安装依赖项:
pnpm install
- 构建项目:
pnpm build
- 以开发模式运行:
pnpm dev
发布
该项目使用 changesets 进行版本管理。要发布:
- 创建更改集:
pnpm changeset
- 对包进行版本控制:
pnpm changeset version
- 发布到 npm:
pnpm release
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件。