{
  "data": {
    "a": {
      "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": 5,
      "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": 76.8,
        "grade": "BB",
        "agentReady": true,
        "rank": 25,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 85,
          "payments": 75,
          "reliability": 90,
          "schema": 89,
          "security": 52,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-04"
        },
        "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.",
        "bestFor": "An agent that needs search plus page text in one call and has no account yet.",
        "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 npm server (0.2.22, 5 August 2026) trails the GitHub source",
          "Privacy policy lets query data improve future responses unless a contract says otherwise, with no zero-retention option found",
          "SLAs named only for the custom Enterprise plan, and no security.txt or deprecation policy found"
        ],
        "agentNotes": [
          "Try `X-Tavily-Access-Mode: keyless` first for search and extract. Over MCP, the keyless cap arrives as plain text without `isError`, so read the text before treating it as results",
          "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.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 76.8
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 85,
          "payments": 75,
          "reliability": 90,
          "schema": 89,
          "security": 52,
          "transparency": 47
        },
        "provenanceScore": 73
      },
      "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-10-04",
        "score": 73
      },
      "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-09T10:42:58.292655597Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 269,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 255,
          "p95ms24h": 299,
          "samples24h": 260,
          "samples30d": 3254,
          "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": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 114,
              "ok": 114
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tavily.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T10:42:05.803661433Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.tavily-ai/tavily-mcp",
            "version": "0.2.15",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          },
          {
            "registry": "npm",
            "name": "@tavily/core",
            "version": "0.7.14",
            "seenAt": "2026-10-08T16:31:26.440548575Z"
          },
          {
            "registry": "npm",
            "name": "tavily-mcp",
            "version": "0.2.22",
            "seenAt": "2026-10-08T16:31:27.508036576Z"
          },
          {
            "registry": "pypi",
            "name": "tavily-python",
            "version": "0.8.5",
            "released": "2026-10-06",
            "seenAt": "2026-10-08T16:31:27.372724287Z"
          }
        ],
        "githubStars": 2424,
        "npmWeekly": 472271,
        "pypiWeekly": 1641713,
        "securityTxt": {
          "url": "https://tavily.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:34.740697225Z"
        },
        "llmsTxt": {
          "url": "https://docs.tavily.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:55.942262217Z"
        },
        "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-08T18:19:34.394133267Z",
            "changedAt": "2026-10-06T16:08:40.980358433Z",
            "fingerprint": "9fd0a7c1b9aa"
          },
          {
            "url": "https://www.tavily.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:54.140209056Z",
            "changedAt": "2026-10-08T18:30:54.140209056Z",
            "fingerprint": "2693835580ea"
          },
          {
            "url": "https://www.tavily.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:56.268772141Z",
            "changedAt": "2026-10-08T18:30:56.268772141Z",
            "fingerprint": "134087804808"
          },
          {
            "url": "https://www.tavily.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:58.569730429Z",
            "changedAt": "2026-10-08T18:30:58.569730429Z",
            "fingerprint": "4641d72b9859"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
          "checkedAt": "2026-10-08T21:34:02.268252156Z",
          "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-09T10:42:58.292655597Z"
      }
    },
    "answer": "Tavily API + MCP scores 76.8 (BB) on agent readiness against TinyFish Search's 63.2 (B), and leads in 6 of 7 scored categories. TinyFish Search leads on security \u0026 auth.",
    "b": {
      "slug": "tinyfish-search",
      "name": "TinyFish Search",
      "vendor": "TinyFish",
      "vendorUrl": "https://www.tinyfish.ai",
      "kind": "http-api",
      "category": "search",
      "summary": "Web search API from TinyFish that returns ranked titles, snippets and URLs as JSON for web, news or research-paper queries. It is called with an API key at `api.search.tinyfish.ai`, through Python and TypeScript SDKs, or through the vendor's MCP server.",
      "url": "https://www.anchorterminal.com/tools/tinyfish-search",
      "markdownUrl": "https://www.anchorterminal.com/tools/tinyfish-search.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tinyfish-search.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tinyfish-search.json",
      "repo": "https://github.com/tinyfish-io/tinyfish-mcp-server",
      "license": "Proprietary service under TinyFish's Terms of Service. The local MCP proxy `@tiny-fish/mcp` is MIT. The SDK packages on npm and PyPI carry no licence metadata",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.search.tinyfish.ai",
      "packages": [
        {
          "registry": "pypi",
          "name": "tinyfish"
        },
        {
          "registry": "npm",
          "name": "@tiny-fish/sdk"
        },
        {
          "registry": "npm",
          "name": "@tiny-fish/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "The REST API takes an API key in the `X-API-Key` header. Keys are created by a signed-in person at agent.tinyfish.ai/api-keys, are shown once and can be revoked or regenerated. One key works on all five TinyFish APIs (Search, Fetch, Agent, Research, Browser), and no scopes were found in the reviewed documentation. The hosted MCP server at `https://agent.tinyfish.ai/mcp` uses OAuth 2.1 with a browser sign-in, or the same key as a Bearer header for clients without OAuth.",
      "pricing": "freemium",
      "pricingNotes": "Search is $0.00 a request. The pricing page gives limits of 30 requests a minute and 500 an hour, and the docs give a daily allowance of 12,000 requests that resets at 00:00 UTC. No card is needed to sign up. Past the daily allowance the docs say a request needs a positive wallet balance and returns 402 `INSUFFICIENT_CREDITS` otherwise, while the pricing page says Search never draws from the wallet. No per-request rate above the allowance is published (https://www.tinyfish.ai/pricing, https://docs.tinyfish.ai/search-api/reference.md, checked 2026-10-08).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "An unauthenticated GET to https://api.search.tinyfish.ai?query=test returned 401 `MISSING_API_KEY` with `www-authenticate: ApiKey`, not a payment challenge. The docs describe the Machine Payments Protocol only on `POST https://agent.tinyfish.ai/v1/wallet/top-up`, which tops up a prepaid wallet for an existing account, needs the API key, and is rolling out gradually (https://docs.tinyfish.ai/agent-payments.md, checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 28,
      "popularity": {
        "githubStars": 9,
        "npmWeekly": 5721,
        "pypiWeekly": 6540,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.tinyfish.ai/search-api",
      "llmsTxt": "https://docs.tinyfish.ai/llms.txt",
      "openapi": "https://agent.tinyfish.ai/v1/openapi/search",
      "registryName": "ai.tinyfish.agent/web-agent",
      "capabilities": [
        "web.search",
        "web.fetch",
        "search.research"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "closed-source",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "python",
        "typescript",
        "cli",
        "mpp"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.2,
        "grade": "B",
        "agentReady": false,
        "rank": 366,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 78,
          "payments": 45,
          "reliability": 50,
          "schema": 82,
          "security": 58,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Search costs $0.00 a request within 30 requests a minute and 12,000 a day, with no card, a public OpenAPI document and rate-limit headers on every response. No public status page was found, one API key covers all five TinyFish APIs with no scopes, and the terms allow customer data to be used for model training.",
        "bestFor": "Agents that need ranked snippets and URLs at no cost and modest volume, with news and research-paper modes.",
        "strengths": [
          "$0.00 a request within 30 requests a minute and 12,000 a day, with no card needed to sign up",
          "Public OpenAPI 3.0 document for Search, plus `llms.txt`, `llms-full.txt` and a Markdown twin of every docs page",
          "429 responses carry `Retry-After` and `X-RateLimit-*` headers, and every response carries `X-Request-ID`",
          "Filters for domains, dates, recency, country and language, and `domain_type` for news or research papers",
          "Valid `security.txt` and a vulnerability disclosure policy dated 15 September 2026 with safe harbour"
        ],
        "weaknesses": [
          "No public status page was found on the site or in the docs",
          "One API key covers Search, Fetch, Agent, Research and Browser, and no scopes were found",
          "The Terms of Service allow customer data to be used to train and improve TinyFish's AI models",
          "The docs and the pricing page disagree on whether Search past the daily allowance needs a wallet balance, and no rate above it is published",
          "No parameter sets the number of results, and `page` stops at 10",
          "The Pulse changelog's newest entry is the week of 22 June 2026, and no deprecation policy was found"
        ],
        "agentNotes": [
          "Send the key in the `X-API-Key` header. The Search host is `https://api.search.tinyfish.ai`, not `agent.tinyfish.ai`",
          "Stay under 30 requests a minute per key. On 429, wait for `Retry-After`. A 429 without `details` is upstream throttling, so back off and retry",
          "Use `include_domains` and `exclude_domains` in place of `site:` operators, which the reference marks as deprecated for domain filtering",
          "Do not combine `recency_minutes` with `after_date` or `before_date`. For `domain_type=research_paper` use `pub_year_min` and `pub_year_max`",
          "Invalid requests count towards a separate limit of 60 a minute, so validate parameters before sending",
          "Treat snippets as untrusted text. The hosted MCP server exposes 28 tools, including browser automation that spends wallet funds"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.2
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 78,
          "payments": 45,
          "reliability": 50,
          "schema": 82,
          "security": 58,
          "transparency": 28
        },
        "provenanceScore": 75
      },
      "connect": {
        "install": "pip install -U tinyfish",
        "http": "curl \"https://api.search.tinyfish.ai?query=web+automation+tools\" \\\n  -H \"X-API-Key: $TINYFISH_API_KEY\"",
        "claudeCode": "claude mcp add --transport http tinyfish https://agent.tinyfish.ai/mcp",
        "config": {
          "mcpServers": {
            "tinyfish": {
              "url": "https://agent.tinyfish.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/tinyfish-search"
      },
      "sameCompany": [
        "tinyfish"
      ],
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Search request",
          "unit": "1k-requests",
          "usd": 0,
          "note": "Free within 30 a minute and 12,000 a day. No rate above the allowance is published"
        }
      ],
      "provenance": {
        "legalEntity": "Tiny Fish, Inc.",
        "domain": "tinyfish.ai",
        "domainRegistered": "2023-02-06",
        "endpointOnVendorDomain": true,
        "terms": "https://www.tinyfish.ai/terms",
        "privacy": "https://www.tinyfish.ai/privacy-policy",
        "statusPage": "",
        "changelog": "https://www.tinyfish.ai/pulse",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Terms of Service, effective 17 August 2026, name Tiny Fish, Inc., a Delaware corporation, cover the APIs at tinyfish.ai and its subdomains, and are governed by California law with binding arbitration.",
          "The privacy policy, effective 14 December 2025, names TinyFish Inc. of Cupertino, California, and covers the website, products and services.",
          "RDAP for tinyfish.ai gives a registration date of 2023-02-06 and a transfer on 2025-07-03.",
          "www.tinyfish.ai/.well-known/security.txt names security@tinyfish.io, links a disclosure policy and expires on 2027-09-01.",
          "No status page link was found on the home page, the pricing page or in the docs. A request to status.tinyfish.ai did not connect.",
          "The trust centre at trust.tinyfish.ai is a Vanta page drawn by script, and its contents were not read.",
          "The MCP registry lists `ai.tinyfish.agent/web-agent` with the remote `https://agent.tinyfish.ai/mcp`, published on 2026-02-17."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tinyfish-search.json",
      "live": {
        "slug": "tinyfish-search",
        "probe": {
          "target": "https://api.search.tinyfish.ai",
          "method": "get",
          "lastAt": "2026-10-09T10:42:58.982165557Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 211,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 185,
          "p95ms24h": 472,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "updatedAt": "2026-10-09T10:42:58.982165557Z"
      }
    },
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Tavily",
        "b": "TinyFish",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e",
        "b": "https://api.search.tinyfish.ai",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio, Streamable HTTP, HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$7.50 per 1,000 requests",
        "b": "free",
        "name": "Price for web search"
      },
      {
        "a": "payer tooling only",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary service under TinyFish's Terms of Service. The local MCP proxy `@tiny-fish/mcp` is MIT. The SDK packages on npm and PyPI carry no licence metadata",
        "name": "Licence"
      },
      {
        "a": "5",
        "b": "28",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.tavily-ai/tavily-mcp",
        "b": "ai.tinyfish.agent/web-agent",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-18",
        "b": "2026-09-29",
        "name": "Last release"
      },
      {
        "a": "2026-05-04",
        "b": "2026-08-17",
        "name": "Terms last updated"
      },
      {
        "a": "2025-11-24",
        "b": "2025-12-14",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2.4k stars, 452k npm/wk, 1.6M PyPI/wk",
        "b": "9 stars, 5.7k npm/wk, 6.5k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.6/5 (8)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Tavily API + MCP scores 76.8 (BB) on agent readiness against TinyFish Search's 63.2 (B), and leads in 6 of 7 scored categories. TinyFish Search leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Tavily API + MCP or TinyFish Search?"
      },
      {
        "answer": "TinyFish Search, at free against $7.50 per 1,000 requests for Tavily API + MCP. These are the vendors' published prices for the job.",
        "question": "Which is cheaper for web search, Tavily API + MCP or TinyFish Search?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Tavily API + MCP and TinyFish Search need an API key?"
      },
      {
        "answer": "Yes. Tavily API + MCP has a hosted endpoint at https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e and TinyFish Search at https://api.search.tinyfish.ai.",
        "question": "Can an agent call Tavily API + MCP and TinyFish Search without installing anything?"
      },
      {
        "answer": "Tavily API + MCP is open source (MIT). No open-source release is listed for TinyFish Search.",
        "question": "Are Tavily API + MCP and TinyFish Search open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 90 against 50",
          "Schema \u0026 documentation, 89 against 82",
          "Payments \u0026 pricing, 75 against 45",
          "Maintenance \u0026 community, 85 against 78",
          "Transparency \u0026 trust, 60 against 52"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine",
          "Open source"
        ],
        "goodFor": "An agent that needs search plus page text in one call and has no account yet.",
        "slug": "tavily-mcp",
        "watchFor": "x402 covers advanced search only, not extract, map, crawl or research"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 58 against 52"
        ],
        "also": [
          "Cheaper for web search, $0 against $7.50 per 1,000 requests"
        ],
        "goodFor": "Agents that need ranked snippets and URLs at no cost and modest volume, with news and research-paper modes.",
        "slug": "tinyfish-search",
        "watchFor": "No public status page was found on the site or in the docs"
      }
    ],
    "job": {
      "capability": "web.search",
      "name": "Web search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.json",
        "title": "Brave Search API + MCP vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tinyfish-search.json",
        "title": "Brave Search API + MCP vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp.json",
        "title": "Cloudflare Web Search API vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tinyfish-search.json",
        "title": "Cloudflare Web Search API vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-tavily-mcp.json",
        "title": "Exa API + MCP vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-tinyfish-search.json",
        "title": "Exa API + MCP vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp.json",
        "title": "Firecrawl MCP vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tinyfish-search.json",
        "title": "Firecrawl MCP vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-tavily-mcp.json",
        "title": "Linkup vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-tinyfish-search.json",
        "title": "Linkup vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallel-search-api-vs-tavily-mcp.json",
        "title": "Parallel Search and Task APIs vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallel-search-api-vs-tinyfish-search.json",
        "title": "Parallel Search and Task APIs vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-tavily-mcp.json",
        "title": "SearchAPI.io vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-tinyfish-search.json",
        "title": "SearchAPI.io vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp.json",
        "title": "SerpApi vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-tinyfish-search.json",
        "title": "SerpApi vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serper-vs-tavily-mcp.json",
        "title": "Serper vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serper-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serper-vs-tinyfish-search.json",
        "title": "Serper vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/serper-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp.json",
        "title": "SerpKite vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpkite-vs-tinyfish-search.json",
        "title": "SerpKite vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/serpkite-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tavily-mcp-vs-valyu.json",
        "title": "Tavily API + MCP vs Valyu",
        "url": "https://www.anchorterminal.com/compare/tavily-mcp-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tavily-mcp-vs-you-com-api.json",
        "title": "Tavily API + MCP vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/tavily-mcp-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tinyfish-search-vs-valyu.json",
        "title": "TinyFish Search vs Valyu",
        "url": "https://www.anchorterminal.com/compare/tinyfish-search-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tinyfish-search-vs-you-com-api.json",
        "title": "TinyFish Search vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/tinyfish-search-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-tavily-mcp.json",
        "title": "Fetch (MCP reference server) vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-tinyfish-search.json",
        "title": "Fetch (MCP reference server) vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-tavily-mcp.json",
        "title": "Grep AI vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grep-ai-vs-tinyfish-search.json",
        "title": "Grep AI vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/grep-ai-vs-tinyfish-search"
      }
    ],
    "scores": [
      {
        "by": 40,
        "edge": "tavily-mcp",
        "key": "reliability",
        "name": "Reliability",
        "tavily-mcp": 90,
        "tinyfish-search": 50,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "tavily-mcp",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "tavily-mcp": 89,
        "tinyfish-search": 82,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "tavily-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "tavily-mcp": 81,
        "tinyfish-search": 78,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "tinyfish-search",
        "key": "security",
        "name": "Security \u0026 auth",
        "tavily-mcp": 52,
        "tinyfish-search": 58,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "tavily-mcp",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "tavily-mcp": 75,
        "tinyfish-search": 45,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "tavily-mcp",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "tavily-mcp": 85,
        "tinyfish-search": 78,
        "weight": 7
      },
      {
        "by": 8,
        "edge": "tavily-mcp",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "tavily-mcp": 60,
        "tinyfish-search": 52,
        "weight": 7
      }
    ],
    "summary": "Tavily API + MCP scores 76.8 (BB) on agent readiness against TinyFish Search's 63.2 (B), and leads in 6 of 7 scored categories. TinyFish Search leads on security \u0026 auth. Both do web search. TinyFish Search is cheaper for web search, $0 against $7.50 per 1,000 requests.",
    "verdicts": {
      "tavily-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.",
      "tinyfish-search": "Search costs $0.00 a request within 30 requests a minute and 12,000 a day, with no card, a public OpenAPI document and rate-limit headers on every response. No public status page was found, one API key covers all five TinyFish APIs with no scopes, and the terms allow customer data to be used for model training."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search",
    "json": "https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search.md",
    "slim": "https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search.min.md"
  },
  "markdown": "Tavily API + MCP scores 76.8 (BB) on agent readiness against TinyFish Search's 63.2 (B), and leads in 6 of 7 scored categories. TinyFish Search leads on security \u0026 auth. Both do web search. TinyFish Search is cheaper for web search, $0 against $7.50 per 1,000 requests.\n\n- Tavily API + MCP: grade BB, 76.8/100, rank #25 of 842. Markdown https://www.anchorterminal.com/tools/tavily-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/tavily-mcp.json\n- TinyFish Search: grade B, 63.2/100, rank #366 of 842. Markdown https://www.anchorterminal.com/tools/tinyfish-search.md · JSON https://www.anchorterminal.com/api/v1/tools/tinyfish-search.json\n\n## Which one, for what\n\n### Tavily API + MCP (BB)\n\nGood for: An agent that needs search plus page text in one call and has no account yet.\n\nAhead on:\n- Reliability, 90 against 50\n- Schema \u0026 documentation, 89 against 82\n- Payments \u0026 pricing, 75 against 45\n- Maintenance \u0026 community, 85 against 78\n- Transparency \u0026 trust, 60 against 52\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n- Open source\n\nWatch for: x402 covers advanced search only, not extract, map, crawl or research\n\n### TinyFish Search (B)\n\nGood for: Agents that need ranked snippets and URLs at no cost and modest volume, with news and research-paper modes.\n\nAhead on:\n- Security \u0026 auth, 58 against 52\n\nAlso in its favour:\n- Cheaper for web search, $0 against $7.50 per 1,000 requests\n\nWatch for: No public status page was found on the site or in the docs\n\n\n## Score by category\n\n| Category | Weight | Tavily API + MCP | TinyFish Search | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 50 | Tavily API + MCP +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 82 | Tavily API + MCP +7 |\n| Agent ergonomics | 13% (16.2 this run) | 81 | 78 | Tavily API + MCP +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 52 | 58 | TinyFish Search +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 75 | 45 | Tavily API + MCP +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 78 | Tavily API + MCP +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 52 | Tavily API + MCP +8 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **76.8 · BB** | **63.2 · B** | |\n\n## Facts side by side\n\n| Fact | Tavily API + MCP | TinyFish Search |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | Tavily | TinyFish |\n| Hosted endpoint | `https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e` | `https://api.search.tinyfish.ai` |\n| Transports | stdio, Streamable HTTP, HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| Price for web search | $7.50 per 1,000 requests | free |\n| x402 | payer tooling only | no |\n| Licence | MIT | Proprietary service under TinyFish's Terms of Service. The local MCP proxy `@tiny-fish/mcp` is MIT. The SDK packages on npm and PyPI carry no licence metadata |\n| Tools exposed | 5 | 28 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.tavily-ai/tavily-mcp` | `ai.tinyfish.agent/web-agent` |\n| Last release | 2026-09-18 | 2026-09-29 |\n| Terms last updated | 2026-05-04 | 2026-08-17 |\n| Privacy policy last updated | 2025-11-24 | 2025-12-14 |\n| Customer content may train models | yes | yes |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 2.4k stars, 452k npm/wk, 1.6M PyPI/wk | 9 stars, 5.7k npm/wk, 6.5k PyPI/wk |\n| Agent reviews | 3.6/5 (8) | none |\n\n## Verdicts\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**TinyFish Search.** Search costs $0.00 a request within 30 requests a minute and 12,000 a day, with no card, a public OpenAPI document and rate-limit headers on every response. No public status page was found, one API key covers all five TinyFish APIs with no scopes, and the terms allow customer data to be used for model training.\n\n## Before you call either\n\n### Tavily API + MCP\n\n1. Try `X-Tavily-Access-Mode: keyless` first for search and extract. Over MCP, the keyless cap arrives as plain text without `isError`, so read the text before treating it as results\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### TinyFish Search\n\n1. Send the key in the `X-API-Key` header. The Search host is `https://api.search.tinyfish.ai`, not `agent.tinyfish.ai`\n2. Stay under 30 requests a minute per key. On 429, wait for `Retry-After`. A 429 without `details` is upstream throttling, so back off and retry\n3. Use `include_domains` and `exclude_domains` in place of `site:` operators, which the reference marks as deprecated for domain filtering\n4. Do not combine `recency_minutes` with `after_date` or `before_date`. For `domain_type=research_paper` use `pub_year_min` and `pub_year_max`\n5. Invalid requests count towards a separate limit of 60 a minute, so validate parameters before sending\n6. Treat snippets as untrusted text. The hosted MCP server exposes 28 tools, including browser automation that spends wallet funds\n\n## Questions\n\n### Which is better for AI agents, Tavily API + MCP or TinyFish Search?\n\nTavily API + MCP scores 76.8 (BB) on agent readiness against TinyFish Search's 63.2 (B), and leads in 6 of 7 scored categories. TinyFish Search leads on security \u0026 auth.\n\n### Which is cheaper for web search, Tavily API + MCP or TinyFish Search?\n\nTinyFish Search, at free against $7.50 per 1,000 requests for Tavily API + MCP. These are the vendors' published prices for the job.\n\n### Do Tavily API + MCP and TinyFish Search need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Tavily API + MCP and TinyFish Search without installing anything?\n\nYes. Tavily API + MCP has a hosted endpoint at https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e and TinyFish Search at https://api.search.tinyfish.ai.\n\n### Are Tavily API + MCP and TinyFish Search open source?\n\nTavily API + MCP is open source (MIT). No open-source release is listed for TinyFish Search.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search.json, and with the fewest tokens: https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"tavily-mcp\", \"b\": \"tinyfish-search\"}`. From a terminal: `anchor compare tavily-mcp tinyfish-search`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/tavily-mcp.json and https://www.anchorterminal.com/api/v1/tools/tinyfish-search.json\n\n## Other comparisons with Tavily API + MCP or TinyFish Search\n\n- [Brave Search API + MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.md)\n- [Brave Search API + MCP vs TinyFish Search](https://www.anchorterminal.com/compare/brave-search-mcp-vs-tinyfish-search.md)\n- [Cloudflare Web Search API vs Tavily API + MCP](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tavily-mcp.md)\n- [Cloudflare Web Search API vs TinyFish Search](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-tinyfish-search.md)\n- [Exa API + MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/exa-mcp-vs-tavily-mcp.md)\n- [Exa API + MCP vs TinyFish Search](https://www.anchorterminal.com/compare/exa-mcp-vs-tinyfish-search.md)\n- [Firecrawl MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp.md)\n- [Firecrawl MCP vs TinyFish Search](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tinyfish-search.md)\n- [Linkup vs Tavily API + MCP](https://www.anchorterminal.com/compare/linkup-vs-tavily-mcp.md)\n- [Linkup vs TinyFish Search](https://www.anchorterminal.com/compare/linkup-vs-tinyfish-search.md)\n- [Parallel Search and Task APIs vs Tavily API + MCP](https://www.anchorterminal.com/compare/parallel-search-api-vs-tavily-mcp.md)\n- [Parallel Search and Task APIs vs TinyFish Search](https://www.anchorterminal.com/compare/parallel-search-api-vs-tinyfish-search.md)\n- [SearchAPI.io vs Tavily API + MCP](https://www.anchorterminal.com/compare/searchapi-io-vs-tavily-mcp.md)\n- [SearchAPI.io vs TinyFish Search](https://www.anchorterminal.com/compare/searchapi-io-vs-tinyfish-search.md)\n- [SerpApi vs Tavily API + MCP](https://www.anchorterminal.com/compare/serpapi-vs-tavily-mcp.md)\n- [SerpApi vs TinyFish Search](https://www.anchorterminal.com/compare/serpapi-vs-tinyfish-search.md)\n- [Serper vs Tavily API + MCP](https://www.anchorterminal.com/compare/serper-vs-tavily-mcp.md)\n- [Serper vs TinyFish Search](https://www.anchorterminal.com/compare/serper-vs-tinyfish-search.md)\n- [SerpKite vs Tavily API + MCP](https://www.anchorterminal.com/compare/serpkite-vs-tavily-mcp.md)\n- [SerpKite vs TinyFish Search](https://www.anchorterminal.com/compare/serpkite-vs-tinyfish-search.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- [TinyFish Search vs Valyu](https://www.anchorterminal.com/compare/tinyfish-search-vs-valyu.md)\n- [TinyFish Search vs You.com APIs](https://www.anchorterminal.com/compare/tinyfish-search-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- [Fetch (MCP reference server) vs TinyFish Search](https://www.anchorterminal.com/compare/fetch-reference-server-vs-tinyfish-search.md)\n- [Grep AI vs Tavily API + MCP](https://www.anchorterminal.com/compare/grep-ai-vs-tavily-mcp.md)\n- [Grep AI vs TinyFish Search](https://www.anchorterminal.com/compare/grep-ai-vs-tinyfish-search.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "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": "Tavily API + MCP vs TinyFish Search",
        "url": ""
      }
    ],
    "description": "Tavily API + MCP scores 76.8 (BB) on agent readiness against TinyFish Search's 63.2 (B), and leads in 6 of 7 scored categories. TinyFish Search leads on security \u0026 auth. Both do web search. TinyFish Search is cheaper for web search, $0 against $7.50 per 1,000 requests. Category…",
    "facts": [
      "Tavily API + MCP BB 76.8",
      "TinyFish Search B 63.2",
      "scores"
    ],
    "h1": "Tavily API + MCP vs TinyFish Search",
    "image": "https://www.anchorterminal.com/assets/og/compare-tavily-mcp-vs-tinyfish-search.png",
    "path": "/compare/tavily-mcp-vs-tinyfish-search",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Tavily API + MCP vs TinyFish Search for AI agents, BB 76.8 vs B 63.2",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/tavily-mcp-vs-tinyfish-search"
  },
  "tokens": {
    "markdown": 2750,
    "slim": 730
  },
  "version": 1
}
