{
  "serverInfo": {
    "name": "changegamer",
    "version": "1.1.0",
    "title": "ChangeGamer",
    "description": "The agent-first reference for AI agent infrastructure: protocols, security, RAG, memory and evals.",
    "websiteUrl": "https://changegamer.ai"
  },
  "endpoint": "https://changegamer.ai/mcp",
  "transport": "streamable-http",
  "authentication": {
    "required": false,
    "scheme": "bearer",
    "note": "Connecting and every discovery tool are free. get_resource on a premium slug and get_full_corpus return a payment_required object unless a valid key is passed as the api_key argument. How to obtain one: https://changegamer.ai/api/payment.json",
    "documentation": "https://changegamer.ai/auth.md"
  },
  "capabilities": {
    "tools": {
      "listChanged": false,
      "list": [
        "list_resources",
        "get_resource",
        "get_access_info",
        "search_resources",
        "get_corpus",
        "get_full_corpus",
        "get_pricing",
        "get_payment_info",
        "get_stats",
        "list_articles",
        "get_article",
        "search",
        "get_cluster",
        "check_access"
      ]
    }
  },
  "tools": [
    {
      "name": "list_resources",
      "title": "List resources",
      "description": "List all ChangeGamer resources with metadata and absolute URLs. Returns slug, title, description, category, tags, updated date, premium flag, and HTML/Markdown/JSON variant URLs. No body content. Optional `category` and `premium` filters narrow the list; without them every resource is returned."
    },
    {
      "name": "get_resource",
      "title": "Get resource",
      "description": "Fetch a ChangeGamer resource by slug. Free resources return full metadata, the Markdown body, cited source URLs and a ready-made citation/bibtex. Premium resources require a valid api_key; without one a payment-required object is returned. An unknown slug returns did_you_mean suggestions."
    },
    {
      "name": "get_access_info",
      "title": "Get access info",
      "description": "Return current access and pricing information for ChangeGamer resources."
    },
    {
      "name": "search_resources",
      "title": "Search resources",
      "description": "Search the ChangeGamer corpus by keyword. Every word must match the title, tags, category, description or (as a last resort) the body; results rank title > tags > category > description > body, the same order as the site search. Returns metadata plus HTML/Markdown/JSON URLs (no body content). Use this to find resources before fetching them with get_resource."
    },
    {
      "name": "get_corpus",
      "title": "Get free corpus",
      "description": "Return the entire free corpus as one document (every free resource title, description, canonical URL, and full Markdown body) — the same content as /llms-full.txt. Premium resources appear as a stub with a purchase link, not their body. Use this to ingest everything in a single call; the response is large. Optional `category` returns only that category's resources (smaller result)."
    },
    {
      "name": "get_full_corpus",
      "title": "Get full corpus (licensed)",
      "description": "Return the ENTIRE corpus including premium resource bodies in one document — the keyed deliverable of the Corpus/Enterprise license. Requires a Corpus-, Corpus-annual- or Enterprise-tier api_key (a Starter key unlocks premium resources but NOT the corpus file); without an entitled key a payment-required/upgrade object is returned. The free, premium-stubbed version is get_corpus."
    },
    {
      "name": "get_pricing",
      "title": "Get pricing",
      "description": "Return the full paid-offer catalog: every tier with price, currency, interval, checkout URL, what it unlocks, deliverables, and license grant — plus the free layer and premium slug list. Same data as /api/pricing.json."
    },
    {
      "name": "get_payment_info",
      "title": "Get payment info",
      "description": "Return the agent payment manifest: every way to pay (HTTP 402 + Bearer key, MCP, Stripe checkout, x402, RSL per-crawl), the exact 402 retry loop, what is always free, and the recommended path per use case. Same data as /api/payment.json."
    },
    {
      "name": "get_stats",
      "title": "Get corpus stats",
      "description": "Return corpus stats: total/free/premium counts, per-category counts, tag count, newest/oldest update dates, the 10 most recently updated resources, feed URLs — plus an editorial block (guide count, words, newest publish) merged at runtime from the static articles index. A small freshness/size signal to poll before deciding whether to re-ingest."
    },
    {
      "name": "list_articles",
      "title": "List guides",
      "description": "List ChangeGamer editorial guides (always free, separate from the licensable corpus): compact rows (slug, title, cluster, kind, order, description, updated, Markdown URL), one page at a time, plus the cluster list. `cluster` narrows to one topic; `full: true` returns the complete index with search intents, takeaways and variant URLs. No body content — fetch bodies with get_article."
    },
    {
      "name": "get_article",
      "title": "Get guide",
      "description": "Fetch one ChangeGamer guide (editorial article) by slug as full Markdown with its metadata header, plus a second JSON block with the canonical URL, citation/bibtex and the reference resources it builds on. Always free — never part of the paid corpus. Use list_articles or search to discover slugs."
    },
    {
      "name": "search",
      "title": "Search resources and guides",
      "description": "Keyword search across ALL ChangeGamer content (resources and editorial guides), ranked like the site search: every word must match; title hits weigh most, then tags, category, description. Returns ranked rows with type, slug, title, description, premium flag, .md and HTML URLs (no body content). Use get_resource/get_article to fetch winners."
    },
    {
      "name": "get_cluster",
      "title": "Get guide cluster",
      "description": "Fetch one ChangeGamer guide cluster (topic bundle) from the free editorial layer: cluster metadata, every member article as a compact row with its Markdown URL, and the pillar’s full Markdown body. Use list_articles to discover cluster ids."
    },
    {
      "name": "check_access",
      "title": "Check access key",
      "description": "Verify an access key and report what it unlocks. Returns valid:true/false; when valid, the tier, when it was created, the premium slugs it unlocks, and whether it grants the gated /api/corpus.full.jsonl + get_full_corpus deliverable (corpus, corpus-annual and enterprise tiers only). Never returns the key, email, or Stripe session. Use this to confirm a freshly-purchased key works before relying on it."
    }
  ],
  "links": {
    "registry_manifest": "https://changegamer.ai/.well-known/mcp.json",
    "api_catalog": "https://changegamer.ai/.well-known/api-catalog",
    "pricing": "https://changegamer.ai/api/pricing.json",
    "payment": "https://changegamer.ai/api/payment.json",
    "license": "https://changegamer.ai/license.xml",
    "docs": "https://changegamer.ai/resources/getting-started"
  }
}