Skip to main content
Glama
sunwu51

tavily-proxy

by sunwu51

tavily-proxy

A Cloudflare Worker that acts as an MCP (Model Context Protocol) proxy for the Tavily API. It provides the same tools as the official Tavily MCP server, but with an API key pool — automatically rotating through multiple Tavily keys and selecting the one with the most remaining credit.

Features

  • MCP Server — Streamable HTTP transport at POST /mcp, compatible with any MCP client

  • 4 Tavily Toolstavily-search, tavily-extract, tavily-crawl, tavily-map

  • API Key Pool — Multiple Tavily API keys stored in Cloudflare KV; each request picks the key with the highest remaining credit

  • Key Management API — HTTP endpoints to add/delete keys and query their status

  • Auth Protected — All endpoints (except health check) require an x-api-key header

Related MCP server: Cloudflare Tavily Search MCP

Endpoints

Method

Path

Description

POST

/mcp

MCP Streamable HTTP endpoint (tool calls)

POST

/api/keys

Add a Tavily API key to the pool

DELETE

/api/keys

Remove a Tavily API key from the pool

GET

/api/keys

List all keys and their remaining credits

GET

/

Health check (no auth required)

All endpoints except GET / require the x-api-key header matching your configured AUTH_KEY.

Setup

Prerequisites

Local Development

# Install dependencies
npm install

# Set your auth key for local dev (already in .dev.vars)
# AUTH_KEY=test-secret-key

# Start local server
npm run dev

Wrangler simulates KV locally — no Cloudflare account needed for development.

Deploy to Production

  1. Create a KV namespace:

    npx wrangler kv namespace create KV
  2. Update wrangler.toml — replace YOUR_KV_NAMESPACE_ID with the real ID from step 1.

  3. Set the auth secret:

    npx wrangler secret put AUTH_KEY
  4. Deploy:

    npm run deploy
  5. Add Tavily API keys to the pool:

    curl -X POST https://your-worker.workers.dev/api/keys \
      -H "Content-Type: application/json" \
      -H "x-api-key: your-auth-key" \
      -d '{"apiKey": "tvly-xxx"}'

Usage

Connect MCP Clients

With mcp-remote (for clients like Cursor, Claude Desktop, etc.):

{
  "mcpServers": {
    "tavily-proxy": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://your-worker.workers.dev/mcp",
        "--header", "x-api-key:${AUTH_KEY}"
      ],
      "env": {
        "AUTH_KEY": "your-auth-key"
      }
    }
  }
}

Key Management

# Add a key (auto-queries remaining credit from Tavily)
curl -X POST https://your-worker.workers.dev/api/keys \
  -H "Content-Type: application/json" \
  -H "x-api-key: your-auth-key" \
  -d '{"apiKey": "tvly-xxx"}'

# List all keys and credits
curl https://your-worker.workers.dev/api/keys \
  -H "x-api-key: your-auth-key"

# Delete a key
curl -X DELETE https://your-worker.workers.dev/api/keys \
  -H "Content-Type: application/json" \
  -H "x-api-key: your-auth-key" \
  -d '{"apiKey": "tvly-xxx"}'

How the Key Pool Works

  1. When a tool is called, KV.list() retrieves all stored API keys

  2. The key with the largest remaining credit is selected

  3. The request is proxied to api.tavily.com using that key

  4. After the call, the estimated credit cost is deducted locally in KV

  5. When a key is added via /api/keys, its real remaining credit is fetched from Tavily's /usage endpoint

License

ISC

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A unified search and extraction MCP server hosted on Cloudflare Workers that integrates Tavily and Brave Search APIs with automatic API key rotation. It features secure, encrypted storage for keys using Cloudflare D1 and provides an admin interface for managing client tokens and search configurations.
    11 npm
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    A remote web search MCP server deployed on Cloudflare Workers that wraps Tavily's low-cost search into a 'web_search' tool. It is suitable for mobile/desktop AI clients or any app supporting remote MCP.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Cloudflare Worker that proxies the Tavily API through MCP, offering search, extract, crawl, and map tools with automatic API key rotation and health-based routing.
    3
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes pooled Tavily API keys through an MCP streamable HTTP endpoint, providing search, extract, crawl, map, research, and pool status tools with automatic key rotation and quota management.
    MIT