{
  "data": {
    "a": {
      "slug": "brave-search-mcp",
      "name": "Brave Search API + MCP",
      "vendor": "Brave",
      "vendorUrl": "https://brave.com/search/api/",
      "kind": "http-api",
      "category": "search",
      "summary": "REST API over Brave's independent index with web, news, image, video and local search, an LLM Context endpoint with pre-extracted page content and an Answers endpoint with citations.",
      "url": "https://www.anchorterminal.com/tools/brave-search-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/brave-search-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/brave-search-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/brave-search-mcp.json",
      "repo": "https://github.com/brave/brave-search-mcp-server",
      "license": "MIT",
      "transports": [
        "stdio",
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://api.search.brave.com/res/v1/web/search",
      "packages": [
        {
          "registry": "npm",
          "name": "@brave/brave-search-mcp-server"
        },
        {
          "registry": "oci",
          "name": "mcp/brave-search"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key in the `X-Subscription-Token` header. The x402 proxy at search.agent.s.brave.app takes a signed payment instead of a key. An `Api-Version` header pins dated response versions. MCP server: BRAVE_API_KEY (or BRAVE_API_KEY_FILE) environment variable.",
      "pricing": "usage",
      "pricingNotes": "Search plan $5 per 1,000 requests with $5 free credit a month, 50 QPS. Answers plan $4 per 1,000 requests plus $5 per million tokens, $5 free credit a month, 2 QPS. A card is required for the free credit. Storing results needs an Enterprise plan with storage rights. Enterprise custom (https://brave.com/search/api/).",
      "priceSummary": "$5 / 1k req",
      "where": "both",
      "x402": {
        "level": "partial",
        "evidence": "Brave's docs link a pay-per-request proxy at search.agent.s.brave.app. Web, LLM Context, news, video, image and local paths cost $0.005 in USDC on Base. Answers, Suggest and Spellcheck aren't sold. An unpaid web search returned 402 with a PAYMENT-REQUIRED header on 2026-09-30 (https://api-dashboard.search.brave.com/documentation/guides/agent-payments)",
        "endpoints": [
          {
            "url": "https://search.agent.s.brave.app/res/v1/web/search",
            "priceUsd": 0.005,
            "network": "eip155:8453"
          },
          {
            "url": "https://search.agent.s.brave.app/res/v1/llm/context",
            "priceUsd": 0.005,
            "network": "eip155:8453"
          }
        ]
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 1400,
        "npmWeekly": 22398,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://api-dashboard.search.brave.com/documentation",
      "llmsTxt": "https://api-dashboard.search.brave.com/llms.txt",
      "registryName": "io.github.brave/brave-search-mcp-server",
      "capabilities": [
        "web.search",
        "web.extract",
        "search.answer",
        "search.news",
        "search.images"
      ],
      "tags": [
        "official",
        "local",
        "open-source",
        "usage-priced",
        "hosted",
        "card-required",
        "x402",
        "llms-txt",
        "enterprise",
        "mcp"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.1,
        "grade": "B",
        "agentReady": false,
        "rank": 132,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 87,
          "payments": 70,
          "reliability": 55,
          "schema": 72,
          "security": 58,
          "transparency": 82
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "x402 proxy sells web, LLM Context, news, video, image and local search at $0.005 a call, and a failed search isn't charged. The status page marks the Search API \"not monitored\" and shows no incident history.",
        "strengths": [
          "x402 proxy sells web, LLM Context, news, video, image and local search at $0.005 a call, and a failed search isn't charged",
          "$5 per 1,000 searches at 50 QPS on the self-serve Search plan",
          "SOC 2 Type II, a HackerOne bounty and a valid security.txt",
          "Dated response versions through the `Api-Version` header",
          "MIT MCP server with five releases since July, tests in CI and a GitHub-verified registry entry"
        ],
        "weaknesses": [
          "The status page marks the Search API \"not monitored\" and shows no incident history",
          "A card is required even for the $5 monthly credit",
          "No public OpenAPI for the keyed API and no API changelog",
          "No SLA on self-serve plans, and Answers is limited to 2 QPS",
          "No prompt-injection guidance, though LLM Context returns raw page text"
        ],
        "agentNotes": [
          "Call /res/v1/llm/context when you need page text rather than links. It saves a separate fetch",
          "Treat \"No web results found\" from the MCP server as an empty result, not an outage",
          "On 429, wait for `X-RateLimit-Reset` seconds. There's no `Retry-After` header",
          "Skip `brave_summarizer`. The Summarizer is deprecated and the x402 proxy doesn't sell it",
          "Pin `Api-Version` to a date, since requests without it get the latest version"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.1
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 87,
          "payments": 70,
          "reliability": 55,
          "schema": 72,
          "security": 58,
          "transparency": 63
        },
        "provenanceScore": 100
      },
      "connect": {
        "http": "curl \"https://api.search.brave.com/res/v1/web/search?q=brave+search\u0026count=5\" \\\n  -H \"Accept: application/json\" -H \"X-Subscription-Token: $BRAVE_API_KEY\"",
        "claudeCode": "claude mcp add brave-search -e BRAVE_API_KEY=${BRAVE_API_KEY} -- npx -y @brave/brave-search-mcp-server",
        "config": {
          "mcpServers": {
            "brave-search": {
              "args": [
                "-y",
                "@brave/brave-search-mcp-server"
              ],
              "command": "npx",
              "env": {
                "BRAVE_API_KEY": "${BRAVE_API_KEY}"
              }
            }
          }
        },
        "x402": "purl --max-amount 5000 'https://search.agent.s.brave.app/res/v1/web/search?q=rust'\n# unpaid requests get HTTP 402 with a PAYMENT-REQUIRED header, USDC on eip155:8453"
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/brave-search-mcp"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Search plan",
          "unit": "1k-requests",
          "usd": 5
        },
        {
          "item": "Answers plan",
          "unit": "1k-requests",
          "usd": 4,
          "note": "plus $5 per million tokens"
        },
        {
          "item": "x402 search, per call",
          "unit": "call",
          "usd": 0.005,
          "note": "USDC on Base, no account"
        }
      ],
      "provenance": {
        "legalEntity": "Brave Software, Inc.",
        "domain": "brave.com",
        "domainRegistered": "1995-09-18",
        "domainNote": "brave.com was registered in 1995, before Brave bought it.",
        "endpointOnVendorDomain": true,
        "terms": "https://api-dashboard.search.brave.com/terms-of-service",
        "privacy": "https://api-dashboard.search.brave.com/privacy-policy",
        "statusPage": "https://status.brave.app",
        "changelog": "https://github.com/brave/brave-search-mcp-server/releases",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "notes": [
          "The x402 proxy runs on search.agent.s.brave.app, not brave.com. Brave's API docs link it as official.",
          "status.brave.app lists the Brave Search API but marks it \"not monitored\" and shows no incident history. The API docs keep a separate status log whose last entry is 27 March 2025 (https://api-dashboard.search.brave.com/documentation/resources/status-updates/)."
        ],
        "score": 100
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/brave-search-mcp.json",
      "live": {
        "slug": "brave-search-mcp",
        "probe": {
          "target": "https://api.search.brave.com/res/v1/web/search",
          "method": "get",
          "lastAt": "2026-10-04T23:48:05.752231641Z",
          "lastOk": true,
          "lastStatus": 422,
          "lastMs": 392,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 395,
          "p95ms24h": 420,
          "samples24h": 272,
          "samples30d": 1100,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.brave.app",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:39:52.323054222Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "brave/brave-search-mcp-server",
            "version": "v2.1.4",
            "released": "2026-09-17",
            "seenAt": "2026-10-04T16:22:44.217062681Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.brave/brave-search-mcp-server",
            "version": "2.1.3",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@brave/brave-search-mcp-server",
            "version": "2.1.4",
            "seenAt": "2026-10-04T16:22:43.730484655Z"
          }
        ],
        "githubStars": 1484,
        "npmWeekly": 30874,
        "securityTxt": {
          "url": "https://brave.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-04T15:15:38.826160997Z"
        },
        "llmsTxt": {
          "url": "https://api-dashboard.search.brave.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:21.910433141Z"
        },
        "domain": {
          "domain": "brave.com",
          "registered": "1995-09-18",
          "source": "https://rdap.verisign.com/com/v1/domain/brave.com",
          "checkedAt": "2026-10-04T13:07:28.958526087Z"
        },
        "pages": [
          {
            "url": "https://api-dashboard.search.brave.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:09.246937639Z",
            "changedAt": "2026-09-30T13:09:37.196019706Z",
            "fingerprint": "8c41a50b5a60"
          },
          {
            "url": "https://api-dashboard.search.brave.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:11.393064605Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e74eb26bd7c7"
          }
        ],
        "updatedAt": "2026-10-04T23:48:05.752231641Z"
      }
    },
    "b": {
      "slug": "tavily-mcp",
      "name": "Tavily API + MCP",
      "vendor": "Tavily",
      "vendorUrl": "https://www.tavily.com",
      "kind": "mcp",
      "category": "search",
      "summary": "Tavily's REST API for web search, URL extraction, site mapping, crawling and cited research reports, with the official MCP server hosted at mcp.tavily.com or run locally from npm.",
      "url": "https://www.anchorterminal.com/tools/tavily-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/tavily-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tavily-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tavily-mcp.json",
      "repo": "https://github.com/tavily-ai/tavily-mcp",
      "license": "MIT",
      "transports": [
        "stdio",
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
      "packages": [
        {
          "registry": "npm",
          "name": "@tavily/core"
        },
        {
          "registry": "pypi",
          "name": "tavily-python"
        },
        {
          "registry": "npm",
          "name": "tavily-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key as `Authorization: Bearer tvly-...`. Development keys and production keys have different rate limits, and production keys need a paid plan or pay as you go. The `X-Tavily-Access-Mode: keyless` header gives rate-limited search and extract with no key. x402.tavily.com takes a `PAYMENT-SIGNATURE` header instead. MCP server: API key in the URL query (?tavilyApiKey=) or Authorization header; OAuth flow also supported on the hosted server (uses an mcp_auth_default key from the dashboard).",
      "pricing": "freemium",
      "pricingNotes": "Free 1,000 credits a month, no card. Project $30 a month (4,000 credits), Bootstrap $100 (15,000), Startup $220 (38,000), Growth $500 (100,000), pay as you go $0.008 a credit. Basic search 1 credit, advanced 2, extract 1 per 5 URLs (advanced 2), map 1 per 10 pages, crawl is map plus extract, research 4 to 250 credits by model. Failed extracts and maps aren't charged (https://www.tavily.com/pricing).",
      "priceSummary": "$7.50 / 1k req",
      "where": "both",
      "x402": {
        "level": "partial",
        "evidence": "Official x402 endpoint at x402.tavily.com sells POST /search in advanced mode only, $0.01 in USDC on Base. An unpaid request returned 402 and /.well-known/pricing listed the price on 2026-09-30. Extract, map, crawl and research aren't sold over x402 (https://docs.tavily.com/documentation/machine-payments/x402.md)",
        "endpoints": [
          {
            "url": "https://x402.tavily.com/search",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          }
        ]
      },
      "toolCount": 6,
      "popularity": {
        "githubStars": 2400,
        "npmWeekly": 451969,
        "pypiWeekly": 1589963,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.tavily.com",
      "llmsTxt": "https://docs.tavily.com/llms.txt",
      "openapi": "https://docs.tavily.com/documentation/api-reference/openapi.json",
      "registryName": "io.github.tavily-ai/tavily-mcp",
      "capabilities": [
        "web.search",
        "web.extract",
        "web.crawl",
        "web.fetch",
        "search.answer",
        "search.research",
        "search.news",
        "search.images"
      ],
      "tags": [
        "official",
        "hosted",
        "local",
        "open-source",
        "freemium",
        "llms-txt",
        "no-card",
        "free-tier",
        "x402",
        "openapi",
        "python",
        "typescript",
        "async-jobs",
        "enterprise",
        "mcp"
      ],
      "lastRelease": "2026-09-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 77.2,
        "grade": "BB",
        "agentReady": true,
        "rank": 20,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 85,
          "payments": 75,
          "reliability": 90,
          "schema": 89,
          "security": 52,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Keyless search and extract, plus a free 1,000 credits a month with no card. x402 covers advanced search only, not extract, map, crawl or research.",
        "strengths": [
          "Keyless search and extract, plus a free 1,000 credits a month with no card",
          "x402 endpoint for advanced search at $0.01 in USDC on Base",
          "Public OpenAPI, llms.txt and an error table that tells plan limits (432) from pay-as-you-go limits (433)",
          "429 carries Retry-After, with limits published per key type and endpoint",
          "Logs API filters calls by key and endpoint"
        ],
        "weaknesses": [
          "x402 covers advanced search only, not extract, map, crawl or research",
          "Hosted MCP docs lead with `?tavilyApiKey=` in the URL query string",
          "No readOnlyHint or destructiveHint on the MCP tools, and the feedback tool's definition is longer than the search tool's",
          "Privacy policy lets query data improve future responses unless a contract says otherwise, with no zero-retention option found",
          "No SLA, security.txt or deprecation policy found"
        ],
        "agentNotes": [
          "Try `X-Tavily-Access-Mode: keyless` first for search and extract, then switch to a key or x402 when the limit hits",
          "Send the key in `Authorization: Bearer`, not `?tavilyApiKey=` in the MCP URL",
          "On 429, wait for `Retry-After`. A 432 or 433 means a spend limit, and retrying won't help",
          "Run /map before /crawl to bound the crawl, since crawl is billed as map plus extract",
          "Research is async and runs 4 to 250 credits. Create the task, then poll /research/{request_id}"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.6,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 77.2
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 85,
          "payments": 75,
          "reliability": 90,
          "schema": 89,
          "security": 52,
          "transparency": 47
        },
        "provenanceScore": 82
      },
      "connect": {
        "http": "curl -X POST https://api.tavily.com/search \\\n  -H \"Authorization: Bearer $TAVILY_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"query\":\"latest AI news\",\"max_results\":5}'",
        "claudeCode": "claude mcp add --transport http tavily https://mcp.tavily.com/mcp/ --header \"Authorization: Bearer ${TAVILY_API_KEY}\"",
        "config": {
          "mcpServers": {
            "tavily": {
              "headers": {
                "Authorization": "Bearer ${TAVILY_API_KEY}"
              },
              "url": "https://mcp.tavily.com/mcp/"
            }
          }
        },
        "x402": "curl -i -X POST https://x402.tavily.com/search -H 'content-type: application/json' -d '{\"query\":\"Who is Leo Messi?\"}'\n# HTTP/2 402, PAYMENT-REQUIRED header carries the terms (10000 base units of USDC on eip155:8453)\n# retry with PAYMENT-SIGNATURE: \u003cbase64 signed authorization\u003e"
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/tavily-mcp"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Basic search on Project plan",
          "unit": "1k-requests",
          "usd": 7.5,
          "note": "1 credit a search at $0.0075 a credit"
        },
        {
          "item": "Project plan",
          "unit": "month",
          "usd": 30,
          "note": "4,000 credits"
        },
        {
          "item": "Bootstrap plan",
          "unit": "month",
          "usd": 100,
          "note": "15,000 credits"
        },
        {
          "item": "Credit, pay as you go",
          "unit": "credit",
          "usd": 0.008,
          "note": "basic search 1 credit, advanced 2"
        }
      ],
      "provenance": {
        "legalEntity": "AlphaAI Technologies Inc. dba Tavily",
        "domain": "tavily.com",
        "domainRegistered": "2023-04-13",
        "endpointOnVendorDomain": true,
        "terms": "https://www.tavily.com/terms",
        "privacy": "https://www.tavily.com/privacy",
        "statusPage": "https://status.tavily.com",
        "changelog": "https://docs.tavily.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tavily-mcp.json",
      "live": {
        "slug": "tavily-mcp",
        "probe": {
          "target": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
          "method": "mcp-initialize",
          "lastAt": "2026-10-04T23:48:16.746669048Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 249,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 257,
          "p95ms24h": 305,
          "samples24h": 272,
          "samples30d": 2054,
          "days": [
            {
              "date": "2026-09-27",
              "probes": 132,
              "ok": 132
            },
            {
              "date": "2026-09-28",
              "probes": 285,
              "ok": 285
            },
            {
              "date": "2026-09-29",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-09-30",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tavily.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:49:29.330470736Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.tavily-ai/tavily-mcp",
            "version": "0.2.15",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@tavily/core",
            "version": "0.7.13",
            "seenAt": "2026-10-04T16:41:18.596538179Z"
          },
          {
            "registry": "npm",
            "name": "tavily-mcp",
            "version": "0.2.22",
            "seenAt": "2026-10-04T16:41:19.547913482Z"
          },
          {
            "registry": "pypi",
            "name": "tavily-python",
            "version": "0.8.4",
            "released": "2026-09-18",
            "seenAt": "2026-10-04T16:41:19.43866146Z"
          }
        ],
        "githubStars": 2416,
        "npmWeekly": 472577,
        "pypiWeekly": 1688928,
        "securityTxt": {
          "url": "https://tavily.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:39.406853105Z"
        },
        "llmsTxt": {
          "url": "https://docs.tavily.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:17.194149771Z"
        },
        "domain": {
          "domain": "tavily.com",
          "registered": "2023-04-13",
          "source": "https://rdap.verisign.com/com/v1/domain/tavily.com",
          "checkedAt": "2026-10-04T13:10:11.715455706Z"
        },
        "pages": [
          {
            "url": "https://docs.tavily.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:07.445190355Z",
            "changedAt": "2026-10-01T13:13:02.472584343Z",
            "fingerprint": "b80e278c1058"
          },
          {
            "url": "https://www.tavily.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:25.606932727Z",
            "changedAt": "2026-10-01T13:18:40.634970947Z",
            "fingerprint": "a7eb93565f03"
          },
          {
            "url": "https://www.tavily.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:27.748065371Z",
            "changedAt": "2026-10-01T13:18:42.856868801Z",
            "fingerprint": "7d1afba1cbc9"
          },
          {
            "url": "https://www.tavily.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:29.801047363Z",
            "changedAt": "2026-10-01T13:18:44.802104507Z",
            "fingerprint": "14aecf61290a"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
          "checkedAt": "2026-10-04T22:20:00.813367628Z",
          "status": "ok",
          "protocol": "2026-07-28",
          "tools": [
            {
              "name": "tavily_search",
              "title": "Tavily Search",
              "description": "Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "country": {
                    "default": "",
                    "description": "Boost search results from a specific country. Must be a full country name (e.g., 'United States', 'Japan', 'Germany'). ISO country codes (e.g., 'us', 'jp') are not supported. Available only if topic is general. See https://docs.tavily.com/documentation/api-reference/search for the full list of supported countries.",
                    "type": "string"
                  },
                  "end_date": {
                    "default": "",
                    "description": "Will return all results before the specified end date. Required to be written in the format YYYY-MM-DD",
                    "type": "string"
                  },
                  "exact_match": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "Only return results containing the exact phrase(s) in quotes in your query"
                  },
                  "exclude_domains": {
                    "default": [],
                    "description": "List of domains to specifically exclude, if the user asks to exclude a domain set this to the domain of the site",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "include_domains": {
                    "default": [],
                    "description": "A list of domains to specifically include in the search results, if the user asks to search on specific sites set this to the domain of the site",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "include_favicon": {
                    "default": false,
                    "description": "Whether to include the favicon URL for each result",
                    "type": "boolean"
                  },
                  "include_image_descriptions": {
                    "default": false,
                    "description": "Include a list of query-related images and their descriptions in the response",
                    "type": "boolean"
                  },
                  "include_images": {
                    "default": false,
                    "description": "Include a list of query-related images in the response",
                    "type": "boolean"
                  },
                  "include_raw_content": {
                    "default": false,
                    "description": "Include the cleaned and parsed HTML content of each search result",
                    "type": "boolean"
                  },
                  "max_results": {
                    "default": 5,
                    "description": "The maximum number of search results to return",
                    "type": "integer"
                  },
                  "query": {
                    "description": "Search query",
                    "type": "string"
                  },
                  "search_depth": {
                    "default": "basic",
                    "description": "The depth of the search. 'basic' for generic results, 'advanced' for more thorough search, 'fast' for optimized low latency with high relevance, 'ultra-fast' for prioritizing latency above all else",
                    "enum": [
                      "basic",
                      "advanced",
                      "fast",
                      "ultra-fast"
                    ],
                    "type": "string"
                  },
                  "start_date": {
                    "default": "",
                    "description": "Will return all results after the specified start date. Required to be written in the format YYYY-MM-DD.",
                    "type": "string"
                  },
                  "time_range": {
                    "anyOf": [
                      {
                        "enum": [
                          "day",
                          "week",
                          "month",
                          "year"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "default": null,
                    "description": "The time range back from the current date to include in the search results"
                  },
                  "topic": {
                    "const": "general",
                    "default": "general",
                    "description": "The category of the search. This will determine which of our agents will be used for the search",
                    "type": "string"
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "tavily_extract",
              "title": "Tavily Extract",
              "description": "Extract content from URLs. Returns raw page content in markdown or text format.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "extract_depth": {
                    "default": "basic",
                    "description": "Use 'advanced' for LinkedIn, protected sites, or tables/embedded content",
                    "enum": [
                      "basic",
                      "advanced"
                    ],
                    "type": "string"
                  },
                  "format": {
                    "default": "markdown",
                    "description": "Output format",
                    "enum": [
                      "markdown",
                      "text"
                    ],
                    "type": "string"
                  },
                  "include_favicon": {
                    "default": false,
                    "description": "Include favicon URLs",
                    "type": "boolean"
                  },
                  "include_images": {
                    "default": false,
                    "description": "Include images from pages",
                    "type": "boolean"
                  },
                  "query": {
                    "default": "",
                    "description": "Query to rerank content chunks by relevance",
                    "type": "string"
                  },
                  "urls": {
                    "description": "List of URLs to extract content from",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "urls"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "tavily_crawl",
              "title": "Tavily Crawl",
              "description": "Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "allow_external": {
                    "default": true,
                    "description": "Whether to return external links in the final response",
                    "type": "boolean"
                  },
                  "extract_depth": {
                    "default": "basic",
                    "description": "Advanced extraction retrieves more data, including tables and embedded content, with higher success but may increase latency",
                    "enum": [
                      "basic",
                      "advanced"
                    ],
                    "type": "string"
                  },
                  "format": {
                    "default": "markdown",
                    "description": "The format of the extracted web page content. markdown returns content in markdown format. text returns plain text and may increase latency.",
                    "enum": [
                      "markdown",
                      "text"
                    ],
                    "type": "string"
                  },
                  "include_favicon": {
                    "default": false,
                    "description": "Whether to include the favicon URL for each result",
                    "type": "boolean"
                  },
                  "instructions": {
                    "default": "",
                    "description": "Natural language instructions for the crawler. Instructions specify which types of pages the crawler should return.",
                    "type": "string"
                  },
                  "limit": {
                    "default": 50,
                    "description": "Total number of links the crawler will process before stopping",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "max_breadth": {
                    "default": 20,
                    "description": "Max number of links to follow per level of the tree (i.e., per page)",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "max_depth": {
                    "default": 1,
                    "description": "Max depth of the crawl. Defines how far from the base URL the crawler can explore.",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "select_domains": {
                    "default": [],
                    "description": "Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\\.example\\.com$)",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "select_paths": {
                    "default": [],
                    "description": "Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "url": {
                    "description": "The root URL to begin the crawl",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "tavily_map",
              "title": "Tavily Map",
              "description": "Map a website's structure. Returns a list of URLs found starting from the base URL.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "allow_external": {
                    "default": true,
                    "description": "Whether to return external links in the final response",
                    "type": "boolean"
                  },
                  "instructions": {
                    "default": "",
                    "description": "Natural language instructions for the crawler",
                    "type": "string"
                  },
                  "limit": {
                    "default": 50,
                    "description": "Total number of links the crawler will process before stopping",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "max_breadth": {
                    "default": 20,
                    "description": "Max number of links to follow per level of the tree (i.e., per page)",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "max_depth": {
                    "default": 1,
                    "description": "Max depth of the mapping. Defines how far from the base URL the crawler can explore",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "select_domains": {
                    "default": [],
                    "description": "Regex patterns to restrict crawling to specific domains or subdomains (e.g., ^docs\\.example\\.com$)",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "select_paths": {
                    "default": [],
                    "description": "Regex patterns to select only URLs with specific path patterns (e.g., /docs/.*, /api/v1.*)",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "url": {
                    "description": "The root URL to begin the mapping",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            },
            {
              "name": "tavily_research",
              "title": "Tavily Research",
              "description": "Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources, including web pages, documents, and other resources, to answer a question or complete a task. Returns a detailed response based on the research findings. Rate limit: 20 requests per minute.",
              "inputSchema": {
                "additionalProperties": false,
                "properties": {
                  "input": {
                    "description": "A comprehensive description of the research task",
                    "type": "string"
                  },
                  "model": {
                    "default": "auto",
                    "description": "Defines the degree of depth of the research. 'mini' is good for narrow tasks with few subtopics. 'pro' is good for broad tasks with many subtopics",
                    "enum": [
                      "mini",
                      "pro",
                      "auto"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "input"
                ],
                "type": "object"
              },
              "outputSchema": {
                "additionalProperties": true,
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": true,
                "readOnlyHint": true
              }
            }
          ],
          "schemaTokens": 2262,
          "changedAt": "2026-09-28T21:55:54.996628221Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 2262,
            "counts": {
              "error": 0,
              "note": 0,
              "warn": 1
            },
            "findings": [
              {
                "rule": "TC14",
                "severity": "warn",
                "tool": "tavily_search",
                "message": "allowed values are in the description, not an enum: country",
                "fix": "Move them into enum."
              }
            ]
          }
        },
        "updatedAt": "2026-10-04T23:49:29.330470736Z"
      }
    },
    "summary": "Tavily API + MCP has a score of 77.2 (BB) against Brave Search API + MCP's 68.1 (B). Both do web search. The largest gap is reliability, 35 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp",
    "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.md",
    "slim": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.min.md"
  },
  "markdown": "Tavily API + MCP has a score of 77.2 (BB) against Brave Search API + MCP's 68.1 (B). Both do web search. The largest gap is reliability, 35 points.\n\n- Brave Search API + MCP: grade B, 68.1/100, rank #132 of 452. Markdown https://www.anchorterminal.com/tools/brave-search-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/brave-search-mcp.json\n- Tavily API + MCP: grade BB, 77.2/100, rank #20 of 452. Markdown https://www.anchorterminal.com/tools/tavily-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/tavily-mcp.json\n\n## Which one, for what\n\nPick Brave Search API + MCP for security \u0026 auth (+6), transparency \u0026 trust (+17).\n\nPick Tavily API + MCP for reliability (+35), schema \u0026 documentation (+17), agent ergonomics (+9), payments \u0026 pricing (+5).\n\n## Score by category\n\n| Category | Weight | Brave Search API + MCP | Tavily API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 90 | Tavily API + MCP +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 72 | 89 | Tavily API + MCP +17 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 81 | Tavily API + MCP +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 58 | 52 | Brave Search API + MCP +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 70 | 75 | Tavily API + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 85 | Brave Search API + MCP +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 82 | 65 | Brave Search API + MCP +17 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **68.1 · B** | **77.2 · BB** | |\n\n## Facts side by side\n\n| Fact | Brave Search API + MCP | Tavily API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Brave | Tavily |\n| Hosted endpoint | `https://api.search.brave.com/res/v1/web/search` | `https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e` |\n| Transports | stdio, Streamable HTTP, HTTP | stdio, Streamable HTTP, HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Pay per use | Freemium |\n| x402 | payer tooling only | payer tooling only |\n| Licence | MIT | MIT |\n| Tools exposed | 8 | 6 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.brave/brave-search-mcp-server` | `io.github.tavily-ai/tavily-mcp` |\n| Last release | 2026-09-17 | 2026-09-18 |\n| Popularity | 1.4k stars, 22k npm/wk | 2.4k stars, 452k npm/wk, 1.6M PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 3.6/5 (8) |\n\n## Verdicts\n\n**Brave Search API + MCP.** x402 proxy sells web, LLM Context, news, video, image and local search at $0.005 a call, and a failed search isn't charged. The status page marks the Search API \"not monitored\" and shows no incident history.\n\n**Tavily API + MCP.** Keyless search and extract, plus a free 1,000 credits a month with no card. x402 covers advanced search only, not extract, map, crawl or research.\n\n## Before you call either\n\n### Brave Search API + MCP\n\n1. Call /res/v1/llm/context when you need page text rather than links. It saves a separate fetch\n2. Treat \"No web results found\" from the MCP server as an empty result, not an outage\n3. On 429, wait for `X-RateLimit-Reset` seconds. There's no `Retry-After` header\n4. Skip `brave_summarizer`. The Summarizer is deprecated and the x402 proxy doesn't sell it\n5. Pin `Api-Version` to a date, since requests without it get the latest version\n\n### Tavily API + MCP\n\n1. Try `X-Tavily-Access-Mode: keyless` first for search and extract, then switch to a key or x402 when the limit hits\n2. Send the key in `Authorization: Bearer`, not `?tavilyApiKey=` in the MCP URL\n3. On 429, wait for `Retry-After`. A 432 or 433 means a spend limit, and retrying won't help\n4. Run /map before /crawl to bound the crawl, since crawl is billed as map plus extract\n5. Research is async and runs 4 to 250 credits. Create the task, then poll /research/{request_id}\n\n## Other comparisons with Brave Search API + MCP or Tavily API + MCP\n\n- [Brave Search API + MCP vs Exa API + MCP](https://www.anchorterminal.com/compare/brave-search-mcp-vs-exa-mcp.md)\n- [Brave Search API + MCP vs Firecrawl MCP](https://www.anchorterminal.com/compare/brave-search-mcp-vs-firecrawl-mcp.md)\n- [Brave Search API + MCP vs Linkup](https://www.anchorterminal.com/compare/brave-search-mcp-vs-linkup.md)\n- [Brave Search API + MCP vs Parallel Search and Task APIs](https://www.anchorterminal.com/compare/brave-search-mcp-vs-parallel-search-api.md)\n- [Brave Search API + MCP vs SearchAPI.io](https://www.anchorterminal.com/compare/brave-search-mcp-vs-searchapi-io.md)\n- [Brave Search API + MCP vs SerpApi](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi.md)\n- [Brave Search API + MCP vs Serper](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serper.md)\n- [Brave Search API + MCP vs Valyu](https://www.anchorterminal.com/compare/brave-search-mcp-vs-valyu.md)\n- [Brave Search API + MCP vs You.com APIs](https://www.anchorterminal.com/compare/brave-search-mcp-vs-you-com-api.md)\n- [Exa API + MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/exa-mcp-vs-tavily-mcp.md)\n- [Firecrawl MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp.md)\n- [Linkup vs Tavily API + MCP](https://www.anchorterminal.com/compare/linkup-vs-tavily-mcp.md)\n- [Parallel Search and Task APIs vs Tavily API + MCP](https://www.anchorterminal.com/compare/parallel-search-api-vs-tavily-mcp.md)\n- [SearchAPI.io vs Tavily API + MCP](https://www.anchorterminal.com/compare/searchapi-io-vs-tavily-mcp.md)\n- [SerpApi vs Tavily API + MCP](https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp.md)\n- [Serper vs Tavily API + MCP](https://www.anchorterminal.com/compare/serper-vs-tavily-mcp.md)\n- [Tavily API + MCP vs Valyu](https://www.anchorterminal.com/compare/tavily-mcp-vs-valyu.md)\n- [Tavily API + MCP vs You.com APIs](https://www.anchorterminal.com/compare/tavily-mcp-vs-you-com-api.md)\n- [Fetch (MCP reference server) vs Tavily API + MCP](https://www.anchorterminal.com/compare/fetch-reference-server-vs-tavily-mcp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Brave Search API + MCP vs Tavily API + MCP",
        "url": ""
      }
    ],
    "description": "Tavily API + MCP has a score of 77.2 (BB) against Brave Search API + MCP's 68.1 (B). Both do web search. The largest gap is reliability, 35 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Brave Search API + MCP B 68.1",
      "Tavily API + MCP BB 77.2",
      "scores"
    ],
    "h1": "Brave Search API + MCP vs Tavily API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-brave-search-mcp-vs-tavily-mcp.png",
    "path": "/compare/brave-search-mcp-vs-tavily-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Brave Search API + MCP vs Tavily API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp"
  },
  "tokens": {
    "markdown": 1750,
    "slim": 380
  },
  "version": 1
}
