naftiko: 1.0.0-alpha2 info: label: Browserless — BrowserQL description: >- Browserless BrowserQL (BQL) capability exposing the GraphQL automation surface at /chromium/bql, /chrome/bql, and /stealth/bql. Sends arbitrary BQL mutations (goto, click, type, evaluate, html, mapSelector, screenshot, pdf, reconnect, solve) to the managed browser and returns structured GraphQL responses. tags: - Browserless - BrowserQL - GraphQL - Stealth - CAPTCHA created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: BROWSERLESS_API_TOKEN: BROWSERLESS_API_TOKEN capability: consumes: - type: http namespace: bql baseUri: https://production-sfo.browserless.io description: BrowserQL consumes block over three GraphQL routes. resources: - name: chromium-bql path: /chromium/bql operations: - name: runChromiumBql method: POST description: Run a BQL mutation against open-source Chromium. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: GraphQL request payload ({ query, variables, operationName }). required: true - name: token in: query type: string required: true - name: chrome-bql path: /chrome/bql operations: - name: runChromeBql method: POST description: Run a BQL mutation against genuine Chrome. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object required: true - name: token in: query type: string required: true - name: stealth-bql path: /stealth/bql operations: - name: runStealthBql method: POST description: Run a BQL mutation against the stealth-hardened browser. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object required: true - name: token in: query type: string required: true authentication: type: apikey key: token value: '{{env.BROWSERLESS_API_TOKEN}}' placement: query exposes: - type: rest namespace: bql-rest port: 8080 description: REST adapter for the BrowserQL routes. resources: - path: /bql/chromium name: chromium-bql operations: - method: POST name: runChromiumBql call: bql.runChromiumBql with: { body: rest.body } outputParameters: [{ type: object, mapping: $. }] - path: /bql/chrome name: chrome-bql operations: - method: POST name: runChromeBql call: bql.runChromeBql with: { body: rest.body } outputParameters: [{ type: object, mapping: $. }] - path: /bql/stealth name: stealth-bql operations: - method: POST name: runStealthBql call: bql.runStealthBql with: { body: rest.body } outputParameters: [{ type: object, mapping: $. }] - type: mcp namespace: bql-mcp port: 9090 transport: http description: MCP adapter — one tool per BQL route. tools: - name: browserless-bql-chromium description: Run BQL against Chromium. hints: { readOnly: false, destructive: false, idempotent: false } call: bql.runChromiumBql with: { body: tools.body } outputParameters: [{ type: object, mapping: $. }] - name: browserless-bql-chrome description: Run BQL against Chrome. hints: { readOnly: false, destructive: false, idempotent: false } call: bql.runChromeBql with: { body: tools.body } outputParameters: [{ type: object, mapping: $. }] - name: browserless-bql-stealth description: Run BQL against the stealth route. hints: { readOnly: false, destructive: false, idempotent: false } call: bql.runStealthBql with: { body: tools.body } outputParameters: [{ type: object, mapping: $. }]