{
  "openapi": "3.1.0",
  "info": {
    "title": "Scrollhaus public catalogue and member MCP",
    "version": "1.0.0",
    "description": "Public catalogue metadata and a separately authenticated MCP service. No purchase, billing mutation or private customer API is offered here."
  },
  "servers": [
    {
      "url": "https://scrollhaus.ai"
    }
  ],
  "paths": {
    "/api/catalog.json": {
      "get": {
        "operationId": "getPublicCatalogue",
        "summary": "Read public website and resource metadata",
        "security": [],
        "responses": {
          "200": {
            "description": "Public catalogue; premium source is not included.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "websites",
                    "resources"
                  ],
                  "properties": {
                    "websites": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "resources": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/mcp": {
      "servers": [
        {
          "url": "https://mcp.scrollhaus.ai"
        }
      ],
      "post": {
        "operationId": "callMemberMcp",
        "summary": "Send a member-authenticated MCP JSON-RPC request",
        "description": "Requires an eligible paid membership and a member-issued API key. See auth.md. Request and daily limits are enforced; not an OAuth flow.",
        "security": [
          {
            "memberKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "method"
                ],
                "properties": {
                  "jsonrpc": {
                    "const": "2.0"
                  },
                  "id": {},
                  "method": {
                    "type": "string"
                  },
                  "params": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "MCP JSON-RPC response"
          },
          "401": {
            "description": "Valid paid member key required"
          },
          "429": {
            "description": "Allowance or rate limit exceeded"
          },
          "503": {
            "description": "Membership verification unavailable; access denied"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "memberKey": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Scrollhaus member MCP API key",
        "description": "Create privately on the account page. Not an OAuth access token."
      }
    }
  }
}
