{"_id":"@ai-capabilities-suite/mcp-screenshot","_rev":"14-7770744f24f2e142151f26582d90b969","name":"@ai-capabilities-suite/mcp-screenshot","dist-tags":{"latest":"1.5.23"},"versions":{"0.0.2":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"0.0.2","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@0.0.2","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/src/cli.js"},"dist":{"shasum":"35fdf6650487cd2c1c58fb8cc8a446879831ffc4","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-0.0.2.tgz","fileCount":81,"integrity":"sha512-bGh4CuSssXtit913kgruWGjt/V8Dzl1knaLqpwP6wZ+6A+zBV+PhJojSijEzKPIl3MQNHK/rt7q4oRyHhXdHiw==","signatures":[{"sig":"MEUCIGnzU1pPTGnJFvLa0SFQFPVJlCOC25QXDozMfsCyoTbhAiEAwxC6xOoYFZAlq9bqsNyj4JEX4GvrMfU0ZuxysKnyHsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262961},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"81d7e673a78b3901a42c09ab2aa69eac4641e8e5","mcpName":"io.github.DigitalDefiance/mcp-screenshot","scripts":{"test":"jest","build":"tsc","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^3.22.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_0.0.2_1764646568632_0.9296957953663751","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"0.0.3","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@0.0.3","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/src/cli.js"},"dist":{"shasum":"79658a27190bd7cfae60f4f8947ccb5735c0b4a9","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-0.0.3.tgz","fileCount":81,"integrity":"sha512-IIHJESCLQhLv062Zk7W42FYXVTau1frs6lIBsMOsKcebatzyJghvjqV0QNGBWPR77lknEtOAI6retUxjTIEX1g==","signatures":[{"sig":"MEQCIF6vA6wS+2QBSHOg1CUwpmim8v+idnee+2sQfiYIn5m0AiANeBmN4dkmuBmdvgngUG56fKaGUb0tauViU/9BqzOpFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262961},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"95934d1c969b112d1d1cbdf13f9db0b9b5829cc6","mcpName":"io.github.DigitalDefiance/mcp-screenshot","scripts":{"test":"jest","build":"tsc","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^3.22.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_0.0.3_1764649565880_0.04695072052740756","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"0.0.4","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@0.0.4","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/src/cli.js"},"dist":{"shasum":"988a2f3418809354403b696e39b45649c8f3fa8d","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-0.0.4.tgz","fileCount":81,"integrity":"sha512-7FWnS1UgmxlwQyhnf8S/TcafdKo4M/QmEbnYRUhLTdKgmG27K6veMZDHVILrOlntd4G389cLXcSHIS93LnUWNg==","signatures":[{"sig":"MEUCIQCZjFXIi3a998Dwy9wQNwetA/PPCqlgOFIwXcV+VBbdiQIgHsih1gI5M5Kbsj9ITl/jZA9J12OND7jskwzOKMiYoVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262961},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"4bba0c1f29d151bd9d3120f365fe496166836e7a","mcpName":"io.github.DigitalDefiance/mcp-screenshot","scripts":{"test":"jest","build":"tsc","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^3.22.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_0.0.4_1764658948579_0.542219306626027","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.0.0","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.0.0","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/src/cli.js"},"dist":{"shasum":"62ef9f79b35c1efb74338e5ac564edc3aa117f42","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.0.0.tgz","fileCount":80,"integrity":"sha512-YYN801sh8V+4jLl7jB425WPyM1iPPHw5j0tFfHb6ZYIkr5F4AbuHZQAoo/854FonsSRFQitJnUXJpMMU8XdKJw==","signatures":[{"sig":"MEQCIEv9mawtOPDFnqcTDFZLFf1KG/H36nFSUzsKvpc3/Z6BAiBhF2w0NXKgf6ygA+eAeU9XRa0amfOzaf+6qQPvqgCEjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265007},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.DigitalDefiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","publish":"npm publish --access public","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^3.22.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.0.0_1764789755212_0.47706424035640627","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.0.1","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.0.1","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/src/cli.js"},"dist":{"shasum":"5b64409da07447647ff5f03b176531d29b75ddf4","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.0.1.tgz","fileCount":80,"integrity":"sha512-gdITfXq660d041KQnvpZuORDfT98+xh47xDObX3rAu4sU76bcwW2o5qIqcnZSKYrBg/KnRv336Q4dAniFkyuWw==","signatures":[{"sig":"MEUCICDtKvMJZ1wmFEyKSjwnjzcEvSntMPZn7HnDci4VU7WkAiEA4RU52YAw4/Mi5cdG3cikF5mFeQNubh8z8Ih3M3/7TwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265007},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.DigitalDefiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","publish":"npm publish --access public","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^3.22.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.0.1_1764790571097_0.12674247517510095","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.0.2","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.0.2","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/src/cli.js"},"dist":{"shasum":"0f7032696f5e993b69f9a10d51aa16e9bc7a3a7b","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.0.2.tgz","fileCount":80,"integrity":"sha512-zAG6g3yRIi2LPSE68sRzmKjtjVMIAVQsLeYD5izL5QId8a653LjpNIZgPiohyT90k0a45tmqAdk0p2y5J96JZw==","signatures":[{"sig":"MEQCIGx4yNXTWslAJH16z8+plVfk7tsyebH2LA4/efjp6v2sAiBk3sZ0zevzY6wA0in4Vf4yi5HfwUp5MMyzUKjRjYGJ3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266807},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.DigitalDefiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^3.22.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.0.2_1764874878309_0.10989201123593939","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.0.3","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.0.3","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/src/cli.js"},"dist":{"shasum":"ecf27da69b5baba6017c7f6ac73a363566caeb73","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.0.3.tgz","fileCount":80,"integrity":"sha512-tUD02+Dq6UI9e3Dzz/ks9IB+cPSiO1qSWeINWGRFDmSWRHw+LrjqVMYVuEpxs29/e9zpJ91AIrAQMTjY75LLGw==","signatures":[{"sig":"MEYCIQCdWJT5ABmXEEIB327pryPZRVPwhHtJKj1/rDgpZ6GecAIhALHM0MAy6qjy1J37guOKMFnLkZKLP/WzL0c4KcA5ivwI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266842},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^4.3.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.0.3_1764959926482_0.20224204079567376","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.0.4","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.0.4","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/src/cli.js"},"dist":{"shasum":"9a781e3e725f7d45be97f6f56b2a8636bcb552fe","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.0.4.tgz","fileCount":80,"integrity":"sha512-mceTNQ4Q8/aqsT5HuB+tJxow8Y524bFIxVSIrdVRvn5y4Vxy8tLsaF6ZhH6yYTuvwkflioOILWJF40VoQleXpA==","signatures":[{"sig":"MEYCIQDlmICDo5POS62t9oi7gtE9dErtgrQeHuboGx2VQ0/6kQIhAJdeGGHHMQepa5JhLctEfsN+XXsOf0y2fuzmiMcq4IWw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266870},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^4.3.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.0.4_1764969786237_0.47524301822907233","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.0.5","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.0.5","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/cli.js"},"dist":{"shasum":"d1db0279cd829e4e080388c6c10b77c36da33eae","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.0.5.tgz","fileCount":80,"integrity":"sha512-Yas4JleSnsA5mslYJRNOFF7qzA+hmgIM1cwI+obksOvwg0L3Rt82mYWjS9Q/7uiQViX/XjKvbovibbGKQ0nipg==","signatures":[{"sig":"MEUCIB/t5QHcxorR1cxfgsMlThSXNeadsxZPxGBrIwGowVvZAiEAl4XwmzpWZBUSbafrFkDfACH/tsntJtEi8fY4z8TYk2A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266866},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^4.3.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.0.5_1764970427374_0.2399235156997921","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.0.7","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.0.7","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/cli.js"},"dist":{"shasum":"96e318230972b424a696302fd82079b4d6c7b0f2","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.0.7.tgz","fileCount":83,"integrity":"sha512-8XjFQabCDMHa8g1BMSSVMq6Ymv1fAr8wrmJCGAisD4pvFa2sjEtpF0rJvl2Ce4BllDUUQFlUncnNBvB6LRKy5w==","signatures":[{"sig":"MEYCIQDAZIkb128GFeM3ROwS4ZJAkw/P0t3G0/pFggDD0subGgIhAKVT3+NmelwaA4I0eUZxStcONPUMSRk3sfPjDPHOHifu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288671},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","test:logged":"jest 2>&1 | ansifilter -o test.log","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^4.3.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.0.7_1765332105707_0.008956200809992376","host":"s3://npm-registry-packages-npm-production"}},"1.5.20":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.5.20","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.5.20","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/cli.js"},"dist":{"shasum":"38e79de149e889ff1c9358a0177c1d0a40a775ca","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.5.20.tgz","fileCount":83,"integrity":"sha512-pk4eSdT4CF1F/ze7NG0D1E86gUaJWE8+4uyJBDbnIcRULfX7xy8WirERqaZYHACjg7xv60aNwgXMdnQnrhKdeA==","signatures":[{"sig":"MEYCIQCidyBkEjz6dpOb+nhGs0+EKXbqZHDpNu9pLu5S6G/vpwIhAN2qL4hFodzKeJDCwHhY+oFokHAt1/Jk3VtaDDL/owOa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288673},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","test:logged":"jest 2>&1 | ansifilter -o test.log","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^4.3.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.5.20_1765332653723_0.47236068425242017","host":"s3://npm-registry-packages-npm-production"}},"1.5.21":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.5.21","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.5.21","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/cli.js"},"dist":{"shasum":"f59b94bea338563c156660dea2a9ad49c898085c","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.5.21.tgz","fileCount":83,"integrity":"sha512-U8YBRwvCE4qmrZfRKfJ/nTDje9HjdhidUfdfr/UpN4Kn+vEv+CPX5gAgw01JkhrbRHYni/t1xHWFUsq2xn+G1Q==","signatures":[{"sig":"MEUCIQDmQSx0/rZpUos4OX3VEuMx+DRRitTnVMYCCwSObPi23QIgEmdIN234jjSSYRPB5q4sCeHPXs1fpUlVaOr2J6w/TwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288673},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","test:logged":"jest 2>&1 | ansifilter -o test.log","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^4.3.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.5.21_1765378182082_0.6103177219441993","host":"s3://npm-registry-packages-npm-production"}},"1.5.22":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.5.22","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"url":"https://digitaldefiance.org","name":"Digital Defiance","email":"info@digitaldefiance.org"},"license":"MIT","_id":"@ai-capabilities-suite/mcp-screenshot@1.5.22","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"os":["darwin","linux","win32"],"bin":{"mcp-screenshot":"dist/cli.js"},"dist":{"shasum":"c917bb8e5d950441f7f8b797de0ad2dd545b57d1","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.5.22.tgz","fileCount":83,"integrity":"sha512-lUb39xOY5dYRLR8GiVB5GIdICyexj8GVqCwGHC1thtBDuKXus2uDTBKNz02P3Ak8MSzNxhIcbwVzQU/VVWmJxA==","signatures":[{"sig":"MEQCIFo/EBxoTNrp9Tx8FPf5mQeskpU2pYq3n1GX6TxLlV0uAiAIi2jGC1rU1Smz7D1bCkDqMiTTmzaA2SsTB+p+/liM7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288802},"main":"./dist/src/index.js","type":"commonjs","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js","@mcp-screenshot/source":"./src/index.ts"},"./package.json":"./package.json"},"mcpName":"io.github.Digital-Defiance/mcp-screenshot","scripts":{"lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","build":"tsc --build","start":"node dist/src/index.js","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","test:watch":"jest --watch","test:logged":"jest 2>&1 | ansifilter -o test.log","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"repository":{"url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","type":"git","directory":"packages/mcp-screenshot"},"_npmVersion":"11.6.3","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.1.13","sharp":"^0.33.5","tslib":"^2.3.0","active-win":"^8.1.0","tesseract.js":"^5.1.1","screenshot-desktop":"^1.12.7","node-window-manager":"^2.2.4","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","@swc/core":"^1.3.100","@swc/jest":"^0.2.29","fast-check":"^4.3.0","typescript":"^5.3.3","@types/jest":"^29.5.8","@types/node":"^20.10.6","@swc/helpers":"^0.5.0","@types/screenshot-desktop":"^1.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-screenshot_1.5.22_1765406343688_0.589486401402842","host":"s3://npm-registry-packages-npm-production"}},"1.5.23":{"name":"@ai-capabilities-suite/mcp-screenshot","version":"1.5.23","packageManager":"yarn@4.12.0","mcpName":"io.github.Digital-Defiance/mcp-screenshot","description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","main":"./dist/src/index.js","module":"./dist/src/index.js","types":"./dist/src/index.d.ts","bin":{"mcp-screenshot":"dist/cli.js"},"exports":{"./package.json":"./package.json",".":{"@mcp-screenshot/source":"./src/index.ts","types":"./dist/src/index.d.ts","import":"./dist/src/index.js","default":"./dist/src/index.js"}},"keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"author":{"name":"Digital Defiance","email":"info@digitaldefiance.org","url":"https://digitaldefiance.org"},"license":"MIT","homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","repository":{"type":"git","url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","directory":"packages/mcp-screenshot"},"bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"engines":{"node":">=18.0.0","npm":">=8.0.0"},"os":["darwin","linux","win32"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc --build","lint":"echo 'Linting skipped for mcp-screenshot'","test":"jest","test:logged":"jest 2>&1 | ansifilter -o test.log","test:watch":"jest --watch","test:e2e":"jest --testPathPattern=e2e.spec.ts","test:unit":"jest --testPathIgnorePatterns=e2e.spec.ts","start":"node dist/src/index.js","prepublishOnly":"npm run build && npm run test:unit","publish:public":"npm publish --access public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.23.0","active-win":"^8.1.0","node-window-manager":"^2.2.4","screenshot-desktop":"^1.12.7","sharp":"^0.33.5","tesseract.js":"^5.1.1","tslib":"^2.3.0","zod":"^4.1.13"},"devDependencies":{"@swc/core":"^1.3.100","@swc/helpers":"^0.5.0","@swc/jest":"^0.2.29","@types/jest":"^29.5.8","@types/node":"^20.10.6","@types/screenshot-desktop":"^1.15.0","fast-check":"^4.3.0","jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.3"},"type":"commonjs","_id":"@ai-capabilities-suite/mcp-screenshot@1.5.23","_nodeVersion":"22.21.1","_npmVersion":"11.6.3","dist":{"integrity":"sha512-pB3T55k3R1t7fg8ItOs3fSyYHliMie7ojYRuBgrNJQOsKBZzMCUTazbN6jEyEdWgmAzsco1AV4ZzdxYlC5lfuw==","shasum":"250173afc207ee5e09c435e7970caa2628ee22b7","tarball":"https://registry.npmjs.org/@ai-capabilities-suite/mcp-screenshot/-/mcp-screenshot-1.5.23.tgz","fileCount":83,"unpackedSize":288864,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD5JJxFAZOu/WmosXwSxw5rExW+G/N4RUJKtrz0BQ7RhAIhAI1sZ44WWixcXRlv61hGJRlwmeo7lfu/AYh7NT+dXPhA"}]},"_npmUser":{"name":"jessica-mulein","email":"jessica@mulein.com"},"directories":{},"maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-screenshot_1.5.23_1765564221482_0.41068780711375896"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-02T03:36:08.487Z","modified":"2025-12-12T18:30:21.881Z","0.0.2":"2025-12-02T03:36:08.819Z","0.0.3":"2025-12-02T04:26:06.118Z","0.0.4":"2025-12-02T07:02:28.781Z","1.0.0":"2025-12-03T19:22:35.435Z","1.0.1":"2025-12-03T19:36:11.287Z","1.0.2":"2025-12-04T19:01:18.470Z","1.0.3":"2025-12-05T18:38:46.627Z","1.0.4":"2025-12-05T21:23:06.387Z","1.0.5":"2025-12-05T21:33:47.525Z","1.0.7":"2025-12-10T02:01:45.856Z","1.5.20":"2025-12-10T02:10:53.898Z","1.5.21":"2025-12-10T14:49:42.225Z","1.5.22":"2025-12-10T22:39:03.837Z","1.5.23":"2025-12-12T18:30:21.668Z"},"bugs":{"url":"https://github.com/digital-defiance/ai-capabilities-suite/issues","email":"info@digitaldefiance.org"},"author":{"name":"Digital Defiance","email":"info@digitaldefiance.org","url":"https://digitaldefiance.org"},"license":"MIT","homepage":"https://github.com/digital-defiance/ai-capabilities-suite/tree/main/packages/mcp-screenshot#readme","keywords":["mcp","mcp-server","model-context-protocol","screenshot","screen-capture","image-processing","pii-masking","privacy","ai-agent","kiro","cross-platform"],"repository":{"type":"git","url":"git+https://github.com/digital-defiance/ai-capabilities-suite.git","directory":"packages/mcp-screenshot"},"description":"MCP server providing screenshot capture capabilities for AI agents with multi-format support, PII masking, and security controls","maintainers":[{"name":"jessica-mulein","email":"jessica@mulein.com"}],"readme":"# 📸 MCP ACS Screenshot Server\n\n[![NPM Version](https://img.shields.io/npm/v/@ai-capabilities-suite/mcp-screenshot)](https://www.npmjs.com/package/@ai-capabilities-suite/mcp-screenshot)\n[![GitHub Release](https://img.shields.io/github/v/release/digital-defiance/mcp-screenshot?label=Release&logo=github)](https://github.com/digital-defiance/mcp-screenshot/releases)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/digitaldefiance/mcp-screenshot)](https://hub.docker.com/r/digitaldefiance/mcp-screenshot)\n\n**Give AI agents visual superpowers to see, analyze, and document your applications like senior UX designers.**\n\nThis enterprise-grade MCP server transforms AI from code-only assistants into visual experts capable of UI analysis, accessibility auditing, documentation generation, and responsive design testing.\n\n## 🔗 Repository\n\nThis package is now maintained in its own repository: **[https://github.com/Digital-Defiance/mcp-screenshot](https://github.com/Digital-Defiance/mcp-screenshot)**\n\nThis repository is part of the [AI Capabilitites Suite](https://github.com/Digital-Defiance/ai-capabilitites-suite) on GitHub.\n\n## 🤔 Why Do AI Agents Need Visual Capabilities?\n\n**AI agents today are powerful but visually blind:**\n\n- ❌ Can read HTML/CSS but can't see actual layouts\n- ❌ Can suggest UI improvements without seeing the real user experience\n- ❌ Can't detect accessibility issues like poor contrast or spacing\n- ❌ Can't create visual documentation or bug reports\n- ❌ Can't analyze responsive design across different screen sizes\n\n**Result:** You're stuck manually creating screenshots, documentation, and visual analysis that AI should handle.\n\n---\n\n## 🎯 Revolutionary Use Cases\n\n### 📚 **\"AI, create professional documentation\"**\n\n```\nYou: \"Document the checkout process with screenshots\"\nAI: *Captures each step, analyzes UI flow*\nAI: \"Generated complete user guide with 6 annotated screenshots, highlighting key interactions and error states...\"\n```\n\n### 🔍 **\"AI, audit this page for accessibility\"**\n\n```\nYou: \"Check if this form meets WCAG guidelines\"\nAI: *Captures form, analyzes visual elements*\nAI: \"Found 4 accessibility issues: contrast ratio 2.1:1 (needs 4.5:1), missing focus indicators, touch targets too small...\"\n```\n\n### 🐛 **\"AI, create a detailed bug report\"**\n\n```\nYou: \"The mobile navigation is broken\"\nAI: *Captures different viewport sizes*\nAI: \"Created bug report with before/after screenshots, exact breakpoint where it fails, and CSS fix suggestions...\"\n```\n\n### 🎨 **\"AI, compare these design variations\"**\n\n```\nYou: \"Which hero section design works better?\"\nAI: *Captures both versions, analyzes visual hierarchy*\nAI: \"Version B has 28% better visual flow—CTA more prominent, text hierarchy clearer, better use of whitespace...\"\n```\n\n### 📱 **\"AI, test responsive design\"**\n\n```\nYou: \"How does this look on different screen sizes?\"\nAI: *Captures multiple viewport sizes*\nAI: \"Layout breaks at 768px—sidebar overlaps content. Here's the media query fix with visual proof...\"\n```\n\n---\n\n## ✨ What This Changes\n\n**Before:** AI worked blind, relying on code descriptions\n\n- ❌ \"The button looks wrong\" → AI guesses the issue\n- ❌ \"Create documentation\" → AI writes generic text\n- ❌ \"Check accessibility\" → AI only reviews code\n- ❌ \"Test responsive design\" → AI can't see actual breakpoints\n\n**After:** AI sees and analyzes your actual user interface\n\n- ✅ **Visual debugging** - AI identifies exact pixel-level issues\n- ✅ **Smart documentation** - AI creates guides with real screenshots and annotations\n- ✅ **Accessibility audits** - AI measures actual contrast ratios and spacing\n- ✅ **Responsive testing** - AI captures and compares different screen sizes\n- ✅ **Design analysis** - AI evaluates visual hierarchy and user experience\n- ✅ **Professional reports** - AI creates detailed visual evidence for bugs and improvements\n\n---\n\n## 🚀 Features\n\n- **Multi-format Support**: PNG, JPEG, WebP, BMP with configurable quality\n- **Flexible Capture**: Full screen, specific windows, or custom regions\n- **Privacy Protection**: PII masking with OCR-based detection for emails, phone numbers, and credit cards\n- **Security Controls**: Path validation, rate limiting, audit logging, and configurable policies\n- **Cross-platform**: Linux (X11/Wayland), macOS, Windows with native APIs\n- **Multi-monitor Support**: Capture from specific displays in multi-monitor setups\n- **Enterprise Security**: Window exclusion, audit logging, rate limiting\n- **AI-Optimized**: Structured responses perfect for AI agent workflows\n\n## Installation\n\n### NPM Installation\n\n```bash\nnpm install @ai-capabilities-suite/mcp-screenshot\n```\n\n### System Requirements\n\n**Linux:**\n\n- X11: `imagemagick` package (provides `import` command)\n- Wayland: `grim` package\n\n```bash\n# Ubuntu/Debian\nsudo apt-get install imagemagick grim\n\n# Fedora\nsudo dnf install ImageMagick grim\n\n# Arch\nsudo pacman -S imagemagick grim\n```\n\n**macOS:**\n\n- Built-in `screencapture` command (no additional dependencies)\n- Screen Recording permission required (System Preferences > Security & Privacy > Privacy > Screen Recording)\n\n**Windows:**\n\n- No additional dependencies required\n\n### MCP Configuration\n\nAdd to your MCP settings file (e.g., `~/.kiro/settings/mcp.json` or `.kiro/settings/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"screenshot\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mcp-screenshot/dist/cli.js\"],\n      \"env\": {\n        \"SCREENSHOT_ALLOWED_DIRS\": \"/home/user/screenshots,/tmp\",\n        \"SCREENSHOT_MAX_CAPTURES_PER_MIN\": \"60\",\n        \"SCREENSHOT_ENABLE_AUDIT_LOG\": \"true\"\n      }\n    }\n  }\n}\n```\n\n## 🛠️ 5 Professional MCP Tools\n\n**Purpose-built for AI agents to capture, analyze, and work with visual information:**\n\nThe server exposes 5 comprehensive MCP tools that enable AI agents to see and understand your applications:\n\n### 1. screenshot_capture_full\n\nCapture full screen or specific display.\n\n**Parameters:**\n\n- `display` (string, optional): Display ID to capture (defaults to primary display)\n- `format` (string, optional): Image format - `png`, `jpeg`, `webp`, or `bmp` (default: `png`)\n- `quality` (number, optional): Compression quality 1-100 for lossy formats (default: 90)\n- `savePath` (string, optional): File path to save screenshot (returns base64 if not provided)\n- `enablePIIMasking` (boolean, optional): Enable PII detection and masking (default: false)\n\n**Example:**\n\n```json\n{\n  \"name\": \"screenshot_capture_full\",\n  \"arguments\": {\n    \"format\": \"png\",\n    \"savePath\": \"/home/user/screenshots/desktop.png\",\n    \"enablePIIMasking\": true\n  }\n}\n```\n\n**Response:**\n\n```json\n{\n  \"status\": \"success\",\n  \"filePath\": \"/home/user/screenshots/desktop.png\",\n  \"metadata\": {\n    \"width\": 1920,\n    \"height\": 1080,\n    \"format\": \"png\",\n    \"fileSize\": 245678,\n    \"timestamp\": \"2024-12-01T10:30:00.000Z\",\n    \"display\": {\n      \"id\": \"0\",\n      \"name\": \"Primary Display\",\n      \"resolution\": { \"width\": 1920, \"height\": 1080 },\n      \"position\": { \"x\": 0, \"y\": 0 },\n      \"isPrimary\": true\n    },\n    \"piiMasking\": {\n      \"emailsRedacted\": 2,\n      \"phonesRedacted\": 1,\n      \"creditCardsRedacted\": 0,\n      \"customPatternsRedacted\": 0\n    }\n  }\n}\n```\n\n### 2. screenshot_capture_window\n\nCapture specific application window by ID or title pattern.\n\n**Parameters:**\n\n- `windowId` (string, optional): Window identifier (use `windowId` or `windowTitle`)\n- `windowTitle` (string, optional): Window title pattern to match (use `windowId` or `windowTitle`)\n- `includeFrame` (boolean, optional): Include window frame and title bar (default: false)\n- `format` (string, optional): Image format (default: `png`)\n- `quality` (number, optional): Compression quality 1-100 (default: 90)\n- `savePath` (string, optional): File path to save screenshot\n\n**Example:**\n\n```json\n{\n  \"name\": \"screenshot_capture_window\",\n  \"arguments\": {\n    \"windowTitle\": \"Chrome\",\n    \"includeFrame\": false,\n    \"format\": \"jpeg\",\n    \"quality\": 85\n  }\n}\n```\n\n**Response:**\n\n```json\n{\n  \"status\": \"success\",\n  \"data\": \"iVBORw0KGgoAAAANSUhEUgAA...\",\n  \"mimeType\": \"image/jpeg\",\n  \"metadata\": {\n    \"width\": 1280,\n    \"height\": 720,\n    \"format\": \"jpeg\",\n    \"fileSize\": 89234,\n    \"timestamp\": \"2024-12-01T10:31:00.000Z\",\n    \"window\": {\n      \"id\": \"12345\",\n      \"title\": \"Google Chrome\",\n      \"processName\": \"chrome\",\n      \"pid\": 5678,\n      \"bounds\": { \"x\": 100, \"y\": 100, \"width\": 1280, \"height\": 720 }\n    }\n  }\n}\n```\n\n### 3. screenshot_capture_region\n\nCapture specific rectangular region of the screen.\n\n**Parameters:**\n\n- `x` (number, required): X coordinate of top-left corner\n- `y` (number, required): Y coordinate of top-left corner\n- `width` (number, required): Width of region in pixels\n- `height` (number, required): Height of region in pixels\n- `format` (string, optional): Image format (default: `png`)\n- `quality` (number, optional): Compression quality 1-100 (default: 90)\n- `savePath` (string, optional): File path to save screenshot\n\n**Example:**\n\n```json\n{\n  \"name\": \"screenshot_capture_region\",\n  \"arguments\": {\n    \"x\": 100,\n    \"y\": 100,\n    \"width\": 800,\n    \"height\": 600,\n    \"format\": \"png\"\n  }\n}\n```\n\n**Response:**\n\n```json\n{\n  \"status\": \"success\",\n  \"data\": \"iVBORw0KGgoAAAANSUhEUgAA...\",\n  \"mimeType\": \"image/png\",\n  \"metadata\": {\n    \"width\": 800,\n    \"height\": 600,\n    \"format\": \"png\",\n    \"fileSize\": 123456,\n    \"timestamp\": \"2024-12-01T10:32:00.000Z\",\n    \"region\": {\n      \"x\": 100,\n      \"y\": 100,\n      \"width\": 800,\n      \"height\": 600\n    }\n  }\n}\n```\n\n### 4. screenshot_list_displays\n\nList all connected displays with resolution and position information.\n\n**Parameters:** None\n\n**Example:**\n\n```json\n{\n  \"name\": \"screenshot_list_displays\",\n  \"arguments\": {}\n}\n```\n\n**Response:**\n\n```json\n{\n  \"status\": \"success\",\n  \"displays\": [\n    {\n      \"id\": \"0\",\n      \"name\": \"Primary Display\",\n      \"resolution\": { \"width\": 1920, \"height\": 1080 },\n      \"position\": { \"x\": 0, \"y\": 0 },\n      \"isPrimary\": true\n    },\n    {\n      \"id\": \"1\",\n      \"name\": \"Secondary Display\",\n      \"resolution\": { \"width\": 1920, \"height\": 1080 },\n      \"position\": { \"x\": 1920, \"y\": 0 },\n      \"isPrimary\": false\n    }\n  ]\n}\n```\n\n### 5. screenshot_list_windows\n\nList all visible windows with title, process, and position information.\n\n**Parameters:** None\n\n**Example:**\n\n```json\n{\n  \"name\": \"screenshot_list_windows\",\n  \"arguments\": {}\n}\n```\n\n**Response:**\n\n```json\n{\n  \"status\": \"success\",\n  \"windows\": [\n    {\n      \"id\": \"12345\",\n      \"title\": \"Google Chrome\",\n      \"processName\": \"chrome\",\n      \"pid\": 5678,\n      \"bounds\": { \"x\": 100, \"y\": 100, \"width\": 1280, \"height\": 720 },\n      \"isMinimized\": false\n    },\n    {\n      \"id\": \"67890\",\n      \"title\": \"Terminal\",\n      \"processName\": \"gnome-terminal\",\n      \"pid\": 9012,\n      \"bounds\": { \"x\": 200, \"y\": 200, \"width\": 800, \"height\": 600 },\n      \"isMinimized\": false\n    }\n  ]\n}\n```\n\n## Security Configuration\n\nThe server enforces security policies to control screenshot operations. Configure via environment variables or security policy file.\n\n### Environment Variables\n\n- `SCREENSHOT_ALLOWED_DIRS`: Comma-separated list of allowed directories for saving screenshots\n- `SCREENSHOT_MAX_CAPTURES_PER_MIN`: Maximum captures per minute (default: 60)\n- `SCREENSHOT_ENABLE_AUDIT_LOG`: Enable audit logging (default: true)\n- `SCREENSHOT_BLOCKED_WINDOWS`: Comma-separated list of window title patterns to exclude\n\n### Security Policy File\n\nCreate a `security-policy.json` file:\n\n```json\n{\n  \"allowedDirectories\": [\"/home/user/screenshots\", \"/tmp/screenshots\"],\n  \"blockedWindowPatterns\": [\n    \".*Password.*\",\n    \".*1Password.*\",\n    \".*LastPass.*\",\n    \".*Bitwarden.*\",\n    \".*Authentication.*\"\n  ],\n  \"maxCapturesPerMinute\": 60,\n  \"enableAuditLog\": true\n}\n```\n\nLoad the policy when starting the server:\n\n```typescript\nimport { MCPScreenshotServer } from \"@ai-capabilities-suite/mcp-screenshot\";\nimport * as fs from \"fs\";\n\nconst policy = JSON.parse(fs.readFileSync(\"security-policy.json\", \"utf-8\"));\nconst server = new MCPScreenshotServer(policy);\nawait server.start();\n```\n\n## Error Handling\n\nAll tools return structured error responses with error codes and remediation suggestions.\n\n### Error Codes\n\n| Code                  | Description                              | Remediation                                                         |\n| --------------------- | ---------------------------------------- | ------------------------------------------------------------------- |\n| `PERMISSION_DENIED`   | Insufficient permissions to capture      | Grant Screen Recording permission (macOS) or check user permissions |\n| `INVALID_PATH`        | File path outside allowed directories    | Use a path within configured allowed directories                    |\n| `WINDOW_NOT_FOUND`    | Specified window does not exist          | Use `screenshot_list_windows` to find available windows             |\n| `DISPLAY_NOT_FOUND`   | Specified display does not exist         | Use `screenshot_list_displays` to find available displays           |\n| `UNSUPPORTED_FORMAT`  | Requested format not supported           | Use png, jpeg, webp, or bmp                                         |\n| `CAPTURE_FAILED`      | Screenshot capture failed                | Check permissions and try again                                     |\n| `RATE_LIMIT_EXCEEDED` | Too many captures in time window         | Wait before making additional requests                              |\n| `INVALID_REGION`      | Invalid region coordinates or dimensions | Ensure coordinates are non-negative and dimensions are positive     |\n| `OUT_OF_MEMORY`       | Insufficient memory for operation        | Reduce capture size or close other applications                     |\n| `ENCODING_FAILED`     | Image encoding failed                    | Try different format or reduce quality                              |\n| `FILE_SYSTEM_ERROR`   | File system operation failed             | Check permissions and disk space                                    |\n\n### Error Response Format\n\n```json\n{\n  \"status\": \"error\",\n  \"error\": {\n    \"code\": \"WINDOW_NOT_FOUND\",\n    \"message\": \"Window with ID '12345' not found\",\n    \"details\": {\n      \"windowId\": \"12345\"\n    },\n    \"remediation\": \"Verify the window exists and is visible. Use screenshot_list_windows to see available windows.\"\n  }\n}\n```\n\n## Troubleshooting\n\n### Linux Issues\n\n**Problem:** `import: command not found` or `grim: command not found`\n\n**Solution:** Install required packages:\n\n```bash\n# X11\nsudo apt-get install imagemagick\n\n# Wayland\nsudo apt-get install grim\n```\n\n**Problem:** Black screen or empty captures\n\n**Solution:** Check display server environment variables:\n\n```bash\necho $DISPLAY  # Should show :0 or similar for X11\necho $WAYLAND_DISPLAY  # Should show wayland-0 or similar for Wayland\n```\n\n### macOS Issues\n\n**Problem:** `PERMISSION_DENIED` error\n\n**Solution:** Grant Screen Recording permission:\n\n1. Open System Preferences > Security & Privacy > Privacy\n2. Select \"Screen Recording\" from the list\n3. Add your terminal application or Node.js to the allowed list\n4. Restart the application\n\n**Problem:** Retina display captures are double resolution\n\n**Solution:** This is expected behavior. Retina displays have 2x pixel density. Use the `width` and `height` from metadata to determine actual dimensions.\n\n### Windows Issues\n\n**Problem:** Capture fails with access denied\n\n**Solution:** Run the application with administrator privileges or check Windows Defender settings.\n\n**Problem:** Multi-monitor captures show wrong display\n\n**Solution:** Use `screenshot_list_displays` to get correct display IDs and positions.\n\n### General Issues\n\n**Problem:** `RATE_LIMIT_EXCEEDED` error\n\n**Solution:** The server limits captures to prevent abuse. Wait 60 seconds or adjust `maxCapturesPerMinute` in security policy.\n\n**Problem:** `INVALID_PATH` error when saving\n\n**Solution:** Ensure the save path is within allowed directories configured in security policy.\n\n**Problem:** PII masking not working\n\n**Solution:**\n\n- Ensure tesseract.js is properly installed\n- Check that `eng.traineddata` language file is available\n- PII masking requires OCR which may be slow on large images\n\n**Problem:** Large file sizes\n\n**Solution:**\n\n- Use JPEG format with lower quality (60-80) for smaller files\n- Use WebP format for best compression\n- Reduce capture region size if possible\n\n**Problem:** Out of memory errors\n\n**Solution:**\n\n- Capture smaller regions instead of full screen\n- Reduce quality settings\n- Close other applications to free memory\n- Use streaming for very large captures\n\n## Programmatic Usage\n\n### TypeScript/JavaScript\n\n```typescript\nimport { MCPScreenshotServer } from \"@ai-capabilities-suite/mcp-screenshot\";\n\n// Create server with custom security policy\nconst server = new MCPScreenshotServer({\n  allowedDirectories: [\"/home/user/screenshots\"],\n  maxCapturesPerMinute: 30,\n  enableAuditLog: true,\n  blockedWindowPatterns: [\".*Password.*\"],\n});\n\n// Start server\nawait server.start();\n\n// Server will handle MCP protocol requests via stdio\n// Keep process running\nprocess.on(\"SIGINT\", async () => {\n  await server.stop();\n  process.exit(0);\n});\n```\n\n### Direct Capture Engine Usage\n\n```typescript\nimport { createCaptureEngine } from \"@ai-capabilities-suite/mcp-screenshot\";\n\n// Create platform-specific capture engine\nconst engine = createCaptureEngine();\n\n// Capture full screen\nconst fullScreen = await engine.captureScreen();\n\n// List and capture windows\nconst windows = await engine.getWindows();\nconst window = windows.find((w) => w.title.includes(\"Chrome\"));\nif (window) {\n  const buffer = await engine.captureWindow(window.id, false);\n}\n\n// Capture region\nconst region = await engine.captureRegion(100, 100, 800, 600);\n\n// List displays\nconst displays = await engine.getDisplays();\nconsole.log(`Found ${displays.length} displays`);\n```\n\n## Development\n\nThis package is part of the AI Capabilities Suite monorepo.\n\n### Build\n\n```bash\nnpm run build\n```\n\n### Test\n\n```bash\n# Run all tests\nnpm test\n\n# Run specific test suites\nnpm test -- capture\nnpm test -- security\nnpm test -- property\n\n# Run with coverage\nnpm test -- --coverage\n```\n\n### Project Structure\n\n```\npackages/mcp-screenshot/\n├── src/\n│   ├── capture/          # Platform-specific capture engines\n│   ├── processing/       # Image processing and encoding\n│   ├── privacy/          # PII detection and masking\n│   ├── security/         # Security policy enforcement\n│   ├── storage/          # File operations\n│   ├── tools/            # MCP tool implementations\n│   ├── interfaces/       # TypeScript interfaces\n│   ├── types/            # Type definitions\n│   ├── errors/           # Error classes\n│   ├── server.ts         # MCP server implementation\n│   └── cli.ts            # CLI entry point\n├── README.md\n├── TESTING.md\n└── package.json\n```\n\n## Contributing\n\nContributions are welcome! Please ensure:\n\n- All tests pass (`npm test`)\n- Code follows TypeScript best practices\n- New features include tests and documentation\n- Security considerations are addressed\n\n## License\n\nMIT\n\n## Support\n\nFor issues and questions:\n\n- GitHub Issues: [Create an issue](https://github.com/your-org/ai-capabilities-suite/issues)\n- Documentation: See TESTING.md for testing guide\n- Security: Report security issues privately to <security@example.com>\n","readmeFilename":"README.md"}