FlowiseAI/Flowise · error · Error

Missing Browserless API Token

Error message

Missing Browserless API Token

What it means

Thrown by BrowserlessMCP.getTools when getCredentialParam('browserlessApiToken', ...) returns falsy. Browserless is a hosted MCP server (https://mcp.browserless.io/mcp) that requires a Bearer token; without it the toolkit would connect and immediately 401. The guard fails fast at tool-registration time so the agent never receives a broken tool set.

Source

Thrown at packages/components/nodes/tools/MCP/Browserless/BrowserlessMCP.ts:91

        const _mcpActions = nodeData.inputs?.mcpActions
        let mcpActions = []
        if (_mcpActions) {
            try {
                mcpActions = typeof _mcpActions === 'string' ? JSON.parse(_mcpActions) : _mcpActions
            } catch (error) {
                console.error('Error parsing mcp actions:', error)
            }
        }

        return tools.filter((tool: any) => mcpActions.includes(tool.name))
    }

    async getTools(nodeData: INodeData, options: ICommonObject): Promise<Tool[]> {
        const credentialData = await getCredentialData(nodeData.credential ?? '', options)
        const apiToken = getCredentialParam('browserlessApiToken', credentialData, nodeData)

        if (!apiToken) {
            throw new Error('Missing Browserless API Token')
        }

        const serverParams = {
            url: 'https://mcp.browserless.io/mcp',
            headers: {
                Authorization: `Bearer ${apiToken}`
            }
        }

        const toolkit = new MCPToolkit(serverParams, 'sse')
        await toolkit.initialize()

        const tools = toolkit.tools ?? []

        return tools
    }
}

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Create a Browserless credential in the credential manager and paste the API token from the Browserless dashboard.
  2. Select that credential on the Browserless MCP node.
  3. Verify the token is non-empty and free of surrounding whitespace.
  4. If the account lapsed, regenerate a token in the Browserless dashboard and update the credential.

Example fix

// before — node.credential points to a generic HTTP credential without browserlessApiToken
// after — create a Browserless credential with browserlessApiToken set, then bind it on the node
Defensive patterns

Strategy: validation

Validate before calling

function assertBrowserlessToken(cred: { browserlessApiToken?: string }) {
  if (!cred.browserlessApiToken?.trim()) throw new Error('Create a Browserless credential with a non-empty browserlessApiToken')
}

Type guard

function hasBrowserlessToken(c: unknown): c is { browserlessApiToken: string } {
  return !!c && typeof (c as any).browserlessApiToken === 'string' && (c as any).browserlessApiToken.trim().length > 0
}

Prevention

When it happens

Trigger: The node has no credential attached, an attached credential of the wrong type, or a Browserless credential with an empty token field. Also when the credential was deleted but the node still references it.

Common situations: First-time setup where the user added the node but not the credential; expired trial / cancelled Browserless account where the token was cleared; selecting a different credential type in the dropdown.

Related errors


AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12). Data as JSON: /api/errors/19288bc4ceec924c. Report an issue: GitHub.