{
  "data": {
    "a": {
      "slug": "brave-search-mcp",
      "name": "Brave Search API + MCP",
      "vendor": "Brave",
      "vendorUrl": "https://brave.com/search/api/",
      "kind": "http-api",
      "category": "search",
      "summary": "REST API over Brave's independent index with web, news, image, video and local search, an LLM Context endpoint with pre-extracted page content and an Answers endpoint with citations.",
      "url": "https://www.anchorterminal.com/tools/brave-search-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/brave-search-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/brave-search-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/brave-search-mcp.json",
      "dns": "brave-search-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/brave/brave-search-mcp-server",
      "license": "MIT",
      "transports": [
        "stdio",
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://api.search.brave.com/res/v1/web/search",
      "packages": [
        {
          "registry": "npm",
          "name": "@brave/brave-search-mcp-server"
        },
        {
          "registry": "oci",
          "name": "mcp/brave-search"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key in the `X-Subscription-Token` header. The x402 proxy at search.agent.s.brave.app takes a signed payment instead of a key. An `Api-Version` header pins dated response versions. MCP server: BRAVE_API_KEY (or BRAVE_API_KEY_FILE) environment variable.",
      "pricing": "usage",
      "pricingNotes": "Search plan $5 per 1,000 requests with $5 free credit a month, 50 QPS. Answers plan $4 per 1,000 requests plus $5 per million tokens, $5 free credit a month, 2 QPS. A card is required for the free credit. Storing results needs an Enterprise plan with storage rights. Enterprise custom (https://brave.com/search/api/).",
      "priceSummary": "$5 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "Brave's x402 proxy at search.agent.s.brave.app answered 404 on every path tried on 2026-11-01 (root, llms.txt, openapi.json, /res/v1/web/search, /res/v1/llm/context), the agent payments guide answers 404 and llms.txt no longer lists it. On 2026-09-30 an unpaid web search returned 402 with a PAYMENT-REQUIRED header (https://api-dashboard.search.brave.com/llms.txt)",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 1400,
        "npmWeekly": 22398,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://api-dashboard.search.brave.com/documentation",
      "llmsTxt": "https://api-dashboard.search.brave.com/llms.txt",
      "registryName": "io.github.brave/brave-search-mcp-server",
      "capabilities": [
        "web.search",
        "web.extract",
        "search.answer",
        "search.news",
        "search.images"
      ],
      "tags": [
        "official",
        "local",
        "open-source",
        "usage-priced",
        "hosted",
        "card-required",
        "llms-txt",
        "enterprise",
        "mcp"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.9,
        "grade": "B",
        "agentReady": false,
        "rank": 537,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 18,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 77,
          "payments": 20,
          "reliability": 80,
          "schema": 72,
          "security": 58,
          "transparency": 81
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-11-01, -3. Brave's x402 pay-per-call proxy at search.agent.s.brave.app, documented in its agent payments guide and answering unpaid searches with 402 on 30 September 2026, answers 404 on every path on 1 November, and the guide and its llms.txt entry are gone. No notice was found on Brave's status updates page, the docs' llms.txt or brave.com/search/api, and the route had no beta or preview label. A published paid route withdrawn from existing clients without notice takes the term for a change with no notice, as courier and context-dev took it for same-day changes. https://api-dashboard.search.brave.com/llms.txt"
        ],
        "verdict": "The MCP server's eight tools say when to use each, the status page monitors the Search API with no incident in 90 days, and the self-serve plan costs $5 per 1,000 searches at 50 QPS. Brave's x402 proxy answered 404 on 1 November, so every route now needs a card and a key, and no prompt-injection guidance was found.",
        "bestFor": "Agents that want an independent, non-Google index at a flat price, or that want page text in one call through LLM Context.",
        "strengths": [
          "status.brave.app monitors the Search API, with no incident in the 90 days to 1 November 2026",
          "$5 per 1,000 searches at 50 QPS on the self-serve Search plan",
          "SOC 2 Type II, a HackerOne bounty and a security.txt that names a contact",
          "Dated response versions through the `Api-Version` header",
          "MIT MCP server with tests in CI and a GitHub-verified registry entry"
        ],
        "weaknesses": [
          "The x402 pay-per-call proxy answered 404 on 1 November 2026, and its guide is gone from the docs",
          "A card is required even for the $5 monthly credit",
          "No public OpenAPI for the keyed API and no API changelog",
          "No SLA on self-serve plans, and Answers is limited to 2 QPS",
          "No prompt-injection guidance, though LLM Context returns raw page text"
        ],
        "agentNotes": [
          "Call /res/v1/llm/context when you need page text rather than links. It saves a separate fetch",
          "Treat \"No web results found\" from the MCP server as an empty result, not an outage",
          "On 429, wait for `X-RateLimit-Reset` seconds. There's no `Retry-After` header",
          "Skip `brave_summarizer`. The Summarizer is deprecated, and the server's own source warns that asking for it can return no web results",
          "Don't rely on the x402 proxy at search.agent.s.brave.app. It answered 404 on 1 November 2026, so use a keyed plan"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.9
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 77,
          "payments": 20,
          "reliability": 80,
          "schema": 72,
          "security": 58,
          "transparency": 63
        },
        "provenanceScore": 98,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl \"https://api.search.brave.com/res/v1/web/search?q=brave+search\u0026count=5\" \\\n  -H \"Accept: application/json\" -H \"X-Subscription-Token: $BRAVE_API_KEY\"",
        "claudeCode": "claude mcp add brave-search -e BRAVE_API_KEY=${BRAVE_API_KEY} -- npx -y @brave/brave-search-mcp-server",
        "config": {
          "mcpServers": {
            "brave-search": {
              "args": [
                "-y",
                "@brave/brave-search-mcp-server"
              ],
              "command": "npx",
              "env": {
                "BRAVE_API_KEY": "${BRAVE_API_KEY}"
              }
            }
          }
        },
        "x402": "purl --max-amount 5000 'https://search.agent.s.brave.app/res/v1/web/search?q=rust'\n# unpaid requests get HTTP 402 with a PAYMENT-REQUIRED header, USDC on eip155:8453"
      },
      "letme": {
        "capability": "https://letme.dev/web.search",
        "tool": "https://letme.dev/brave-search-mcp"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Search plan",
          "unit": "1k-requests",
          "usd": 5
        },
        {
          "item": "Answers plan",
          "unit": "1k-requests",
          "usd": 4,
          "note": "plus $5 per million tokens"
        }
      ],
      "provenance": {
        "legalEntity": "Brave Software, Inc.",
        "domain": "brave.com",
        "domainRegistered": "1995-09-18",
        "domainNote": "brave.com was registered in 1995, before Brave bought it.",
        "endpointOnVendorDomain": true,
        "terms": "https://api-dashboard.search.brave.com/terms-of-service",
        "privacy": "https://api-dashboard.search.brave.com/privacy-policy",
        "statusPage": "https://status.brave.app",
        "changelog": "https://github.com/brave/brave-search-mcp-server/releases",
        "securityTxt": "valid",
        "checked": "2026-11-01",
        "notes": [
          "status.brave.app (Better Stack) monitors the Brave Search API (api.search.brave.com) and the API dashboard, with daily marks back to May 2026 and no incident in the 90 days to 1 November 2026. The API docs keep a separate status log whose last entry is 27 March 2025 (https://api-dashboard.search.brave.com/documentation/resources/status-updates/).",
          "brave.com/.well-known/security.txt names security@brave.com and the HackerOne policy but has no Expires field, re-read on 1 November 2026. It is recorded as valid, as security.txt files without Expires are on other listings.",
          "The x402 proxy on search.agent.s.brave.app answered 404 on every path on 1 November 2026."
        ],
        "score": 98
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/brave-search-mcp.json",
      "live": {
        "slug": "brave-search-mcp",
        "probe": {
          "target": "https://api.search.brave.com/res/v1/web/search",
          "method": "get",
          "lastAt": "2026-11-07T18:20:14.751379507Z",
          "lastOk": true,
          "lastStatus": 422,
          "lastMs": 441,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 402,
          "p95ms24h": 476,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.brave.app",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:11.806143823Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "brave/brave-search-mcp-server",
            "version": "v2.1.4",
            "released": "2026-09-17",
            "seenAt": "2026-11-06T23:12:06.96648613Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.brave/brave-search-mcp-server",
            "version": "2.1.3",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@brave/brave-search-mcp-server",
            "version": "2.1.4",
            "seenAt": "2026-11-06T23:12:06.739286223Z"
          }
        ],
        "githubStars": 1562,
        "npmWeekly": 60702,
        "securityTxt": {
          "url": "https://brave.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T15:59:59.180403474Z"
        },
        "llmsTxt": {
          "url": "https://api-dashboard.search.brave.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:44.277664936Z"
        },
        "domain": {
          "domain": "brave.com",
          "registered": "1995-09-18",
          "source": "https://rdap.verisign.com/com/v1/domain/brave.com",
          "checkedAt": "2026-11-01T14:25:20.815736522Z"
        },
        "pages": [
          {
            "url": "https://api-dashboard.search.brave.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:11.500983683Z",
            "changedAt": "2026-11-05T12:23:53.143187515Z",
            "fingerprint": "dbfef2eb7334"
          },
          {
            "url": "https://api-dashboard.search.brave.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:13.688050675Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e74eb26bd7c7"
          }
        ],
        "github": {
          "repo": "brave/brave-search-mcp-server",
          "checkedAt": "2026-11-02T08:36:28.868633786Z",
          "stars": 1553,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T14:32:37Z",
          "openIssues": 25,
          "openPRs": 22,
          "issuesOpened90d": 6,
          "issuesClosed90d": 1,
          "prsMerged90d": 13,
          "ci": {
            "branch": "main",
            "runs": 20,
            "success": 16,
            "failure": 4,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-26T13:26:49Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 13,
            "medianDays": 11.3
          }
        },
        "updatedAt": "2026-11-07T18:20:14.751379507Z"
      }
    },
    "answer": "Brave Search API + MCP scores 62.9 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories. SERPHouse leads on payments \u0026 pricing.",
    "b": {
      "slug": "serphouse",
      "name": "SERPHouse",
      "vendor": "Patoliya Infotech LLP",
      "vendorUrl": "https://www.serphouse.com",
      "kind": "http-api",
      "category": "search",
      "summary": "SERPHouse is a SERP API from Patoliya Infotech LLP in India that returns parsed Google, Bing and Yahoo results as JSON, live or scheduled, with a Scraper API for page HTML or Markdown and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/serphouse",
      "markdownUrl": "https://www.anchorterminal.com/tools/serphouse.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/serphouse.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/serphouse.json",
      "dns": "serphouse.grade.anchorterminal.com",
      "repo": "https://github.com/SERPHouse/serphouse-mcp",
      "transports": [
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://mcp.serphouse.com/YOUR_API_KEY/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "serphouse-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "One API key per account, shown on the dashboard after a browser signup and email confirmation. Sent as `Authorization: Bearer` or as `api_token` in the query string. The hosted MCP server takes the key in its URL path. One account per user. No scopes or rotation found.",
      "pricing": "paid",
      "pricingNotes": "Basic $29.99 a month for 400,000 credits ($0.75 per 1,000 SERP requests) and Regular $49.99 for 800,000 ($0.62). Autocomplete $0.37 and $0.31, Top 100 Google $7.50 and $6.25 per 1,000. Custom plans by email. Free trial 4,000 credits for 7 days, no card. Credits don't roll over.",
      "priceSummary": "$0.75 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the pricing page, the docs, llms.txt or the MCP source (checked 2026-11-06). An empty balance returns 402 'Insufficient credits'.",
        "endpoints": []
      },
      "toolCount": 23,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://www.serphouse.com/docs",
      "llmsTxt": "https://www.serphouse.com/llms.txt",
      "capabilities": [
        "search.serp",
        "web.search",
        "search.news",
        "search.images",
        "web.fetch"
      ],
      "tags": [
        "hosted",
        "paid",
        "no-card",
        "free-tier",
        "mcp",
        "remote-mcp",
        "llms-txt",
        "python",
        "india"
      ],
      "lastRelease": "2026-07-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 42.4,
        "grade": "E",
        "agentReady": false,
        "rank": 1265,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 23,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 23,
          "payments": 40,
          "reliability": 40,
          "schema": 66,
          "security": 11,
          "transparency": 50
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "SERPHouse returns parsed Google, Bing and Yahoo results at published prices from $0.62 per 1,000 requests, with a 23-tool MCP server and a 4,000-credit trial without a card. The hosted MCP puts the key in its URL, there is no status page, changelog or security contact, and the terms keep search history indefinitely.",
        "bestFor": "Low-cost Google, Bing and Yahoo result parsing for SEO and rank tracking, with many Google verticals.",
        "strengths": [
          "Published prices per 1,000 requests, $0.75 on Basic and $0.62 on Regular, with failed requests not charged",
          "Google web, news, images, shopping, jobs, videos, forums, local and autocomplete, plus Bing and Yahoo, in one API",
          "Hosted and stdio MCP server with 23 tools, typed Zod inputs and routing advice between tools, MIT licensed",
          "llms.txt and Markdown copies of the docs pages, with a status code table and per-engine examples",
          "Free trial of 4,000 credits for 7 days with no card"
        ],
        "weaknesses": [
          "The hosted MCP server takes the API key only in its URL path, and the REST API also accepts `api_token` in the query string",
          "No status page, changelog, security.txt, disclosure policy or certification found",
          "Terms keep search history indefinitely and advise users in the European Economic Area not to use the service",
          "The pricing page states a 99.99% uptime SLA and the docs 99.95%, with no SLA terms or credits found",
          "The home page sends readers to a playground 'on the Oxylabs dashboard', with no relationship to Oxylabs found"
        ],
        "agentNotes": [
          "Send the key as `Authorization: Bearer`, not as `api_token` in the URL",
          "Treat a 200 with `\"status\": \"error\"` and 'Please try again' as a failure and retry later",
          "Pass `loc` or `loc_id` for Google and Bing tools other than `serphouse_search`; find IDs with `serphouse_location_search`",
          "Use `serphouse_search` for plain lookups and `serphouse_serp_google_advanced` only when ranks beyond the top 10 are needed, at ten times the price",
          "Keep under 60 requests a minute on self-serve plans"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 42.4
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 23,
          "payments": 40,
          "reliability": 40,
          "schema": 66,
          "security": 11,
          "transparency": 39
        },
        "provenanceScore": 61,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx serphouse-mcp",
        "http": "curl -X POST https://api.serphouse.com/serp/live \\\n  -H 'accept: application/json' \\\n  -H 'authorization: Bearer API_TOKEN' \\\n  -H 'content-type: application/json' \\\n  -d '{\"data\": {\"domain\": \"google.com\", \"lang\": \"en\", \"q\": \"Coffee\", \"loc\": \"Texas,United States\", \"device\": \"desktop\", \"serp_type\": \"web\"}}'",
        "config": {
          "mcpServers": {
            "serphouse": {
              "url": "https://mcp.serphouse.com/YOUR_SERPHouse_API_KEY/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/search.serp",
        "tool": "https://letme.dev/serphouse"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "SERP request, Basic",
          "unit": "1k-requests",
          "usd": 0.75,
          "note": "$29.99 a month for 400,000 credits"
        },
        {
          "item": "SERP request, Regular",
          "unit": "1k-requests",
          "usd": 0.62,
          "note": "$49.99 a month for 800,000 credits"
        },
        {
          "item": "Autocomplete request, Basic",
          "unit": "1k-requests",
          "usd": 0.37,
          "note": "$0.31 on Regular"
        },
        {
          "item": "Top 100 Google SERP, Basic",
          "unit": "1k-requests",
          "usd": 7.5,
          "note": "$6.25 on Regular"
        },
        {
          "item": "Basic plan",
          "unit": "month",
          "usd": 29.99,
          "note": "400,000 credits, no rollover"
        },
        {
          "item": "Regular plan",
          "unit": "month",
          "usd": 49.99,
          "note": "800,000 credits, no rollover"
        }
      ],
      "provenance": {
        "legalEntity": "Patoliya Infotech LLP",
        "domain": "serphouse.com",
        "domainRegistered": "2019-08-20",
        "endpointOnVendorDomain": true,
        "terms": "https://www.serphouse.com/terms-of-service",
        "privacy": "https://www.serphouse.com/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms name Patoliya Infotech LLP, a limited liability partnership incorporated in India, under Indian law with courts in Surat. The contact page gives an address in Utran, Surat, Gujarat.",
          "No effective or updated date was found on the terms or the privacy policy.",
          "www.serphouse.com/robots.txt allows all agents except /data/.",
          "The trial terms forbid 'scraping at scale or performing automated bulk data extraction' with trial credits. No clause on automated access to the website was found.",
          "/.well-known/security.txt answers 404. No status page is linked, and status.serphouse.com did not answer.",
          "RDAP gives serphouse.com a registration date of 20 August 2019; the about page says SERPHouse started in September 2019."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/serphouse.json",
      "live": {
        "slug": "serphouse",
        "probe": {
          "target": "https://mcp.serphouse.com/YOUR_API_KEY/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:20:53.888566191Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 246,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 234,
          "p95ms24h": 348,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "SERPHouse/serphouse-mcp",
            "version": "1.1.0",
            "released": "2026-07-06",
            "seenAt": "2026-11-07T00:04:55.526969474Z"
          },
          {
            "registry": "npm",
            "name": "serphouse-mcp",
            "version": "1.1.0",
            "seenAt": "2026-11-07T00:04:54.741719814Z"
          }
        ],
        "githubStars": 10,
        "npmWeekly": 11,
        "securityTxt": {
          "url": "https://serphouse.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:39.38860304Z"
        },
        "llmsTxt": {
          "url": "https://www.serphouse.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:54.600324581Z"
        },
        "pages": [
          {
            "url": "https://www.serphouse.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:21.531839335Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "85f9c0a9e291"
          },
          {
            "url": "https://www.serphouse.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:24.703890347Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "171892dff54e"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.serphouse.com/YOUR_SERPHouse_API_KEY/mcp",
          "checkedAt": "2026-11-07T01:47:41.660458875Z",
          "status": "ok",
          "protocol": "2025-11-25",
          "tools": [
            {
              "name": "serphouse_domain_list",
              "title": "Serphouse Domain List",
              "description": "List supported search domains. Call this before Yahoo searches — yahoo.com is not valid; use regional domains like uk.yahoo.com from this list.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {},
                "type": "object"
              }
            },
            {
              "name": "serphouse_language_list",
              "title": "Serphouse Language List",
              "description": "Get supported language codes for google, bing, or yahoo.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "type": {
                    "description": "Search engine language catalog to fetch.",
                    "enum": [
                      "google",
                      "bing",
                      "yahoo"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_location_search",
              "title": "Serphouse Location Search",
              "description": "Search Serphouse location ids and location strings for Google or Bing targeting.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "q": {
                    "description": "Location search term, for example texas or london.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "type": {
                    "default": "google",
                    "enum": [
                      "google",
                      "bing"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_account_info",
              "title": "Serphouse Account Info",
              "description": "Get Serphouse account plan and credit usage.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {},
                "type": "object"
              }
            },
            {
              "name": "serphouse_search",
              "title": "Serphouse Search",
              "description": "Default web search for agents — fast lightweight Google organic results via POST /web-search-lite. Only q is required; gl defaults to US. Use serphouse_google_web only when you need device, gfilter, or num_result. Use serphouse_serp_google_advanced for SEO rankings beyond top 10.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Optional date filter: YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y. Omit for general searches — lite results may be empty when this is set.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "gl": {
                    "description": "Two-letter ISO country code, e.g. US, IN, GB. Used when loc is omitted.",
                    "minLength": 1,
                    "pattern": "^[A-Za-z]{2}$",
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Location name, e.g. Austin,Texas,United States. Provide loc or gl, not both.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_web_lite",
              "title": "Serphouse Google Web Search (Lite)",
              "description": "Alias of serphouse_search — fast lightweight Google organic results via POST /web-search-lite. Prefer serphouse_search for general agent queries.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Optional date filter: YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y. Omit for general searches — lite results may be empty when this is set.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "gl": {
                    "description": "Two-letter ISO country code, e.g. US, IN, GB. Used when loc is omitted.",
                    "minLength": 1,
                    "pattern": "^[A-Za-z]{2}$",
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Location name, e.g. Austin,Texas,United States. Provide loc or gl, not both.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_web",
              "title": "Serphouse Google Web Search (Full)",
              "description": "Full Google web search via POST /google-web with device, gfilter, and num_result. Requires loc or loc_id. For general queries use serphouse_search instead.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "gfilter": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "num_result": {
                    "maximum": 10,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_image",
              "title": "Serphouse Google Image Search",
              "description": "Run a realtime Google image search via POST /google-image.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_news",
              "title": "Serphouse Google News Search",
              "description": "Run a realtime Google news search via POST /google-news.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_shop",
              "title": "Serphouse Google Shop Search",
              "description": "Run a realtime Google shopping search via POST /google-shop.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_bing_web",
              "title": "Serphouse Bing Web Search",
              "description": "Run a realtime Bing web search via POST /bing-web.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "lang": {
                    "default": "en-US",
                    "description": "Language code, for example en-US or fr-FR.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_bing_image",
              "title": "Serphouse Bing Image Search",
              "description": "Run a realtime Bing image search via POST /bing-image.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "lang": {
                    "default": "en-US",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_bing_news",
              "title": "Serphouse Bing News Search",
              "description": "Run a realtime Bing news search via POST /bing-news.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "lang": {
                    "default": "en-US",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_yahoo_web",
              "title": "Serphouse Yahoo Web Search",
              "description": "Run a realtime Yahoo web search via POST /yahoo-web.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "uk.yahoo.com",
                    "description": "Regional Yahoo domain from serphouse_domain_list, for example uk.yahoo.com or fr.yahoo.com. Do not use yahoo.com.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "lang_en",
                    "description": "Yahoo language code, for example lang_en or lang_fr.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_yahoo_image",
              "title": "Serphouse Yahoo Image Search",
              "description": "Run a realtime Yahoo image search via POST /yahoo-image.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "domain": {
                    "default": "uk.yahoo.com",
                    "description": "Regional Yahoo domain from serphouse_domain_list, for example uk.yahoo.com or fr.yahoo.com. Do not use yahoo.com.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "lang_en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_yahoo_news",
              "title": "Serphouse Yahoo News Search",
              "description": "Run a realtime Yahoo news search via POST /yahoo-news.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "uk.yahoo.com",
                    "description": "Regional Yahoo domain from serphouse_domain_list, for example uk.yahoo.com or fr.yahoo.com. Do not use yahoo.com.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "lang_en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "no_trace": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      },
                      {
                        "const": "true",
                        "type": "string"
                      },
                      {
                        "const": "false",
                        "type": "string"
                      },
                      {
                        "const": true,
                        "type": "boolean"
                      },
                      {
                        "const": false,
                        "type": "boolean"
                      }
                    ],
                    "description": "Enterprise only. Enables NoTrace mode when set to 1 or true."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_serp_google_advanced",
              "title": "Serphouse Google Advanced SERP",
              "description": "SEO ranking checks: fetch up to 100 Google results in one request. Use max_pages 1–10 (~10 results per page). For general web search use serphouse_search; use this when rank position beyond the top 10 is needed.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "gfilter": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "max_pages": {
                    "default": 10,
                    "maximum": 10,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "serp_type": {
                    "default": "web",
                    "enum": [
                      "web",
                      "news",
                      "image",
                      "shop"
                    ],
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_jobs",
              "title": "Serphouse Google Jobs",
              "description": "Run a realtime Google Jobs search.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "q": {
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_autocomplete",
              "title": "Serphouse Google Autocomplete",
              "description": "Get realtime localized Google autocomplete suggestions.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "client": {
                    "default": "chrome",
                    "enum": [
                      "chrome",
                      "chrome-omni",
                      "home_page",
                      "safari",
                      "firefox",
                      "youtube"
                    ],
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Location name used to localize suggestions.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "q": {
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q",
                  "loc"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_videos",
              "title": "Serphouse Google Videos",
              "description": "Run a realtime Google Videos search with optional video filters.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "video_captions": {
                    "const": "captioned",
                    "type": "string"
                  },
                  "video_duration": {
                    "enum": [
                      "short",
                      "medium",
                      "long"
                    ],
                    "type": "string"
                  },
                  "video_quality": {
                    "const": "high",
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_short_videos",
              "title": "Serphouse Google Short Videos",
              "description": "Run a realtime Google Short Videos search.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "video_captions": {
                    "const": "captioned",
                    "type": "string"
                  },
                  "video_quality": {
                    "const": "high",
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_forums",
              "title": "Serphouse Google Forums",
              "description": "Run a realtime Google Forums search for discussions and community results.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "date_range": {
                    "description": "Date range as YYYY-MM-DD,YYYY-MM-DD or one of h, d, w, m, y.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "device": {
                    "default": "desktop",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  },
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "description": "Search phrase to query.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "verbatim": {
                    "anyOf": [
                      {
                        "const": 0,
                        "type": "number"
                      },
                      {
                        "const": 1,
                        "type": "number"
                      },
                      {
                        "const": "0",
                        "type": "string"
                      },
                      {
                        "const": "1",
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            },
            {
              "name": "serphouse_google_local",
              "title": "Serphouse Google Local",
              "description": "Run a realtime Google Local search for local business results.",
              "inputSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "properties": {
                  "domain": {
                    "default": "google.com",
                    "minLength": 1,
                    "type": "string"
                  },
                  "lang": {
                    "default": "en",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc": {
                    "description": "Required unless loc_id is provided. Location name, for example Austin,Texas,United States. Provide exactly one of loc or loc_id.",
                    "minLength": 1,
                    "type": "string"
                  },
                  "loc_id": {
                    "anyOf": [
                      {
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991,
                        "type": "integer"
                      },
                      {
                        "minLength": 1,
                        "pattern": "^\\d+$",
                        "type": "string"
                      }
                    ],
                    "description": "Required unless loc is provided. Serphouse location id from serphouse_location_search. Provide exactly one of loc_id or loc."
                  },
                  "page": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "q": {
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "q"
                ],
                "type": "object"
              }
            }
          ],
          "schemaTokens": 6824,
          "changedAt": "2026-11-07T01:47:41.660458875Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 6824,
            "counts": {
              "error": 0,
              "note": 1,
              "warn": 43
            },
            "findings": [
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_bing_image",
                "message": "2 parameters without a description: lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_bing_news",
                "message": "3 parameters without a description: device, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_bing_web",
                "message": "3 parameters without a description: date_range, device, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_autocomplete",
                "message": "3 parameters without a description: client, lang, q",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_forums",
                "message": "5 parameters without a description: device, domain, lang, page, verbatim",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_image",
                "message": "4 parameters without a description: date_range, domain, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_jobs",
                "message": "4 parameters without a description: date_range, domain, lang, q",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_local",
                "message": "4 parameters without a description: domain, lang, page, q",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_news",
                "message": "5 parameters without a description: date_range, device, domain, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_shop",
                "message": "3 parameters without a description: domain, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_short_videos",
                "message": "6 parameters without a description: device, domain, lang, page, video_captions, video_quality",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_videos",
                "message": "7 parameters without a description: device, domain, lang, page, video_captions, video_duration and 1 more",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_web",
                "message": "7 parameters without a description: device, domain, gfilter, lang, num_result, page and 1 more",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_google_web_lite",
                "message": "4 parameters without a description: domain, lang, page, verbatim",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_location_search",
                "message": "1 parameter without a description: type",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_search",
                "message": "4 parameters without a description: domain, lang, page, verbatim",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_serp_google_advanced",
                "message": "8 parameters without a description: device, domain, gfilter, lang, max_pages, page and 2 more",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_yahoo_image",
                "message": "2 parameters without a description: lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_yahoo_news",
                "message": "3 parameters without a description: device, lang, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "serphouse_yahoo_web",
                "message": "2 parameters without a description: device, page",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_account_info",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"info\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_bing_image",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_bing_news",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_bing_web",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_domain_list",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_autocomplete",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_forums",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_image",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_jobs",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_local",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_news",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_shop",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_short_videos",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_videos",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_web",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_google_web_lite",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_language_list",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"list\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_location_search",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"search\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_search",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Its name starts with \"search\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_serp_google_advanced",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_yahoo_image",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_yahoo_news",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC16",
                "severity": "warn",
                "tool": "serphouse_yahoo_web",
                "message": "no readOnlyHint or destructiveHint",
                "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
              },
              {
                "rule": "TC24",
                "severity": "note",
                "message": "23 of 23 tools have no outputSchema",
                "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
              }
            ]
          }
        },
        "updatedAt": "2026-11-07T18:20:53.888566191Z"
      }
    },
    "edges": [
      {
        "by": 54,
        "category": "maintenance",
        "leads": "brave-search-mcp",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "MCP server v2.1.4 on 17 September 2026, 45 days before 1 November. Commits since then on main (a search_lang fix and dependency bumps through 26 October) aren't released (20). Four tagged releases since 3 August, v2.1.1 to v2.1.3 on 20 August and v2.1.4 (20). Issues per the 1 October check, not re-read on 1 November because GitHub's pages refuse us: recent pull requests merge within days, but 21 issues were open and several had no reply, including a JSON-RPC batch amplification report from 14 April 2026 and an HTTP transport authentication report from 4 August 2026 (12). Listed in the official MCP registry as io.github.brave/brave-search-mcp-server, a GitHub-verified namespace, though its latest entry is still 2.1.3 (15). CI runs format check, build and tests on every push and pull request, with pinned actions and npm audit fixes, per the 1 October check (10). 20+20+12+15+10 = 77.",
          "b": "Read for a closed service, with its repositories read as code. No changelog or dated API change was found. The newest release is MCP server 1.1.0 on 6 July 2026, 123 days before 6 November, and the last commit in its repository was on 22 July (10). No release or dated change in the 90 days from 8 August; the about page's 2026 entry (Forums, Place Details and Scraper APIs) is undated (0). No changelog; support by email. Issues weren't read, since the GitHub API refused us for its rate limit (5 of 25). Not in the official MCP registry, though the repository's server.json names io.github.SERPHouse/serphouse-mcp. Node.js SDK last changed 24 June 2026, PHP SDK 10 May 2024, and no Python SDK repository was found under the SERPHouse organisation (5 of 15). The MCP repository has an npm publish workflow and no tests (3 of 10). 10 + 0 + 5 + 5 + 3 = 23."
        },
        "scores": {
          "a": 77,
          "b": 23
        }
      },
      {
        "by": 47,
        "category": "security",
        "leads": "brave-search-mcp",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Plain API keys in the `X-Subscription-Token` header. Several keys per account, revocable from the dashboard, with rotation advice, but no scopes (20). Read-only by nature, with tool allow and deny lists in the MCP server. The HTTP transport binds to 127.0.0.1 and checks Origin (18). Results are untrusted web text and LLM Context returns page content, and we found no prompt-injection guidance in the API docs or the MCP README (0). No per-call audit log found. Rate-limit headers show quota use only (0). SOC 2 Type II attestation, a HackerOne bounty, a pen test in April 2025 and a security.txt at brave.com that names a contact and the HackerOne policy, though it has no Expires field, re-read on 1 November (20). 20+18+0+0+20 = 58.",
          "b": "One key per account, one account per user, no scopes or rotation found (10). The REST API documents `api_token` in the query string and the hosted MCP server takes the key only in its URL path, less 10 (0 of 30). Searches only read, with no read-only or restricted key (8 of 20). Results are third-party snippets and AI Overview text, with no prompt-injection guidance (0). An account tool shows plan and credit usage; no per-call log was found (3 of 15). No security.txt (404), disclosure policy, bug bounty or certification found (0 of 20). 0 + 8 + 0 + 3 + 0 = 11."
        },
        "scores": {
          "a": 58,
          "b": 11
        }
      },
      {
        "by": 40,
        "category": "reliability",
        "leads": "brave-search-mcp",
        "name": "Reliability",
        "reasons": {
          "a": "status.brave.app (Better Stack) lists a Brave Search API component monitoring api.search.brave.com, showing 100% uptime with every two-day mark from 6 May to 1 November 2026 operational, and a Search API Dashboard monitor at 99.996%. The 1 October note read the page as unmonitored, but its marks go back to May (20). No incident in the 90 days from 3 August on the page or its feed, and the docs' own status log still ends on 27 March 2025, so a clean record on a readable page (20). Rate limits published per plan, 50 QPS Search, 2 QPS Answers, 100 QPS Spellcheck and Autosuggest, in a 1-second sliding window, per the 1 October check (15). 429 on overrun, `X-RateLimit-Reset` in seconds and exponential backoff guidance. Searches are reads, so no idempotency keys are needed (15). No SLA on any self-serve plan (0). GA (10). 20+20+15+15+0+10 = 80.",
          "b": "Read with the hosted lines. No status page is linked from the site or docs, and status.serphouse.com did not answer on 6 November 2026 (0). No readable incident history (5). Rate limits published, 60 requests a minute and 60 concurrent on every self-serve plan (15). 429 is documented as 'slow down', and a 200 can carry `\"status\": \"error\"` with 'Please try again', with no Retry-After or backoff guidance. Failed requests aren't charged (5 of 15). The pricing page lists a 99.99% uptime SLA on Basic and Regular and the docs a 99.95% one, but no SLA terms or credits were found in the terms (5 of 10). Generally available (10). 0 + 5 + 15 + 5 + 5 + 10 = 40."
        },
        "scores": {
          "a": 80,
          "b": 40
        }
      },
      {
        "by": 31,
        "category": "transparency",
        "leads": "brave-search-mcp",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The MCP server is MIT. The API is closed with published terms, so between the two bands (20). Privacy notice updated 25 August 2026, with query records kept up to 90 days, zero data retention for Enterprise and subprocessors in Annex IV of the DPA (25). Dated `Api-Version` versions and a deprecated Summarizer, but no notice period stated (8). Brave Software Inc. in the US is named, and subprocessors sit in the DPA annex. We found no data-location statement (10). 20+25+8+10 = 63.",
          "b": "Closed service under terms naming Patoliya Infotech LLP in India, and the MCP server is MIT (18 of 30). The terms give retention periods (JSON results up to 6 months, HTML up to 1 month, search history indefinitely) and say personal data sits on DigitalOcean in India, and they advise EEA users not to use the service. The privacy policy is generic and neither document carries a date (15 of 30). No deprecation policy, and the terms allow products to be discontinued without notice (0 of 20). DigitalOcean in India named for account data; no sub-processor list (6 of 20). 18 + 15 + 0 + 6 = 39."
        },
        "scores": {
          "a": 81,
          "b": 50
        }
      },
      {
        "by": 20,
        "category": "payments",
        "leads": "serphouse",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No machine payment on 1 November. The x402 proxy at search.agent.s.brave.app answers 404 on its root, llms.txt, OpenAPI file and the web search and LLM Context paths it sold on 1 October, the agent payments guide answers 404, and neither llms.txt nor brave.com/search/api mentions x402 (0). $5 per 1,000 searches and $4 per 1,000 Answers requests plus tokens, published without login (20). The $5 monthly credit needs a card on file, which brave.com says is to prevent abuse (0). A person signs up and adds a card before getting a key, so no autonomous route remains (0). 0+20+0+0 = 20.",
          "b": "No x402, MPP or L402 (0). Per-1,000 prices for SERP, autocomplete and top-100 requests published without login (20). Free trial of 4,000 credits for 7 days, 'No Credit Card Required' (20). A person signs up in a browser and confirms an email (0). 0 + 20 + 20 + 0 = 40."
        },
        "scores": {
          "a": 20,
          "b": 40
        }
      },
      {
        "by": 8,
        "category": "ergonomics",
        "leads": "brave-search-mcp",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Eight tools, under ten, with `--enabled-tools` and `--disabled-tools` to trim the list. Country and language enums make the web search schema long (22). `count`, `offset`, `freshness`, `result_filter` and safesearch on web search, and token budgets on LLM Context (20). 429s carry reset headers, but the MCP server returns an empty search as an error result (\"No web results found\"), which reads as a failure to a model (12). Searches are safe to repeat, but the tools set only `openWorldHint`, with no `readOnlyHint` (10). Only `query` is required. No official SDK in any language (8). 22+20+12+10+8 = 72.",
          "b": "23 MCP tools with no toolsets or filtering (15 of 25). `num_result`, `max_pages`, paging, device, location, language, date and video filters (16 of 20). Status codes are tabulated, but a 200 can also mean an error and the body carries only 'Please try again' (10 of 20). Searches only read and failed requests aren't charged, but the MCP tools carry no readOnlyHint or other annotations (10 of 20). `serphouse_search` needs only `q` and defaults to the US; most other tools need `loc` or `loc_id`. Official Node.js, PHP and Python SDKs are documented (13 of 15). 15 + 16 + 10 + 10 + 13 = 64."
        },
        "scores": {
          "a": 72,
          "b": 64
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Brave",
        "b": "Patoliya Infotech LLP",
        "name": "Vendor"
      },
      {
        "a": "https://api.search.brave.com/res/v1/web/search",
        "b": "https://mcp.serphouse.com/YOUR_API_KEY/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio, Streamable HTTP, HTTP",
        "b": "Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "$5 per 1,000 requests",
        "b": "not published",
        "name": "Price for web search"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "8",
        "b": "23",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.brave/brave-search-mcp-server",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-17",
        "b": "2026-07-06",
        "name": "Last release"
      },
      {
        "a": "2026-09-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-25",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "1.4k stars, 22k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Brave Search API + MCP scores 62.9 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories. SERPHouse leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Brave Search API + MCP or SERPHouse?"
      },
      {
        "answer": "Brave Search API + MCP takes an API key or an OAuth sign-in. SERPHouse needs an API key.",
        "question": "Do Brave Search API + MCP and SERPHouse need an API key?"
      },
      {
        "answer": "Yes. Brave Search API + MCP has a hosted endpoint at https://api.search.brave.com/res/v1/web/search and SERPHouse at https://mcp.serphouse.com/YOUR_API_KEY/mcp.",
        "question": "Can an agent call Brave Search API + MCP and SERPHouse without installing anything?"
      },
      {
        "answer": "Brave Search API + MCP is open source (MIT). No open-source release is listed for SERPHouse.",
        "question": "Are Brave Search API + MCP and SERPHouse open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 40",
          "Schema \u0026 documentation, 72 against 66",
          "Agent ergonomics, 72 against 64",
          "Security \u0026 auth, 58 against 11",
          "Maintenance \u0026 community, 77 against 23",
          "Transparency \u0026 trust, 81 against 50"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Agents that want an independent, non-Google index at a flat price, or that want page text in one call through LLM Context.",
        "slug": "brave-search-mcp",
        "watchFor": "The x402 pay-per-call proxy answered 404 on 1 November 2026, and its guide is gone from the docs"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 40 against 20"
        ],
        "also": [
          "Free to start without a card",
          "No incidents deducted, where Brave Search API + MCP loses 3 points for them"
        ],
        "goodFor": "Low-cost Google, Bing and Yahoo result parsing for SEO and rank tracking, with many Google verticals.",
        "slug": "serphouse",
        "watchFor": "The hosted MCP server takes the API key only in its URL path, and the REST API also accepts `api_token` in the query string"
      }
    ],
    "history": {
      "brave-search-mcp": [
        {
          "causes": [
            "product",
            "correction",
            "event",
            "time"
          ],
          "date": "2026-11-01",
          "delta": -5.1,
          "from": 68,
          "fromGrade": "B",
          "to": 62.9,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.1,
          "from": 68.1,
          "fromGrade": "B",
          "to": 68,
          "toGrade": "B"
        }
      ],
      "serphouse": null
    },
    "job": {
      "capability": "web.search",
      "name": "Web search"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-brave-search-mcp.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs Brave Search API + MCP",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-brave-search-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serphouse.json",
        "title": "Web Search Tool on Amazon Bedrock AgentCore vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/agentcore-web-search-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arcmira-vs-brave-search-mcp.json",
        "title": "Arcmira vs Brave Search API + MCP",
        "url": "https://www.anchorterminal.com/compare/arcmira-vs-brave-search-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-brave-search-mcp.json",
        "title": "Grounding with Bing Search vs Brave Search API + MCP",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-brave-search-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bing-grounding-vs-serphouse.json",
        "title": "Grounding with Bing Search vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/bing-grounding-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-cloudflare-web-search.json",
        "title": "Brave Search API + MCP vs Cloudflare Web Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-cloudflare-web-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-deepseek-search-api.json",
        "title": "Brave Search API + MCP vs DeepSeek Search and Fetch API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-deepseek-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-exa-mcp.json",
        "title": "Brave Search API + MCP vs Exa API + MCP",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-exa-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-firecrawl-mcp.json",
        "title": "Brave Search API + MCP vs Firecrawl MCP",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-firecrawl-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-kagi-search.json",
        "title": "Brave Search API + MCP vs Kagi Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-kagi-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-linkup.json",
        "title": "Brave Search API + MCP vs Linkup",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-linkup"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-mojeek.json",
        "title": "Brave Search API + MCP vs Mojeek Web Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-mojeek"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-newscatcher.json",
        "title": "Brave Search API + MCP vs NewsCatcher",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-newscatcher"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-parallel-search-api.json",
        "title": "Brave Search API + MCP vs Parallel Search and Task APIs",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-parallel-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-perplexity-search-api.json",
        "title": "Brave Search API + MCP vs Perplexity Search API",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-perplexity-search-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-searchapi-io.json",
        "title": "Brave Search API + MCP vs SearchAPI.io",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-searchapi-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi.json",
        "title": "Brave Search API + MCP vs SerpApi",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serper.json",
        "title": "Brave Search API + MCP vs Serper",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpkite.json",
        "title": "Brave Search API + MCP vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpkite"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-specstream.json",
        "title": "Brave Search API + MCP vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.json",
        "title": "Brave Search API + MCP vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tinyfish-search.json",
        "title": "Brave Search API + MCP vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-valyu.json",
        "title": "Brave Search API + MCP vs Valyu",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-you-com-api.json",
        "title": "Brave Search API + MCP vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse.json",
        "title": "Cloudflare Web Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serphouse.json",
        "title": "DeepSeek Search and Fetch API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/deepseek-search-api-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exa-mcp-vs-serphouse.json",
        "title": "Exa API + MCP vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/exa-mcp-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kagi-search-vs-serphouse.json",
        "title": "Kagi Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/kagi-search-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkup-vs-serphouse.json",
        "title": "Linkup vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/linkup-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mojeek-vs-serphouse.json",
        "title": "Mojeek Web Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/mojeek-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serphouse.json",
        "title": "Parallel Search and Task APIs vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/parallel-search-api-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse.json",
        "title": "Perplexity Search API vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/searchapi-io-vs-serphouse.json",
        "title": "SearchAPI.io vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/searchapi-io-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serpapi-vs-serphouse.json",
        "title": "SerpApi vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/serpapi-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serper-vs-serphouse.json",
        "title": "Serper vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/serper-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-specstream.json",
        "title": "SERPHouse vs SpecStream",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-specstream"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-tavily-mcp.json",
        "title": "SERPHouse vs Tavily API + MCP",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-tavily-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-tinyfish-search.json",
        "title": "SERPHouse vs TinyFish Search",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-tinyfish-search"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-valyu.json",
        "title": "SERPHouse vs Valyu",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-valyu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-you-com-api.json",
        "title": "SERPHouse vs You.com APIs",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-you-com-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-serphouse.json",
        "title": "Fetch (MCP reference server) vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/fetch-reference-server-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/newscatcher-vs-serphouse.json",
        "title": "NewsCatcher vs SERPHouse",
        "url": "https://www.anchorterminal.com/compare/newscatcher-vs-serphouse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-grep-ai.json",
        "title": "Brave Search API + MCP vs Grep AI",
        "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-grep-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/serphouse-vs-serpkite.json",
        "title": "SERPHouse vs SerpKite",
        "url": "https://www.anchorterminal.com/compare/serphouse-vs-serpkite"
      }
    ],
    "panel": null,
    "scores": [
      {
        "brave-search-mcp": 80,
        "by": 40,
        "edge": "brave-search-mcp",
        "key": "reliability",
        "name": "Reliability",
        "serphouse": 40,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "brave-search-mcp": 72,
        "by": 6,
        "edge": "brave-search-mcp",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "serphouse": 66,
        "weight": 13
      },
      {
        "brave-search-mcp": 72,
        "by": 8,
        "edge": "brave-search-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "serphouse": 64,
        "weight": 13
      },
      {
        "brave-search-mcp": 58,
        "by": 47,
        "edge": "brave-search-mcp",
        "key": "security",
        "name": "Security \u0026 auth",
        "serphouse": 11,
        "weight": 14
      },
      {
        "brave-search-mcp": 20,
        "by": 20,
        "edge": "serphouse",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "serphouse": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "brave-search-mcp": 77,
        "by": 54,
        "edge": "brave-search-mcp",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "serphouse": 23,
        "weight": 7
      },
      {
        "brave-search-mcp": 81,
        "by": 31,
        "edge": "brave-search-mcp",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "serphouse": 50,
        "weight": 7
      }
    ],
    "summary": "Brave Search API + MCP scores 62.9 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories. SERPHouse leads on payments \u0026 pricing. Both do web search.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "brave-search-mcp": "The MCP server's eight tools say when to use each, the status page monitors the Search API with no incident in 90 days, and the self-serve plan costs $5 per 1,000 searches at 50 QPS. Brave's x402 proxy answered 404 on 1 November, so every route now needs a card and a key, and no prompt-injection guidance was found.",
      "serphouse": "SERPHouse returns parsed Google, Bing and Yahoo results at published prices from $0.62 per 1,000 requests, with a 23-tool MCP server and a 4,000-credit trial without a card. The hosted MCP puts the key in its URL, there is no status page, changelog or security contact, and the terms keep search history indefinitely."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse",
    "json": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse.min.md"
  },
  "markdown": "Brave Search API + MCP scores 62.9 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories. SERPHouse leads on payments \u0026 pricing. Both do web search.\n\n- Brave Search API + MCP: grade B, 62.9/100, rank #537 of 1486. Markdown https://www.anchorterminal.com/tools/brave-search-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/brave-search-mcp.json\n- SERPHouse: grade E, 42.4/100, rank #1265 of 1486. Markdown https://www.anchorterminal.com/tools/serphouse.md · JSON https://www.anchorterminal.com/api/v1/tools/serphouse.json\n- Best web search APIs for AI agents: https://www.anchorterminal.com/best/search/index.md\n- All 308 search comparisons: https://www.anchorterminal.com/compare/search/index.md\n\n## Which one, for what\n\n### Brave Search API + MCP (B)\n\nGood for: Agents that want an independent, non-Google index at a flat price, or that want page text in one call through LLM Context.\n\nAhead on:\n- Reliability, 80 against 40\n- Schema \u0026 documentation, 72 against 66\n- Agent ergonomics, 72 against 64\n- Security \u0026 auth, 58 against 11\n- Maintenance \u0026 community, 77 against 23\n- Transparency \u0026 trust, 81 against 50\n\nAlso in its favour:\n- Open source\n\nWatch for: The x402 pay-per-call proxy answered 404 on 1 November 2026, and its guide is gone from the docs\n\n### SERPHouse (E)\n\nGood for: Low-cost Google, Bing and Yahoo result parsing for SEO and rank tracking, with many Google verticals.\n\nAhead on:\n- Payments \u0026 pricing, 40 against 20\n\nAlso in its favour:\n- Free to start without a card\n- No incidents deducted, where Brave Search API + MCP loses 3 points for them\n\nWatch for: The hosted MCP server takes the API key only in its URL path, and the REST API also accepts `api_token` in the query string\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Brave Search API + MCP +54\n\n- Brave Search API + MCP (77): MCP server v2.1.4 on 17 September 2026, 45 days before 1 November. Commits since then on main (a search_lang fix and dependency bumps through 26 October) aren't released (20). Four tagged releases since 3 August, v2.1.1 to v2.1.3 on 20 August and v2.1.4 (20). Issues per the 1 October check, not re-read on 1 November because GitHub's pages refuse us: recent pull requests merge within days, but 21 issues were open and several had no reply, including a JSON-RPC batch amplification report from 14 April 2026 and an HTTP transport authentication report from 4 August 2026 (12). Listed in the official MCP registry as io.github.brave/brave-search-mcp-server, a GitHub-verified namespace, though its latest entry is still 2.1.3 (15). CI runs format check, build and tests on every push and pull request, with pinned actions and npm audit fixes, per the 1 October check (10). 20+20+12+15+10 = 77.\n- SERPHouse (23): Read for a closed service, with its repositories read as code. No changelog or dated API change was found. The newest release is MCP server 1.1.0 on 6 July 2026, 123 days before 6 November, and the last commit in its repository was on 22 July (10). No release or dated change in the 90 days from 8 August; the about page's 2026 entry (Forums, Place Details and Scraper APIs) is undated (0). No changelog; support by email. Issues weren't read, since the GitHub API refused us for its rate limit (5 of 25). Not in the official MCP registry, though the repository's server.json names io.github.SERPHouse/serphouse-mcp. Node.js SDK last changed 24 June 2026, PHP SDK 10 May 2024, and no Python SDK repository was found under the SERPHouse organisation (5 of 15). The MCP repository has an npm publish workflow and no tests (3 of 10). 10 + 0 + 5 + 5 + 3 = 23.\n\n### Security \u0026 auth: Brave Search API + MCP +47\n\n- Brave Search API + MCP (58): Plain API keys in the `X-Subscription-Token` header. Several keys per account, revocable from the dashboard, with rotation advice, but no scopes (20). Read-only by nature, with tool allow and deny lists in the MCP server. The HTTP transport binds to 127.0.0.1 and checks Origin (18). Results are untrusted web text and LLM Context returns page content, and we found no prompt-injection guidance in the API docs or the MCP README (0). No per-call audit log found. Rate-limit headers show quota use only (0). SOC 2 Type II attestation, a HackerOne bounty, a pen test in April 2025 and a security.txt at brave.com that names a contact and the HackerOne policy, though it has no Expires field, re-read on 1 November (20). 20+18+0+0+20 = 58.\n- SERPHouse (11): One key per account, one account per user, no scopes or rotation found (10). The REST API documents `api_token` in the query string and the hosted MCP server takes the key only in its URL path, less 10 (0 of 30). Searches only read, with no read-only or restricted key (8 of 20). Results are third-party snippets and AI Overview text, with no prompt-injection guidance (0). An account tool shows plan and credit usage; no per-call log was found (3 of 15). No security.txt (404), disclosure policy, bug bounty or certification found (0 of 20). 0 + 8 + 0 + 3 + 0 = 11.\n\n### Reliability: Brave Search API + MCP +40\n\n- Brave Search API + MCP (80): status.brave.app (Better Stack) lists a Brave Search API component monitoring api.search.brave.com, showing 100% uptime with every two-day mark from 6 May to 1 November 2026 operational, and a Search API Dashboard monitor at 99.996%. The 1 October note read the page as unmonitored, but its marks go back to May (20). No incident in the 90 days from 3 August on the page or its feed, and the docs' own status log still ends on 27 March 2025, so a clean record on a readable page (20). Rate limits published per plan, 50 QPS Search, 2 QPS Answers, 100 QPS Spellcheck and Autosuggest, in a 1-second sliding window, per the 1 October check (15). 429 on overrun, `X-RateLimit-Reset` in seconds and exponential backoff guidance. Searches are reads, so no idempotency keys are needed (15). No SLA on any self-serve plan (0). GA (10). 20+20+15+15+0+10 = 80.\n- SERPHouse (40): Read with the hosted lines. No status page is linked from the site or docs, and status.serphouse.com did not answer on 6 November 2026 (0). No readable incident history (5). Rate limits published, 60 requests a minute and 60 concurrent on every self-serve plan (15). 429 is documented as 'slow down', and a 200 can carry `\"status\": \"error\"` with 'Please try again', with no Retry-After or backoff guidance. Failed requests aren't charged (5 of 15). The pricing page lists a 99.99% uptime SLA on Basic and Regular and the docs a 99.95% one, but no SLA terms or credits were found in the terms (5 of 10). Generally available (10). 0 + 5 + 15 + 5 + 5 + 10 = 40.\n\n### Transparency \u0026 trust: Brave Search API + MCP +31\n\n- Brave Search API + MCP (81): The MCP server is MIT. The API is closed with published terms, so between the two bands (20). Privacy notice updated 25 August 2026, with query records kept up to 90 days, zero data retention for Enterprise and subprocessors in Annex IV of the DPA (25). Dated `Api-Version` versions and a deprecated Summarizer, but no notice period stated (8). Brave Software Inc. in the US is named, and subprocessors sit in the DPA annex. We found no data-location statement (10). 20+25+8+10 = 63.\n- SERPHouse (50): Closed service under terms naming Patoliya Infotech LLP in India, and the MCP server is MIT (18 of 30). The terms give retention periods (JSON results up to 6 months, HTML up to 1 month, search history indefinitely) and say personal data sits on DigitalOcean in India, and they advise EEA users not to use the service. The privacy policy is generic and neither document carries a date (15 of 30). No deprecation policy, and the terms allow products to be discontinued without notice (0 of 20). DigitalOcean in India named for account data; no sub-processor list (6 of 20). 18 + 15 + 0 + 6 = 39.\n\n### Payments \u0026 pricing: SERPHouse +20\n\n- Brave Search API + MCP (20): No machine payment on 1 November. The x402 proxy at search.agent.s.brave.app answers 404 on its root, llms.txt, OpenAPI file and the web search and LLM Context paths it sold on 1 October, the agent payments guide answers 404, and neither llms.txt nor brave.com/search/api mentions x402 (0). $5 per 1,000 searches and $4 per 1,000 Answers requests plus tokens, published without login (20). The $5 monthly credit needs a card on file, which brave.com says is to prevent abuse (0). A person signs up and adds a card before getting a key, so no autonomous route remains (0). 0+20+0+0 = 20.\n- SERPHouse (40): No x402, MPP or L402 (0). Per-1,000 prices for SERP, autocomplete and top-100 requests published without login (20). Free trial of 4,000 credits for 7 days, 'No Credit Card Required' (20). A person signs up in a browser and confirms an email (0). 0 + 20 + 20 + 0 = 40.\n\n### Agent ergonomics: Brave Search API + MCP +8\n\n- Brave Search API + MCP (72): Eight tools, under ten, with `--enabled-tools` and `--disabled-tools` to trim the list. Country and language enums make the web search schema long (22). `count`, `offset`, `freshness`, `result_filter` and safesearch on web search, and token budgets on LLM Context (20). 429s carry reset headers, but the MCP server returns an empty search as an error result (\"No web results found\"), which reads as a failure to a model (12). Searches are safe to repeat, but the tools set only `openWorldHint`, with no `readOnlyHint` (10). Only `query` is required. No official SDK in any language (8). 22+20+12+10+8 = 72.\n- SERPHouse (64): 23 MCP tools with no toolsets or filtering (15 of 25). `num_result`, `max_pages`, paging, device, location, language, date and video filters (16 of 20). Status codes are tabulated, but a 200 can also mean an error and the body carries only 'Please try again' (10 of 20). Searches only read and failed requests aren't charged, but the MCP tools carry no readOnlyHint or other annotations (10 of 20). `serphouse_search` needs only `q` and defaults to the US; most other tools need `loc` or `loc_id`. Official Node.js, PHP and Python SDKs are documented (13 of 15). 15 + 16 + 10 + 10 + 13 = 64.\n\n## Score by category\n\n| Category | Weight | Brave Search API + MCP | SERPHouse | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 40 | Brave Search API + MCP +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 72 | 66 | Brave Search API + MCP +6 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 64 | Brave Search API + MCP +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 58 | 11 | Brave Search API + MCP +47 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 40 | SERPHouse +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 77 | 23 | Brave Search API + MCP +54 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 50 | Brave Search API + MCP +31 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **62.9 · B** | **42.4 · E** | |\n\n## Facts side by side\n\n| Fact | Brave Search API + MCP | SERPHouse |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Brave | Patoliya Infotech LLP |\n| Hosted endpoint | `https://api.search.brave.com/res/v1/web/search` | `https://mcp.serphouse.com/YOUR_API_KEY/mcp` |\n| Transports | stdio, Streamable HTTP, HTTP | Streamable HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Paid |\n| Price for web search | $5 per 1,000 requests | not published |\n| x402 | no | no |\n| Licence | MIT | none |\n| Tools exposed | 8 | 23 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.brave/brave-search-mcp-server` | not listed |\n| Last release | 2026-09-17 | 2026-07-06 |\n| Terms last updated | 2026-09-01 | no date given |\n| Privacy policy last updated | 2026-08-25 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 1.4k stars, 22k npm/wk | none |\n| Agent reviews | 3.5/5 (2) | none |\n\n## How the scores have moved\n\n### Brave Search API + MCP\n\n- -5.1 on 1 November 2026: product, correction, negative event, time\n- -0.1 on 8 October 2026: checklist\n\n### SERPHouse\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Brave Search API + MCP.** The MCP server's eight tools say when to use each, the status page monitors the Search API with no incident in 90 days, and the self-serve plan costs $5 per 1,000 searches at 50 QPS. Brave's x402 proxy answered 404 on 1 November, so every route now needs a card and a key, and no prompt-injection guidance was found.\n\n**SERPHouse.** SERPHouse returns parsed Google, Bing and Yahoo results at published prices from $0.62 per 1,000 requests, with a 23-tool MCP server and a 4,000-credit trial without a card. The hosted MCP puts the key in its URL, there is no status page, changelog or security contact, and the terms keep search history indefinitely.\n\n## Before you call either\n\n### Brave Search API + MCP\n\n1. Call /res/v1/llm/context when you need page text rather than links. It saves a separate fetch\n2. Treat \"No web results found\" from the MCP server as an empty result, not an outage\n3. On 429, wait for `X-RateLimit-Reset` seconds. There's no `Retry-After` header\n4. Skip `brave_summarizer`. The Summarizer is deprecated, and the server's own source warns that asking for it can return no web results\n5. Don't rely on the x402 proxy at search.agent.s.brave.app. It answered 404 on 1 November 2026, so use a keyed plan\n\n### SERPHouse\n\n1. Send the key as `Authorization: Bearer`, not as `api_token` in the URL\n2. Treat a 200 with `\"status\": \"error\"` and 'Please try again' as a failure and retry later\n3. Pass `loc` or `loc_id` for Google and Bing tools other than `serphouse_search`; find IDs with `serphouse_location_search`\n4. Use `serphouse_search` for plain lookups and `serphouse_serp_google_advanced` only when ranks beyond the top 10 are needed, at ten times the price\n5. Keep under 60 requests a minute on self-serve plans\n\n## Questions\n\n### Which is better for AI agents, Brave Search API + MCP or SERPHouse?\n\nBrave Search API + MCP scores 62.9 (B) on agent readiness against SERPHouse's 42.4 (E), and leads in 6 of 7 scored categories. SERPHouse leads on payments \u0026 pricing.\n\n### Do Brave Search API + MCP and SERPHouse need an API key?\n\nBrave Search API + MCP takes an API key or an OAuth sign-in. SERPHouse needs an API key.\n\n### Can an agent call Brave Search API + MCP and SERPHouse without installing anything?\n\nYes. Brave Search API + MCP has a hosted endpoint at https://api.search.brave.com/res/v1/web/search and SERPHouse at https://mcp.serphouse.com/YOUR_API_KEY/mcp.\n\n### Are Brave Search API + MCP and SERPHouse open source?\n\nBrave Search API + MCP is open source (MIT). No open-source release is listed for SERPHouse.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse.json, and with the fewest tokens: https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"brave-search-mcp\", \"b\": \"serphouse\"}`. From a terminal: `anchor compare brave-search-mcp serphouse`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/brave-search-mcp.json and https://www.anchorterminal.com/api/v1/tools/serphouse.json\n\n## Other comparisons with Brave Search API + MCP or SERPHouse\n\n- [Web Search Tool on Amazon Bedrock AgentCore vs Brave Search API + MCP](https://www.anchorterminal.com/compare/agentcore-web-search-vs-brave-search-mcp.md)\n- [Web Search Tool on Amazon Bedrock AgentCore vs SERPHouse](https://www.anchorterminal.com/compare/agentcore-web-search-vs-serphouse.md)\n- [Arcmira vs Brave Search API + MCP](https://www.anchorterminal.com/compare/arcmira-vs-brave-search-mcp.md)\n- [Grounding with Bing Search vs Brave Search API + MCP](https://www.anchorterminal.com/compare/bing-grounding-vs-brave-search-mcp.md)\n- [Grounding with Bing Search vs SERPHouse](https://www.anchorterminal.com/compare/bing-grounding-vs-serphouse.md)\n- [Brave Search API + MCP vs Cloudflare Web Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-cloudflare-web-search.md)\n- [Brave Search API + MCP vs DeepSeek Search and Fetch API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-deepseek-search-api.md)\n- [Brave Search API + MCP vs Exa API + MCP](https://www.anchorterminal.com/compare/brave-search-mcp-vs-exa-mcp.md)\n- [Brave Search API + MCP vs Firecrawl MCP](https://www.anchorterminal.com/compare/brave-search-mcp-vs-firecrawl-mcp.md)\n- [Brave Search API + MCP vs Kagi Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-kagi-search.md)\n- [Brave Search API + MCP vs Linkup](https://www.anchorterminal.com/compare/brave-search-mcp-vs-linkup.md)\n- [Brave Search API + MCP vs Mojeek Web Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-mojeek.md)\n- [Brave Search API + MCP vs NewsCatcher](https://www.anchorterminal.com/compare/brave-search-mcp-vs-newscatcher.md)\n- [Brave Search API + MCP vs Parallel Search and Task APIs](https://www.anchorterminal.com/compare/brave-search-mcp-vs-parallel-search-api.md)\n- [Brave Search API + MCP vs Perplexity Search API](https://www.anchorterminal.com/compare/brave-search-mcp-vs-perplexity-search-api.md)\n- [Brave Search API + MCP vs SearchAPI.io](https://www.anchorterminal.com/compare/brave-search-mcp-vs-searchapi-io.md)\n- [Brave Search API + MCP vs SerpApi](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpapi.md)\n- [Brave Search API + MCP vs Serper](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serper.md)\n- [Brave Search API + MCP vs SerpKite](https://www.anchorterminal.com/compare/brave-search-mcp-vs-serpkite.md)\n- [Brave Search API + MCP vs SpecStream](https://www.anchorterminal.com/compare/brave-search-mcp-vs-specstream.md)\n- [Brave Search API + MCP vs Tavily API + MCP](https://www.anchorterminal.com/compare/brave-search-mcp-vs-tavily-mcp.md)\n- [Brave Search API + MCP vs TinyFish Search](https://www.anchorterminal.com/compare/brave-search-mcp-vs-tinyfish-search.md)\n- [Brave Search API + MCP vs Valyu](https://www.anchorterminal.com/compare/brave-search-mcp-vs-valyu.md)\n- [Brave Search API + MCP vs You.com APIs](https://www.anchorterminal.com/compare/brave-search-mcp-vs-you-com-api.md)\n- [Cloudflare Web Search API vs SERPHouse](https://www.anchorterminal.com/compare/cloudflare-web-search-vs-serphouse.md)\n- [DeepSeek Search and Fetch API vs SERPHouse](https://www.anchorterminal.com/compare/deepseek-search-api-vs-serphouse.md)\n- [Exa API + MCP vs SERPHouse](https://www.anchorterminal.com/compare/exa-mcp-vs-serphouse.md)\n- [Kagi Search API vs SERPHouse](https://www.anchorterminal.com/compare/kagi-search-vs-serphouse.md)\n- [Linkup vs SERPHouse](https://www.anchorterminal.com/compare/linkup-vs-serphouse.md)\n- [Mojeek Web Search API vs SERPHouse](https://www.anchorterminal.com/compare/mojeek-vs-serphouse.md)\n- [Parallel Search and Task APIs vs SERPHouse](https://www.anchorterminal.com/compare/parallel-search-api-vs-serphouse.md)\n- [Perplexity Search API vs SERPHouse](https://www.anchorterminal.com/compare/perplexity-search-api-vs-serphouse.md)\n- [SearchAPI.io vs SERPHouse](https://www.anchorterminal.com/compare/searchapi-io-vs-serphouse.md)\n- [SerpApi vs SERPHouse](https://www.anchorterminal.com/compare/serpapi-vs-serphouse.md)\n- [Serper vs SERPHouse](https://www.anchorterminal.com/compare/serper-vs-serphouse.md)\n- [SERPHouse vs SpecStream](https://www.anchorterminal.com/compare/serphouse-vs-specstream.md)\n- [SERPHouse vs Tavily API + MCP](https://www.anchorterminal.com/compare/serphouse-vs-tavily-mcp.md)\n- [SERPHouse vs TinyFish Search](https://www.anchorterminal.com/compare/serphouse-vs-tinyfish-search.md)\n- [SERPHouse vs Valyu](https://www.anchorterminal.com/compare/serphouse-vs-valyu.md)\n- [SERPHouse vs You.com APIs](https://www.anchorterminal.com/compare/serphouse-vs-you-com-api.md)\n- [Fetch (MCP reference server) vs SERPHouse](https://www.anchorterminal.com/compare/fetch-reference-server-vs-serphouse.md)\n- [NewsCatcher vs SERPHouse](https://www.anchorterminal.com/compare/newscatcher-vs-serphouse.md)\n- [Brave Search API + MCP vs Grep AI](https://www.anchorterminal.com/compare/brave-search-mcp-vs-grep-ai.md)\n- [SERPHouse vs SerpKite](https://www.anchorterminal.com/compare/serphouse-vs-serpkite.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Brave Search API + MCP vs SERPHouse",
        "url": ""
      }
    ],
    "description": "Brave Search scores 62.9 (B) to SERPHouse's 42.4 (E) for web search. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Brave Search API + MCP B 62.9",
      "SERPHouse E 42.4",
      "scores"
    ],
    "h1": "Brave Search API + MCP vs SERPHouse",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/brave-search-mcp-vs-serphouse",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Brave Search vs SERPHouse for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/brave-search-mcp-vs-serphouse"
  },
  "tokens": {
    "markdown": 5350,
    "slim": 2780
  },
  "version": 1
}
