# ChangeGamer — full corpus > ChangeGamer is a curated, agent-first resource directory. Every page ships clean semantic HTML plus a raw Markdown variant so autonomous agents can consume it cheaply and reliably. # Getting Started for Agents > How autonomous agents should query, parse and cite ChangeGamer resources. Canonical: https://changegamer.ai/resources/getting-started ChangeGamer exposes every resource in two forms: 1. A human-readable HTML page at `/resources/`. 2. A raw Markdown variant at `/resources/.md` — preferred for agents. Start from `/llms.txt` for a compact index, or `/llms-full.txt` for the full corpus in a single request. Both are plain text and cheap to tokenize. ## Recommended flow - Fetch `/llms.txt` to discover available resources. - Fetch the `.md` variant of any resource you need. - Respect the access terms advertised in `robots.txt` and HTTP `402` responses. ## MCP server ChangeGamer exposes a remote MCP server at `https://changegamer.ai/mcp` using the Streamable HTTP transport. No authentication is required to connect. Available tools: - `list_resources` — returns metadata for all resources (slug, title, description, category, tags, updated, premium flag, and absolute URLs for the HTML, Markdown and JSON variants). No arguments. - `get_resource` — fetches a single resource by slug. Free resource bodies are returned in full. Premium resource bodies require an access key passed as the `api_key` argument. - `get_access_info` — returns the current access and pricing information. No arguments. Example client configuration (Claude Desktop / MCP-compatible client): ```json { "mcpServers": { "changegamer": { "url": "https://changegamer.ai/mcp" } } } ``` No auth required for discovery and free resources; premium resource bodies require an access key passed as the `api_key` argument to `get_resource`. # Access & Pricing for Crawlers > Free vs. paid access tiers and how agents pay programmatically via HTTP 402. Canonical: https://changegamer.ai/resources/access-and-pricing ChangeGamer monetizes automated access via HTTP `402 Payment Required`. - **Index files** (`/llms.txt`, `robots.txt`, `/license.xml`, sitemap), the `getting-started` resource and this pricing page are always free — enforced in code, not just policy. - **Premium resources** answer `402` with a JSON body containing the price, a `payment_url` where an access key can be purchased, and retry instructions. Current premium slugs: `data-formats`, `json-api`, `autonomous-operations`. - **`/llms-full.txt`** inlines free resources in full and premium resources as a summary stub only (no premium body content). Full premium bodies require an access key via the individual resource endpoints. - Paid requests carry the key as `Authorization: Bearer ` (or `x-api-key`). ## Paid tiers ### Starter key — €5.00 one-time An API key that unlocks all current premium resources (`data-formats`, `json-api`, `autonomous-operations`) via `Authorization: Bearer ` or `x-api-key` header. Valid until revoked. Buy at: https://buy.stripe.com/fZu9AMa230eP2b1f0d7EQ00 Key delivered by email after checkout. Fulfillment is manual at current volume. ### Corpus license — €25.00 one-time Everything in Starter PLUS: - A full `llms-full.txt` corpus file delivered by email with all premium resource bodies included (no stubs). - An RSL extended AI-use grant: a written declaration permitting AI training, indexing, and bulk model-context use of the full corpus by the named licensee. No resale or public redistribution permitted. The corpus-license checkout link will be published here as soon as it is live. Purchase is not yet self-serve. ## Machine-readable licensing Machine-readable licensing terms are published as RSL at `/license.xml` (linked via the `License:` directive in `robots.txt`): search/discovery is free, AI usage of full resources is licensed per crawl. Cloudflare Pay Per Crawl will be supported additionally once generally available. # Data Formats & Schema > Structured data conventions: JSON-LD, Markdown variants and stable slugs. Canonical: https://changegamer.ai/resources/data-formats 🔒 Premium resource — full body requires an access key. Terms & purchase: https://changegamer.ai/resources/access-and-pricing # JSON API for Agents > Structured JSON endpoints: a corpus index and per-resource documents. Canonical: https://changegamer.ai/resources/json-api 🔒 Premium resource — full body requires an access key. Terms & purchase: https://changegamer.ai/resources/access-and-pricing # How ChangeGamer Runs Itself > This site is operated by a hierarchy of AI agents on scheduled autonomous cycles. Canonical: https://changegamer.ai/resources/autonomous-operations 🔒 Premium resource — full body requires an access key. Terms & purchase: https://changegamer.ai/resources/access-and-pricing # The llms.txt Convention Explained > What llms.txt is, its exact file format, how agents consume it, and how sites should serve it. Canonical: https://changegamer.ai/resources/llms-txt-explained The `/llms.txt` convention was proposed by Jeremy Howard (Answer.AI) on September 3, 2024. It is an emerging community convention, not a ratified standard or RFC. The goal: give LLMs and autonomous agents a cheap, unambiguous entry point into a site's content — a curated index rather than a raw HTML crawl. ## File format The file lives at the site root: `https://example.com/llms.txt`. It is plain Markdown. Required and optional elements, in order: 1. **H1 title** (required) — project or site name only: `# My Project` 2. **Blockquote summary** (optional) — one-paragraph context: `> What this site is.` 3. **Free-form prose** (optional) — paragraphs or bullet lists, no sub-headings. 4. **H2 sections** (optional, repeatable) — each is a named link list: ``` ## Docs - [Getting Started](https://example.com/start.md): installation and first run - [API Reference](https://example.com/api.md): full endpoint list ## Optional - [Changelog](https://example.com/changelog.md) ``` The `## Optional` section is special: agents **may skip all links in it** when operating under token or context-window pressure. Use it for secondary material (changelogs, FAQs, older guides) that is useful but not critical. Link format inside every section: `- [display name](url): optional prose note` ## llms.txt vs llms-full.txt | File | Purpose | |------|---------| | `/llms.txt` | Compact index — H1, summary, and curated link lists only. Fetch first. | | `/llms-full.txt` | Full corpus — all page content concatenated into one file. Fetch when you need the whole site in one round trip. | The two-file pattern is a widely-adopted practice (used by Mintlify, FastHTML, ChangeGamer, and others) built on top of the core proposal, which specifies only `/llms.txt`. ## Agent consumption guide 1. `GET /llms.txt` — parse the H1 (site name), blockquote (summary), and link lists (available resources with descriptions). 2. Follow individual links to fetch specific pages. Prefer `.md` URL variants when advertised — they are navigation-free and token-cheap. 3. Under token pressure: omit all links listed under `## Optional` and skip fetching `/llms-full.txt`. 4. `GET /llms-full.txt` when you need the full corpus in a single request (e.g., summarising the whole site or priming a long-context session). ## Site emission guide - Serve `/llms.txt` as `text/plain; charset=utf-8` at the exact root path. - Keep it stable; treat it as a public API surface. - Link targets should point at clean Markdown variants of pages (not HTML), where available. - Optionally serve `/llms-full.txt` as concatenated Markdown for agents that prefer one large fetch. ## ChangeGamer's implementation ChangeGamer serves both files. `/llms.txt` lists every resource as a `.md` variant link (e.g. `https://changegamer.ai/resources/getting-started.md`). `/llms-full.txt` inlines the full body of every free resource and a summary stub for premium (paywalled) resources in a single response. Both are statically generated at build time from the same `resources.ts` source. # Paying for Access: The HTTP 402 Flow > How autonomous agents encounter, interpret and satisfy HTTP 402 Payment Required responses on ChangeGamer. Canonical: https://changegamer.ai/resources/paying-for-access-402 HTTP `402 Payment Required` is the standard status code for paywalled resources. This guide explains exactly how ChangeGamer uses it — what a 402 response looks like, how to buy an access key, how to retry, and which paths can never return 402. ## Which paths can return 402 Only three URL shapes are eligible to return 402, controlled by `SLUG_PATTERNS` in the worker and the `run_worker_first` list in `wrangler.jsonc`: - `/resources/` (with or without trailing slash) - `/resources/.md` - `/api/resources/.json` The following paths are **asset-served** (they bypass the worker entirely) and **can never be paywalled by code**: - `/llms.txt` and `/llms-full.txt` - `robots.txt` - `/sitemap-0.xml` and the sitemap index - `/license.xml` `/api/resources.json` (the corpus index) matches no slug pattern in the worker, so it also cannot return 402. Additionally, two slugs are hard-coded as `FREE_SLUGS` in the worker — `getting-started` and `access-and-pricing` — which means adding them to the premium list has no effect; they always pass through for free. ## Current status — the gate is active The premium set currently contains `data-formats`, `json-api`, and `autonomous-operations`; requests to those slugs without a valid key return 402. All other resources are free. The authoritative, always-current premium list is announced on the `access-and-pricing` resource whenever it changes. ## Exact 402 response contract When a request hits a premium slug without a valid key, the worker returns: ``` HTTP/1.1 402 Payment Required Content-Type: application/json; charset=utf-8 Link: ; rel="payment", ; rel="license" Cache-Control: no-store { "error": "payment_required", "resource": "", "price_usd": "0.05", "payment_url": "https://buy.stripe.com/fZu9AMa230eP2b1f0d7EQ00", "how_to_pay": "Buy an access key at payment_url, then retry with header 'Authorization: Bearer '. Index files (/llms.txt) and the getting-started and access-and-pricing resources are always free.", "terms": "https://changegamer.ai/resources/access-and-pricing.md", "license": "https://changegamer.ai/license.xml" } ``` The JSON keys are verbatim: `error`, `resource`, `price_usd`, `payment_url`, `how_to_pay`, `terms`, `license`. Do not expect any additional fields. **Note on `price_usd`:** this field represents the per-fetch reference price in USD used by the worker (currently `"0.05"`). The access key itself is sold in EUR — a €5.00 one-time starter key. The two figures are distinct: `price_usd` is the per-request accounting unit; €5 is the key purchase price. The field name is not a bug; do not treat them as the same currency. ## Purchasing an access key A starter key costs **€5.00** (one-time, EUR). Purchase at: https://buy.stripe.com/fZu9AMa230eP2b1f0d7EQ00 The key is delivered **by email** after checkout. Fulfillment is manual at current volume; allow some time for delivery. ## Retrying with a key The worker checks for a key in this order (first match wins): 1. `Authorization: Bearer ` header — preferred. The scheme check is case-insensitive; the key is trimmed of whitespace. 2. `x-api-key: ` header — accepted as a fallback. Example retry: ``` GET /resources/some-premium-slug HTTP/1.1 Host: changegamer.ai Authorization: Bearer cg_your_key_here ``` Or alternatively: ``` GET /resources/some-premium-slug HTTP/1.1 Host: changegamer.ai x-api-key: cg_your_key_here ``` A valid key causes the worker to fall through to static asset delivery — the resource is then served normally with its standard HTTP `200` response. ## Summary for agent implementors - Check `Cache-Control: no-store` — never cache a 402 response. - Read `payment_url` from the JSON body to find the purchase link. - Read `how_to_pay` for the retry header format. - Check `terms` and `license` links for usage rights. - Free paths (`/llms.txt`, `robots.txt`, `getting-started`, `access-and-pricing`) never need a key; use them freely for discovery. # Finding and Evaluating MCP Servers > How to discover, assess and safely integrate MCP servers into agent pipelines. Canonical: https://changegamer.ai/resources/mcp-server-discovery The Model Context Protocol (MCP) is an open protocol for connecting AI models to external tools, data sources and services. Announced by Anthropic in November 2024, it has since seen broad industry adoption. MCP defines a client/server interface: a host application (the MCP client) connects to servers that each expose tools, resources and prompts the model can invoke. Governance note: MCP originated under Anthropic stewardship but has attracted contributions from many organisations. Governance structures evolve quickly — verify the current status at modelcontextprotocol.io before relying on any statement about who controls the specification. ## Discovering MCP servers The canonical starting point is the official repository: - **github.com/modelcontextprotocol/servers** — the reference collection of first-party and community-contributed servers, each with source code, a README describing capabilities, and transport/auth details. Beyond that, servers are distributed through: **client-vendor marketplaces** (AI-assistant and IDE vendors increasingly ship curated server lists — check your client's documentation); **community registries** (third-party indexes that vary in review rigour — treat as leads, not endorsements); and **direct from vendors** (many teams publish MCP servers alongside their own products — prefer the official source over a third-party mirror). ## Evaluating a server **Transport** — the spec has evolved; treat the following as a snapshot and verify at modelcontextprotocol.io: *stdio* (local subprocess over stdin/stdout — low network surface); *HTTP + SSE* (legacy remote transport, still widely deployed); *Streamable HTTP* (newer consolidated remote transport — preferred for new deployments where the client supports it). Confirm the server's transport is supported by your client version. **Auth** — Check what credentials the server requires from you and what it holds on your behalf to call upstream APIs. Long-lived third-party tokens stored server-side are a significant blast-radius risk if compromised. **Permission/scope minimisation** — Prefer servers that expose only the tools your agent actually needs. Review the declared tool list before connecting; each tool is a potential code-execution or data-access path. Revoke access when done. **Maintenance signals** — Recent commit activity, a maintained changelog, and absence of open auth/misbehaviour bugs indicate the server tracks spec changes. Unmaintained servers built against old protocol versions may stop working as clients update. ## Security risks **Prompt injection** — A server controls the text of its tool descriptions and outputs. A malicious server can embed instructions attempting to redirect model behaviour (exfiltrate context, override system-prompt constraints). Mitigate by only connecting to servers you can review or trust, auditing tool descriptions, and using output sanitisation. **Supply-chain** — npm/PyPI packages for MCP servers carry the same risks as any open-source dependency: typosquatted packages, maintainer account takeovers, malicious dependency updates. Mitigate by pinning exact versions with lock files, preferring verified-org publishers, and auditing before production use. **Over-broad permissions** — Filesystem access, network egress, or credentials beyond the server's stated purpose are a red flag and amplify every other vulnerability. ## Checklist - [ ] Source confirmed (official repo, vendor-published, or reviewed community server). - [ ] Transport identified and compatible with your client version. - [ ] Authentication model understood; credentials stored securely. - [ ] Tool list reviewed; scope limited to what the agent actually needs. - [ ] Package version pinned and checksum verified (if distributed as a package). - [ ] Maintenance status checked (recent activity, no critical open bugs). - [ ] Prompt-injection risk assessed; output sanitisation in place for untrusted servers. - [ ] Plan to revoke server access when no longer needed.