{
  "version": 3,
  "summary": "Subtext is Agentic Session Review. Your AI coding agent opens a real production session and interrogates it as structured tools: the screenshot at any moment, the DOM and its diffs, the console, the network, and the accessibility tree. It runs on Fullstory's capture infrastructure. Three integration surfaces are available: a hosted MCP server your agent connects to, a CLI that drives that server from a shell or a CI job, and a setup wizard that instruments your app and wires up the connection.",
  "credentials": {
    "subtext-oauth": {
      "type": "oauth2",
      "label": "Subtext account (OAuth)",
      "generateUrl": "https://app.fullstory.com/subtext/signup",
      "setup": "Sign in with your Subtext account. No manual configuration is needed for agents that support MCP OAuth discovery: `https://api.fullstory.com/mcp/subtext` answers an unauthenticated request with `401` and `WWW-Authenticate: Bearer resource_metadata=\"https://api.fullstory.com/.well-known/oauth-protected-resource/mcp/subtext\"`, which resolves to the authorization server `https://auth.fullstory.com` (RFC 9728).\n\nThe setup wizard runs the same flow locally: authorization code with PKCE, redirecting to an ephemeral `127.0.0.1` callback port, opening your browser to complete sign-in.\n\nScopes: `sessions:read`, `settings.privacy:read`, `settings.privacy.element_block:write`, `settings.privacy.url:write`.\n\nSubtext is free to start."
    },
    "subtext-api-key": {
      "type": "api_key",
      "label": "Subtext API key",
      "generateUrl": "https://app.fullstory.com/ui/org/settings/apikeys",
      "setup": "Create a key under Settings > API Keys in the Subtext app.\n\nFor the MCP server, send it as an `Authorization: Bearer <key>` header.\n\nThe Subtext CLI has no interactive login, so a key is the only way to authenticate it. It resolves one from the `--api-key` flag first, then the `SUBTEXT_API_KEY` environment variable, then the `api_key` field in its config file. Pass `--api-key -` to read the key from stdin, which keeps it out of shell history and is the safe choice in CI.\n\nFor the setup wizard, a key replaces the browser sign-in. Prefer the `SUBTEXT_API_KEY` environment variable there: a key passed as a flag lands in your shell history and is visible to other local users through the process list.\n\nKeep the key private and out of source control. On a shared machine or in CI, inject it from a secrets manager rather than writing it into a config file."
    }
  },
  "surfaces": [
    {
      "type": "mcp",
      "slug": "subtext-mcp",
      "name": "Subtext MCP server",
      "docs": "https://subtext.fullstory.com/docs/install/manual",
      "url": "https://api.fullstory.com/mcp/subtext",
      "transports": ["streamable-http"],
      "basis": {
        "via": "declared",
        "source": "https://subtext.fullstory.com/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "subtext-oauth",
                "mechanics": {
                  "source": "well-known"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://subtext.fullstory.com/.well-known/integrations.json"
            }
          },
          {
            "use": [
              {
                "id": "subtext-api-key",
                "mechanics": {
                  "source": "http",
                  "in": "header",
                  "headerName": "Authorization",
                  "scheme": "Bearer"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://subtext.fullstory.com/.well-known/integrations.json"
            }
          }
        ]
      }
    },
    {
      "type": "cli",
      "slug": "subtext-cli",
      "name": "Subtext CLI",
      "docs": "https://github.com/fullstorydev/subtext-cli",
      "command": "subtext",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "@subtextdev/subtext-cli",
          "runtimeHint": "npx"
        }
      ],
      "basis": {
        "via": "declared",
        "source": "https://subtext.fullstory.com/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "subtext-api-key",
                "mechanics": {
                  "source": "cli",
                  "env": ["SUBTEXT_API_KEY"]
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://subtext.fullstory.com/.well-known/integrations.json"
            }
          }
        ]
      }
    },
    {
      "type": "cli",
      "slug": "subtext-wizard",
      "name": "Subtext setup wizard",
      "docs": "https://subtext.fullstory.com/docs/quickstart",
      "command": "npx @subtextdev/subtext-wizard",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "@subtextdev/subtext-wizard",
          "runtimeHint": "npx"
        }
      ],
      "basis": {
        "via": "declared",
        "source": "https://subtext.fullstory.com/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "subtext-oauth",
                "mechanics": {
                  "source": "cli",
                  "command": "npx @subtextdev/subtext-wizard"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://subtext.fullstory.com/.well-known/integrations.json"
            }
          },
          {
            "use": [
              {
                "id": "subtext-api-key",
                "mechanics": {
                  "source": "cli",
                  "env": ["SUBTEXT_API_KEY"]
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://subtext.fullstory.com/.well-known/integrations.json"
            }
          }
        ]
      }
    }
  ]
}
