返回市场
可流式传输的HTTP MCP服务器

可流式传输的HTTP MCP服务器

作者:icheer5 星标更新:2025-08-01

项目介绍

Table Streamable HTTP MCP Server

<div align="center">

基于Cloudflare Workers的Tavily Search MCP(模型上下文协议)服务器

License: MIT Cloudflare Workers MCP Protocol

</div>

📖 介绍

Tavily Streamable HTTP MCP Server 是一个实现了模型上下文协议规范的网络搜索服务器,并构建在Cloudflare Workers平台上。它提供了高性能的网络搜索和内容提取能力,支持与LobeChat、Cherry Studio、Claude Desktop等AI客户端无缝集成。

✨ 核心特性

  • 🔎 智能搜索 基于Tavily API的高质量网络搜索
  • 📄 内容提取 从指定URL中提取和处理网页内容
  • 🕜 时间查询 获取当前日期和时间,支持多种时区和格式
  • 边缘计算 利用Cloudflare的全球网络实现低延迟响应
  • 🔐 安全可靠 支持API密钥轮换和负载均衡
  • 💰 完全免费 基于Cloudflare Workers免费计划
  • 🌐 跨平台兼容性 支持多个MCP客户端

🛠 技术栈

  • 运行时:Cloudflare Workers
  • 协议:模型上下文协议(MCP)
  • API:Tavily Search API
  • 传输:可流式HTTP

🚀 快速开始

方法1:Cloudflare仪表板部署(推荐)

  1. 准备

    # 获取Tavily API密钥
    # 访问 https://tavily.com 注册并获取API Key
    
  2. 创建Worker

    • 登录 Cloudflare仪表板
    • 导航至 Workers & Pages
    • 点击 创建应用创建Worker
    • 命名你的Worker(例如:tavily-mcp-server
  3. 部署代码

    • 将此仓库中的 worker.js 代码复制到在线编辑器
    • 点击 保存并部署
  4. 配置环境变量

    • 在Worker设置页面选择 设置变量
    • 添加环境变量:
      • 名称TAVILY_API_KEY
      • :你的Tavily API密钥(支持逗号分隔的多个密钥)
      • 类型:加密变量
    • 保存并重新部署

方法2:Wrangler CLI部署

  1. 环境准备

    # 安装Wrangler CLI
    npm install -g wrangler
    
    # 登录Cloudflare
    wrangler login
    
  2. 项目初始化

    # 克隆仓库
    git clone <repository-url>
    cd tavily-mcp-server
    
    # 配置环境变量
    wrangler secret put TAVILY_API_KEY
    
  3. 部署服务

    wrangler deploy
    

📋 API文档

端点描述

端点方法描述
/GET服务信息页面
/healthGET健康检查端点
/mcpPOSTMCP协议通信端点

支持的工具

1. get_current_time

获取当前日期和时间信息

参数

{
  "timezone": "Asia/Shanghai",    // 可选,时区,默认 UTC
  "format": "chinese"             // 可选,格式:iso/chinese/us/timestamp,默认 iso
}

支持的时间区域示例:

  • UTC -协调世界时
  • Asia/Shanghai -北京时间
  • America/New_York -纽约时间
  • Europe/London -伦敦时间

支持的格式:

  • iso -ISO 8601格式(默认)
  • chinese -中文格式
  • us -美式英语格式
  • timestamp -Unix时间戳

2. tavily_search

执行网络搜索操作

参数

{
  "query": "搜索查询内容",          // 必需
  "max_results": 5,              // 可选,默认 5
  "search_depth": "basic",       // 可选,basic/advanced
  "include_domains": ["域名"],    // 可选
  "exclude_domains": ["域名"]     // 可选
}

3. tavily_extract

从指定URL中提取内容

参数

{
  "urls": ["https://example.com"] // 必需,URL数组
}

🔧 客户端配置

LobeChat配置

在LobeChat中添加MCP服务器:

{
  "name": "tavily-search",
  "transport": "streamable-http",
  "url": "https://your-worker.workers.dev/mcp",
  "description": "Tavily网络搜索服务 & 查询真实世界的当前时间"
}

Claude Desktop配置

claude_desktop_config.json中添加:

{
  "mcpServers": {
    "tavily": {
      "transport": "http",
      "url": "https://your-worker.workers.dev/mcp"
    }
  }
}

🧪 测试验证

健康检查

curl https://your-worker.workers.dev/health

功能测试

# 测试时间查询功能
curl -X POST https://your-worker.workers.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "get_current_time",
      "arguments": {
        "timezone": "Asia/Shanghai",
        "format": "chinese"
      }
    }
  }'

# 测试搜索功能
curl -X POST https://your-worker.workers.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "tavily_search",
      "arguments": {
        "query": "人工智能最新发展"
      }
    }
  }'

⚙️ 高级配置

自定义搜索参数

修改 worker.js 中的默认参数:

const DEFAULT_CONFIG = {
  max_results: 10,        // 增加默认结果数量
  search_depth: 'advanced', // 使用高级搜索
  include_answer: true    // 包含AI摘要
};

访问控制

默认情况下没有设置访问控制。你可以自行添加API密钥验证:

const authHeader = request.headers.get('Authorization');
if (authHeader !== 'Bearer your-secret-key') {
    return new Response('未经授权', { status: 401 });
}

日志监控

在Cloudflare仪表板中查看实时日志:

  • 进入Worker详情页面
  • 选择 日志 标签
  • 监控请求和错误消息

💰 成本解释

Cloudflare Workers 免费额度

  • ✅ 每天100,000次请求
  • ✅ 每次请求10毫秒CPU时间
  • ✅ 全球CDN分发
  • ✅ 零运维成本

Tavily API 定价

请参阅 Tavily 官方定价 了解API使用的成本。 通常,Tavily的免费账户每月限制1000次API调用,同一账户下的多个API密钥共享1000次API调用限制。

🐛 故障排除

常见问题

问题:环境变量未设置

错误:TAVILY_API_KEY环境变量未设置
解决:检查Cloudflare仪表板中的环境变量配置

问题:搜索返回错误

错误:API请求失败
解决:验证API密钥有效性和配额余额

问题:客户端连接失败

错误:无法连接到MCP服务器
解决:确认URL正确性和协议设置

调试技巧

  1. 查看实时日志

    wrangler tail your-worker-name
    
  2. 本地测试

    wrangler dev
    
  3. 验证环境变量

    wrangler secret list
    

🤝 贡献指南

我们欢迎社区贡献!请遵循以下步骤:

  1. 分叉本仓库
  2. 创建一个功能分支:git checkout -b feature/AmazingFeature
  3. 提交更改:git commit -m '添加一些AmazingFeature'
  4. 推送分支:git push origin feature/AmazingFeature
  5. 提交Pull Request

开发规范

  • 遵循JavaScript/ES6+编码标准
  • 添加适当的错误处理和日志记录
  • 更新相关文档和测试案例

📄 许可证

本项目在MIT许可证下开源。详见 LICENSE 文档。

🔗 相关链接


<div align="center">

⭐ 给个Star | 🐞 报告问题 | 💡 功能建议

</div>