{
  "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"
  },
  "tool": {
    "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",
    "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."
          }
        ]
      }
    },
    "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"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 40,
          "points": 8,
          "reason": "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.",
          "checked": "2026-11-06"
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 66,
          "points": 10.73,
          "reason": "No OpenAPI or similar contract for the REST API. The MCP server's tools carry typed Zod schemas, published in the source and a static server card (18 of 25). llms.txt at the site and the docs, and every docs page as Markdown (10). MCP tool descriptions say which tool to use for what, such as `serphouse_google_web` when device or `num_result` is needed, while the docs pages lead with marketing lines such as 'Unlock captivating Google video content' (12 of 20). Enums for device, SERP type, engine and video duration, defaults and 37 described parameters (11 of 15). A status code table and request examples per engine, with a generic error body (12 of 15). No changelog or API versioning; only the MCP server has tags (3 of 15). 18 + 10 + 12 + 11 + 12 + 3 = 66.",
          "checked": "2026-11-06"
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 64,
          "points": 10.4,
          "reason": "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.",
          "checked": "2026-11-06"
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 11,
          "points": 1.93,
          "reason": "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.",
          "checked": "2026-11-06"
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 40,
          "points": 5,
          "reason": "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.",
          "checked": "2026-11-06"
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 23,
          "points": 2.01,
          "reason": "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.",
          "checked": "2026-11-06"
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 50,
          "points": 4.38,
          "note": "editorial 39, provenance 61",
          "reason": "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.",
          "checked": "2026-11-06"
        }
      ],
      "assessment": {
        "date": "2026-11-06",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "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.",
          "maintenance": "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.",
          "payments": "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.",
          "reliability": "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.",
          "schema": "No OpenAPI or similar contract for the REST API. The MCP server's tools carry typed Zod schemas, published in the source and a static server card (18 of 25). llms.txt at the site and the docs, and every docs page as Markdown (10). MCP tool descriptions say which tool to use for what, such as `serphouse_google_web` when device or `num_result` is needed, while the docs pages lead with marketing lines such as 'Unlock captivating Google video content' (12 of 20). Enums for device, SERP type, engine and video duration, defaults and 37 described parameters (11 of 15). A status code table and request examples per engine, with a generic error body (12 of 15). No changelog or API versioning; only the MCP server has tags (3 of 15). 18 + 10 + 12 + 11 + 12 + 3 = 66.",
          "security": "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.",
          "transparency": "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."
        },
        "sources": [
          {
            "what": "Home page",
            "url": "https://www.serphouse.com/",
            "seen": "2026-11-06"
          },
          {
            "what": "About page and product timeline",
            "url": "https://www.serphouse.com/about-us",
            "seen": "2026-11-06"
          },
          {
            "what": "Getting started (auth, status codes, rate limits, pricing)",
            "url": "https://www.serphouse.com/docs/getting-started",
            "seen": "2026-11-06"
          },
          {
            "what": "MCP server docs",
            "url": "https://www.serphouse.com/docs/mcp-server",
            "seen": "2026-11-06"
          },
          {
            "what": "Docs llms.txt",
            "url": "https://www.serphouse.com/docs/llms.txt",
            "seen": "2026-11-06"
          },
          {
            "what": "Pricing",
            "url": "https://www.serphouse.com/pricing",
            "seen": "2026-11-06"
          },
          {
            "what": "Terms of service",
            "url": "https://www.serphouse.com/terms-of-service",
            "seen": "2026-11-06"
          },
          {
            "what": "Privacy policy",
            "url": "https://www.serphouse.com/privacy-policy",
            "seen": "2026-11-06"
          },
          {
            "what": "Contact page",
            "url": "https://www.serphouse.com/contact-us",
            "seen": "2026-11-06"
          },
          {
            "what": "MCP server repository",
            "url": "https://github.com/SERPHouse/serphouse-mcp",
            "seen": "2026-11-06"
          },
          {
            "what": "npm package serphouse-mcp",
            "url": "https://registry.npmjs.org/serphouse-mcp",
            "seen": "2026-11-06"
          },
          {
            "what": "Node.js SDK repository",
            "url": "https://github.com/SERPHouse/serphouse-nodejs",
            "seen": "2026-11-06"
          },
          {
            "what": "Patoliya Infotech about page",
            "url": "https://www.patoliyainfotech.com/company/about",
            "seen": "2026-11-06"
          }
        ],
        "openQuestions": [
          "Oxylabs. The home page says 'Explore the Scraper APIs Playground on the Oxylabs dashboard for hands-on interaction with our APIs', next to a SERPHouse signup button. The terms, privacy policy, about page and docs name no relationship with Oxylabs and no Oxylabs sub-processor, and the playground and signup are on serphouse.com. A search for the sentence found Oxylabs' own playground documentation but not the sentence, so where it came from is not established. Judgement call, not a deduction, since no claim of partnership is made; data/tools/oxylabs-web-scraper.json is a separate listing.",
          "The pricing page lists '100% Success Rate' and a '99.99% Uptime SLA' on Basic and Regular; the docs list 99.95%, and say a 200 can carry an error to retry. No SLA terms or credits were found. Vendor claims, not deducted.",
          "unchecked: GitHub issues and star counts, since the GitHub API refused us for its rate limit; repositories were read by shallow clone.",
          "The docs name an official Python SDK, but no Python repository was found under github.com/SERPHouse and PyPI had no `serphouse` project we could read.",
          "firstReleased is September 2019, when the about page says the first SERPHouse API launched; RDAP gives the domain 20 August 2019.",
          "The lead said 4,000 free searches. The trial is 4,000 credits, and by the published prices a SERP request uses 10 credits, so about 400 SERP requests.",
          "The trial terms forbid 'scraping at scale or performing automated bulk data extraction' with trial credits. Recorded as a fact."
        ]
      },
      "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
      },
      "scoreHistory": [
        {
          "date": "2026-11-06",
          "grade": "E",
          "kind": "listed",
          "method": "0.7",
          "score": 42.4
        }
      ]
    },
    "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"
    },
    "notable": [
      "Live API at https://api.serphouse.com/serp/live and a Scheduled API with task IDs, postback and pingback URLs (https://www.serphouse.com/docs/getting-started)",
      "The MCP server registers 23 tools in five groups and two guide resources; tools and resources can be listed without a key (https://www.serphouse.com/docs/mcp-server)",
      "MCP server 1.0.0 on 16 June 2026 and 1.1.0 on 6 July 2026 on npm, MIT, last commit 22 July 2026 (https://github.com/SERPHouse/serphouse-mcp)",
      "The terms say structured JSON results are kept up to 6 months, HTML up to 1 month and search history indefinitely (https://www.serphouse.com/terms-of-service)",
      "The terms advise users in the European Economic Area not to use the service, because data is stored and processed outside the EEA (https://www.serphouse.com/terms-of-service)",
      "The home page says 'Explore the Scraper APIs Playground on the Oxylabs dashboard', while its signup and playground are on serphouse.com (https://www.serphouse.com/)"
    ],
    "area": "web-data",
    "details": [
      {
        "label": "Surface listed",
        "value": "The SERP API at api.serphouse.com and the hosted MCP server at mcp.serphouse.com, read from serphouse.com, its docs and llms.txt, the pricing page, terms, privacy policy and the serphouse-mcp repository on 6 November 2026. No account was made and no request was sent"
      },
      {
        "label": "Index",
        "value": "None of its own. Live Google, Bing and Yahoo results, parsed into JSON or returned as HTML"
      },
      {
        "label": "Verticals",
        "value": "Google web, lite web, top 100, AI Overview, news, images, shopping, jobs, videos, short videos, forums, local, place details and autocomplete; Bing and Yahoo web, news and images; a Scraper API for one page as rendered HTML or Markdown"
      },
      {
        "label": "Full text or snippets",
        "value": "Parsed SERP blocks with titles, links and snippets. Page text needs a separate Scraper API call"
      },
      {
        "label": "Modes",
        "value": "Live (synchronous) and Scheduled (asynchronous, task IDs, postback and pingback webhooks with signature verification)"
      },
      {
        "label": "Rate limits",
        "value": "60 requests a minute and 60 concurrent on Free, Basic and Regular; custom plans by request"
      },
      {
        "label": "Credits",
        "value": "Basic buys 400,000 credits for $29.99 at $0.75 per 1,000 SERP requests, which works out at 10 credits a SERP request by our arithmetic. Failed requests are not counted"
      },
      {
        "label": "Trial",
        "value": "4,000 credits for 7 days, no card. The trial terms forbid production workloads, scraping at scale and reselling trial data"
      },
      {
        "label": "Oxylabs",
        "value": "The home page names 'the Oxylabs dashboard' as the place to try the API. No link to Oxylabs, partnership or sub-processor naming it was found on serphouse.com, its terms, privacy policy or docs; the signup and playground are SERPHouse's own"
      },
      {
        "label": "Legal entity",
        "value": "Patoliya Infotech LLP, incorporated in India, Surat courts, address in Utran, Surat, Gujarat. Patoliya Infotech is a software development company founded in 2015 to 2016 per its own site"
      }
    ],
    "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,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Patoliya Infotech LLP",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "serphouse.com, registered 2019-08-20 (7 years)",
          "points": 11,
          "max": 15,
          "state": "part"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "mcp.serphouse.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 6 of the 7 things a reader expects, and has 2 clauses that cost points",
          "points": 5.1,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 4 of the 8 things a reader expects",
          "points": 7,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Status page",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "Changelog",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "People named",
          "value": "1 named with their role, none with a public profile",
          "points": 7,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Support route",
          "value": "a support address, help pages",
          "points": 5,
          "max": 5,
          "state": "ok"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://www.serphouse.com/terms-of-service",
          "state": "read",
          "readAt": "2026-11-06",
          "words": 5268,
          "points": 5.1,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": false
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "These Terms will be governed by the laws of the Republic of India with courts located in the city of Surat, India having exclusive jurisdiction over any disputes arising out of these Terms.",
              "says": "The law of the Republic of India, with disputes in the courts of the City of Surat, India"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "Because some states or jurisdictions do not allow the exclusion or the limitation of liability for consequential or incidental damages, in such states or jurisdictions, our liability shall be limited to the maximum extent permitted by law.",
              "says": "Rules out indirect and consequential losses, with no cap named in this sentence"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "You may terminate these Terms of Service at any time by notifying us that you no longer wish"
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "We may, in our sole discretion, modify the Terms via email or by posting notice on any part of the Website or SERPHouse Services.",
              "says": "Says it gives notice of a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "You may not use our products for any illegal or unauthorised purpose nor may you, in the use of the Service, violate any laws in your jurisdiction (including but not limited to copyright laws)."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": true,
              "quote": "No Service Level Agreement During Trial The Uptime SLA, 100% Success Rate guarantee, and Dedicated or Priority Support commitments described elsewhere in these Terms do not apply to Trial accounts."
            }
          ],
          "toKnow": [
            {
              "key": "terms.automated",
              "label": "Restricts automated access",
              "found": true,
              "quote": "- Scraping at scale or performing automated bulk data extraction;",
              "costsPoints": true
            },
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "We reserve the right to correct any errors, inaccuracies or omissions, and to change or update information or cancel orders if any information in the Service or on any related website is inaccurate at any time without prior notice (including after you have submitted your plan).",
              "costsPoints": true
            },
            {
              "key": "terms.cutoff",
              "label": "Says access can be ended without notice or for any reason",
              "found": true,
              "quote": "You agree that from time to time we may remove the service for indefinite periods of time or cancel the service at any time, without notice to you."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://www.serphouse.com/privacy-policy",
          "state": "read",
          "readAt": "2026-11-06",
          "words": 2116,
          "points": 7,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": false
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "you are aware of what information we collect, how we use it, and under what circumstances, if"
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": false
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "In general, the third-party providers used by us will only collect, use and disclose your"
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": false
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "B) GDPR, in so far as these cookies are used to collect data to initiate or process contractual"
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "us at or mailing us at : [email protected]",
              "says": "Gives an email address, hidden from our reader by the page"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": false
            }
          ]
        }
      ]
    },
    "humans": {
      "slug": "serphouse",
      "checked": "2026-11-06",
      "company": "Patoliya Infotech LLP (SERPHouse)",
      "people": [
        {
          "name": "Vijay Patoliya",
          "role": "Founder and CEO, Patoliya Infotech",
          "founder": true,
          "page": "/people/vijay-patoliya/"
        }
      ],
      "peopleNote": "SERPHouse's terms name Patoliya Infotech LLP as the company behind SERPHouse. Patoliya Infotech's about page names Vijay Patoliya as Founder \u0026 CEO; no SERPHouse page names a person in a role, and no personal profile linked from either site was found. SERPHouse's about page says it started in September 2019; Patoliya Infotech is a software development company founded in 2015 to 2016 per its site. Investors were looked for on serphouse.com (home, about, terms, contact) and patoliyainfotech.com on 6 November 2026; none names an outside investor, a round or a valuation, so none is recorded.",
      "companySocial": {
        "linkedin": "https://www.linkedin.com/company/serphouse/",
        "github": "https://github.com/SERPHouse"
      },
      "support": {
        "emails": [
          "getsupport@serphouse.com"
        ],
        "urls": [
          "https://www.serphouse.com/docs"
        ],
        "contactUrls": [
          "https://www.serphouse.com/contact-us"
        ]
      },
      "sources": [
        "https://www.serphouse.com/terms-of-service",
        "https://www.serphouse.com/contact-us",
        "https://www.serphouse.com/docs/getting-started",
        "https://www.patoliyainfotech.com/company/about",
        "https://www.serphouse.com/about-us"
      ],
      "ownership": {
        "status": "private",
        "checked": "2026-11-06",
        "sources": [
          "https://www.serphouse.com/terms-of-service",
          "https://www.patoliyainfotech.com/company/about"
        ]
      }
    },
    "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"
    }
  }
}
