ServerSearcher MCP

Search and compare dedicated, VPS, GPU and cloud server plans across many hosting providers - filter by many params including spec, location, price, stock and provider capability

Hosted MCP Server

npx add-mcp 'https://www.serversearcher.com/api/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

ServerSearcher — API reference for AI agents

Base URL: https://www.serversearcher.com

Plain-text search (recommended for LLMs)

curl -s "https://www.serversearcher.com/api/hostingsearch/search?format=text&type=dedicated&sortConfig=priceAsc&pageSize=20"

curl -s "https://www.serversearcher.com/api/hostingsearch/search?format=text&type=dedicated&maxPrice=200&minRam=32"

Response is UTF-8 plain text with:

  • Active filters echoed at the top
  • Total match count
  • Each plan with provider page and affiliate checkout URLs

JSON search API

curl -s "https://www.serversearcher.com/api/hostingsearch/search?type=dedicated&maxPrice=200&pageSize=20"

curl -s -X POST "https://www.serversearcher.com/api/hostingsearch/search" \
  -H "Content-Type: application/json" \
  -d '{"type":["dedicated"],"maxPrice":"200","pageSize":20,"sortConfig":"priceAsc"}'

HTML search results table (secondary)

The page GET /servers/search/?type=dedicated&maxPrice=200 server-renders a <table id="server-search-crawler-results"> containing the first page of matching plans (provider, plan, specs, location, monthly price). The table is in the HTML of every request — no JavaScript is required to read it — and query parameters change the server-rendered output. Use the format=text API above when you need more than the first page.

Parameters

ParameterTypeDescription
formatstringSet to text for plain-text responses (GET only)
typestring[]Plan types: dedicated, virtual, cloud, etc.
minRamstringMinimum RAM (GB)
minCpuCoresstringMinimum CPU cores
cpuModelstringCPU model substring (e.g. EPYC); * and ? are wildcards
maxPricestringMaximum monthly price
locationstring[]City UUID, country code (e.g. US), or US-new-york
providerstring[]Provider IDs
sortConfigstringpriceAsc, priceDesc, ramAsc, ramDesc, cpuAsc, cpuDesc, …
pagenumberPage number (default 1)
pageSizenumberResults per page (default 50, max 150)
hasTerraformbooleantrue to filter Terraform-supported providers

JSON response shape

Both the GET and POST forms of /api/hostingsearch/search return the same object:

{
  "plans": [
    {
      "id": "…",
      "name": "…",
      "description": "…",
      "type": "dedicated",
      "cpuCores": 8,
      "cpuThreads": 16,
      "cpuModel": "…",
      "cpuFrequency": 3.4,
      "ram": 64,
      "includedBandwidthQuota": 20,
      "portSpeed": 1000,
      "secondPortSpeed": null,
      "additionalDetails": null,
      "directPlanUrl": "…",
      "minMonthlyCostUsd": 129.0,
      "pricePerRamUsd": 2.02,
      "pricePerCpuUsd": 16.13,
      "pricePerRamCpuUsd": 0.25,
      "disks": [{ "id": "…", "capacity": 960, "type": "NVME" }],
      "gpus": [
        {
          "id": "…",
          "model": "…",
          "count": 1,
          "vRAM": 24,
          "architecture": "…",
          "cudaCores": 10752
        }
      ],
      "pricing": [
        {
          "id": "…",
          "monthlyCost": 119.0,
          "hourlyCost": null,
          "currency": "EUR",
          "minimumTerm": 1,
          "setupFee": null,
          "billingCycle": "MONTHLY",
          "usd": {
            "amount": 129.0,
            "rate": 0.92,
            "rateAt": "…",
            "fetchedAt": "…",
            "source": "…"
          }
        }
      ],
      "locations": [
        {
          "locationId": "…",
          "qty": 4,
          "name": "…",
          "cityId": "…",
          "city": "Amsterdam",
          "countryIso": "NL",
          "countryName": "Netherlands",
          "facility": null
        }
      ],
      "promoCodes": [
        {
          "id": "…",
          "code": "…",
          "discountAmount": 50,
          "discountType": "…",
          "currency": "USD",
          "credit": null,
          "description": "…",
          "expiresAt": "…"
        }
      ],
      "provider": {
        "id": "…",
        "name": "…",
        "slug": "…",
        "logo": "…",
        "website": "…",
        "terraformProvider": "OFFICIAL"
      }
    }
  ],
  "totalResults": 412,
  "page": 1,
  "pageSize": 50,
  "searchId": "…",
  "exchangeRatesAvailable": true
}

totalResults is the count before pagination, so Math.ceil(totalResults / pageSize) is the number of pages. minMonthlyCostUsd and the three pricePer*Usd fields are normalised to USD and are the values the site sorts on; exchangeRatesAvailable is false when the latest FX read failed, in which case those fields may be stale.

MCP

Endpoint: https://www.serversearcher.com/api/mcp Tool: search_servers with the same filter fields as the JSON API. The provider filter additionally accepts org slugs (e.g. runpod), resolved server-side — the JSON API itself takes provider ids only. type includes gpu here too.