{
  "agentsJson": "0.1.0",
  "info": {
    "title": "Stevens Keys",
    "version": "0.1.0-preview",
    "description": "License keys, edge validation and usage metering for paid MCP servers and APIs. TEST MODE: no real charges. Agents welcome; send X-Client-Type: agent."
  },
  "sources": [
    {
      "id": "stevenskeys",
      "path": "https://stevens-keys.pages.dev/openapi.json"
    }
  ],
  "overrides": [],
  "flows": [
    {
      "id": "try_demo_key",
      "title": "Try a demo license key (no signup)",
      "description": "Issue a sandbox demo key (50 calls, 24h expiry), validate and meter it once, then revoke it.",
      "actions": [
        {
          "id": "issue",
          "sourceId": "stevenskeys",
          "operationId": "post_v1_demo_keys"
        },
        {
          "id": "validate",
          "sourceId": "stevenskeys",
          "operationId": "post_v1_validate"
        },
        {
          "id": "revoke",
          "sourceId": "stevenskeys",
          "operationId": "post_v1_demo_revoke"
        }
      ],
      "links": [],
      "fields": {
        "parameters": [],
        "requestBody": {},
        "responses": {
          "success": {
            "type": "object"
          }
        }
      }
    },
    {
      "id": "validate_license_key",
      "title": "Validate and meter a license key",
      "description": "Check a license key with Authorization: Bearer <key>. 200 allow, 403 deny with a status, 401 missing key. Optional product_id, units, meter, instance_id.",
      "actions": [
        {
          "id": "validate",
          "sourceId": "stevenskeys",
          "operationId": "post_v1_validate"
        }
      ],
      "links": [],
      "fields": {
        "parameters": [],
        "requestBody": {
          "type": "object",
          "properties": {
            "product_id": {
              "type": "string"
            },
            "units": {
              "type": "integer"
            },
            "meter": {
              "type": "boolean"
            },
            "instance_id": {
              "type": "string"
            }
          }
        },
        "responses": {
          "success": {
            "type": "object"
          }
        }
      }
    },
    {
      "id": "get_public_stats",
      "title": "Get public adoption stats",
      "description": "Aggregate creators, API calls by day (agent/human/denied), keys issued and test revenue. No auth.",
      "actions": [
        {
          "id": "stats",
          "sourceId": "stevenskeys",
          "operationId": "get_v1_public_stats"
        }
      ],
      "links": [],
      "fields": {
        "parameters": [],
        "requestBody": {},
        "responses": {
          "success": {
            "type": "object"
          }
        }
      }
    },
    {
      "id": "connect_mcp",
      "title": "Connect to the hosted MCP server",
      "description": "Streamable HTTP MCP endpoint https://stevens-keys.pages.dev/mcp (no auth, test mode). Tools: create_demo_key, validate_license_key, get_public_stats. stdio clients: npx -y mcp-remote https://stevens-keys.pages.dev/mcp. Server card: https://stevens-keys.pages.dev/.well-known/mcp/server-card.json",
      "actions": [],
      "links": [
        {
          "rel": "mcp",
          "href": "https://stevens-keys.pages.dev/mcp"
        },
        {
          "rel": "server-card",
          "href": "https://stevens-keys.pages.dev/.well-known/mcp/server-card.json"
        }
      ],
      "fields": {
        "parameters": [],
        "requestBody": {},
        "responses": {
          "success": {
            "type": "object"
          }
        }
      }
    }
  ]
}