{"_id":"@browserless.io/mcp","_rev":"44-ea774250874d6b16acb7458c1d676eff","name":"@browserless.io/mcp","dist-tags":{"latest":"1.37.0"},"versions":{"1.6.0":{"name":"@browserless.io/mcp","version":"1.6.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.6.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"dad53a8f3c33b0254ac37602044b4d875d8003a6","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.6.0.tgz","fileCount":81,"integrity":"sha512-8S2b5kIQbbmp2tTZOy8Be3qZuHty7ZZVXjBPXS4t85ktSc0HwzLhWeDcUPFCT8QH5DFMjttXE7T3ynKqPuT8zg==","signatures":[{"sig":"MEUCIGRABreEI8r5354ypOlgfi/0stYpgsfddXrbPa0vr+BMAiEAoJSyypFdYUsiOVQKmBrUNYFa2ICscmJs9JdfcrGcC1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344679},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"bdb4631dae0e686bc305f33dd45efeefbd18b48f","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"patch-package","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"risingson","email":"anderson@browserless.io"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1"}},"_npmVersion":"11.11.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","patch-package":"^8.0.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^25.9.1","@types/mocha":"^10.0.10","@types/sinon":"^21.0.1","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.6.0_1780354337243_0.7263540736132503","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@browserless.io/mcp","version":"1.6.1","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.6.1","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"3350edc8bf6e0bf3fc623754bbaf79ee6b87e57c","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.6.1.tgz","fileCount":76,"integrity":"sha512-S7y+lt2wS50zylhuLCAH4ulEQDCxq4bin/YphhfLFBwCNawlRpPCk9Tl28zN+xhDbSs/BSyE1JKc0lwPl7Znyg==","signatures":[{"sig":"MEQCICk6WqFjvR/420icXljKR4kZPu+Emo5gebFV7B5+O2JPAiBG8cqhvlklfXg1heW58VV8D2AP6FJ56vxzO/LTD5ZY/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340413},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"9a0d690cd1f272d0531904a6db08e92d2af6b7ae","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"artiombrowserless","email":"artiom@browserless.io"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"}},"_npmVersion":"11.6.2","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"25.0.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^25.9.1","@types/mocha":"^10.0.10","@types/sinon":"^21.0.1","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.6.1_1780914649251_0.9123155381049328","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@browserless.io/mcp","version":"1.6.2","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.6.2","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"b7fb8227c0205fdae004ae80c6de2a88cb24187f","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.6.2.tgz","fileCount":74,"integrity":"sha512-rsP8vAAFnAdHfs5W6/8HVYQUCnmeDzAH2sagMNQ+GBgCj8HsPwGxvYHpxM2Uah9/dNGtmV4BflJR8d83/1Tibg==","signatures":[{"sig":"MEQCIAz/cwKgS5jPls1pmFw7hjP7csXWxFoGfvfZhy4DVjupAiAA1TNlfwHCB5tOmjxNz/L2QQOb0zYe7wIeeou7UlDAPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":337732},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"6ab66db1f3bc72b7bc401448dafaa49068bedfd8","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"}},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^25.9.1","@types/mocha":"^10.0.10","@types/sinon":"^21.0.1","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.6.2_1780934222377_0.6707771652175545","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@browserless.io/mcp","version":"1.7.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.7.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"f38b82e20e64a0e2de96349772d5c0c00d540d76","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.7.0.tgz","fileCount":82,"integrity":"sha512-qNVj4HTlp2pdFf0kbEnr4cg36wV7US48HbL5Z11Gr2TvmPZ1xBJTSW+jFoiYXLmPf0vfcJW29NyYDT8Vg6fkKw==","signatures":[{"sig":"MEUCIQCJX2MzAfy9V1xHZUAZ9kheIk4/YuwpO+RxA2V0709r1gIgS0lXQ0XcD/hAoc+ge0Mtvu51PIJU0Vy5kmjroR8yuWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":387799},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"944e4948d66fbe70b1407dbd3dec78890b7095b8","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","@types/mocha":"^10.0.10","@types/sinon":"^21.0.1","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.7.0_1782228563867_0.5979372777425584","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@browserless.io/mcp","version":"1.7.1","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.7.1","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"7bf43d4ce982ecb9137b9a57a6fbec677d1b7a95","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.7.1.tgz","fileCount":82,"integrity":"sha512-kzoCTGSf/Bx4Ym2nKpFX0iQA7Ma8NinQmuHB6cJ+nzkRgaIVKPNrnWape2wUpTP4O3zIH1A2dBAQcr7vEdHYzg==","signatures":[{"sig":"MEUCIHFw2jChBtglfN4sNhbwdbKQ6bcjODum3cFHgjYwF/DZAiEA4ZbySU+NKQwf0d4hI8kOd0BvmmVFNw3BGSpUzH2AuK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":387824},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"9494c7f90b4b0d55724fd9fd0e7626cd1715286c","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","@types/mocha":"^10.0.10","@types/sinon":"^21.0.1","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.7.1_1782239779129_0.7602328767470723","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"@browserless.io/mcp","version":"1.7.2","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.7.2","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"9053e95a8a42858d97220e9f7cdb00d66b020299","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.7.2.tgz","fileCount":82,"integrity":"sha512-agB/xuJ3Jlto7feOk9BjH7ll17pcE03c5P+F2pTI+dSuS2/Oca/KIzXKmbXnxii/aQ/XPsz8U5AulVV0xqFDbg==","signatures":[{"sig":"MEQCIDmgztTGYC28Eq1Yane/izQec1gsZWmKGYihGiSFA+yUAiBSFi4SQsjIERh0HEFENTxvh7UP+sDpxbpatnvn3sQPFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":386810},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"9ecc7ced6bc67090723b4bf06f897f70c7c1aee0","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","@types/mocha":"^10.0.10","@types/sinon":"^21.0.1","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.7.2_1782301831511_0.16554544814431815","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@browserless.io/mcp","version":"1.8.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.8.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"088d5831e934512351f7d7a19f578eb8b3078d2d","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.8.0.tgz","fileCount":82,"integrity":"sha512-+RAEzMH5zrEH14PDs/AXASdKwZK9UMz3frpHQ9WUsGQ2ylZbXHWtICCWcJoOu39VYGI2dws6gNoTuZ6r8hE3zA==","signatures":[{"sig":"MEYCIQDv8ePP7R6xy+Q8Bxls2LXbcSfGdM46zWyFJyCNLTFbLwIhAMBTVx8qEuXXDFLCT26LGxbfllbXPKUhNXLBEI1a4A2y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":391211},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"93d9189ad8f38f1e404b9972aaabd302328c36ad","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","@types/mocha":"^10.0.10","@types/sinon":"^21.0.1","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.8.0_1782404166522_0.7025526529183834","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@browserless.io/mcp","version":"1.9.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.9.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"57564c4c027953ede32207ce95b3c0bf146122d0","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.9.0.tgz","fileCount":82,"integrity":"sha512-2dew+Oh4mUrWwGCO14pBo9PUq+s4zUb+t576IvCGumsZshyZt1tmehpj7AABqyHRL9V1RQdFjQV8rRDb5OLB9A==","signatures":[{"sig":"MEUCIG1MBpd70NTGVuurhMgf7pG8GUzKeGLUUcT/tKRHPz2FAiEA2hAQGzL7T1IfvVa96CkgENBg5xjmT2i/bfDig0RNk5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":392718},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"4a864d4d5f878e4a2530c32e862790fbfa27b5ca","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","@types/mocha":"^10.0.10","@types/sinon":"^21.0.1","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.9.0_1782854725386_0.8251855514990936","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@browserless.io/mcp","version":"1.10.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.10.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"da8f474171e50cf23144701d14afa688bc4ca8bd","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.10.0.tgz","fileCount":82,"integrity":"sha512-01pRw7CUAUtY7ecQAXzVBP/ap2zBvOpbOqYrhe/WW8tWkOrwhE+hP6wz4mk2C1LJOQEIJD+wJmpuUslkryodlA==","signatures":[{"sig":"MEUCIQCVDz1qRSgvbFpMw89mkIaAcphY3RnGqyG+yOiVrG1JAAIgZt2fvP4RHmqhTCdnZiD/kFII92qyxs27WVewRXDh3iE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":402926},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"c8acf76bd0f1c011989db9206b0ab7d385ed3881","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.10.0_1783439004921_0.8278000092405235","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@browserless.io/mcp","version":"1.10.1","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.10.1","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"9787c29c390be772fdf0f696ce13a621a360f729","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.10.1.tgz","fileCount":82,"integrity":"sha512-w+pUod3F0kmbItEr1BGbt87vK51kNNlwB3ysfbn4ozlrk3N0n4ajuhqc/PIukipTu1Sb2O4q59+2GkC6aUnxKw==","signatures":[{"sig":"MEYCIQCqro4ZfNYkQih7Cn1t2AtHtanhs8DSzN1YWBZbt04RFwIhAJhKNTIGPIXtmuUjn+D9VlDK9Rt7EkRFGUi40DLJFppg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":403132},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"4707dc756bae300e260b07de6cf6c3dde65bdc59","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.10.1_1783515728136_0.15508692097541688","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@browserless.io/mcp","version":"1.11.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.11.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"a2c80a66f06d75223bf0c97c38ba47303a395778","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.11.0.tgz","fileCount":501,"integrity":"sha512-KlFbCJZfTNwd0Khpb/HJdnoW9UuKGQu6C0bh3u1ASLwtM/rORW+AToBa5G0UTDumNx/Yi7Nret/u+6GQ4Jlt+A==","signatures":[{"sig":"MEUCIQCC3ikEZYWrmKekl1EqSVbTIkLyLE9OlyE6qXLg37op1wIgQ+yUIFx9ASSw/y0gbkX7lWVU4xgTCWSdMuhsdSY3zmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8350380},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"e0e7bde9ab6fb5446faffbaf86b7e192c406974e","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/ && cp -R src/skills/sites build/src/skills/sites"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.11.0_1783618490925_0.5234692725526602","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@browserless.io/mcp","version":"1.12.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.12.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"d1ec0c23c1304c73ab42c185d1aedadcf97ec1c5","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.12.0.tgz","fileCount":505,"integrity":"sha512-AZUXk6lh8YXdRGzroZuVlDofw6zYkLsAk5CQnsfAsYE5/2DR+Sut/uAisMrAJ46q2n729d15fI9f9QHhPSWvPw==","signatures":[{"sig":"MEUCIAo/TQhteDjhmMJr2xhWOM4Ek2yX3czvtuw5WARRAHjjAiEA9e7L5pHbmR0MYLGOUbXP9YH8uyXOczdiSAJLWO6Ugmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8398287},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"3b89b8a70d4da3c17e809951139c5905a64e6ae3","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/ && cp -R src/skills/sites build/src/skills/sites"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.5","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.12.0_1784137003667_0.7718524404031113","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@browserless.io/mcp","version":"1.13.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.13.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"f71c5c90d98ddb30762bf593fcfcb117e98ed1c7","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.13.0.tgz","fileCount":507,"integrity":"sha512-tn0mQGkMTZwH3D2tK9aPLqCasJUJgrB/TXp+DQNBlvpPwTIMeEprOMM9ddCgSVYaL8AHxEQIPcWjvIEVGQ1esQ==","signatures":[{"sig":"MEUCIQDq9Yf1Q0vVyf3mZIYh3AGoJAiqYDbB+dR1o/nBfnt9GgIgRbaXXPxN6NdqK89PCxT0Lo4oK1Zw7SWObDUOYB3LDtY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8406947},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"1e57baad96f12d1b5d7a8006b8b6566a92297884","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"patch-package","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/ && cp -R src/skills/sites build/src/skills/sites"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.5","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","patch-package":"^8.0.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.13.0_1784224661288_0.041122634607629216","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@browserless.io/mcp","version":"1.14.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.14.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"9e596278c66d08a16ef91422111b376952101b41","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.14.0.tgz","fileCount":507,"integrity":"sha512-Le2S03FarVwFzOEzqN9bZJfuTRuKmg85yknwZH/pBPiIcagD1UiozYJTcHwQD47Vwy0CwskWAGK1KJUfOE79IA==","signatures":[{"sig":"MEUCIQCuTXihdLF8/9k+oc2VhlieQB4L0xUMFCwUx+Aq3Uk1wAIgCANlckpDm5LvU2yEQNIdfJw91tgwFmvK80lNUYA4SHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8407912},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"d663c97ac4e77ed5828a8450a3f88f42bc0ecd41","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"patch-package","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/ && cp -R src/skills/sites build/src/skills/sites"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"^4.0.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.5","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","patch-package":"^8.0.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.14.0_1784304470641_0.09972578276534727","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"@browserless.io/mcp","version":"1.14.1","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.14.1","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"eac4503449d09b9ea1defd0671a7f79c55b0b602","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.14.1.tgz","fileCount":508,"integrity":"sha512-HMukX/8SHpaRgzSvBrAnoqiDtx4OW+io1v/tV9T3pAPLw8KxDhpciztMedkMdhXDQ5ZCuk6nEID6wXTmGi6gJA==","signatures":[{"sig":"MEYCIQDqe+iscGCcA4XL/lbxZ0Dti1zp8RH1uWJSC0itpYRRnwIhAObBe29M04mUBfV574p68MxBL99c2wlewLgvSmBaUkgl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8409224},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"a45b7bac9bed7ee05bb18aefbd3d0d0a988b07e4","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"patch-package","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/ && cp -R src/skills/sites build/src/skills/sites"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.4.0","ioredis":"^5.10.1","patch-package":"^8.0.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.5","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.14.1_1784557772489_0.23213713655656498","host":"s3://npm-registry-packages-npm-production"}},"1.14.2":{"name":"@browserless.io/mcp","version":"1.14.2","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.14.2","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"e75a501f1754207b5469959b02e1815660e1a7ee","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.14.2.tgz","fileCount":508,"integrity":"sha512-3Rk8utvG4EEo9RDjeiFpTpZZMCDSWbkowrqSWlybatY7UDy7wlGsUtLsKVZr6BSPt6h3j9wDJYZZtyEAr562LA==","signatures":[{"sig":"MEUCIQDRGKxoQPPEiCu3VTTkS9HAzwAQgRW9g8ew9MT/+c21BAIgbmVdDVC+PqFRX43+ZOMkWwTds8KWZpAvTw/hLWOSOXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8410485},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"f051284c19bfc1cc3d5c739586f9a6eb966f4bad","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/ && cp -R src/skills/sites build/src/skills/sites"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.4.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.5","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.14.2_1784581070127_0.523168480077264","host":"s3://npm-registry-packages-npm-production"}},"1.14.3":{"name":"@browserless.io/mcp","version":"1.14.3","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.14.3","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"a1450a203ec2c50a575de2c91973b37d826de355","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.14.3.tgz","fileCount":508,"integrity":"sha512-ER8L3iK7d/YeWEK3LE1ZZfrSF7rGRE99sx75AuoMJ/4jukpB0PEx9LrhgGo03y+Qr8LvtkhY4j2bz36I0y0NzQ==","signatures":[{"sig":"MEUCIHfxZdwWcMnzMvEeZHt3SH0PP4EfdQgK+Arn5gQz/KWLAiEAiMDw8iyWYaAIt03T2xH575Gr4d2qWOkjLPhJju89UKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.14.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8410485},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"777e7c333fc9ce05643d72a061e58a6c44fa8c95","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/ && cp -R src/skills/sites build/src/skills/sites"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.26","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.4.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.5","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.14.3_1784581457253_0.33337040520151473","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@browserless.io/mcp","version":"1.15.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.15.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"14c0c5bc8c2b7a173bc4483ad8cc330c00255d49","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.15.0.tgz","fileCount":91,"integrity":"sha512-ybHidSodghEp4mavU2DojSCmO8Xr0ARyCWZDcrRhBK73CaThrkd0GWguno8ZwFlp5FhWZUEnVgKqTBfrYMewMg==","signatures":[{"sig":"MEQCIEEQAZB/RbUxY+oEaCYWijxPUMdwVHlf5YZvzPuORH19AiB/anZPxs8MeG9cr02g7bp8/ELcaaPtprLL6o/ZqCppPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":476003},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"d8a5cf8c5f2fc05977d3ffd837ef784bdc11cd86","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.4.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.5","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.15.0_1784674283750_0.4053887068155415","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@browserless.io/mcp","version":"1.16.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.16.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"9b6e88c2c6898661ea3226a3ba3f2196d963ec8b","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.16.0.tgz","fileCount":91,"integrity":"sha512-/VQatZklpD8C+g2HdWjEXVHLPJjrvKLDkN1ulBQrsC39ZfedkH43CJgA3OXHks9MylBQ+v3WKu9k9M4HWcIg3Q==","signatures":[{"sig":"MEQCIEnuc9tL1o/FEGNiVCqbphoinDkUJuZx/6r4G9BDz3/RAiA4urDJY/RT+LjH6Gtuar7QwSBaohHuYogqnhExQv/X9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":479115},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"86ab7ee9a3ca457a8b1b6c6b3e8d7eeb5af6b8c7","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.4.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.5","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.16.0_1785194864568_0.7270744537128413","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@browserless.io/mcp","version":"1.17.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.17.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"25b2dcf67adf69e8d8225c4233a1e0179e9cfcf8","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.17.0.tgz","fileCount":93,"integrity":"sha512-zaqkka2Wn0e0LMERX+KguhGQ8rYQ9MJJpn/DE+8lYYsmZM81NarGvZ3vYaGloXzaeFsX3E2f/N32LN+TNqySRQ==","signatures":[{"sig":"MEUCIFHuxkwqcp0o6WF9T6XMYm+zxlKRYIFSPklybc38QOTDAiEA4J2+SCinS0al7creefroACu+MGGZBd73N/0vmHbW4jM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":497087},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"6e2daf6246e46d9a309e667135e665c1fff4b267","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.4.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.3.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.17.0_1785793094839_0.4882844157975812","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@browserless.io/mcp","version":"1.18.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.18.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"430cf0c6c8c9c6fe6f5b9045859a4ddc1c61c6ea","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.18.0.tgz","fileCount":93,"integrity":"sha512-kzbqx0nVYbOE2gexv4O/4qNJE54uc2lUjUE2bMjFKKppQNk+ZuSnkCbAik+r18wsbhB2YolXHRuJkyLjYZcC7w==","signatures":[{"sig":"MEQCIFgjPQWEzL+DPgZLQyWO4S81duZ31pumFFQRXZzvuX9XAiBF9rD/tND60R9LyfwGGXi89F9N176TwMWfzccBO8hQbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":500194},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"800b53d40538c97b91739dc127dc554824423cd1","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.4.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.3.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.18.0_1785797142716_0.9308544953936244","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@browserless.io/mcp","version":"1.19.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.19.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"00a5421635d3f99aeb1f4410fcbfa5470bae59f8","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.19.0.tgz","fileCount":93,"integrity":"sha512-oZXTgtti6kKh+yWge7JXd1QKVmSmcYCmvn/GMnBtgEMjcyUW+eUkh/kcAGUFDunG/W6pO4rxZpbgG8Fy8k4iRA==","signatures":[{"sig":"MEUCIATJIbXF8vg/3bhm2sq4Fj/bN40jhRQQz9tkPNNdLrlWAiEAiuGG/B92YBncpCd8EqvpVN4KiG11S/peLEluLzlVmuc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505382},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"83fbd13ec000323c8f2a3f054003eae2953482b2","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.4.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.19.0_1785938748072_0.762484995375516","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@browserless.io/mcp","version":"1.20.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.20.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"02683c26a58350057669430fb448fcae6536bfd6","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.20.0.tgz","fileCount":93,"integrity":"sha512-B9nldtSAP+FaFBu9yzD0dScShqpi2BmetPfYoWa5vhnX1c8tlLDHrWFokDGdPmmlEL6sb0YlqMHDEoYm4Fs0AA==","signatures":[{"sig":"MEQCIAqeY6Nt5FPipTO+XNJstbv0a2F38H11WUaCjGsxlKZ0AiBoFAZbO8BeQj8cmwob99pZMSKKCMCnI8rpsBvU5Ppk5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":496604},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"6ae398286ad6ed6067b25620dabd37f7b894bd9a","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.12.1","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.20.0_1785949549881_0.05288119265963198","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"@browserless.io/mcp","version":"1.20.1","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.20.1","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"2d69e6c5508105293fc500fc3dc9497672f87e9b","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.20.1.tgz","fileCount":93,"integrity":"sha512-8QZ+u+X/dXRaXEepAF6u98krm8C9vg2dHNS1kkq64pwNCOyiL33PJSC0nmE2PBTnVJ+OtsLeHaSwG42TSJCT7A==","signatures":[{"sig":"MEYCIQDyPPXqTkGi4T49f2ysTcgsFgz1LTWqtDG2YtEx6QsamAIhAKDRKzKQDiBuoNyL+3AcIMwaZmYsxY+ZDX/3pCbkspvj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":497303},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"dff26fb14108fbb6f84d6724d91018b56c55de67","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.12.1","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.20.1_1786113462314_0.02710864976059124","host":"s3://npm-registry-packages-npm-production"}},"1.20.2":{"name":"@browserless.io/mcp","version":"1.20.2","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.20.2","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"189fbb449d9fb330975485159f5e8b3e08f826aa","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.20.2.tgz","fileCount":93,"integrity":"sha512-7VQoYwg2EhKNM4IhTreS0bwEJ1kPR09+J/IVxA8J490/TLbpSEQOsqLLY46vXnacHaOEta+8apY/4IT0k6UhmA==","signatures":[{"sig":"MEQCIDBDzGeH2K1MIC2aSMN2PxCN/vgzN5OwNrvb9z1lVp2VAiAtZwPrChuFGhtFT6O+oZdCrRbHzcsmx99TkGiXE0MosQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.20.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":499288},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"6aece3ff28e3a91eb17a54c9db451531ec741991","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.13.0","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.20.2_1786480441522_0.29845532205739733","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@browserless.io/mcp","version":"1.21.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.21.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"9ce51c13887710d04285696b9113921646fe4684","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.21.0.tgz","fileCount":106,"integrity":"sha512-PHrdis8S12iURF2Xb8mZInPQJ63qwRXKI//l1Qnc0dmPh6+wZDtE8I3SrtQ/bfUj/xx2ZI81aMWmC//Jt2RJmQ==","signatures":[{"sig":"MEUCIAUqW0dX8bIT48luWBZV1eS2pZ8Wa7epP2+gUtek+z+RAiEA7vuSMnlLgnlYniwhcRi+KwLORKXSlNuxnLqPDekyEzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":564013},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"6a4e0802fa248f198046109825d2e59835a3c025","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.15.1","ioredis":"^5.10.1","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.21.0_1787158853316_0.796421684693071","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"@browserless.io/mcp","version":"1.22.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.22.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"cdab28c08489eda54d768087ab00ba8e04acee30","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.22.0.tgz","fileCount":106,"integrity":"sha512-bRvqiXGfKuoYzH5FF1wWyxPnMh0k8OJLhCnfzxXxCnPQ6v/S0mX9Ws2VF6YOM9r0U2qeCXFB81HZ1joUgsqKkQ==","signatures":[{"sig":"MEUCIE9AFZ4mAsXKUYMm+RuE5TRASRRs41rrAyF/ZEaoGa1wAiEAzGW5ZCILrb04Aj/szsjtqnM8DDYJGxQe/8ltkTgAUhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":563501},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"3f7732487701b4a9584cbee1a2ca1745ab7c249e","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.15.1","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.22.0_1787176866198_0.1330158941969255","host":"s3://npm-registry-packages-npm-production"}},"1.22.1":{"name":"@browserless.io/mcp","version":"1.22.1","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.22.1","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"8a4b1e25472af98a60153f7ff56a5ef6c1cb3511","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.22.1.tgz","fileCount":106,"integrity":"sha512-qsrqWAOwxR0nTsbUwTNHFbmRf0Jzci3Sby7yOe7hvaFjvGuPeYu4y4AreIEpfsIlvDn9BhEFPatGbwu6sGYp0A==","signatures":[{"sig":"MEYCIQCRN4uw7CLKNB5ZSS7es/mr4x3skg1P57c9/WlRwPT62QIhAKxMj/YfJhzLVkKJh28cDG0Bk1Za4K4CG7mWWT/7rMrN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.22.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":564372},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"b9a1d6a89f0634156b23f610f12ae38dbfbc1f1d","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.15.1","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.22.1_1787237776758_0.5694778658617146","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"@browserless.io/mcp","version":"1.23.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.23.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"d47d83122fd046ebfed2fa9a345deedeac094269","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.23.0.tgz","fileCount":106,"integrity":"sha512-7Dnb8QASFitc3957O6TP5wow6vz74AMIaKDIL8Jszn0ecY7f7EUsaw9Rqj1nt/m3HV+SZL5yTt5nt02Y7xVIBA==","signatures":[{"sig":"MEYCIQDTY/pCRQ/Zjb75iYnomgJ6nHMpSlXoGutFUHbA6qPpVwIhALkIp1MfW5xodzLuh2egj80guyewpV3GhyCj8OUcaNsJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":568179},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"ff703cce2e87865bb3845034c51288a6bd325e39","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.15.1","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.23.0_1787586965517_0.6924287902853106","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"@browserless.io/mcp","version":"1.24.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.24.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"139870d931c30d1fc872a5222ebb664d2115bc77","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.24.0.tgz","fileCount":108,"integrity":"sha512-pVKQCju3CSkOssUScQJMxtBC4dz7sJNkcaaGAxJiey6yTjXOydYOMJQE/1qpYHiElSnY89XyoQZsWK++yVQfhg==","signatures":[{"sig":"MEUCIDGjufUA3gpBKP5+bGT2CHxpxu+Re1BgmvNVD1zJtzfYAiEAykxWdNfZa4qhtX+wF060uFYPM+K/TbfC1J3V5S/pfEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":577180},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"0aaf1f366912089910d48ff849404285c9713a95","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.16.8","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.24.0_1787699416666_0.6232491132886222","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@browserless.io/mcp","version":"1.25.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.25.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"48652a9171842185c19c117ea1b542f3d295dae5","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.25.0.tgz","fileCount":109,"integrity":"sha512-ThLS5OwIxjR18zYivT2ZNUGOVLnefSv/LJ4vslmenZrfXBc3AZxKbU9pdTGw4QeYBZJxs2NGfcvJuK/f2YYLUw==","signatures":[{"sig":"MEQCIHfBjOHlMp/oPZfdwRpjLvLh8iww7vKkZr7GBHeSQZifAiAbdnIrKjmFrJ9I556W2M+hlfppeEXkNID1tUF2W50P+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":585914},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"e565cedc9b0f70f953ea6d1e63b1b25de56ddbb4","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.16.8","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.25.0_1788299263867_0.8112743248682384","host":"s3://npm-registry-packages-npm-production"}},"1.26.0":{"name":"@browserless.io/mcp","version":"1.26.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.26.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"0236404781bc2aff7f9b3cf3b4fe9633b095bd8d","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.26.0.tgz","fileCount":109,"integrity":"sha512-pwNOz/HYjxlrSz5aHPnXfh+OIAoWasEconyfT2Drrd8kP3IBj/iBVAeiRlLnKaInuAiCsjPozD0DNUR33pJfMQ==","attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":591002},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"b50537fefbd835a20ee7f7f425d05dc20504e55d","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.16.8","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.26.0_1788472148154_0.6164501679258398","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"@browserless.io/mcp","version":"1.27.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.27.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"8619bd98f4586b297979951b13552632bf82b24f","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.27.0.tgz","fileCount":109,"integrity":"sha512-mz7rmiuG17CqiyKLADOe28eKmkFH934lBd5ZQshzSI36XO2qS+8Ce3n1JLZmbWy/xq+IjUB2umsK+Vs97lYsbg==","signatures":[{"sig":"MEYCIQDGRRLIG/gfcw9Ph7MoA19OHoYOkzAOvgy2P9PIJHkmiwIhANsxBq+iRyN2FrYlEWU5ES2HYM0grRFRF46DZwIFN5ut","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":593642},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"a3260d41913b49a84b76e96551c3ccc177ec95af","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.16.8","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.27.0_1788544531116_0.5051872306748881","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"@browserless.io/mcp","version":"1.28.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.28.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"668b6fb82acbc6483e6386d293791af230060d97","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.28.0.tgz","fileCount":109,"integrity":"sha512-hlM4C+dm5RFOdS5NvBal7t2H6NAyV9AYayTsJEhhZvl/UsD0Z+QAheFn+5fuDTN7psK0DQGWH51koRbrQMgXbg==","signatures":[{"sig":"MEYCIQCnQV9Jchm1Vju9F8N37mifle5YcAXmRASnhxeeuBD1WwIhAKzRU5ds34Ob6p9T8aCRnhyBnpJ3DNH1BJx5DV3ef0bT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":615941},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"bea5f3fd93113bdc9d42f219d1652e5b2b00f51b","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.16.8","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.28.0_1788805467204_0.5535323298843176","host":"s3://npm-registry-packages-npm-production"}},"1.28.1":{"name":"@browserless.io/mcp","version":"1.28.1","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.28.1","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"5c0338140419c4e72dfbebb2ae77e5c461b7ed47","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.28.1.tgz","fileCount":109,"integrity":"sha512-scBAYUG8Elfg9q8XUiF2u5Elbg9RR+aY95CBm+2iYPls8dtbuDDx1UBK/QakoVpWcsBjlybnv3+ZYdGQ38rRng==","signatures":[{"sig":"MEUCIQDE0CsNMSzs3CM8YWzxRYzEBUkGMsBvgPaXJkFJv8/kBwIgEs6efVr/YYHIRfhj9cT/Bh/JbQjbX5J7tgC3bTI1WhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.28.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":615967},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"8aff0ae6459e056f83990285bed76c3936938f54","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.20.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.16.8","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^11.7.6","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.28.1_1788811805302_0.668350527239955","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"@browserless.io/mcp","version":"1.29.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.29.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"925a61e4053e5177eee154696038db406f9d78cc","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.29.0.tgz","fileCount":113,"integrity":"sha512-secffBj8nqMiz6fI2yugZKEdPJ9TfYrgqE/OERotgRtyY665EMKUvc9j8k+kw5A9HjEAtx60GG2edUsYdqMscA==","signatures":[{"sig":"MEYCIQDuygjL1f07OJlobkuxjgciASZBZ7foox9bHQkKogQ1zwIhAKOFuyXnJf3sSq0oOAsM1oVDwWFDXfjzpEZ5Eb++sXr6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":626764},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"53afccf3592099883b82add9a3320877d4990049","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.20.2","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.29.0_1789066693918_0.7898039591687256","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"@browserless.io/mcp","version":"1.30.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.30.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"4d9488f8dcc154b2a55fb7b333c12d6779a9407b","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.30.0.tgz","fileCount":117,"integrity":"sha512-XPO1lB00j8MNJEUJmLeYhqdq27j/KDJuc59ku00ehzSEBWVeTkkUiO5OGsMPWo4E82HntVwTgBFx5RAPt8fQfQ==","signatures":[{"sig":"MEUCIQDSbN3sTTo1/3AZCBXXncX79qNKFsb+y7sI5+SoyyFZywIgeRvOJ4ucN81BY5S0Zi9WIMhtHKd09faldTp97M+c+JQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDzTxE0lexwptEBaumctZ0jwuCl/KK7heUHL/2m7N6QgIgEFgd0bfF5shdgBLYUNHXse9DT9/+zMKSWL7rFzS3EKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":673848},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"98b6c2db214b6a8a93b722b8e7679009906bf9d2","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.20.11","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.6","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.30.0_1789512042939_0.1198184696750968","host":"s3://npm-registry-packages-npm-production"}},"1.31.0":{"name":"@browserless.io/mcp","version":"1.31.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.31.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"edf1c9a5bbe5e9bbc3115a304660daf9512f149b","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.31.0.tgz","fileCount":119,"integrity":"sha512-NAe1FrB626pJsap5WvUFpKrSlSFo1h53Dklk8KsY98zY7Hy/QPF4LEwOWVMLwge1EGyId+2Z0H/GowF0YfCJ4w==","signatures":[{"sig":"MEUCIBlRCmDStkx/7rO8qQbSHtyMYOV5Hfs2RBdX16lHvPxOAiEAoIwaX5tD9kwdeUV5eFPyE0OnqNSGf5dMnH4M7nGBTI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEBY4OJ2lPdTpmv8n282mOsadHxpf+VK/DO5Eq/n+K5aAiAI04LtQr3yXJ0dlkN+DUWTyG1kG4NyjaGVmT35Wl0soQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":695537},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"e46a2a41a34d672923f9d1b82289335651b41d39","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.20.14","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.8","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.31.0_1790108597173_0.5003707438376972","host":"s3://npm-registry-packages-npm-production"}},"1.32.0":{"name":"@browserless.io/mcp","version":"1.32.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.32.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"05537cc2a79f607c1a02c859cf5c124cc386fe29","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.32.0.tgz","fileCount":124,"integrity":"sha512-u0l+5bzXqbesNzl76cDDEpnSBA9k8uhFxJccFA3zXKAGvfM55BtXzt/1cwXL60VqHQiK2Tc/NYT9f+hWVdgy3w==","signatures":[{"sig":"MEUCIB7YNqdl3/aOr2o/KyyBHP5lNtPxd+tM7GP63BhJ3EDYAiEAqsnc/jsOXvcQ/4rIdqVXbo4ZFZ3216fo4V0SzeF9atw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEMCIB5cnbakF9iRINpXvRM7dNm/TZ2UD+VAEx6dCiqqQoCBAh8fiWWTPvNI5tHxBGlIelMFaYxQVmsTPGyGzeuwTEH+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":739586},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"36a9bb26dbd900be612f6996251cf91075222887","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.20.14","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.8","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.32.0_1790190854832_0.5165264334217621","host":"s3://npm-registry-packages-npm-production"}},"1.33.0":{"name":"@browserless.io/mcp","version":"1.33.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.33.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"c85be2985bbb089cc2328c71ecb5f93329fd3d86","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.33.0.tgz","fileCount":124,"integrity":"sha512-l9jApsOeG2hOHf8IenUL3CWt9GScQUKPHHd9kkJoktchjbjyQAg4rahGo58EQOfIL7ozsfFLssAYYM22zLZBIg==","signatures":[{"sig":"MEUCIQCGAqqu5h2wRZUQINZYOJgOlFLPJpSn/s3ieHPQOBzkIQIgayWk8BmXchVAYujrVu4Q7r8OnvldDdhZ7RqHMF+E51g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDTgmrijJwDABL4u0GA5NUudSGJZLcM4iDx6bHla1Nh3wIgem8MBCu7kf2EF/jgA+PBCJ3YqgNAs3KKXfsM6M6753c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":748867},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"31f57610b91ecc9d01256cd1cd4bd840305eccf7","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.20.14","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.8","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.33.0_1790351838883_0.4918821974861898","host":"s3://npm-registry-packages-npm-production"}},"1.34.0":{"name":"@browserless.io/mcp","version":"1.34.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.34.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"8e0cbce31e5d65c630d1b83170d68c64d7b72e9b","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.34.0.tgz","fileCount":126,"integrity":"sha512-pim2XX+ecgnRoEINOW5uXKGZR9rmeVOxr3+FZkzLYNakHcs1WGjo1rbetz8UKtKKr+ht6hYePzSU6i3jX1V5JQ==","signatures":[{"sig":"MEYCIQDPNQklKZRWiIq0rs9FfA0E3lT+pl16OTDgLXNqIhxGSwIhALjN60wjKNuy8jM6+OuaZeMf5BtPHKqTgJiIhmPejSVK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDUbQhFVHUcq1bRk1SQ+Oxso1kblElr3W58CqtSEWV1eAiEAodGfZ1ngFMIcSzscHOp+Awx5amn9HxfajemN5ZTGrrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":772788},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"9d0bba382739e1cc2750eff6652c75acd2f04f75","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.21.2","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.9","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.34.0_1790866964161_0.3071043107054683","host":"s3://npm-registry-packages-npm-production"}},"1.35.0":{"name":"@browserless.io/mcp","version":"1.35.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.35.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"d86c4c02aa3d9fe8ca6fbf98828a98dec74db747","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.35.0.tgz","fileCount":126,"integrity":"sha512-sH2nLKbAn4ADtRqmzCXoV3/wiSKB9mW4dplHfJExTDkKlsA7yccU7BhuTQJCtrNyAaYWyGh48BlKuheyWHjAUg==","signatures":[{"sig":"MEUCIBdc3a7GdY95X3fQuo4u4yCG/KMy5Qlbvy4gyMW4dDSjAiEAoiIA2e+KA/lhqulHksbAVQRXcDgRhQN38dWU/ttIhUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAoHRAgeiZCc+RaE9IUVKvn97Yp3CWyRzO3rZ3ytLX2OAiEA5RQ/te+fzXEV4uwfEkfdvdDPwodclFpc/5y7JLDpzBc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":774487},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"6dc704b5743419e511968f526ef2240c72b4dfd2","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.21.2","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.9","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.35.0_1790895597351_0.6086889546193428","host":"s3://npm-registry-packages-npm-production"}},"1.36.0":{"name":"@browserless.io/mcp","version":"1.36.0","author":{"name":"browserless.io"},"license":"SSPL-1.0","_id":"@browserless.io/mcp@1.36.0","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"homepage":"https://github.com/browserless/browserless-mcp#readme","bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"bin":{"browserless-mcp":"bin/cli.js"},"dist":{"shasum":"e2ab29870a5d41a885106225fa2f6eee9295ea37","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.36.0.tgz","fileCount":128,"integrity":"sha512-MAOsTScktE+gtseWAhjuQfx0bSszCLEPosQ1IH8rO+w+pV/UI0YsGxO8iHo/YoV2NNHQamMtsxxxFrZpTeAYqQ==","signatures":[{"sig":"MEUCIE2j78BoRO0dYuH7t/Pd23cH1TN7ZLLr1Xd+Y8rYZa6BAiEAhGGgzmT0CjrS+q/OytXRI7DxHoBcKQK2NazatuGEH74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB4+LMgm+R3kcUHQOVDbONyODu9r80s1+3Qa+z9eCkk0AiAjUp/0UUfJXRe7m6MY3qvScC3Hmun48Mt5xM0TfHtqQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":807011},"main":"./build/src/index.js","type":"module","types":"./build/src/index.d.ts","engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"65351e3da0363b0408949bc648942fb4bdb0ea23","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"3c11a004-fc8f-410b-88ef-525cd5747456"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.21.2","ioredis":"^5.10.1","rrweb-player":"1.0.0-alpha.4","@aws-sdk/client-sqs":"^3.1053.0","@amplitude/mcp-analytics":"^0.4.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.9","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.36.0_1791224801863_0.8415651770699824","host":"s3://npm-registry-packages-npm-production"}},"1.37.0":{"_id":"@browserless.io/mcp@1.37.0","bin":{"browserless-mcp":"bin/cli.js"},"bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"dist":{"shasum":"a904710bd538bb14e690cbf593d7981f18cd0ade","tarball":"https://registry.npmjs.org/@browserless.io/mcp/-/mcp-1.37.0.tgz","fileCount":134,"integrity":"sha512-bsfyIqVH97cRFyCGgxZZ5ZVC2ZQcMUs4bdjhIt2AE8NGcJWUFOvjTk0qWk1ZWPHHiF1ddkHNwKXpQWr0Td5tvg==","signatures":[{"sig":"MEUCIBWVicocND4gkRyDRclC7n61GoGw0l8WizFgh1Iw3ih6AiEAzIun90yo3P5d24dHD+lf8qlQ2Fnc6Dya8dG3xlKm5vc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCa5DdZ7O3885yRasrLmZIxjm2V33LZEHKAJK01H+SGkQIhAPm8h9q6dXHd2iTwrBB0tQrtZbmqpC69uEgfJyx4CAN5"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@browserless.io%2fmcp@1.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":847281},"main":"./build/src/index.js","name":"@browserless.io/mcp","type":"module","types":"./build/src/index.d.ts","author":{"name":"browserless.io"},"engines":{"npm":">=11.10.0","node":">=24"},"exports":{".":{"types":"./build/src/index.d.ts","import":"./build/src/index.js"},"./errors":{"types":"./build/src/lib/error-classifier.d.ts","import":"./build/src/lib/error-classifier.js"},"./format":{"types":"./build/src/lib/agent-format.d.ts","import":"./build/src/lib/agent-format.js"},"./prompt":{"types":"./build/src/skills/system-prompt.d.ts","import":"./build/src/skills/system-prompt.js"},"./skills":{"types":"./build/src/skills/index.d.ts","import":"./build/src/skills/index.js"},"./schemas":{"types":"./build/src/tools/schemas.d.ts","import":"./build/src/tools/schemas.js"},"./agent-client":{"types":"./build/src/lib/agent-client.d.ts","import":"./build/src/lib/agent-client.js"}},"gitHead":"a48507df9d594ca1b78e02419117e0ba54be25e2","license":"SSPL-1.0","scripts":{"dev":"BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-test} node --watch build/src/index.js","lint":"eslint src test","test":"npm run build && mocha","build":"tsc && npm run build:skills && npm run build:templates && npm run build:types","clean":"rm -rf build","start":"node build/src/index.js","prepack":"npm run build","prepare":"husky","coverage":"npm run build && c8 --reporter=text --reporter=html --reporter=lcov --check-coverage --lines 80 --branches 70 --functions 80 mocha","prettier":"prettier '{src,test,bin,.github}/**/*.{js,ts,json,yml,yaml,md}' --log-level error --write","start:http":"TRANSPORT=httpStream PORT=8080 node build/src/index.js","build:types":"mkdir -p build/src/@types && cp src/@types/*.d.ts build/src/@types/","postinstall":"node scripts/patch-fastmcp.mjs","build:skills":"mkdir -p build/src/skills && cp src/skills/*.md build/src/skills/","build:templates":"mkdir -p build/src/lib && cp src/lib/*.html build/src/lib/"},"version":"1.37.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"3c11a004-fc8f-410b-88ef-525cd5747456"}},"homepage":"https://github.com/browserless/browserless-mcp#readme","prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"all"},"overrides":{"hono":"^4.12.27","mocha":{"diff":"^8.0.3","glob":"^11.0.0","minimatch":"^10.2.1","serialize-javascript":"^7.0.5"},"undici":"^7.28.0","fast-uri":"^3.1.4","mcp-proxy":"6.5.1","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","directories":{},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"_nodeVersion":"24.21.0","dependencies":{"ws":"^8.21.0","zod":"^4.4.3","fastmcp":"4.22.1","ioredis":"^5.10.1","rrweb-player":"2.1.7","@opentelemetry/api":"1.9.1","@aws-sdk/client-sqs":"^3.1053.0","@opentelemetry/api-logs":"0.222.0","@opentelemetry/sdk-logs":"0.222.0","@opentelemetry/sdk-node":"0.222.0","@amplitude/mcp-analytics":"^0.4.0","@opentelemetry/resources":"2.11.0","@amplitude/analytics-node":"^1.5.68","@modelcontextprotocol/sdk":"^1.24.3","@opentelemetry/sdk-metrics":"2.11.0","@opentelemetry/semantic-conventions":"1.43.0","@opentelemetry/exporter-logs-otlp-proto":"0.222.0","@opentelemetry/exporter-metrics-otlp-proto":"0.222.0","@opentelemetry/instrumentation-runtime-node":"0.35.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","husky":"^9.1.7","mocha":"^12.0.0","sinon":"^22.0.0","eslint":"^10.4.0","globals":"^17.6.0","prettier":"3.9.9","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/chai":"^5.2.2","@types/node":"^26.0.0","lint-staged":"^17.0.8","@types/mocha":"^10.0.10","@types/sinon":"^22.0.0","ioredis-mock":"^8.13.1","typescript-eslint":"^8.60.0","@types/ioredis-mock":"^8.2.7"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_1.37.0_1791481061842_0.4376862406139199"}}},"time":{"created":"2026-06-01T22:52:17.086Z","modified":"2026-10-08T17:37:42.307Z","1.6.0":"2026-06-01T22:52:17.433Z","1.6.1":"2026-06-08T10:30:49.413Z","1.6.2":"2026-06-08T15:57:02.546Z","1.7.0":"2026-06-23T15:29:24.032Z","1.7.1":"2026-06-23T18:36:19.302Z","1.7.2":"2026-06-24T11:50:31.638Z","1.8.0":"2026-06-25T16:16:06.671Z","1.9.0":"2026-06-30T21:25:25.527Z","1.10.0":"2026-07-07T15:43:25.149Z","1.10.1":"2026-07-08T13:02:08.275Z","1.11.0":"2026-07-09T17:34:51.175Z","1.12.0":"2026-07-15T17:36:44.009Z","1.13.0":"2026-07-16T17:57:41.547Z","1.14.0":"2026-07-17T16:07:50.871Z","1.14.1":"2026-07-20T14:29:32.745Z","1.14.2":"2026-07-20T20:57:50.401Z","1.14.3":"2026-07-20T21:04:17.540Z","1.15.0":"2026-07-21T22:51:23.892Z","1.16.0":"2026-07-27T23:27:44.712Z","1.17.0":"2026-08-03T21:38:14.983Z","1.18.0":"2026-08-03T22:45:42.869Z","1.19.0":"2026-08-05T14:05:48.282Z","1.20.0":"2026-08-05T17:05:50.024Z","1.20.1":"2026-08-07T14:37:42.485Z","1.20.2":"2026-08-11T20:34:01.711Z","1.21.0":"2026-08-19T17:00:53.458Z","1.22.0":"2026-08-19T22:01:06.355Z","1.22.1":"2026-08-20T14:56:16.928Z","1.23.0":"2026-08-24T15:56:05.684Z","1.24.0":"2026-08-25T23:10:16.836Z","1.25.0":"2026-09-01T21:47:44.037Z","1.26.0":"2026-09-03T21:49:08.291Z","1.27.0":"2026-09-04T17:55:31.261Z","1.28.0":"2026-09-07T18:24:27.358Z","1.28.1":"2026-09-07T20:10:05.454Z","1.29.0":"2026-09-10T18:58:14.079Z","1.30.0":"2026-09-15T22:40:43.035Z","1.31.0":"2026-09-22T20:23:17.317Z","1.32.0":"2026-09-23T19:14:14.947Z","1.33.0":"2026-09-25T15:57:18.966Z","1.34.0":"2026-10-01T15:02:44.296Z","1.35.0":"2026-10-01T22:59:57.470Z","1.36.0":"2026-10-05T18:26:41.962Z","1.37.0":"2026-10-08T17:37:41.954Z"},"bugs":{"url":"https://github.com/browserless/browserless-mcp/issues"},"author":{"name":"browserless.io"},"license":"SSPL-1.0","homepage":"https://github.com/browserless/browserless-mcp#readme","repository":{"url":"git+https://github.com/browserless/browserless-mcp.git","type":"git"},"description":"MCP (Model Context Protocol) server for the Browserless.io browser automation platform","maintainers":[{"name":"jgriffith","email":"joel@griff.email"},{"name":"risingson","email":"anderson@browserless.io"},{"name":"artiombrowserless","email":"artiom@browserless.io"}],"readme":"# Browserless MCP Server\n\n[![MCP Badge](https://lobehub.com/badge/mcp/browserless-browserless-mcp?style=for-the-badge)](https://lobehub.com/mcp/browserless-browserless-mcp)\n\nMCP (Model Context Protocol) server for [Browserless.io](https://browserless.io) — expose the Browserless smart scraper API to LLM clients like Claude Desktop, Cursor, VS Code, and Windsurf.\n\n## Quick Start\n\nGet an API token from [browserless.io](https://browserless.io) (free tier available), then point your MCP client at the hosted server:\n\n```json\n{\n  \"mcpServers\": {\n    \"browserless\": {\n      \"url\": \"https://mcp.browserless.io/mcp?token=your-token-here\"\n    }\n  }\n}\n```\n\nNo local install — see [Configuration](#configuration) for per-client snippets.\n\n## Tools\n\n| Tool                       | Description                                                                                                                                                                                                                                                                                                                                                                                                               |\n| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `browserless_smartscraper` | Scrape a single webpage and return its content as markdown or HTML. Handles JavaScript-heavy pages and anti-bot measures automatically. For content across multiple pages, use `browserless_crawl`; to list a site's URLs, use `browserless_map`.                                                                                                                                                                         |\n| `browserless_search`       | Search the web using Browserless and optionally scrape each result. Supports web, news, and image search with geo-targeting and time filters.                                                                                                                                                                                                                                                                             |\n| `browserless_map`          | Discover and map all URLs on a website. Scans via sitemaps and link extraction. Returns URLs with optional titles and descriptions. Useful for site audits and content discovery.                                                                                                                                                                                                                                         |\n| `browserless_crawl`        | Crawl a website and scrape every discovered page. Supports depth control, path filtering, sitemap strategies, and configurable scrape options. Returns scraped content and metadata for each page.                                                                                                                                                                                                                        |\n| `browserless_performance`  | Run Lighthouse audits on any URL. Returns scores and metrics for accessibility, best practices, performance, PWA, and SEO. Optionally filter by category, emulate a mobile or desktop device, supply a custom Lighthouse config, or supply performance budgets.                                                                                                                                                           |\n| `browserless_function`     | Execute custom Puppeteer JavaScript on the Browserless cloud. The function receives a `page` object and optional `context`; return `{ data, type }` to control the payload and Content-Type.                                                                                                                                                                                                                              |\n| `browserless_export`       | Export a webpage via the Browserless `/export` API. Fetches the URL and returns its native content (HTML, PDF, image, etc.) with automatic content-type detection.                                                                                                                                                                                                                                                        |\n| `browserless_agent`        | Drive a persistent browser session via a ReAct loop: snapshot the page, plan, batch interactions (click, type, scroll, evaluate, etc.), and re-snapshot. Uses ref-based selectors derived from snapshots, supports multi-tab workflows, screenshots, captcha solving, live URLs, and file upload/download (captured downloads auto-surface as handles; bytes never enter context).                                        |\n| `browserless_skill`        | Load an on-demand recipe for a non-trivial page mechanic (shadow DOM, cookie consent, modals, captchas, dynamic content, snapshot misses, screenshots, tabs). Companion to `browserless_agent`.                                                                                                                                                                                                                           |\n| `browserless_profiles`     | List the authentication profiles saved for the current token, with cookie and origin counts. Pass a profile's name as `profile` to another tool to reuse its logged-in state.                                                                                                                                                                                                                                             |\n| `browserless_account`      | Read the account behind the current token: plan, unit balance, billing period, and API key names. Never returns API token values.                                                                                                                                                                                                                                                                                         |\n| `browserless_usage`        | Read request and unit consumption: successes, errors, timeouts, queueing, peak concurrency, captchas, proxy bytes and units. Optionally scoped to specific API keys.                                                                                                                                                                                                                                                      |\n| `browserless_sessions`     | Inspect the account's sessions — browsers running now, persistent sessions on dedicated workers, recorded session replays, and 1Password credential integrations. Also downloads a replay as a fully self-contained rrweb player page (`action: \"replay\"`) that needs no network to render: opened in your browser when the server runs locally, otherwise attached as an inline HTML resource when small enough to send. |\n| `browserless_logs`         | Read Browserless's own record of recent requests: what was attempted, whether it failed, why it stopped, how long it took and what it cost. The tool for diagnosing a run that failed on the Browserless side. Available window is plan-dependent.                                                                                                                                                                        |\n\n## Skills\n\nThe server ships with a built-in library of **Skills** — on-demand recipes the agent can load to handle tricky page mechanics. Skills auto-inject into `browserless_agent` responses when their triggers fire (e.g. the agent hits a cookie banner), and can also be loaded manually via the `browserless_skill` tool.\n\n| Skill             | Source                                                         | Purpose                                                                           |\n| ----------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------- |\n| `shadow-dom`      | [src/skills/shadow-dom.md](src/skills/shadow-dom.md)           | Deep selectors and iframe targeting through shadow roots.                         |\n| `cookie-consent`  | [src/skills/cookie-consent.md](src/skills/cookie-consent.md)   | Vendor-specific dismiss recipes (OneTrust, Cookiebot, Didomi, TrustArc, etc.).    |\n| `modals`          | [src/skills/modals.md](src/skills/modals.md)                   | Closing dialogs, alertdialogs, and overlay close-button heuristics.               |\n| `captchas`        | [src/skills/captchas.md](src/skills/captchas.md)               | Using the `solve` command, response semantics, and escalation paths (Cloud only). |\n| `dynamic-content` | [src/skills/dynamic-content.md](src/skills/dynamic-content.md) | Choosing the right `wait*` method for async/AJAX/SPA content.                     |\n| `snapshot-misses` | [src/skills/snapshot-misses.md](src/skills/snapshot-misses.md) | Handling truncated/empty snapshots and image-rendered content.                    |\n| `screenshots`     | [src/skills/screenshots.md](src/skills/screenshots.md)         | When to screenshot vs. snapshot, scope and format choices.                        |\n| `tabs`            | [src/skills/tabs.md](src/skills/tabs.md)                       | Multi-tab workflows and peek-without-switching via `targetId`.                    |\n\nLoad a skill explicitly:\n\n```jsonc\n{\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"browserless_skill\",\n    \"arguments\": { \"id\": \"cookie-consent\" },\n  },\n}\n```\n\n### Built-in proxy (`browserless_agent`)\n\nPass a top-level `proxy` object on `browserless_agent` to route the session through datacenter or residential IPs. Datacenter is cheaper per MB; residential is less likely to be blocked.\n\n```jsonc\n{\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"browserless_agent\",\n    \"arguments\": {\n      \"method\": \"goto\",\n      \"params\": { \"url\": \"https://example.com\" },\n      \"proxy\": {\n        \"proxy\": \"residential\",\n        \"proxyCountry\": \"us\",\n        \"proxySticky\": true,\n      },\n    },\n  },\n}\n```\n\n| Field                 | Notes                                                                                                                                         |\n| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `proxy`               | `\"datacenter\"` for lower cost or `\"residential\"` when targets block datacenter traffic.                                                       |\n| `proxyCountry`        | ISO-2 country code (`\"us\"`, `\"de\"`). Auto-normalized to lowercase. Non-letter values are rejected.                                            |\n| `proxyState`          | US state name with whitespace replaced by underscores (`\"new_york\"`). Paid-plan gated — non-eligible tokens get a 401.                        |\n| `proxyCity`           | City target. Paid/enterprise plan gated — non-eligible tokens get a 401.                                                                      |\n| `proxySticky`         | Stable IP while the underlying WebSocket stays open. Reconnects (idle drop, network blip, browser crash) allocate a new sticky id and new IP. |\n| `proxyLocaleMatch`    | Match `navigator` locale to the proxy IP country.                                                                                             |\n| `proxyPreset`         | Residential-only named preset (e.g. `\"px_amazon01\"`). Available presets are plan-dependent — ask Browserless support for your list.           |\n| `externalProxyServer` | Bring-your-own upstream, e.g. `http://user:pass@host:port`. Must be `http://` or `https://`.                                                  |\n\n> **Note:** Geo, sticky, and locale options require either a built-in `proxy` tier or `externalProxyServer`; `proxyPreset` requires `proxy: \"residential\"`. The MCP rejects unsupported combinations instead of letting the API silently ignore them.\n\nThe `proxy` object is read once at session creation. To change it, call `close` and start a new session — the agent client keys sessions on the proxy fingerprint, so passing a different config will land on a fresh WebSocket.\n\n### OS persona (`browserless_agent`)\n\nAgent sessions can opt into a coherent OS persona with top-level creation options:\n\n| Field               | Notes                                                                                     |\n| ------------------- | ----------------------------------------------------------------------------------------- |\n| `emulationOs`       | `\"windows\"`, `\"macos\"`, `\"linux\"`, or `\"android\"`. Enables platform spoofing.             |\n| `emulatedDevice`    | Android device slug; used only with `emulationOs: \"android\"`.                             |\n| `screen`            | Desktop screen in `WIDTHxHEIGHT` form.                                                    |\n| `deviceScaleFactor` | Desktop device pixel ratio: `1` or `1.25`.                                                |\n| `deviceSlot`        | Non-negative stable desktop-device slot; the server validates the account-specific range. |\n\nSet persona options on the first call before navigation and reuse the returned\n`sessionId` afterward. Persona is fixed for the life of that browser session;\nclose it before selecting a different persona.\n\n## Configuration\n\nThe server is hosted at `https://mcp.browserless.io/mcp`. Authenticate via headers (preferred) or a `?token=` query parameter.\n\nInstalling via an AI agent? See [install.md](install.md) for agent-readable setup instructions.\n\n**Using headers** (recommended for clients that support them):\n\n```json\n{\n  \"mcpServers\": {\n    \"browserless\": {\n      \"url\": \"https://mcp.browserless.io/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer your-token-here\"\n      }\n    }\n  }\n}\n```\n\n**Using URL query parameters** (for clients like Claude.ai custom connectors that only accept a URL):\n\n```text\nhttps://mcp.browserless.io/mcp?token=your-token-here\n```\n\nTo connect to a specific Browserless regional endpoint, add the `x-browserless-api-url` header or the `browserlessUrl` query parameter:\n\n```json\n{\n  \"mcpServers\": {\n    \"browserless\": {\n      \"url\": \"https://mcp.browserless.io/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer your-token-here\",\n        \"x-browserless-api-url\": \"https://production-lon.browserless.io\"\n      }\n    }\n  }\n}\n```\n\n```text\nhttps://mcp.browserless.io/mcp?token=your-token-here&browserlessUrl=https://production-lon.browserless.io\n```\n\nWhen both headers and query parameters are present, headers take precedence.\n\nAPI URL overrides are limited to `browserless.io`, its subdomains, the configured `BROWSERLESS_API_URL` origin (same scheme, hostname, and port), and hosts listed in `MCP_ALLOWED_API_URL_HOSTS`. Paths are allowed, but credentials, query strings, and fragments (including bare `?` or `#`) are not. Without an override, the operator-configured URL is used unchanged.\n\n### Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"browserless\": {\n      \"url\": \"https://mcp.browserless.io/mcp?token=your-token-here\"\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to your Cursor MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"browserless\": {\n      \"url\": \"https://mcp.browserless.io/mcp?token=your-token-here\"\n    }\n  }\n}\n```\n\n### VS Code\n\nAdd to your VS Code settings (`settings.json`):\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"browserless\": {\n        \"url\": \"https://mcp.browserless.io/mcp\",\n        \"headers\": {\n          \"Authorization\": \"Bearer your-token-here\"\n        }\n      }\n    }\n  }\n}\n```\n\n### Windsurf\n\nAdd to your Windsurf MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"browserless\": {\n      \"url\": \"https://mcp.browserless.io/mcp?token=your-token-here\"\n    }\n  }\n}\n```\n\n## Self-Hosting\n\nThe server can also be run locally — useful for air-gapped deployments or pointing at a self-hosted Browserless instance. Clone this repo and build the Docker image:\n\n```bash\ndocker build -f docker/Dockerfile -t browserless-mcp .\n\ndocker run \\\n  -e BROWSERLESS_TOKEN=your-token \\\n  -e BROWSERLESS_API_URL=https://your-browserless-instance.example.com \\\n  -p 8080:8080 \\\n  browserless-mcp\n```\n\nThen point your MCP client at `http://localhost:8080/mcp` using the same header/query-parameter auth as above.\n\n### Self-hosted environment variables\n\n| Variable                     | Required | Default                                  | Description                                                                                                                                                |\n| ---------------------------- | -------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `BROWSERLESS_TOKEN`          | Yes      | —                                        | Your Browserless API token                                                                                                                                 |\n| `BROWSERLESS_API_URL`        | No       | `https://production-sfo.browserless.io`  | API endpoint (for self-hosted Browserless)                                                                                                                 |\n| `MCP_ALLOWED_API_URL_HOSTS`  | No       | —                                        | Comma-separated hosts allowed for client-supplied API URL overrides, in addition to Browserless and the configured API origin                              |\n| `BROWSERLESS_API_SERVER`     | No       | `https://api.browserless.io`             | Account API host — backs `browserless_account`, `_usage`, `_sessions` and `_logs`. A different host from `BROWSERLESS_API_URL`, which is a browser runtime |\n| `BROWSERLESS_REPLAY_CDN_URL` | No       | `https://d3uycvholi7jx8.cloudfront.net/` | Origin serving session-replay artifacts. Replay paths are origin-checked against it                                                                        |\n| `TRANSPORT`                  | No       | `stdio`                                  | Transport type: `stdio` or `httpStream`                                                                                                                    |\n| `PORT`                       | No       | `8080`                                   | HTTP server port (only for `httpStream` transport)                                                                                                         |\n| `BROWSERLESS_TIMEOUT`        | No       | `30000`                                  | Request timeout in milliseconds                                                                                                                            |\n| `BROWSERLESS_MAX_RETRIES`    | No       | `3`                                      | Max retry attempts for failed requests                                                                                                                     |\n| `BROWSERLESS_CACHE_TTL`      | No       | `60000`                                  | Cache TTL in milliseconds (0 to disable)                                                                                                                   |\n| `AMPLITUDE_API_KEY`          | No       | —                                        | Amplitude project API key. Sends MCP usage analytics — SDK lifecycle events plus our own tool/skill events                                                 |\n| `MCP_COMPLIANCE_MODE`        | No       | unset (full surface)                     | Serve the reduced, directory-compliant surface. Fails closed: any set value except `false`/`0`/`no`/`off` enables it                                       |\n\n### Hosted OpenTelemetry\n\nOn `httpStream`, set `OTEL_ENABLED=true` and `OTEL_EXPORTER_OTLP_ENDPOINT`\nto a trusted collector's base URL. Metrics and stderr logs are exported over\nOTLP HTTP/protobuf; tracing is disabled. `stdio` never starts this SDK.\n`OTEL_METRIC_EXPORT_INTERVAL` controls the export interval in milliseconds\n(default 60000, minimum 1000).\n\nNodeSDK manages the providers and standard Node runtime instrumentation emits\n`nodejs.*` and `v8js.*` metrics. Application session, tool, account and Redis\nmetrics remain under `browserless.mcp.*`. All duration metrics use seconds\n(`s`), memory uses bytes (`By`), and request counters use `{request}`;\napplication callers still supply\nmilliseconds, converted once by the metric recorders.\n\n`browserless.mcp.auth.duration` and `.auth.in_flight` cover POST authentication,\nnot whole request execution. `browserless.mcp.session.cleanup.age` covers tracked\nMCP idle reaps and explicit/idle/cap agent cleanup, not every session close.\nSweep-discovered MCP age starts at discovery; agent age resets on reconnect.\n`browserless.mcp.accounts.active` counts distinct token hashes per collection\nwindow. Top-account counts are an INFO log with body event\n`browserless.mcp.account.window`, `active_accounts`, and `top_accounts` (at most\n20 `{hash, count}` entries), not persistent per-account metric series.\nAn idle window emits no account log. Stderr text is INFO, `console.warn` is WARN,\nand arguments containing an `Error` are ERROR; stderr records carry\n`log.iostream=stderr`. `OTEL_SDK_DISABLED=true` also disables hosted telemetry.\n\nFor dashboards based on the initial telemetry PR: replace custom event-loop\nmetrics with `nodejs.eventloop.*`, GC pauses with `v8js.gc.duration`, and active\nresources with `v8js.resource.active`. Drop `_ms` from tool/upstream/Redis\nduration names, use the auth and cleanup names above, and divide millisecond\nthresholds by 1000. Replace `account.requests` queries with the window logs.\nDuration histogram boundaries are also in seconds, covering sub-second Redis\noperations through two-hour sessions. Amplitude event fields and timeout\nconfiguration remain in milliseconds.\n\n### Skill retrieval diagnostics\n\n`Skill Retrieval Completed` emits once per actual remote skill fetch through\nthe existing analytics queue (when `ANALYTICS_ENABLED`, `SQS_QUEUE_URL`, and\n`SQS_REGION` are configured). It is not duplicated through the SDK's\n`AMPLITUDE_API_KEY` transport. Cache hits and concurrent callers sharing a fetch\ndo not emit another completion. Failed retrievals remain retryable on the next\ncall; this instrumentation adds no retries.\n\nFields are `result=hit|miss|error`, normalized `domain`, UUID `request_id`,\n`source`, `attempt`, integer `duration_ms`, `stage=fetch|decode|validate`, and\navailable `http_status`. `skill_count` appears only on valid responses: positive\nfor hits, zero for misses. Errors carry `error_category=timeout|network_error|http_error|invalid_json|invalid_shape`.\nSources are `cli_agent`, `script_builder`, `autologin`, `agent_run`, `mcp_client`,\nor `unknown`. Each fetch currently has `attempt=1`; no run identifier is\navailable at these call sites, so `run_id` is omitted.\nDomains outside the bounded hostname format become `invalid` without dropping\nthe completion from the denominator.\n\nSet `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` to a trusted collector's full `/v1/logs`\nURL to export matching `skill.retrieval.failed` WARN records as OTLP/HTTP JSON.\nThe default is disabled. Exports have a one-second deadline, at most 16 in-flight\nrequests, and no retry. Caught queue/skill analytics errors produce\n`skill.telemetry.delivery_failed` with `originating_event` and the fixed\ndiagnostic category `delivery_error`, at most once per minute per process.\nExporter failures are swallowed without recursively reporting themselves.\nNo new log contains tokens, prompts, full URLs, response bodies, or recipe text.\nThe queue retains its existing authentication field, separately from log fields.\n\nExample failure attributes:\n\n```json\n{\n  \"event.name\": \"skill.retrieval.failed\",\n  \"result\": \"error\",\n  \"domain\": \"shop.example\",\n  \"request_id\": \"416e0409-25e2-4399-a3fa-6939f43a75e0\",\n  \"source\": \"mcp_client\",\n  \"attempt\": 1,\n  \"stage\": \"fetch\",\n  \"error_category\": \"http_error\",\n  \"http_status\": 429,\n  \"duration_ms\": 17\n}\n```\n\nRetrieval error rate is error completions / all completions. Hit rate is hit\ncompletions / valid completions. Do not add the separate server `Skill Lookup`\nevents to either denominator. Tests use local/mock sinks; a configured exporter\nor console message is not proof of remote receipt.\n\n### Failure diagnostics\n\n`MCP Tool Request` retains `analytics_version=2`, the existing coarse\n`error_category`, `status_code`, timing and tool-specific properties. These\nadditive diagnostic fields are failure-only; a successful retry has none of them.\n\n| Property               | Meaning                                                                                                                                                                                                                                                                                                                  |\n| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `error_reason`         | `selector_miss`, `invalid_params`, `unknown_method`, `script_error`, `unauthorized`, `forbidden`, `not_found`, `server_error`, `session_lost`, `navigation_failed`, `timeout`, `rate_limited`, or `unknown`. Agent errors retain their existing detailed classification; local URL/batch validation is `invalid_params`. |\n| `error_source`         | `validation`, `script`, `target_website`, `api`, `transport`, or `unknown`. This identifies the observed failure boundary, not blame. A 403 alone does not identify its source.                                                                                                                                          |\n| `failed_command_index` | Zero-based index in the invocation's command batch, not the session-wide command counter. Omitted when setup/validation fails before a command starts.                                                                                                                                                                   |\n| `failed_method`        | The failed command's recognized typed method name. Unrecognized free-form method names are omitted to avoid emitting arbitrary input; the index still identifies the command.                                                                                                                                            |\n| `error_code`           | Allowlisted structured codes: the uppercase reason names above, `SELECTOR_NOT_FOUND`, `BROWSER_CRASHED`, `ECONNRESET`, `ECONNREFUSED`, `ENOTFOUND`, `EAI_AGAIN`, `ETIMEDOUT`. Opaque/unrecognized codes are omitted, not copied into messages.                                                                           |\n| `error_status_code`    | An integer HTTP status (100–599) carried by structured error metadata. Never extracted from error prose.                                                                                                                                                                                                                 |\n| `error_status_origin`  | `api` for an observed API response/upgrade, `target_website` for a failed navigation result, otherwise `unknown`. Omitted when no structured status is available.                                                                                                                                                        |\n| `error_message`        | A synthesized summary capped at 500 characters. Raw error messages, response bodies, HTML, scripts, selectors, credentials, cookies, authorization headers and URLs are never copied into this field.                                                                                                                    |\n\nFor `browserless_function`, `browserless_export` and `browserless_smartscraper`,\na failed result's recorded `status_code` sets the reason: 400 from the function\ntool → `script_error` (source `script`), 401 → `unauthorized`, 403 → `forbidden`,\n404 → `not_found`, 408 → `timeout`, 429 → `rate_limited`, 5xx → `server_error`,\nanything else → `unknown`. Function and export statuses are the Browserless API's\n(`error_status_origin=api`); smart scraper statuses are the target website's\n(`error_status_origin=target_website`, `error_source=target_website`). Export 400\nremains `unknown`, with its status retained.\n\n`status_code` keeps its original tool-specific meaning; the new status fields\ndo not replace it or turn successful target-page HTTP responses into failures.\nHTTP failures retain API response status even when thrown. Codes are retained\nwhen already available in structured errors or the JSON body read by the existing\n4xx error handler; diagnostics do not read additional bodies on 5xx failures.\n\nAn unsuccessful search without structured evidence reports `error_reason=unknown`\nand `error_message=\"Unclassified search failure.\"`. Its legacy `user_error`\ncategory remains for chart compatibility, not as evidence of caller fault.\n\nExample breakdowns: filter `success=false` and group by `tool → error_reason`;\nfor agent calls, group by `failed_method → error_reason`; for HTTP failures,\ngroup by `error_status_origin → error_status_code`. Missing fields in older\nevents mean unavailable instrumentation, not an `unknown` failure. There is no\nhistorical backfill. Verify representative received events after deployment\nbefore treating these properties as available in production.\n\n## MCP Resources\n\n| Resource URI             | Description                     |\n| ------------------------ | ------------------------------- |\n| `browserless://api-docs` | Smart scraper API documentation |\n| `browserless://status`   | Live service health status      |\n\n## MCP Prompts\n\n| Prompt            | Description                                 |\n| ----------------- | ------------------------------------------- |\n| `scrape-url`      | Scrape a webpage and summarize its content  |\n| `extract-content` | Extract specific information from a webpage |\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\nnpm run coverage\n```\n\n### Tests\n\nThe test suite uses [Mocha](https://mochajs.org/) with [Chai](https://www.chaijs.com/) and [Sinon](https://sinonjs.org/). Specs live alongside the code in `test/` (`test/lib/`, `test/tools/`, `test/prompts/`, `test/resources/`, `test/integration/`) and run against the compiled output in `build/`.\n\n- `npm test` — compiles TypeScript and runs every `*.spec.js` under `build/test/`. No external services or `BROWSERLESS_TOKEN` are required; the API client is stubbed.\n- `npm run coverage` — runs the suite under [c8](https://github.com/bcoe/c8) with the thresholds configured in `package.json` (lines ≥ 80%, branches ≥ 70%, functions ≥ 80%).\n\nTests run automatically on every pull request via the [Test workflow](.github/workflows/test.yml) on Node 24. PRs must keep the suite green before they can merge.\n\n## API Token\n\nGet your API token at [browserless.io](https://browserless.io). The token authenticates all requests to the Browserless API.\n\n## License\n\nSSPL-1.0\n","readmeFilename":"README.md"}