package.json•5.2 kB
{
"name": "browserloop",
"version": "1.1.1",
"description": "A Model Context Protocol server for taking screenshots of web pages using Playwright",
"main": "dist/src/index.js",
"type": "module",
"bin": {
"browserloop": "dist/src/index.js"
},
"files": [
"dist/src/**/*",
"README.md",
"LICENSE",
"NOTICE"
],
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
},
"repository": {
"type": "git",
"url": "git+https://github.com/mattiasw/browserloop.git"
},
"homepage": "https://github.com/mattiasw/browserloop#readme",
"bugs": {
"url": "https://github.com/mattiasw/browserloop/issues"
},
"scripts": {
"build": "tsc",
"prebuild": "npm run clean",
"prepublishOnly": "npm run build",
"prepack": "npm run build",
"start": "npm run build && node dist/src/index.js",
"start:ts": "node --experimental-strip-types src/index.ts",
"start:native": "node src/index.ts",
"dev": "tsc --watch",
"dev:ts": "node --experimental-strip-types --watch src/index.ts",
"check-node": "node check-node.js",
"install-browsers": "npx playwright install chromium",
"test": "npm run build && npm run test:unit:dist && npm run test:integration:dist && npm run test:e2e:dist",
"test:unit": "npm run build && node --test dist/tests/unit/*.js",
"test:unit:dist": "node --test dist/tests/unit/*.js",
"test:integration": "npm run build && node --test dist/tests/integration/*.js",
"test:integration:dist": "node --test dist/tests/integration/*.js",
"test:e2e": "npm run build && node --test dist/tests/e2e/*.js",
"test:e2e:dist": "node --test dist/tests/e2e/*.js",
"test:e2e:full": "npm run build && node --test dist/tests/e2e/full-page-screenshots.test.js",
"test:e2e:element": "npm run build && node --test dist/tests/e2e/element-screenshots.test.js",
"test:e2e:format": "npm run build && node --test dist/tests/e2e/format-support.test.js",
"test:e2e:built": "npm run build && node --test dist/tests/e2e/built-server.test.js",
"test:e2e:npx": "npm run build && node --test dist/tests/e2e/npx-workflow.test.js",
"test:e2e:docker": "npm run build && node --test dist/tests/e2e/docker-integration.test.js",
"test:all": "npm run test",
"test:watch": "tsc --watch &",
"test:ts": "npm run test:unit:ts && npm run test:integration:ts",
"test:unit:ts": "node --experimental-strip-types --test tests/unit/test-utils.test.ts tests/unit/screenshot-service.test.ts tests/unit/config.test.ts",
"test:integration:ts": "node --experimental-strip-types --test tests/integration/mcp-server.test.ts",
"test:performance": "npm run build && node --test dist/tests/performance/benchmark.test.js",
"docker:build": "docker build -f docker/Dockerfile -t browserloop .",
"docker:run": "docker run --rm --network host browserloop",
"docker:dev": "docker-compose -f docker/docker-compose.yml up --build",
"docker:dev:logs": "cd docker && docker compose logs -f",
"docker:dev:stop": "cd docker && docker compose down",
"docker:dev:shell": "docker exec -it browserloop-dev /bin/bash",
"docker:test": "docker run --rm -it browserloop",
"docker:test:stop": "cd docker && docker compose --profile testing down",
"lint": "biome lint --error-on-warnings --write src/ tests/",
"lint:check": "biome lint --error-on-warnings src/ tests/",
"format": "biome format --write src/ tests/",
"format:check": "biome format src/ tests/",
"check": "biome check --write src/",
"clean": "rm -rf dist",
"build:clean": "npm run clean && npm run build",
"validate:build": "npm run build && test -f dist/src/index.js && test -f dist/src/index.d.ts",
"validate:security": "npm run build && find dist -name '*.env*' -o -name '*.key' -o -name '*.secret' | wc -l | grep -q '^0$' && echo 'Security validation: PASSED'",
"validate:package": "npm run validate:build && npm run validate:security && echo 'Package validation: PASSED'",
"version:patch": "npm version patch && git push && git push --tags",
"version:minor": "npm version minor && git push && git push --tags",
"version:major": "npm version major && git push && git push --tags",
"release": "./scripts/release.sh",
"release:check": "./scripts/release.sh check",
"prepare": "husky"
},
"lint-staged": {
"*.{ts,js}": [
"biome lint --error-on-warnings --write",
"biome format --write"
]
},
"keywords": [
"mcp",
"model-context-protocol",
"playwright",
"screenshot",
"automation",
"ai-tools",
"development",
"testing",
"browser",
"typescript"
],
"author": "Mattias Wallander <mattias@wallander.eu>",
"license": "AGPL-3.0-or-later",
"engines": {
"node": ">=20.0.0"
},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.18.1",
"@types/sharp": "^0.32.0",
"playwright": "^1.55.0",
"sharp": "^0.34.4",
"zod": "^3.25.76"
},
"devDependencies": {
"@biomejs/biome": "^2.2.4",
"@types/assert": "^1.5.11",
"@types/node": "^24.5.2",
"husky": "^9.1.7",
"lint-staged": "^16.2.0",
"typescript": "^5.9.2"
}
}