{
  "version": 3,
  "summary": "Knock exposes a notification API, management API, remote MCP server, and CLI for product messaging infrastructure.",
  "credentials": {
    "knock_secret_api_key": {
      "type": "bearer",
      "label": "Knock secret API key",
      "generateUrl": "https://dashboard.knock.app",
      "setup": "Create a secret API key (`sk_…`) for the target environment under Platform → API keys in the Knock dashboard. Store it as `KNOCK_API_KEY` and send it as an `Authorization: Bearer` token against `https://api.knock.app`. Do not paste the key into chat. Prefer a development key when possible."
    },
    "knock_service_token": {
      "type": "bearer",
      "label": "Knock service token",
      "generateUrl": "https://dashboard.knock.app",
      "setup": "Generate a service token (`knock_st_…`) under Settings → Service tokens in the Knock dashboard (owners/admins only). It is shown once. Store it as `KNOCK_SERVICE_TOKEN`. Use it only against the Management API (`https://control.knock.app`) or the Knock CLI. A service token cannot call the Knock API."
    },
    "knock_mcp_oauth": {
      "type": "oauth2",
      "label": "Knock MCP OAuth",
      "generateUrl": "https://mcp.knock.app/authorize",
      "setup": "Connect an MCP client to `https://mcp.knock.app/mcp`. The client completes the Knock account OAuth sign-in flow (DCR/CIMD supported). Role-based permissions from the signed-in user apply. See https://docs.knock.app/ai/mcp-server."
    },
    "knock_cli_login": {
      "type": "oauth2",
      "label": "Knock CLI login",
      "generateUrl": "https://dashboard.knock.app",
      "setup": "Run `knock login` to open a browser window, sign in to your Knock account, and authorize the CLI. Credentials are stored locally by the CLI. See https://docs.knock.app/cli/authentication."
    }
  },
  "surfaces": [
    {
      "slug": "knock-api",
      "name": "Knock API",
      "type": "http",
      "docs": "https://docs.knock.app/api-reference",
      "spec": "https://api.knock.app/v1/openapi",
      "url": "https://api.knock.app/v1",
      "basis": {
        "via": "declared",
        "source": "https://knock.app/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "knock_secret_api_key",
                "mechanics": {
                  "source": "http",
                  "in": "header",
                  "headerName": "Authorization",
                  "scheme": "Bearer"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://knock.app/.well-known/integrations.json"
            }
          }
        ]
      }
    },
    {
      "slug": "knock-management-api",
      "name": "Knock management API",
      "type": "http",
      "docs": "https://docs.knock.app/mapi-reference/overview/about-the-management-api",
      "spec": "https://control.knock.app/v1/openapi",
      "url": "https://control.knock.app/v1",
      "basis": {
        "via": "declared",
        "source": "https://knock.app/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "knock_service_token",
                "mechanics": {
                  "source": "http",
                  "in": "header",
                  "headerName": "Authorization",
                  "scheme": "Bearer"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://knock.app/.well-known/integrations.json"
            }
          }
        ]
      }
    },
    {
      "slug": "knock-mcp",
      "name": "Knock MCP server",
      "type": "mcp",
      "docs": "https://docs.knock.app/ai/mcp-server",
      "url": "https://mcp.knock.app/mcp",
      "transports": [
        "streamable-http"
      ],
      "basis": {
        "via": "declared",
        "source": "https://knock.app/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "knock_mcp_oauth",
                "mechanics": {
                  "source": "well-known"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://knock.app/.well-known/integrations.json"
            }
          }
        ]
      }
    },
    {
      "slug": "knock-cli",
      "name": "Knock CLI",
      "type": "cli",
      "docs": "https://docs.knock.app/cli/overview",
      "command": "knock",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "@knocklabs/cli",
          "runtimeHint": "npx"
        }
      ],
      "basis": {
        "via": "declared",
        "source": "https://knock.app/.well-known/integrations.json"
      },
      "auth": {
        "status": "required",
        "entries": [
          {
            "use": [
              {
                "id": "knock_service_token",
                "mechanics": {
                  "source": "cli",
                  "env": [
                    "KNOCK_SERVICE_TOKEN"
                  ]
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://knock.app/.well-known/integrations.json"
            }
          },
          {
            "use": [
              {
                "id": "knock_cli_login",
                "mechanics": {
                  "source": "cli",
                  "command": "knock login"
                }
              }
            ],
            "basis": {
              "via": "declared",
              "source": "https://knock.app/.well-known/integrations.json"
            }
          }
        ]
      }
    }
  ]
}