{
  "data": {
    "a": {
      "slug": "firecrawl-mcp",
      "name": "Firecrawl MCP",
      "vendor": "Firecrawl (Mendable)",
      "vendorUrl": "https://www.firecrawl.dev",
      "kind": "mcp",
      "category": "web-scrapers",
      "summary": "Official Firecrawl server for scraping pages to markdown/JSON, mapping and crawling sites, web search, browser interaction, monitoring and an autonomous research agent.",
      "url": "https://www.anchorterminal.com/tools/firecrawl-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/firecrawl-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/firecrawl-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/firecrawl-mcp.json",
      "repo": "https://github.com/firecrawl/firecrawl-mcp-server",
      "license": "MIT",
      "transports": [
        "stdio",
        "streamable-http",
        "sse"
      ],
      "remoteUrl": "https://mcp.firecrawl.dev/v2/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "firecrawl-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Hosted endpoints take OAuth (`https://mcp.firecrawl.dev/v2/mcp-oauth`) or `Authorization: Bearer \u003cFIRECRAWL_API_KEY\u003e` on `https://mcp.firecrawl.dev/v2/mcp`. The same URL with no credential is the keyless tier (scrape, search, parse, rate-limited per IP). The search-only endpoint `/v2/mcp-search` has its own OAuth identity. Locally, FIRECRAWL_API_KEY or FIRECRAWL_OAUTH_TOKEN, or FIRECRAWL_API_URL for self-hosted. The README says never to put a key in the server URL. Endpoint- and format-locked keys are Enterprise only.",
      "pricing": "freemium",
      "pricingNotes": "Free 1,000 credits a month, no card. Hobby $19 a month or $16 billed yearly (5,000 credits), Standard $99 or $83 (100,000), Growth $399 or $333 (500,000), Scale $749 or $599 (1 million). Scrape, crawl and map cost 1 credit a page, search 2 per 10 results, interact 2 per browser-minute, monitor 1 per page per check, and JSON, question or highlight formats add 4 a page. $5 top-ups on paid plans only. A scrape with no result isn't charged, but a page returning 403 or 404 costs 1 credit (https://www.firecrawl.dev/pricing).",
      "priceSummary": "$19 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in README, docs or pricing (checked 2026-09-25).",
        "endpoints": []
      },
      "toolCount": 26,
      "popularity": {
        "githubStars": 7500,
        "npmWeekly": 28853,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://github.com/firecrawl/firecrawl-mcp-server#readme",
      "llmsTxt": "https://docs.firecrawl.dev/llms.txt",
      "openapi": "https://docs.firecrawl.dev/api-reference/v2-openapi.json",
      "registryName": "io.github.firecrawl/firecrawl-mcp-server",
      "capabilities": [
        "web.search",
        "web.fetch",
        "web.crawl",
        "web.extract"
      ],
      "tags": [
        "official",
        "hosted",
        "local",
        "open-source",
        "freemium",
        "llms-txt"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75.5,
        "grade": "BB",
        "agentReady": true,
        "rank": 34,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 92,
          "maintenance": 87,
          "payments": 50,
          "reliability": 70,
          "schema": 88,
          "security": 67,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Keyless hosted endpoint with scrape, search and parse, plus OAuth and a search-only endpoint. No x402 or other machine payment.",
        "strengths": [
          "Keyless hosted endpoint with scrape, search and parse, plus OAuth and a search-only endpoint",
          "Four incidents since July 2026, the longest 56 minutes",
          "Rate limits published per plan and per endpoint",
          "Public v2 OpenAPI, llms.txt and readOnly or destructive hints on every tool",
          "firecrawl-mcp 3.27.2 on 1 October 2026, after more than 20 releases since July"
        ],
        "weaknesses": [
          "No x402 or other machine payment",
          "No prompt-injection guidance for scraped pages outside retained Alexandria results",
          "403 and 404 responses cost a credit",
          "Open issues report 132 undescribed parameters and a schema mismatch",
          "Privacy policy last revised December 2024, with no retention period for scraped content"
        ],
        "agentNotes": [
          "Use `firecrawl_map` to list URLs, then scrape the few you need instead of crawling a whole site",
          "On the keyless endpoint only scrape, search and parse work. A 429 carries a `signup_url` for the human",
          "Ask for markdown only. JSON, question and highlight formats add 4 credits a page",
          "Poll `firecrawl_check_crawl_status` rather than waiting on a long crawl inside one call",
          "Check the URL before scraping. Dead pages still cost a credit"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75.5
          }
        ],
        "editorialScores": {
          "ergonomics": 92,
          "maintenance": 87,
          "payments": 50,
          "reliability": 70,
          "schema": 88,
          "security": 67,
          "transparency": 60
        },
        "provenanceScore": 92
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http firecrawl https://mcp.firecrawl.dev/v2/mcp",
        "config": {
          "mcpServers": {
            "firecrawl": {
              "args": [
                "-y",
                "firecrawl-mcp"
              ],
              "command": "npx",
              "env": {
                "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/firecrawl-mcp"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Hobby plan",
          "unit": "month",
          "usd": 19,
          "note": "5,000 credits. $16 a month billed yearly"
        },
        {
          "item": "Standard plan",
          "unit": "month",
          "usd": 99,
          "note": "100,000 credits. $83 a month billed yearly"
        },
        {
          "item": "Extra credits on Hobby",
          "unit": "1k-pages",
          "usd": 5,
          "note": "one credit scrapes one page"
        }
      ],
      "provenance": {
        "legalEntity": "SideGuide Technologies, Inc. (d/b/a Firecrawl)",
        "domain": "firecrawl.dev",
        "domainRegistered": "2024-04-08",
        "endpointOnVendorDomain": true,
        "terms": "https://firecrawl.dev/terms-of-service",
        "privacy": "https://firecrawl.dev/privacy-policy",
        "statusPage": "https://status.firecrawl.dev",
        "changelog": "https://firecrawl.dev/changelog",
        "securityTxt": "valid",
        "checked": "2026-09-26",
        "score": 92
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/firecrawl-mcp.json",
      "live": {
        "slug": "firecrawl-mcp",
        "probe": {
          "target": "https://mcp.firecrawl.dev/v2/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-04T23:48:08.465133723Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 245,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 252,
          "p95ms24h": 290,
          "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.firecrawl.dev",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:01.76749658Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "firecrawl/firecrawl-mcp-server",
            "version": "v3.2.1",
            "released": "2025-09-26",
            "seenAt": "2026-10-04T16:27:08.694881485Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.firecrawl/firecrawl-mcp-server",
            "version": "3.27.3",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "firecrawl-mcp",
            "version": "3.27.3",
            "seenAt": "2026-10-04T16:27:07.836823407Z"
          }
        ],
        "githubStars": 7550,
        "npmWeekly": 189581,
        "securityTxt": {
          "url": "https://firecrawl.dev/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-06-10T00:00:00.000Z",
          "checkedAt": "2026-10-04T15:15:38.390602548Z"
        },
        "llmsTxt": {
          "url": "https://docs.firecrawl.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:45.993583711Z"
        },
        "domain": {
          "domain": "firecrawl.dev",
          "registered": "2024-04-08",
          "source": "https://pubapi.registry.google/rdap/domain/firecrawl.dev",
          "checkedAt": "2026-10-04T13:08:05.084729774Z"
        },
        "pages": [
          {
            "url": "https://firecrawl.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:43.44271991Z",
            "changedAt": "2026-10-04T15:44:43.44271991Z",
            "fingerprint": "f365a314c8cc"
          },
          {
            "url": "https://www.firecrawl.dev/pricing",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-04T15:50:17.215694523Z",
            "changedAt": "2026-10-04T15:50:17.215694523Z",
            "fingerprint": "59c60c10f7e3"
          },
          {
            "url": "https://firecrawl.dev/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:47.075047354Z",
            "changedAt": "2026-10-04T15:44:47.075047354Z",
            "fingerprint": "c8532b5714ba"
          },
          {
            "url": "https://firecrawl.dev/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:47.948137801Z",
            "changedAt": "2026-10-04T15:44:47.948137801Z",
            "fingerprint": "c54c86b53a0b"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.firecrawl.dev/v2/mcp",
          "checkedAt": "2026-10-04T22:19:41.267062117Z",
          "status": "ok",
          "protocol": "2025-11-25",
          "tools": [
            {
              "name": "firecrawl_scrape",
              "title": "Firecrawl scrape",
              "description": "\nScrape one URL and return its content: markdown by default, or HTML, links, screenshots, branding data, a targeted answer, or JSON matching a supplied schema. Use it when the request identifies a page and needs its content or defined fields. Use `firecrawl_search` when additional web sources are needed; on an authenticated session, `firecrawl_map` lists a site's URLs and `firecrawl_crawl` collects a set of pages.\n\nFirecrawl may serve recently indexed content; set `maxAge: 0` for a live fetch or a smaller `maxAge` to bound staleness. A successful response does not by itself confirm the page is still current. Browser actions can change the live page when interactive actions are enabled. Authenticated responses can include a `metadata.scrapeId` for optional scrape feedback.\n\nOn an authenticated session with Alexandria access, `firecrawl_search` with `sources` unset and `firecrawl_find_tools` can discover providers for the same fields across several pages; a matching provider returns typed records in one call. Keyless sessions have no provider matches.\n\nAlexandria mode, on an authenticated session with Alexandria access: `alexandria` selects catalogued capability execution and is mutually exclusive with `url`.\n",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "additionalProperties": false,
                "properties": {
                  "alexandria": {
                    "anyOf": [
                      {
                        "properties": {
                          "capability": {
                            "description": "Capability address as returned by search or discover, e.g. \"series/observations\".",
                            "minLength": 1,
                            "type": "string"
                          },
                          "options": {
                            "additionalProperties": {},
                            "description": "Capability options as declared by its contract.",
                            "propertyNames": {
                              "type": "string"
                            },
                            "type": "object"
                          },
                          "provider": {
                            "description": "Provider slug, e.g. \"fred\".",
                            "minLength": 1,
                            "type": "string"
                          },
                          "version": {
                            "description": "Optional published workflow version. Omit to use the latest version.",
                            "maxLength": 128,
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "provider",
                          "capability"
                        ],
                        "type": "object"
                      },
                      {
                        "items": {
                          "properties": {
                            "capability": {
                              "description": "Capability address as returned by search or discover, e.g. \"series/observations\".",
                              "minLength": 1,
                              "type": "string"
                            },
                            "options": {
                              "additionalProperties": {},
                              "description": "Capability options as declared by its contract.",
                              "propertyNames": {
                                "type": "string"
                              },
                              "type": "object"
                            },
                            "provider": {
                              "description": "Provider slug, e.g. \"fred\".",
                              "minLength": 1,
                              "type": "string"
                            },
                            "version": {
                              "description": "Optional published workflow version. Omit to use the latest version.",
                              "maxLength": 128,
                              "minLength": 1,
                              "type": "string"
                            }
                          },
                          "required": [
                            "provider",
                            "capability"
                          ],
                          "type": "object"
                        },
                        "maxItems": 10,
                        "minItems": 1,
                        "type": "array"
                      }
                    ],
                    "description": "Catalogued Alexandria capability invocation, mutually exclusive with url. One {provider, capability, options} object or an array of 1-10, with contracts available through firecrawl_search or firecrawl_find_tools. Each call may include version to pin a published workflow; omitting it uses latest. Only requestId and timeout are supported alongside alexandria. The selected contract marks required inputs and any requiresOneOf groups (at least one member per group); it may include example.request/example.response and response.key (which may differ from records). Where pagination is declared, its fields govern paging with the same filters; catalogue next is separate from provider pagination. Returns per-capability results in data.alexandria with data, records, or an error with a code; individual capabilities can fail even when the outer response succeeds. Requires an API key on a team with Alexandria enabled. Some providers require accepted terms; blocked requests return the applicable requirements."
                  },
                  "domainTools": {
                    "description": "URL mode only: include domain-matched Alexandria tools for the page in tools on the returned document. Ignored with alexandria.",
                    "type": "boolean"
                  },
                  "excludeTags": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "formats": {
                    "items": {
                      "enum": [
                        "markdown",
                        "html",
                        "rawHtml",
                        "screenshot",
                        "links",
                        "summary",
                        "changeTracking",
                        "branding",
                        "json",
                        "query",
                        "audio"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "includeTags": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "jsonOptions": {
                    "additionalProperties": false,
                    "properties": {
                      "prompt": {
                        "type": "string"
                      },
                      "schema": {
                        "additionalProperties": false,
                        "propertyNames": {
                          "type": "string"
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "location": {
                    "additionalProperties": false,
                    "properties": {
                      "country": {
                        "type": "string"
                      },
                      "languages": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "lockdown": {
                    "type": "boolean"
                  },
                  "maxAge": {
                    "type": "number"
                  },
                  "mobile": {
                    "type": "boolean"
                  },
                  "onlyMainContent": {
                    "type": "boolean"
                  },
                  "parsers": {
                    "items": {
                      "enum": [
                        "pdf"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "pdfOptions": {
                    "additionalProperties": false,
                    "properties": {
                      "maxPages": {
                        "maximum": 10000,
                        "minimum": 1,
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "profile": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "saveChanges": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "type": "object"
                  },
                  "proxy": {
                    "enum": [
                      "basic",
                      "stealth",
                      "enhanced",
                      "auto"
                    ],
                    "type": "string"
                  },
                  "queryOptions": {
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "default": "freeform",
                        "enum": [
                          "directQuote",
                          "freeform"
                        ],
                        "type": "string"
                      },
                      "prompt": {
                        "maxLength": 10000,
                        "type": "string"
                      }
                    },
                    "required": [
                      "prompt"
                    ],
                    "type": "object"
                  },
                  "redactPII": {
                    "type": "boolean"
                  },
                  "removeBase64Images": {
                    "type": "boolean"
                  },
                  "requestId": {
                    "description": "Idempotency key bound to one Alexandria execution payload. Generated when omitted and returned with the result.",
                    "pattern": "^[A-Za-z0-9._:-]{1,128}$",
                    "type": "string"
                  },
                  "screenshotOptions": {
                    "additionalProperties": false,
                    "properties": {
                      "fullPage": {
                        "type": "boolean"
                      },
                      "quality": {
                        "type": "number"
                      },
                      "viewport": {
                        "additionalProperties": false,
                        "properties": {
                          "height": {
                            "type": "number"
                          },
                          "width": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "width",
                          "height"
                        ],
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "skipTlsVerification": {
                    "type": "boolean"
                  },
                  "storeInCache": {
                    "type": "boolean"
                  },
                  "timeout": {
                    "description": "Execution timeout in milliseconds.",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "toolDetail": {
                    "description": "URL mode only: domain discovery detail, summary by default; compact returns provider/capability/description, full includes contracts. Ignored with alexandria.",
                    "enum": [
                      "compact",
                      "summary",
                      "full"
                    ],
                    "type": "string"
                  },
                  "url": {
                    "format": "uri",
                    "type": "string"
                  },
                  "waitFor": {
                    "type": "number"
                  },
                  "zeroDataRetention": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "outputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "additionalProperties": false,
                "description": "A scraped document, or the Alexandria execution envelope when `alexandria` was passed.",
                "properties": {
                  "actions": {
                    "description": "Results of the browser actions that ran during the scrape."
                  },
                  "agent_hints": {
                    "description": "Optional response guidance from the Firecrawl API.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "answer": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Targeted answer to the question that was asked of the page."
                  },
                  "attributes": {
                    "description": "Values collected by the requested attribute selectors."
                  },
                  "audio": {
                    "description": "Audio extracted from the page."
                  },
                  "blocks": {
                    "description": "Typed PDF layout blocks, when `parsers[].blocks` is set."
                  },
                  "branding": {
                    "description": "Branding data extracted from the page."
                  },
                  "changeTracking": {
                    "description": "Change-tracking comparison against the previous scrape."
                  },
                  "creditsCost": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Credits this call consumed."
                  },
                  "data": {
                    "description": "Alexandria mode: per-capability results in `data.alexandria`, each with `data`, `records`, or an `error`."
                  },
                  "delivery": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "`retained` when the full result stayed server-side instead of being inlined."
                  },
                  "error": {
                    "description": "Error message or error object when the call did not succeed."
                  },
                  "estimatedTokens": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Estimated token cost of the full result."
                  },
                  "feedbackTool": {
                    "description": "Pointer to the feedback tool for reporting how this result served the task."
                  },
                  "highlights": {
                    "description": "Highlighted passages from the page."
                  },
                  "html": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Processed HTML of the page."
                  },
                  "idleTtlSeconds": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Seconds a retained workspace stays available while idle."
                  },
                  "images": {
                    "description": "Images found on the page."
                  },
                  "inlineTokenBudget": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Token budget above which a result is retained rather than inlined."
                  },
                  "json": {
                    "description": "Structured data matching the requested JSON schema or prompt."
                  },
                  "links": {
                    "description": "Links found on the page."
                  },
                  "markdown": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Page content as markdown."
                  },
                  "menu": {
                    "description": "Menu data extracted from the page."
                  },
                  "message": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Guidance that accompanies the result."
                  },
                  "metadata": {
                    "description": "Page metadata; authenticated responses can include `metadata.scrapeId` for scrape feedback."
                  },
                  "nextTool": {
                    "description": "A follow-up tool call (`{name, arguments}`) that continues or inspects this result."
                  },
                  "pages": {
                    "description": "Physical PDF pages, when `parsers[].pages` is set."
                  },
                  "product": {
                    "description": "Product data extracted from the page."
                  },
                  "rawHtml": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Unprocessed HTML of the page."
                  },
                  "receipt": {
                    "description": "Billing receipt for the execution."
                  },
                  "requestId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Identifier of this Alexandria execution."
                  },
                  "responseBytes": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Size of the full result in bytes."
                  },
                  "scrape_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Identifier of the underlying scrape."
                  },
                  "screenshot": {
                    "description": "Screenshot of the page."
                  },
                  "success": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Whether the API call succeeded."
                  },
                  "summary": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Summary of the page content."
                  },
                  "tokenEstimateMethod": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "How `estimatedTokens` was derived."
                  },
                  "tools": {
                    "description": "Domain-matched Alexandria tools for the page, when `domainTools` is set."
                  },
                  "video": {
                    "description": "Video extracted from the page."
                  },
                  "warning": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Non-fatal warning about the result."
                  },
                  "workspaceId": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Workspace holding a retained result, for inspection through virtual Bash."
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "Firecrawl scrape"
              }
            },
            {
              "name": "firecrawl_search",
              "title": "Firecrawl web search",
              "description": "\nSearch web, news, or image sources and return ranked results with query-relevant highlights. Each web result is a title, URL, and description; use `firecrawl_scrape` on a result URL when the excerpt is not enough.\n\nAuthenticated search also returns matching Alexandria data providers in data.tools (companies, people, jobs, finance and filings, public records and government spending, real estate, places and restaurants, retail and prices, package registries and developer data, news, research, and more). Prefer a provider over scraping pages when the task needs the same fields across several entities, exact figures or timestamps, provenance, or many records; use web results when they already answer the question. A search with sources: [\"web\"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false.\n\nOn an authenticated session, tool matches describe available capabilities; `firecrawl_find_tools` returns their contracts and `firecrawl_scrape` with an `alexandria` body executes a selected capability. Keyless sessions get no Alexandria matches in data.tools.\n\nFor a programming question, add `categories: [\"developer\"]`; its hits return in `data.web` with `category: \"developer\"`. `categories: [\"research\"]` restricts web results to research-affiliated websites; the `firecrawl_research_*` tools are a separate surface over paper abstracts and full text (PubMed, bioRxiv, medRxiv, arXiv). Query operators, domain filters, `categories`, `toolDetail` and `scrapeOptions` are described on their parameters. Returns source-type result groups and usage metadata. Authenticated responses can include an `id` for optional search feedback.\n",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "additionalProperties": false,
                "properties": {
                  "categories": {
                    "description": "Limit results to specific source types. `research` restricts ordinary web results to research-affiliated websites and returns page snippets, which is separate from the `firecrawl_research_*` tools that search paper abstracts and full text across biomedical (PubMed, bioRxiv, medRxiv) and arXiv literature; `pdf` searches PDF results; `developer` searches an index built for coding agents over public repositories, GitHub issues, merged pull requests, repository READMEs, and code documentation. `developer` returns hits in `data.web` with `category: \"developer\"`; the other categories also filter `data.web`.",
                    "items": {
                      "enum": [
                        "research",
                        "pdf",
                        "developer"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "clientModel": {
                    "description": "Optional model identifier, if known.",
                    "maxLength": 128,
                    "minLength": 1,
                    "type": "string"
                  },
                  "domainTools": {
                    "description": "Include domain-matched tools for result URLs. Defaults to true when Alexandria is combined with web, news or images; semantic-only search leaves domain matching off.",
                    "type": "boolean"
                  },
                  "enterprise": {
                    "items": {
                      "enum": [
                        "default",
                        "anon",
                        "zdr"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "excludeDomains": {
                    "description": "Hostnames to leave out of results. Mutually exclusive with includeDomains.",
                    "items": {
                      "maxLength": 253,
                      "minLength": 1,
                      "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$",
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "filter": {
                    "type": "string"
                  },
                  "highlights": {
                    "description": "Return query-relevant page excerpts for web and news results when available (default). Highlights appear in web `description` and news `snippet`; otherwise, original snippets are returned. Set to false to keep the original search snippets.",
                    "type": "boolean"
                  },
                  "includeDomains": {
                    "description": "Hostnames to restrict results to. Mutually exclusive with excludeDomains.",
                    "items": {
                      "maxLength": 253,
                      "minLength": 1,
                      "pattern": "^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$",
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "limit": {
                    "maximum": 100,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "location": {
                    "type": "string"
                  },
                  "objective": {
                    "description": "Optional broader goal for this search, if known. Avoid sensitive information.",
                    "maxLength": 5000,
                    "minLength": 1,
                    "type": "string"
                  },
                  "query": {
                    "description": "Query for web and semantic tool discovery. Operators include quoted phrases, `-term`, `site:host`, `inurl:term`, `intitle:term`, and `related:host`; the set is non-exhaustive. Catalogue browsing is available through firecrawl_find_tools.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "scrapeOptions": {
                    "additionalProperties": false,
                    "description": "Attach page content for web results in the same call. These fetches ignore maxAge, so use firecrawl_scrape when you need a live fetch. scrapeOptions fetches web pages, never Alexandria provider tools.",
                    "properties": {
                      "excludeTags": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "formats": {
                        "items": {
                          "enum": [
                            "markdown",
                            "html",
                            "rawHtml",
                            "screenshot",
                            "links",
                            "summary",
                            "changeTracking",
                            "branding",
                            "json",
                            "query",
                            "audio"
                          ],
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "includeTags": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "jsonOptions": {
                        "additionalProperties": false,
                        "properties": {
                          "prompt": {
                            "type": "string"
                          },
                          "schema": {
                            "additionalProperties": false,
                            "propertyNames": {
                              "type": "string"
                            },
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "location": {
                        "additionalProperties": false,
                        "properties": {
                          "country": {
                            "type": "string"
                          },
                          "languages": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object"
                      },
                      "lockdown": {
                        "type": "boolean"
                      },
                      "maxAge": {
                        "type": "number"
                      },
                      "mobile": {
                        "type": "boolean"
                      },
                      "onlyMainContent": {
                        "type": "boolean"
                      },
                      "parsers": {
                        "items": {
                          "enum": [
                            "pdf"
                          ],
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "pdfOptions": {
                        "additionalProperties": false,
                        "properties": {
                          "maxPages": {
                            "maximum": 10000,
                            "minimum": 1,
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "profile": {
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "saveChanges": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "name"
                        ],
                        "type": "object"
                      },
                      "proxy": {
                        "enum": [
                          "basic",
                          "stealth",
                          "enhanced",
                          "auto"
                        ],
                        "type": "string"
                      },
                      "queryOptions": {
                        "additionalProperties": false,
                        "properties": {
                          "mode": {
                            "default": "freeform",
                            "enum": [
                              "directQuote",
                              "freeform"
                            ],
                            "type": "string"
                          },
                          "prompt": {
                            "maxLength": 10000,
                            "type": "string"
                          }
                        },
                        "required": [
                          "prompt"
                        ],
                        "type": "object"
                      },
                      "redactPII": {
                        "type": "boolean"
                      },
                      "removeBase64Images": {
                        "type": "boolean"
                      },
                      "screenshotOptions": {
                        "additionalProperties": false,
                        "properties": {
                          "fullPage": {
                            "type": "boolean"
                          },
                          "quality": {
                            "type": "number"
                          },
                          "viewport": {
                            "additionalProperties": false,
                            "properties": {
                              "height": {
                                "type": "number"
                              },
                              "width": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "width",
                              "height"
                            ],
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "skipTlsVerification": {
                        "type": "boolean"
                      },
                      "storeInCache": {
                        "type": "boolean"
                      },
                      "waitFor": {
                        "type": "number"
                      },
                      "zeroDataRetention": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "sources": {
                    "description": "Search sources; authenticated sessions default to web + alexandria, keyless sessions to web only. A search with sources: [\"web\"] omits semantic provider discovery; domainTools: true can still return website-matched tools. Web-only results use domainTools: false. Use [\"alexandria\"] alone for provider discovery without web results.",
                    "items": {
                      "anyOf": [
                        {
                          "enum": [
                            "web",
                            "images",
                            "news",
                            "alexandria",
                            "exchange"
                          ],
                          "type": "string"
                        },
                        {
                          "additionalProperties": false,
                          "properties": {
                            "type": {
                              "enum": [
                                "web",
                                "images",
                                "news",
                                "alexandria",
                                "exchange"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "type"
                          ],
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "tbs": {
                    "type": "string"
                  },
                  "toolDetail": {
                    "description": "Compact by default. Compact returns only provider, capability and description; full includes contracts. Inspect selected compact tools with firecrawl_find_tools providers and capabilities.",
                    "enum": [
                      "compact",
                      "summary",
                      "full"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "additionalProperties": false,
                "description": "Ranked search results grouped by source.",
                "properties": {
                  "agent_hints": {
                    "description": "Optional response guidance from the Firecrawl API.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "creditsUsed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Credits this search consumed."
                  },
                  "data": {
                    "description": "Ranked results grouped by source, such as `web`, `news`, `images`, and `alexandria`."
                  },
                  "error": {
                    "description": "Error message or error object when the call did not succeed."
                  },
                  "feedbackTool": {
                    "description": "Pointer to the feedback tool for this search."
                  },
                  "id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Search identifier, for optional `firecrawl_search_feedback`."
                  },
                  "nextTool": {
                    "description": "A follow-up tool call that continues this search."
                  },
                  "success": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Whether the API call succeeded."
                  },
                  "tools": {
                    "description": "Domain-matched Alexandria tools for the results."
                  },
                  "warning": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Non-fatal warning about the result."
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "openWorldHint": true,
                "readOnlyHint": true,
                "title": "Firecrawl web search"
              }
            },
            {
              "name": "firecrawl_parse",
              "title": "Firecrawl file parsing",
              "description": "\nParse one supported document into markdown, HTML, links, summary, targeted answers, or JSON matching a schema. Supported inputs include common HTML, PDF, Word, RTF, OpenDocument, and spreadsheet files; PDF parsing can be bounded with `pdfOptions.maxPages`.\n\nLocal MCP reads `filePath` from the server filesystem. Hosted MCP uses two calls: first provide `filePath` to receive upload instructions, upload locally, then call again with the returned `uploadRef`; do not send both fields together. Remote web URLs belong in `firecrawl_scrape`.\n\nSet `redactPII` to request redaction of personally identifiable information in the returned content. `zeroDataRetention` requires an eligible authenticated account; omit it for anonymous keyless use. Returns upload instructions for hosted phase one or parsed document content for the final call. Authenticated final responses can include a `data.metadata.scrapeId` for optional parse feedback.\n",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "additionalProperties": false,
                "properties": {
                  "contentType": {
                    "description": "Phase 1 MIME type override. If omitted, the server infers it from the file extension without reading the file.",
                    "type": "string"
                  },
                  "declaredSizeBytes": {
                    "description": "Optional phase 1 size declaration. Hosted MCP does not stat the file; provide this only if the caller already knows it.",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "excludeTags": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "filePath": {
                    "description": "Phase 1 only: path to the local file on the caller/harness machine. Hosted MCP will not read or stat this path; it is used only to produce upload instructions.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "formats": {
                    "items": {
                      "enum": [
                        "markdown",
                        "html",
                        "rawHtml",
                        "links",
                        "summary",
                        "json",
                        "query"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "includeTags": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "jsonOptions": {
                    "additionalProperties": false,
                    "properties": {
                      "prompt": {
                        "type": "string"
                      },
                      "schema": {
                        "additionalProperties": false,
                        "propertyNames": {
                          "type": "string"
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "maxAge": {
                    "description": "Ignored: parse never reuses or stores indexed content.",
                    "type": "number"
                  },
                  "onlyMainContent": {
                    "type": "boolean"
                  },
                  "parsers": {
                    "items": {
                      "enum": [
                        "pdf"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "pdfOptions": {
                    "additionalProperties": false,
                    "properties": {
                      "maxPages": {
                        "maximum": 10000,
                        "minimum": 1,
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "proxy": {
                    "enum": [
                      "basic",
                      "auto"
                    ],
                    "type": "string"
                  },
                  "queryOptions": {
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "default": "freeform",
                        "enum": [
                          "directQuote",
                          "freeform"
                        ],
                        "type": "string"
                      },
                      "prompt": {
                        "maxLength": 10000,
                        "type": "string"
                      }
                    },
                    "required": [
                      "prompt"
                    ],
                    "type": "object"
                  },
                  "redactPII": {
                    "type": "boolean"
                  },
                  "removeBase64Images": {
                    "type": "boolean"
                  },
                  "skipTlsVerification": {
                    "type": "boolean"
                  },
                  "storeInCache": {
                    "type": "boolean"
                  },
                  "uploadRef": {
                    "description": "Phase 2 only: short-lived upload reference returned by phase 1 after the local PUT upload completes.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "zeroDataRetention": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "outputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "additionalProperties": false,
                "description": "Parsed document content, or the upload instructions for the hosted two-call flow.",
                "properties": {
                  "agent_hints": {
                    "description": "Optional response guidance from the Firecrawl API.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "data": {
                    "description": "Parsed document content; can include `data.metadata.scrapeId` for parse feedback."
                  },
                  "error": {
                    "description": "Error message or error object when the call did not succeed."
                  },
                  "message": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Guidance for the next call."
                  },
                  "mode": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Which phase of the hosted flow produced this response."
                  },
                  "nextToolCall": {
                    "description": "Hosted phase one: the second `firecrawl_parse` call to make once the upload succeeds, as `{name, arguments}`."
                  },
                  "notes": {
                    "anyOf": [
                      {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Hosted phase one: constraints on completing the upload flow."
                  },
                  "raw": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Response body when it was not JSON."
                  },
                  "success": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Whether the API call succeeded."
                  },
                  "upload": {
                    "additionalProperties": false,
                    "description": "Hosted phase one: how to upload the local file.",
                    "properties": {
                      "command": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Local command that performs the upload. It carries no Firecrawl API key."
                      },
                      "expiresAt": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "When the upload URL expires."
                      },
                      "fields": {
                        "description": "Form fields the upload request must send, for a POST upload."
                      },
                      "headers": {
                        "description": "Headers the upload request must send."
                      },
                      "maxSizeBytes": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Largest file the upload URL accepts."
                      },
                      "method": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "HTTP method for the upload."
                      },
                      "uploadRef": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Reference to pass back on the second call."
                      },
                      "uploadUrl": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "URL to upload the local file to."
                      }
                    },
                    "type": "object"
                  },
                  "warning": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Non-fatal warning about the result."
                  }
                },
                "type": "object"
              },
              "annotations": {
                "destructiveHint": false,
                "openWorldHint": false,
                "readOnlyHint": true,
                "title": "Firecrawl file parsing"
              }
            }
          ],
          "schemaTokens": 6347,
          "changedAt": "2026-09-28T21:55:47.203996335Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 6347,
            "counts": {
              "error": 0,
              "note": 0,
              "warn": 5
            },
            "findings": [
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "firecrawl_parse",
                "message": "none of its 19 parameters has a description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "firecrawl_scrape",
                "message": "none of its 27 parameters has a description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "firecrawl_search",
                "message": "none of its 16 parameters has a description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC22",
                "severity": "warn",
                "tool": "firecrawl_scrape",
                "message": "the definition is about 2,695 tokens",
                "fix": "Trim the description and parameter docs, or split the tool."
              },
              {
                "rule": "TC22",
                "severity": "warn",
                "tool": "firecrawl_search",
                "message": "the definition is about 2,231 tokens",
                "fix": "Trim the description and parameter docs, or split the tool."
              }
            ]
          }
        },
        "updatedAt": "2026-10-04T23:48:08.465133723Z"
      }
    },
    "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 Firecrawl MCP's 75.5 (BB). Both do web search. The largest gap is payments \u0026 pricing, 25 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp",
    "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp.md",
    "slim": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp.min.md"
  },
  "markdown": "Tavily API + MCP has a score of 77.2 (BB) against Firecrawl MCP's 75.5 (BB). Both do web search. The largest gap is payments \u0026 pricing, 25 points.\n\n- Firecrawl MCP: grade BB, 75.5/100, rank #34 of 452. Markdown https://www.anchorterminal.com/tools/firecrawl-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/firecrawl-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 Firecrawl MCP for agent ergonomics (+11), security \u0026 auth (+15), transparency \u0026 trust (+11).\n\nPick Tavily API + MCP for reliability (+20), payments \u0026 pricing (+25).\n\n## Score by category\n\n| Category | Weight | Firecrawl MCP | Tavily API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 90 | Tavily API + MCP +20 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 89 | Tavily API + MCP +1 |\n| Agent ergonomics | 13% (16.2 this run) | 92 | 81 | Firecrawl MCP +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 52 | Firecrawl MCP +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 50 | 75 | Tavily API + MCP +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 85 | Firecrawl MCP +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 76 | 65 | Firecrawl MCP +11 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **75.5 · BB** | **77.2 · BB** | |\n\n## Facts side by side\n\n| Fact | Firecrawl MCP | Tavily API + MCP |\n| --- | --- | --- |\n| Kind | MCP server | MCP server |\n| Vendor | Firecrawl (Mendable) | Tavily |\n| Hosted endpoint | `https://mcp.firecrawl.dev/v2/mcp` | `https://mcp.tavily.com/mcp/?tavilyApiKey=\u003ckey\u003e` |\n| Transports | stdio, Streamable HTTP, SSE (legacy) | stdio, Streamable HTTP, HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | payer tooling only |\n| Licence | MIT | MIT |\n| Tools exposed | 26 | 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.firecrawl/firecrawl-mcp-server` | `io.github.tavily-ai/tavily-mcp` |\n| Last release | 2026-10-01 | 2026-09-18 |\n| Popularity | 7.5k stars, 29k npm/wk | 2.4k stars, 452k npm/wk, 1.6M PyPI/wk |\n| Agent reviews | 3.5/5 (8) | 3.6/5 (8) |\n\n## Verdicts\n\n**Firecrawl MCP.** Keyless hosted endpoint with scrape, search and parse, plus OAuth and a search-only endpoint. No x402 or other machine payment.\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### Firecrawl MCP\n\n1. Use `firecrawl_map` to list URLs, then scrape the few you need instead of crawling a whole site\n2. On the keyless endpoint only scrape, search and parse work. A 429 carries a `signup_url` for the human\n3. Ask for markdown only. JSON, question and highlight formats add 4 credits a page\n4. Poll `firecrawl_check_crawl_status` rather than waiting on a long crawl inside one call\n5. Check the URL before scraping. Dead pages still cost a credit\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 Firecrawl MCP or Tavily API + MCP\n\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 Tavily API + MCP](https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.md)\n- [Bright Data vs Firecrawl MCP](https://www.anchorterminal.com/compare/bright-data-vs-firecrawl-mcp.md)\n- [Exa API + MCP vs Firecrawl MCP](https://www.anchorterminal.com/compare/exa-mcp-vs-firecrawl-mcp.md)\n- [Exa API + MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/exa-mcp-vs-tavily-mcp.md)\n- [Firecrawl MCP vs Jina Reader](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-jina-reader.md)\n- [Firecrawl MCP vs Linkup](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-linkup.md)\n- [Firecrawl MCP vs Olostep](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-olostep.md)\n- [Firecrawl MCP vs Parallel Search and Task APIs](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-parallel-search-api.md)\n- [Firecrawl MCP vs ScrapeGraphAI](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrapegraphai.md)\n- [Firecrawl MCP vs Scrapeless](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrapeless.md)\n- [Firecrawl MCP vs ScrapingBee](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrapingbee.md)\n- [Firecrawl MCP vs Scrapingdog](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrapingdog.md)\n- [Firecrawl MCP vs SearchAPI.io](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-searchapi-io.md)\n- [Firecrawl MCP vs SerpApi](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serpapi.md)\n- [Firecrawl MCP vs Serper](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-serper.md)\n- [Firecrawl MCP vs Spider](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-spider-cloud.md)\n- [Firecrawl MCP vs Valyu](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-valyu.md)\n- [Firecrawl MCP vs You.com APIs](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-you-com-api.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- [Firecrawl MCP vs Scrape.do](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrape-do.md)\n- [Firecrawl MCP vs Scrapfly](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrapfly.md)\n- [Firecrawl MCP vs ScrapingAnt](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrapingant.md)\n- [Apify MCP Server vs Firecrawl MCP](https://www.anchorterminal.com/compare/apify-mcp-vs-firecrawl-mcp.md)\n- [Firecrawl MCP vs ZenRows](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-zenrows.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": "Firecrawl MCP vs Tavily API + MCP",
        "url": ""
      }
    ],
    "description": "Tavily API + MCP has a score of 77.2 (BB) against Firecrawl MCP's 75.5 (BB). Both do web search. The largest gap is payments \u0026 pricing, 25 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Firecrawl MCP BB 75.5",
      "Tavily API + MCP BB 77.2",
      "scores"
    ],
    "h1": "Firecrawl MCP vs Tavily API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-firecrawl-mcp-vs-tavily-mcp.png",
    "path": "/compare/firecrawl-mcp-vs-tavily-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Firecrawl MCP vs Tavily API + MCP for AI agents, BB 75.5 vs BB 77.2",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-tavily-mcp"
  },
  "tokens": {
    "markdown": 2000,
    "slim": 330
  },
  "version": 1
}
