{
  "name": "inetgeek",
  "title": "inetGeek",
  "version": "1.5.0",
  "description": "Sourced infrastructure comparisons: provider pricing, limits and compliance read from each vendor's own documentation and dated, plus iScore, live DNS/SPF checks and a stack planner.",
  "websiteUrl": "https://inetgeek.com",
  "icons": [
    {
      "src": "https://inetgeek-mcp.palashbagchi.workers.dev/favicon-192.png",
      "mimeType": "image/png",
      "sizes": [
        "192x192"
      ]
    },
    {
      "src": "https://inetgeek-mcp.palashbagchi.workers.dev/apple-touch-icon.png",
      "mimeType": "image/png",
      "sizes": [
        "180x180"
      ]
    },
    {
      "src": "https://inetgeek-mcp.palashbagchi.workers.dev/favicon-32.png",
      "mimeType": "image/png",
      "sizes": [
        "32x32"
      ]
    },
    {
      "src": "https://inetgeek-mcp.palashbagchi.workers.dev/favicon.ico",
      "mimeType": "image/vnd.microsoft.icon",
      "sizes": [
        "16x16",
        "32x32",
        "48x48"
      ]
    }
  ],
  "transport": {
    "type": "http",
    "url": "https://inetgeek-mcp.palashbagchi.workers.dev/mcp"
  },
  "protocolVersion": "2025-06-18",
  "capabilities": {
    "tools": {
      "listChanged": true
    }
  },
  "authentication": {
    "required": false,
    "schemes": [],
    "documentation": "https://inetgeek.com/auth.md"
  },
  "tools": [
    {
      "name": "list_categories",
      "title": "List inetGeek categories",
      "description": "The infrastructure categories inetGeek tracks \u2014 one line per URL section (\"hosting\", \"gpu\", \"databases\", \"storage\", \"caching\", \"vector-db\", \"data-api\", \"federation\", \"auth\", \"email\", \"queues\", \"payments\", \"cdn\", \"observability\", \"ci-cd\", \"secrets-mgmt\", \"analytics\", \"llm-apis\", \"search\", \"dns-hosting\", \"kubernetes\", \"iac\", \"backup\", \"api-gateway\", \"load-balancing\", \"realtime\", \"waf\", \"data-warehouse\", \"etl\", \"media\", \"sms\", \"streaming\", \"feature-flags\", \"incident-management\", \"finops\", \"ztna\", \"model-hosting\"), each with its current provider count and the category ids that publish under it (hosting groups frontend-serverless, paas, vps-cloud, managed-hosting and mass-market)."
    },
    {
      "name": "list_providers",
      "title": "List providers in a category",
      "description": "Every published provider in one category, with its free tier, entry paid price and inetGeek's editorial \"best for\" line \u2014 the orientation call before get_provider."
    },
    {
      "name": "filter_providers",
      "title": "Filter providers by documented facts",
      "description": "Providers that document ALL of the given fact keys, each with that fact's value, source URL and verification date \u2014 the way to answer \"which databases are HIPAA eligible\" without reading every fact sheet."
    },
    {
      "name": "list_startup_credit_providers",
      "title": "List providers with a startup credit program",
      "description": "Every inetGeek provider documented as offering a startup credit program, with the amount/eligibility as published, a source, and the date it was checked."
    },
    {
      "name": "search_infrastructure",
      "title": "Search inetGeek",
      "description": "Full-text search over every page inetGeek has published \u2014 providers, comparisons, DNS records, tools and stacks."
    },
    {
      "name": "get_provider",
      "title": "Get a provider fact sheet",
      "description": "The full sourced fact sheet for one infrastructure provider \u2014 pricing, limits and regions, each with a source URL and the date it was last verified against that source \u2014 plus its iScore with interval, rank and per-pillar breakdown (see get_provider_score for the criterion-level basis)."
    },
    {
      "name": "get_provider_score",
      "title": "Get a provider's iScore and what moves it",
      "description": "inetGeek's iScore for one provider: 0\u2013100 against its category peers with an 80% interval and rank, the six pillars (price, capacity, capability, trust, evidence, adoption) each with its interval, weight and coverage, every scored criterion with the fact it was read from and the peer median it was measured against, and \u2014 for a provider asking how to score higher \u2014 the criteria its peers document that it does not."
    },
    {
      "name": "list_alternatives",
      "title": "Alternatives to a provider, ranked by iScore",
      "description": "Every peer in a provider's category ranked by iScore \u2014 the same list as the site's /{section}/{slug}/alternatives/ page \u2014 each with its score and interval, free tier, entry price, editorial best-for line, and up to two sourced facts where it differs from the provider named."
    },
    {
      "name": "compare_providers",
      "title": "Compare two providers",
      "description": "inetGeek's sourced side-by-side comparison of two providers, where one exists \u2014 real differences computed from each provider's own published facts, never templated prose."
    },
    {
      "name": "list_comparisons",
      "title": "List published comparisons",
      "description": "Every side-by-side comparison inetGeek has published, optionally only those involving one provider \u2014 so an agent learns which pairs exist before calling compare_providers, instead of discovering a pair is unpublished by trying it."
    },
    {
      "name": "get_stack_recommendation",
      "title": "Get hosting recommendations for a framework",
      "description": "Every host that publishes real support for a given framework or runtime, ordered by strength of documentation (a dedicated deployment guide first, a generic one second \u2014 there is no numeric score)."
    },
    {
      "name": "plan_infrastructure",
      "title": "Plan an infrastructure stack",
      "description": "inetGeek's /plan/ planner: one suggested starting provider per layer \u2014 the cheapest with a documented free tier or a clean USD starting price, ranked by the provider's own facts, never a quality score \u2014 with its editorial reason and a floor total."
    },
    {
      "name": "get_ledger",
      "title": "What inetGeek says it could not find, and what it changed",
      "description": "inetGeek's public ledger. Three records an agent cannot get anywhere else: every vendor page that was READ on a stated date and found silent on a criterion, every criterion classed as one a product structurally cannot have, and every change to a published figure with whether the vendor moved it or inetGeek corrected its own reading. A silence record is an observation about one page on one date \u00e2\u0080\u0094 it is NOT a statement that the provider lacks the thing, and it must not be reported as one. It exists because comparisons lean on it: a documented criterion outranks a page that was read and does not mention it, and that lean is only fair if the evidence behind it is checkable. A provider whose page says more than was found can send the URL to https://inetgeek.com/contact/ and the row is replaced. Filter to one provider with `provider`, or omit it for the whole ledger."
    },
    {
      "name": "get_changelog",
      "title": "What changed on inetGeek",
      "description": "Every provider fact that moved \u2014 a price or limit that changed (before, after, source, date), a fact newly sourced, or a provider newly published \u2014 derived from the git history of the site data, so it cannot disagree with the pages."
    },
    {
      "name": "get_dns_record",
      "title": "DNS record reference",
      "description": "inetGeek's reference page for one DNS record type or email-authentication mechanism, as text \u2014 what it does, how it behaves, and the common mistakes."
    },
    {
      "name": "check_dns",
      "title": "Live DNS lookup",
      "description": "Queries public DNS-over-HTTPS resolvers for a domain's A/AAAA/CNAME/MX/TXT/NS records right now, via inetGeek's own rate-limited lookup endpoint."
    },
    {
      "name": "check_spf",
      "title": "Live SPF check",
      "description": "Evaluates a domain's SPF record right now, including the RFC 7208 ten-DNS-lookup limit, via inetGeek's own checker."
    },
    {
      "name": "check_dns_propagation",
      "title": "Check DNS propagation",
      "description": "Queries four independent public DNS resolvers for one record and compares their answers, to check whether a change has propagated."
    }
  ],
  "documentation": "https://inetgeek.com/mcp/"
}
