MCP Tavily

by kshern
Verified
# MCP Tavily 基于Tavily API的模型上下文协议(MCP)服务器实现,提供高级搜索和内容提取功能。 ## 功能特点 - **多样化搜索工具**: - `search`: 基础搜索功能,支持自定义选项 - `searchContext`: 上下文感知搜索,提供更好的相关性 - `searchQNA`: 问答式搜索 - **内容提取**: 支持从URL提取内容,可配置提取选项 - **丰富的配置选项**: 支持搜索深度、过滤和内容包含等多种配置 ### MCP配置使用 在你的MCP配置中添加Tavily服务器: ```json { "mcpServers": { "tavily": { "command": "npx", "args": ["-y", "@mcptools/mcp-tavily"], "env": { "TAVILY_API_KEY": "your-api-key" } } } } ``` > 注意:请确保将 `your-api-key` 替换为你的实际 Tavily API 密钥。你也可以在运行服务器之前将其设置为环境变量 `TAVILY_API_KEY`。 ## API参考 ### 搜索工具 服务器提供三种可通过MCP调用的搜索工具: #### 1. 基础搜索 ```typescript // 工具名称: search { query: "人工智能", options: { searchDepth: "advanced", topic: "news", maxResults: 10 } } ``` #### 2. 上下文搜索 ```typescript // 工具名称: searchContext { query: "AI最新发展", options: { topic: "news", timeRange: "week" } } ``` #### 3. 问答搜索 ```typescript // 工具名称: searchQNA { query: "什么是量子计算?", options: { includeAnswer: true, maxResults: 5 } } ``` ### 内容提取工具 ```typescript // 工具名称: extract { urls: ["https://example.com/article1", "https://example.com/article2"], options: { extractDepth: "advanced", includeImages: true } } ``` ### 搜索选项 所有搜索工具共享以下选项: ```typescript interface SearchOptions { searchDepth?: "basic" | "advanced"; // 搜索深度级别 topic?: "general" | "news" | "finance"; // 搜索主题类别 days?: number; // 搜索天数范围 maxResults?: number; // 最大结果数量 includeImages?: boolean; // 是否包含图片 includeImageDescriptions?: boolean; // 是否包含图片描述 includeAnswer?: boolean; // 是否包含答案 includeRawContent?: boolean; // 是否包含原始内容 includeDomains?: string[]; // 包含的域名列表 excludeDomains?: string[]; // 排除的域名列表 maxTokens?: number; // 最大token数量 timeRange?: "year" | "month" | "week" | "day" | "y" | "m" | "w" | "d"; // 时间范围 } ``` ### 提取选项 ```typescript interface ExtractOptions { extractDepth?: "basic" | "advanced"; // 提取深度级别 includeImages?: boolean; // 是否包含图片 } ``` ## 响应格式 所有工具返回的响应格式如下: ```typescript { content: Array<{ type: "text", text: string }> } ``` 搜索结果包含: - 标题 - 内容 - URL 提取内容包含: - URL - 原始内容 - 失败URL列表(如果有) ## 错误处理 所有工具都包含适当的错误处理,并会在出现问题时抛出描述性的错误消息。 ## 许可证 本项目基于MIT许可证开源。 ## 支持 如有任何问题: - Tavily API:请参考 [Tavily 文档](https://docs.tavily.com/) - MCP 集成:请参考 [MCP 文档](https://modelcontextprotocol.io//) ## 安装 ### 通过 Smithery 安装 通过 [Smithery](https://smithery.ai/server/@kshern/mcp-tavily) 自动安装 Tavily API Server for Claude Desktop: ```bash npx -y @smithery/cli install @kshern/mcp-tavily --client claude ``` ### 手动安装 ```bash npm install @mcptools/mcp-tavily ``` 或直接使用 npx: ```bash npx @mcptools/mcp-tavily ``` ## 开发 ### 环境要求 - Node.js 16 或更高版本 - npm 或 yarn - Tavily API 密钥 (从 [Tavily](https://tavily.com) 获取) ### 设置 1. 克隆仓库 2. 安装依赖: ```bash npm install ``` 3. 设置 Tavily API 密钥: ```bash export TAVILY_API_KEY=your_api_key ``` ### 构建 ```bash npm run build ``` ## 使用 MCP Inspector 调试 我们推荐使用 [MCP Inspector](https://github.com/modelcontextprotocol/inspector) 作为开发调试工具,它是一个强大的 MCP 服务器开发工具。 Inspector 提供了以下功能的用户界面: - 测试工具调用 - 查看服务器响应 - 调试工具执行 - 监控服务器状态 ## 贡献 欢迎提交贡献!请随时提交 Pull Request。 1. Fork 仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m '添加某个特性'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## License MIT License。 ## 支持 如有任何问题,请参考: - Tavily API:请参考 [Tavily 文档](https://docs.tavily.com/) - MCP 集成:请参考 [MCP 中文文档](https://docs.mcpcn.org//)