{
  "version": 3,
  "summary": "openlaunch connects agents to granted hardware, Linux and Home Assistant functions through an HTTP API, MCP and ol CLI, with separate public documentation services.",
  "credentials": {
    "openlaunch-agent-token": {
      "type": "bearer",
      "label": "openlaunch agent API token",
      "generateUrl": "https://www.openlaunch.dev/console/#connections",
      "setup": "Sign in to the openlaunch console. In Connections → API, create an agent API connection with read or read/action access and copy its ol_agent_ token, shown once. In Devices → Access, separately grant this exact connection the required functions. Send Authorization: Bearer <token>. For ol, run ol login or supply OPENLAUNCH_AGENT_TOKEN from a secret store. Device setup tokens and device credentials cannot authenticate an agent."
    },
    "openlaunch-oauth": {
      "type": "oauth2",
      "label": "openlaunch agent OAuth",
      "generateUrl": "https://www.openlaunch.dev/console/#connections",
      "setup": "Connect an OAuth-capable MCP host to https://www.openlaunch.dev/mcp. Discover the resource and authorization server using RFC 9728 metadata. Use PKCE S256 and request openlaunch:read; also request openlaunch:act for device commands. The authorization server supports client ID metadata documents. Hosts requiring a registered client can use Connections → OAuth clients to register their exact callback URLs, then complete sign-in and consent. In Devices → Access, separately grant that exact OAuth connection its functions. OAuth consent never creates device grants."
    }
  },
  "surfaces": [
    {
      "slug": "openlaunch-api",
      "name": "openlaunch device API",
      "type": "http",
      "url": "https://www.openlaunch.dev",
      "spec": "https://www.openlaunch.dev/openapi.json",
      "docs": "https://www.openlaunch.dev/docs/reference",
      "basis": {
        "via": "declared",
        "source": "https://www.openlaunch.dev/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "openlaunch-agent-token",
                "mechanics": {
                  "source": "http",
                  "in": "header",
                  "headerName": "Authorization",
                  "scheme": "Bearer"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://www.openlaunch.dev/.well-known/integrations.json"
            }
          },
          {
            "use": [
              {
                "id": "openlaunch-oauth",
                "mechanics": {
                  "source": "well-known"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://www.openlaunch.dev/.well-known/integrations.json"
            }
          }
        ]
      },
      "notes": "Credentials do not grant device access. The owner must separately grant each device function to this connection. openlaunch:read permits discovery and results; openlaunch:act is also required for commands. Queued receipts require checking the final action result. The full OpenAPI contract also documents owner, setup and device endpoints; each operation declares its own credential purpose. Agent tokens cannot enroll devices or grant themselves access."
    },
    {
      "slug": "openlaunch-mcp",
      "name": "openlaunch device MCP",
      "type": "mcp",
      "url": "https://www.openlaunch.dev/mcp",
      "transports": [
        "streamable-http"
      ],
      "docs": "https://www.openlaunch.dev/docs/agents",
      "basis": {
        "via": "declared",
        "source": "https://www.openlaunch.dev/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "openlaunch-agent-token",
                "mechanics": {
                  "source": "http",
                  "in": "header",
                  "headerName": "Authorization",
                  "scheme": "Bearer"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://www.openlaunch.dev/.well-known/integrations.json"
            }
          },
          {
            "use": [
              {
                "id": "openlaunch-oauth",
                "mechanics": {
                  "source": "well-known"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://www.openlaunch.dev/.well-known/integrations.json"
            }
          }
        ]
      },
      "notes": "Credentials do not grant device access. The owner must separately grant each device function to this connection. openlaunch:read permits discovery and results; openlaunch:act is also required for commands. Queued receipts require checking the final action result. Other MCP hosts may need an owner-registered OAuth client with exact callback URLs in Connections → OAuth clients; discovery does not bypass client admission."
    },
    {
      "slug": "openlaunch-cli",
      "name": "openlaunch ol CLI",
      "type": "cli",
      "command": "ol",
      "docs": "https://www.openlaunch.dev/docs/cli",
      "basis": {
        "via": "declared",
        "source": "https://www.openlaunch.dev/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "openlaunch-agent-token",
                "mechanics": {
                  "source": "cli",
                  "command": "ol login",
                  "env": [
                    "OPENLAUNCH_AGENT_TOKEN"
                  ]
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://www.openlaunch.dev/.well-known/integrations.json"
            }
          }
        ]
      },
      "notes": "Install on macOS or Linux: curl -fsSL https://www.openlaunch.dev/install-cli.sh | bash\nRequires Node 24+, npm, curl and Python 3. Installs ol in ~/.local/bin and adds it to PATH. Rerun to update. Run ol login and paste the agent API token into its hidden prompt. OAuth sessions and device setup tokens cannot log in to ol. Credentials do not grant device access. The owner must separately grant each device function to this connection. openlaunch:read permits discovery and results; openlaunch:act is also required for commands. Queued receipts require checking the final action result."
    },
    {
      "slug": "openlaunch-docs-api",
      "name": "openlaunch documentation API",
      "type": "http",
      "spec": "https://www.openlaunch.dev/docs-openapi.json",
      "docs": "https://www.openlaunch.dev/docs/resources",
      "basis": {
        "via": "declared",
        "source": "https://www.openlaunch.dev/.well-known/integrations.json"
      },
      "auth": {
        "status": "none",
        "basis": {
          "via": "declared",
          "source": "https://www.openlaunch.dev/.well-known/integrations.json"
        }
      },
      "notes": "Public read-only documentation, page JSON, Markdown and navigation. No device access."
    },
    {
      "slug": "openlaunch-docs-mcp",
      "name": "openlaunch documentation MCP",
      "type": "mcp",
      "url": "https://www.openlaunch.dev/docs-mcp",
      "transports": [
        "streamable-http"
      ],
      "docs": "https://www.openlaunch.dev/docs/agents",
      "basis": {
        "via": "declared",
        "source": "https://www.openlaunch.dev/.well-known/integrations.json"
      },
      "auth": {
        "status": "none",
        "basis": {
          "via": "declared",
          "source": "https://www.openlaunch.dev/.well-known/integrations.json"
        }
      },
      "notes": "Public read-only documentation tools and page resources. No device access."
    }
  ]
}
