{
  "name": "io.quantumproxies/quantumproxies-mcp",
  "title": "QuantumProxies.io MCP server",
  "description": "QuantumProxies.io proxies (residential, mobile, datacenter, ISP, IPv6) and a web data API (scrape, search, crawl, unlock, collectors, datasets) as 28 MCP tools: scrape, search, map, crawl, batch, unlock, AI visibility, SEO audit, collectors, datasets, parser presets, proxies. Same backend as the REST Data API (https://api.quantumproxies.io/v1).",
  "version": "0.11.4",
  "websiteUrl": "https://quantumproxies.io/mcp-server",
  "serverInfo": {
    "name": "quantumproxies",
    "version": "0.11.4"
  },
  "supportedProtocolVersions": [
    "2025-11-25",
    "2025-06-18",
    "2025-03-26",
    "2024-11-05"
  ],
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://api.quantumproxies.io/mcp"
  },
  "endpoint": "https://api.quantumproxies.io/mcp",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://api.quantumproxies.io/mcp",
      "authentication": {
        "type": "oauth2",
        "description": "MCP authorization (OAuth 2.1, PKCE S256, dynamic client registration). Without credentials the endpoint answers 401 with WWW-Authenticate pointing at the resource metadata below. An API key (Authorization: Bearer qp_live_…) is accepted as an alternative.",
        "resourceMetadata": "https://api.quantumproxies.io/.well-known/oauth-protected-resource/mcp",
        "authorizationServers": [
          "https://app.quantumproxies.io"
        ],
        "scopes": [
          "mcp"
        ]
      }
    }
  ],
  "packages": [
    {
      "registryType": "npm",
      "identifier": "quantumproxies-mcp",
      "version": "0.11.4",
      "transport": {
        "type": "stdio"
      },
      "runtimeHint": "npx",
      "environmentVariables": [
        {
          "name": "QUANTUMPROXIES_API_KEY",
          "description": "API key from https://app.quantumproxies.io",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "QUANTUMPROXIES_TOOLS",
          "description": "Tool preset (lite, web, research, collectors, proxies) or comma-separated tool names",
          "isRequired": false
        }
      ]
    }
  ],
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "scrape",
      "title": "Scrape a web page",
      "description": "One URL to clean Markdown, HTML or text (PDF and Office documents too) through a residential IP with a real-browser TLS fingerprint. Optional CSS, preset or AI extraction, `mode: summary`, browser actions."
    },
    {
      "name": "unlock",
      "title": "Send a raw HTTP request",
      "description": "Web Unlocker: replay any HTTP request (method, headers, body) through a residential exit, retry on a fresh IP, escalate a blocked GET to a real browser. A still-blocked page comes back flagged, never as a silent 200."
    },
    {
      "name": "generate_parser",
      "title": "Generate a parser",
      "description": "Learn the CSS selectors of a page layout once with an LLM and get back a deterministic parser to reuse for free."
    },
    {
      "name": "save_parser_preset",
      "title": "Save a parser preset",
      "description": "Store a generated parser as a named preset that `scrape` runs by `preset_id`, with optional self-healing."
    },
    {
      "name": "list_parser_presets",
      "title": "List parser presets",
      "description": "List this account's parser presets with their ids."
    },
    {
      "name": "parser_preset_stats",
      "title": "Parser preset health",
      "description": "Health of one preset: success rate, recent runs, empty fields, whether it needs healing."
    },
    {
      "name": "heal_parser_preset",
      "title": "Repair a parser preset",
      "description": "Regenerate a preset's selectors after the site layout changed (`force` heals a healthy one)."
    },
    {
      "name": "seo_audit",
      "title": "Audit a page for SEO",
      "description": "Fetch a URL as a no-JS bot and fully rendered, return both SEO views plus the diff (JS-only content, changed title or description, missing canonical) and bot-facing meta (robots, Open Graph, JSON-LD)."
    },
    {
      "name": "ai_visibility",
      "title": "Audit a page for AI visibility",
      "description": "Can ChatGPT, Claude, Perplexity, Google AI Overview and Bing Copilot read and cite a page? On-page audit scored per pillar with blockers, evidence and fixes, plus an optional citation panel that asks the engines."
    },
    {
      "name": "search",
      "title": "Search the web",
      "description": "Structured Google, Bing or DuckDuckGo results across 17 verticals (web, images, news, shopping, maps, jobs, flights, hotels, lens and more). `render: true` adds AI Overview, People Also Ask and Knowledge Graph."
    },
    {
      "name": "search_and_read",
      "title": "Search and read results",
      "description": "Search, fetch the top organic pages as clean Markdown and return numbered citation-ready sources plus one token-bounded `context` string for the prompt."
    },
    {
      "name": "map",
      "title": "Map a site's URLs",
      "description": "Fast URL discovery from sitemaps and homepage links, no full crawl: up to `limit` URLs plus a site-wide total and a per-section summary; `group_by: path` for the tree."
    },
    {
      "name": "crawl",
      "title": "Crawl a site",
      "description": "Start an async breadth-first crawl from a seed URL, every page converted to Markdown. Depth control, include and exclude globs. Returns a job id."
    },
    {
      "name": "crawl_status",
      "title": "Crawl status",
      "description": "Poll a crawl job for progress and the pages gathered so far. The `since` cursor and `include_content` keep polls light."
    },
    {
      "name": "batch",
      "title": "Scrape URLs in batch",
      "description": "Scrape up to 1,000 URLs asynchronously with shared options; `mode: summary` for metadata-only items. Returns a job id."
    },
    {
      "name": "batch_status",
      "title": "Batch status",
      "description": "Poll a batch job incrementally with the `since` cursor; page content only with `include_content`."
    },
    {
      "name": "search_bulk",
      "title": "Bulk search",
      "description": "Async multi-page SERP pagination with merged organic results and page-one AI and zero-click enrichments. Returns a job id."
    },
    {
      "name": "search_bulk_status",
      "title": "Bulk search status",
      "description": "Poll a bulk search job; `since` returns only the pages collected after the previous poll."
    },
    {
      "name": "create_dataset",
      "title": "Build a dataset",
      "description": "Prompt-driven structured dataset collection with columns, sources, budget and row limits. Returns a job id."
    },
    {
      "name": "dataset_status",
      "title": "Dataset status",
      "description": "Poll a dataset job: rows so far, cost, and signed CSV and JSON downloads when done."
    },
    {
      "name": "list_proxies",
      "title": "List proxy services",
      "description": "Your proxy services of every type (Residential Basic, Premium and Private, Mobile, Mobile V2, Datacenter, ISP, IPv6) with bandwidth left, expiry and the `orderId` used to generate."
    },
    {
      "name": "generate_proxies",
      "title": "Generate proxy credentials",
      "description": "Ready-to-use proxy strings (credentials included) from any active plan: country, state, city, ISP or ASN targeting, rotating or sticky sessions, HTTP or SOCKS5, several output formats."
    },
    {
      "name": "proxy_locations",
      "title": "Proxy locations",
      "description": "Valid geo-targeting values per plan type: countries, states, cities, ASNs, or the full location tree with ISP codes."
    },
    {
      "name": "whitelist_ip",
      "title": "Manage the IP whitelist",
      "description": "Add, list or remove IP-auth whitelist entries for the plans that support it, including the Mobile V2 IP-auth proxy list."
    },
    {
      "name": "list_collectors",
      "title": "List collectors",
      "description": "Catalog of the ready-made Collectors (slug, category, price per delivered row, required input), or one collector's full schema and example with `slug`."
    },
    {
      "name": "run_collector",
      "title": "Run a collector",
      "description": "Run a Collector by slug with a semantic input (keyword + location, place id, product id, domain) instead of URLs. Short runs return rows inline, long runs a `run_id`."
    },
    {
      "name": "collector_run_status",
      "title": "Collector run status",
      "description": "Poll a collector run by `run_id`; rows as JSON or CSV, billed per delivered row only."
    },
    {
      "name": "report",
      "title": "Report a bug or request a feature",
      "description": "Send feedback to the team from inside the agent: a bug, a missing feature or collector, a question. Works without an API key."
    }
  ],
  "documentation": {
    "reference": "https://quantumproxies.io/docs/",
    "openapi": "https://quantumproxies.io/docs/openapi.json",
    "llmsTxt": "https://quantumproxies.io/docs/llms.txt",
    "skills": "https://quantumproxies.io/.well-known/agent-skills/index.json"
  }
}
