# Stevens Keys: agent quickstart

Stevens Keys issues license keys for paid MCP servers and APIs, validates them at the edge, and meters usage. This page is plain Markdown for AI agents, crawlers and coding assistants. **Test mode only:** no real charges, Stripe test mode, payouts not live. Operated by Canada Site Ops, Ontario, Canada. Agent and bot traffic is welcome and never blocked.

## Option 1: MCP (no signup, no auth)

- Endpoint: `https://stevens-keys.pages.dev/mcp` (Streamable HTTP, stateless JSON)
- Tools: `create_demo_key`, `validate_license_key`, `get_public_stats`
- Server card: https://stevens-keys.pages.dev/.well-known/mcp/server-card.json

Remote config for MCP clients that support URLs:

```json
{ "mcpServers": { "stevens-keys": { "url": "https://stevens-keys.pages.dev/mcp" } } }
```

Stdio-only clients can bridge with `npx -y mcp-remote https://stevens-keys.pages.dev/mcp`.

Raw JSON-RPC check:

```sh
curl -s https://stevens-keys.pages.dev/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

## Option 2: HTTP API (no signup for the sandbox)

1. Get a free 24h sandbox key (50 calls):

   ```sh
   curl -s -X POST https://stevens-keys.pages.dev/v1/demo/keys -H 'X-Client-Type: agent'
   ```

2. Validate and meter one call with that key:

   ```sh
   curl -s -X POST https://stevens-keys.pages.dev/v1/validate \
     -H 'Authorization: Bearer <license key>' -H 'Content-Type: application/json' \
     -H 'X-Client-Type: agent' -d '{"units":1}'
   ```

   Responses: `200` allow, `403` deny (revoked, expired or over quota), `401` missing key. Revoked keys deny on the next validation, or within the optional `cache_ttl` (30s default).

3. Public aggregate stats (no personal data): `GET https://stevens-keys.pages.dev/v1/public-stats`

The optional header `X-Client-Type: agent` labels your traffic as agent usage; it is counted, not filtered.

Note: Cloudflare's edge rejects the default `Python-urllib/*` User-Agent on `*.pages.dev` (error 1010). Set any other User-Agent, for example `my-agent/1.0`.

## Gating your own MCP server or API

Call `POST /v1/validate` with the caller's key before running a paid tool. Allow on `200`, refuse on anything else. Copy-paste snippets for Workers, Node/Express, Python and curl: https://stevens-keys.pages.dev/snippets

## Machine-readable files

- OpenAPI 3.1: https://stevens-keys.pages.dev/openapi.json
- llms.txt: https://stevens-keys.pages.dev/llms.txt
- llms-full.txt: https://stevens-keys.pages.dev/llms-full.txt
- API catalog (RFC 9727): https://stevens-keys.pages.dev/.well-known/api-catalog
- agents.json: https://stevens-keys.pages.dev/.well-known/agents.json
- ai-plugin.json: https://stevens-keys.pages.dev/.well-known/ai-plugin.json
- Agent card: https://stevens-keys.pages.dev/.well-known/agent-card.json
- Human docs: https://stevens-keys.pages.dev/docs

Contact: canada.site.ops@gmail.com
