{"_id":"@steipete/macos-automator-mcp","_rev":"14-ea6d6337b5d48fbc9fa8de46a6b5804e","name":"@steipete/macos-automator-mcp","dist-tags":{"latest":"0.4.5"},"versions":{"0.1.0":{"name":"@steipete/macos-automator-mcp","version":"0.1.0","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.1.0","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"ba0209f8c78b27427a8214e0d5f28338221e0162","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.1.0.tgz","fileCount":355,"integrity":"sha512-E1YNvavWCZ5EJr2hP1ihS7CTUfR6mM58veBWlpR1vwlSEFxZP36QE0RcXIb7Mnfen8iAreGYFSaH6Xb04g7Inw==","signatures":[{"sig":"MEYCIQDOaJnvC6oHpiDHGr/aHGufLAxa+S8RNP+bbVjLhf44XAIhAIO6VQmDBOQECz6grmvL+JtG1mlHAWW1ifc91pw0kYFv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3803256},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9e69419ac9c834e481f5d2f1f25bb699a9d807ae","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.1.0_1747340145127_0.11339992752733252","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@steipete/macos-automator-mcp","version":"0.1.1","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.1.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"6e1a2d770a327bf0560dc44622eaefef50d4f1cf","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.1.1.tgz","fileCount":161,"integrity":"sha512-VZjrH0bwcNUBjLNcTK68JmKB066je7kaHErg8dS6sJTGh7fvnRqn2ltNRRz0qAPlMKvB/+l5XNYdEKGvgkYWbg==","signatures":[{"sig":"MEYCIQDuYrd0fmh8eWoWZtPjNj1llglEnXWBjsXTlt1Cov0hdQIhAIvjJJLeGCUFc0GLuGKQgTa+kDjlwWDda972HwCQIPid","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462216},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d4392bbceb225af65832ffa2f80f5c2ae9df5a18","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.1.1_1747340677613_0.9577326811344302","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@steipete/macos-automator-mcp","version":"0.1.2","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.1.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"8cf5a0f62917d83c544c34cb998a6055d9879cb6","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.1.2.tgz","fileCount":161,"integrity":"sha512-RSQ3bLyVDHCgSflLFk5YDdC1xaPaDeq+daE6B0jAalq0hD7UhONQT+Lez9lO7NmLq3JK6a5PWJ6SJyOjaxn/yA==","signatures":[{"sig":"MEUCIHImtrj9a7TkaFJ2y0WiwqCg3EJIqV8lRi5s6Fee1z6+AiEA+4IoTrdCxVorECrzV5OTFjcMqGgwCr7yVHIw1LKq9EE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463946},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"a3eee29510cd4e464ed98340b46a3916c850786a","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.1.2_1747341003743_0.8640507211553334","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@steipete/macos-automator-mcp","version":"0.1.3","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.1.3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"6ec75e5130d80a501f216a61c9a9693991bd8911","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.1.3.tgz","fileCount":161,"integrity":"sha512-myR4Tuw1IoWO0rw8sDtXCT3K3/SvpaO7NnIWW11M+eI6Fvy4IUE2FvJlRlH+TI11mnZzJoC2oozcXjMB95CyhA==","signatures":[{"sig":"MEQCIFOkmQO1/OuxLdPQb3aOHjYS0iprMVOItEOUc7leaRMHAiAO9yoOlgKzY+61K2iVhEMWXJjgrfsvO3fR7W8G5JLwJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464203},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"1ffa936d4472ea953e9088065f720207ecf5c83c","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.1.3_1747341417387_0.13629715901661688","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@steipete/macos-automator-mcp","version":"0.1.4","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.1.4","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"5de537fe5c1a3dab6de440b7b3e68bd62bb411b5","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.1.4.tgz","fileCount":161,"integrity":"sha512-N7IaWzrPElbmLN8O64UJ5zJufbiQA7obUmIxYQBpSMflXwW4Atu76BflqOXwQnh09Jqe/V3WWRXXGG5WwTWvqQ==","signatures":[{"sig":"MEYCIQC8MZc6v7lHRMmJqq3v4w0Lk4COLsCGnIrO/yyFbQG5gwIhAJBrcco4FaIhvH7+KdDd3hAOhCtDcoSNaZ0tE1j8iDBS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":464203},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"268265aa50b067e51935f918f2ecce1d845f959d","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.1.4_1747341581148_0.8304780222029144","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@steipete/macos-automator-mcp","version":"0.2.0","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.2.0","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"0883c1589e7f59f1d7d66db23037c62762fec196","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.2.0.tgz","fileCount":506,"integrity":"sha512-wR600ckjHFbx/n02b6NDBCjg+UWQFrFxdS177bVUvJNtYk03NKAca6mPLEuCnhXBzJsR30IfGkVE5JO15BMifw==","signatures":[{"sig":"MEYCIQC5V4WA4hs2+BpDtdLedjo8BC31Mm9vo5t9iKAQV6asyQIhAMEsaDcrLUpEEAtoCJSZ2FeiYeNVTGVJWWWMgg8y3cdo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3073948},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"09954d671e4c3c85ef6465b5d9105d964659a0ca","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.2.0_1747363745085_0.6885273182184724","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@steipete/macos-automator-mcp","version":"0.2.1","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.2.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"13643eb8493d32ae1ea2378c7688df0fd52fad3f","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.2.1.tgz","fileCount":506,"integrity":"sha512-59/hm67EX04x5M6IIBSB/Vu64+Uu5TSR4CwcDWRVlGlt2+Is54FSwhAMvXNXKp9bZ9hlrFjmXfu079dhPPrZhA==","signatures":[{"sig":"MEQCIBm/8qt9zpE5miJEaT22AopHw6KPqglF9WpJiHvWRKymAiBj7BwV89stvoiVfaygOKkTjwVyJlCztnxLYQEARo8aug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3077091},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"46236f6d09110891d82d89571e160208373289e3","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.2.1_1747380073581_0.6413183151661215","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@steipete/macos-automator-mcp","version":"0.2.2","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.2.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"8e17e644f146cedc6245cfa44224c20863589081","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.2.2.tgz","fileCount":506,"integrity":"sha512-lEucevwwz4EzTsjE0aF1U6kFiWlhttXcnCAjRvmAsfy163mPw5GvwbXyWvni3CvvP8kxiVrgoRvH+lGCTdqKYQ==","signatures":[{"sig":"MEYCIQCMnbtFnBNISL5UTWYBOyBc/LQ6z+vkb/pkrifwZePXhgIhAPjOhzeU5z598DNrnVmbYNyu07zzDwUDoJCfJO+C4lSR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3079590},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"852d5582d0762c3eb391404b12ffc17514bbb55a","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.18","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.2.2_1747387850383_0.40518892464248357","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@steipete/macos-automator-mcp","version":"0.3.0","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.3.0","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"cb13a11e1f9b2f2ce28650cea88e6a9d0c373751","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.3.0.tgz","fileCount":533,"integrity":"sha512-OF8x5RlhLWAtWtQiFmpn4OGFMzd0HTaHzXUHJSqj0z1/pjP9eNLdXvnH+8NdplPzhWy9hU87iAvaU6FnOMBCIw==","signatures":[{"sig":"MEUCIEYAGRvD4pF6QUtByNobhLSdoHA3i/TOqbqUcKwfbydFAiEA3mva1dbzufxLleIFUUuOkkwfVjkpSy7NmjVxRb3u9UQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3070837},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"34c510fad3e1406e292080ce0b4dc655f8a6192a","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"npx playwright install --with-deps && vitest run","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","vitest":"^3.1.3","prettier":"^3.5.3","playwright":"^1.52.0","typescript":"^5.8.3","@types/node":"^22.15.18","@playwright/test":"^1.52.0","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.3.0_1747613115258_0.3105974121599906","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@steipete/macos-automator-mcp","version":"0.4.0","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.4.0","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"4726823daf76d876022365ecb13ddc98bc69348e","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.4.0.tgz","fileCount":533,"integrity":"sha512-92FwA4PjaakBtFs0cvLfdJVrn6ig5HeEiBdEZvkR6DLI0VgWRc1XNNrGcOgpwK+OrQtaEvhJhZAGAOuzZNyHoQ==","signatures":[{"sig":"MEYCIQDu2xUOIvKHgpaV9AFkDHaScP5dDygTUEo6ziAPCR7tGQIhAL2TLXbrMhJY5sKVu7VX1c7uOJLw4UWEUL+4HJiSeI1v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3073089},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3a93696592ae6aef3398c2ee2a81e732f577c843","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"npx playwright install --with-deps && vitest run","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","vitest":"^3.1.3","prettier":"^3.5.3","playwright":"^1.52.0","typescript":"^5.8.3","@types/node":"^22.15.18","@playwright/test":"^1.52.0","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.4.0_1747622256768_0.7733024701258411","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@steipete/macos-automator-mcp","version":"0.4.1","keywords":["mcp","applescript","jxa","macos","automation"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.4.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"b7d87d3c825941a71e122e2e21e9c5b8761118ba","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.4.1.tgz","fileCount":533,"integrity":"sha512-5Wl+Syk+zUaMCC8nnwwMESShxqb2VL1V7RKigbXdoj7NFeOge9I4NauVK2FCmfXdLHkZPCuauqBCexaWI0uP+g==","signatures":[{"sig":"MEQCIAaZ77wAs5jHGvuA7cqtwvnjCwRQQmPy6V1b722zJk0AAiAh+Ulv9o8jMln2yAJRXGF8WBW7yJEjx0RM94N0DxlhkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3073089},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"acb45e4e58260943df433bcb4c738f77238cadb5","scripts":{"dev":"tsx src/server.ts","lint":"eslint . --ext .ts","test":"npx playwright install --with-deps && vitest run","build":"tsc","start":"node dist/server.js","format":"prettier --write \"src/**/*.ts\" \"*.md\"","validate":"tsx scripts/validate-kb.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"zod":"^3.24.4","fuse.js":"^7.1.0","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.11.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","eslint":"^9.26.0","vitest":"^3.1.3","prettier":"^3.5.3","playwright":"^1.52.0","typescript":"^5.8.3","@types/node":"^22.15.18","@playwright/test":"^1.52.0","typescript-eslint":"^8.32.1","eslint-config-prettier":"^9.1.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.4.1_1747623304358_0.7771431029891802","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@steipete/macos-automator-mcp","version":"0.4.2","keywords":["applescript","automation","jxa","macos","mcp"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.4.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"593a6547dd4219b400d0fed581dd4fa1b53d69dd","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.4.2.tgz","fileCount":533,"integrity":"sha512-vRydSPlHzcH+u/KVcLRL+4S956RIQqegGLCA1zjI4fI1iJJQe7/i88HV3Z1UL7UqbC/BX1KmstZfLSGUcBpuKw==","signatures":[{"sig":"MEQCIEGNpV/zqjMnXmVoaNJrnokhT/C/dX6KgKyUTLLG9ArBAiA/VMhah0p2/hN8Pw0WUCgLCaSYQptKS/eAoo7VsetKtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3000794},"main":"dist/server.js","type":"module","_from":"file:steipete-macos-automator-mcp-0.4.2.tgz","engines":{"node":">=24.0.0"},"scripts":{"dev":"tsx src/server.ts","lint":"pnpm format:check && oxlint --deny-warnings src tests scripts","test":"vitest run","build":"tsgo","start":"node dist/server.js","format":"oxfmt --write .","validate":"tsx scripts/validate-kb.ts","typecheck":"tsgo --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_resolved":"/private/var/folders/m_/4htdcqkn5cjdh0cs4psnxs5w0000gn/T/6a96f92a27b71da6405d5404464d36d1/steipete-macos-automator-mcp-0.4.2.tgz","_integrity":"sha512-vRydSPlHzcH+u/KVcLRL+4S956RIQqegGLCA1zjI4fI1iJJQe7/i88HV3Z1UL7UqbC/BX1KmstZfLSGUcBpuKw==","repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^4.4.3","fuse.js":"^7.4.2","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","oxfmt":"^0.54.0","oxlint":"^1.69.0","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","@typescript/native-preview":"7.0.0-dev.20260609.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.4.2_1781153746746_0.8900653928753102","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@steipete/macos-automator-mcp","version":"0.4.3","keywords":["applescript","automation","jxa","macos","mcp"],"author":{"name":"steipete"},"license":"MIT","_id":"@steipete/macos-automator-mcp@0.4.3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"bin":{"macos-automator-mcp":"dist/server.js"},"dist":{"shasum":"c4b301a4898d600d1f60e2b44821bc4e651574aa","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.4.3.tgz","fileCount":533,"integrity":"sha512-spf5H8ycUL+Sp+voXuofpb4MpFk7D+3xYuVHWmxspydxuXZnuO8uRO3LuBKhWt8UtvTumFYRJP1aYe5ZR+61jA==","signatures":[{"sig":"MEYCIQC0DnwQbIjbeZ5nd2mb9ake2K7oen03iBX5fM8Z6lQw8gIhAI4fLQzXq4o9UScIAhWSpMJ/szg+MuCOQiQ8gQ6hxGnv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3000794},"main":"dist/server.js","type":"module","_from":"file:steipete-macos-automator-mcp-0.4.3.tgz","engines":{"node":">=24.0.0"},"scripts":{"dev":"tsx src/server.ts","lint":"pnpm format:check && oxlint --deny-warnings src tests scripts","test":"vitest run","build":"tsgo","start":"node dist/server.js","format":"oxfmt --write .","validate":"tsx scripts/validate-kb.ts","typecheck":"tsgo --noEmit","format:check":"oxfmt --check ."},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_resolved":"/private/var/folders/m_/4htdcqkn5cjdh0cs4psnxs5w0000gn/T/886fd8a08b55c993e5ec526a60f8bc14/steipete-macos-automator-mcp-0.4.3.tgz","_integrity":"sha512-spf5H8ycUL+Sp+voXuofpb4MpFk7D+3xYuVHWmxspydxuXZnuO8uRO3LuBKhWt8UtvTumFYRJP1aYe5ZR+61jA==","repository":{"url":"git+https://github.com/steipete/macos-automator-mcp.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP Server to execute AppleScript and JXA on macOS.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^4.4.3","fuse.js":"^7.4.2","gray-matter":"^4.0.3","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","oxfmt":"^0.55.0","oxlint":"^1.69.0","vitest":"^4.1.8","typescript":"^6.0.3","@types/node":"^25.9.2","@typescript/native-preview":"7.0.0-dev.20260618.1"},"_npmOperationalInternal":{"tmp":"tmp/macos-automator-mcp_0.4.3_1781860042823_0.39797019081834195","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@steipete/macos-automator-mcp","version":"0.4.5","description":"MCP Server to execute AppleScript and JXA on macOS.","keywords":["applescript","automation","jxa","macos","mcp"],"homepage":"https://github.com/steipete/macos-automator-mcp#readme","bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"license":"MIT","author":{"name":"steipete"},"repository":{"type":"git","url":"git+https://github.com/steipete/macos-automator-mcp.git"},"bin":{"macos-automator-mcp":"dist/server.js"},"type":"module","main":"dist/server.js","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","fuse.js":"^7.4.2","gray-matter":"^4.0.3","zod":"^4.4.3"},"devDependencies":{"@types/node":"^26.1.0","@typescript/native-preview":"7.0.0-dev.20260701.1","oxfmt":"^0.57.0","oxlint":"^1.72.0","tsx":"^4.22.4","typescript":"^6.0.3","vitest":"^4.1.9"},"engines":{"node":">=24.0.0"},"scripts":{"build":"tsgo","dev":"tsx src/server.ts","start":"node dist/server.js","lint":"pnpm format:check && oxlint --deny-warnings src tests scripts","format":"oxfmt --write .","validate":"tsx scripts/validate-kb.ts","test":"vitest run","typecheck":"tsgo --noEmit","format:check":"oxfmt --check ."},"_id":"@steipete/macos-automator-mcp@0.4.5","_integrity":"sha512-1p1ChTz1h+iSWU79Gnw+IYHz0yOU45Qknkp6q01Xy8OUCqcGwp7wVkE7J/sYLTkLyQ8xcwvaspsWK+eqOXyDog==","_resolved":"/private/var/folders/m_/4htdcqkn5cjdh0cs4psnxs5w0000gn/T/cd4bfbed99961362238bc2094f51ad50/steipete-macos-automator-mcp-0.4.5.tgz","_from":"file:steipete-macos-automator-mcp-0.4.5.tgz","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-1p1ChTz1h+iSWU79Gnw+IYHz0yOU45Qknkp6q01Xy8OUCqcGwp7wVkE7J/sYLTkLyQ8xcwvaspsWK+eqOXyDog==","shasum":"dd2e0891848e7e52f13029b4f0fd26a98d36450a","tarball":"https://registry.npmjs.org/@steipete/macos-automator-mcp/-/macos-automator-mcp-0.4.5.tgz","fileCount":533,"unpackedSize":3000806,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDaepYdfvXY5Zl0oAQKvi4dF5SPP+4enAKQ9y2v7UvmtAIhANJILU1LzZGHuHN27ovNEdYjQ17tg22A5K3LulXx2DST"}]},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"directories":{},"maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/macos-automator-mcp_0.4.5_1782977338328_0.9003641505227795"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-15T20:15:45.029Z","modified":"2026-07-02T07:28:58.638Z","0.1.0":"2025-05-15T20:15:45.456Z","0.1.1":"2025-05-15T20:24:37.878Z","0.1.2":"2025-05-15T20:30:03.925Z","0.1.3":"2025-05-15T20:36:57.649Z","0.1.4":"2025-05-15T20:39:41.344Z","0.2.0":"2025-05-16T02:49:05.368Z","0.2.1":"2025-05-16T07:21:13.825Z","0.2.2":"2025-05-16T09:30:50.649Z","0.3.0":"2025-05-19T00:05:15.509Z","0.4.0":"2025-05-19T02:37:37.035Z","0.4.1":"2025-05-19T02:55:04.575Z","0.4.2":"2026-06-11T04:55:46.995Z","0.4.3":"2026-06-19T09:07:23.018Z","0.4.5":"2026-07-02T07:28:58.511Z"},"bugs":{"url":"https://github.com/steipete/macos-automator-mcp/issues"},"author":{"name":"steipete"},"license":"MIT","homepage":"https://github.com/steipete/macos-automator-mcp#readme","keywords":["applescript","automation","jxa","macos","mcp"],"repository":{"type":"git","url":"git+https://github.com/steipete/macos-automator-mcp.git"},"description":"MCP Server to execute AppleScript and JXA on macOS.","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"readme":"# macOS Automator MCP 🤖 - Your Friendly Neighborhood RoboScripter™\n\n![macOS Automator MCP Server](assets/logo.png)\n\n## 🎯 Mission Control: Teaching Robots to Click Buttons Since 2024\n\nWelcome to the automated future where your Mac finally does what you tell it to! This Model Context Protocol (MCP) server transforms your AI assistant into a silicon-based intern who actually knows AppleScript and JavaScript for Automation (JXA).\n\nNo more copy-pasting scripts like a caveman - let the robots handle the robot work! Our knowledge base contains over 200 pre-programmed automation sequences, loaded faster than you can say \"Hey Siri, why don't you work like this?\"\n\n## 🚀 Why Let Robots Run Your Mac?\n\n- **Remote Control Reality**: Execute AppleScript/JXA scripts via MCP - it's like having a tiny robot inside your Mac!\n- **Knowledge Base of Power**: 200+ pre-built automation recipes. From \"toggle dark mode\" to \"extract all URLs from Safari\" - we've got your robot needs covered.\n- **App Whisperer**: Control any macOS application programmatically. Make Finder dance, Safari sing, and Terminal... well, terminate things.\n- **AI Workflow Integration**: Connect your Mac to the AI revolution. Your LLM can now actually DO things instead of just talking about them!\n\n## 🔧 Robot Requirements (Prerequisites)\n\n- **Node.js** (version >=24.0.0) - Because even robots need a runtime\n- **macOS** - Sorry Windows users, this is an Apple-only party 🍎\n- **⚠️ CRITICAL: Permission to Automate (Your Mac's Trust Issues):**\n  - The application running THIS MCP server (e.g., Terminal, your Node.js application) requires explicit user permissions on the macOS machine where the server is running.\n  - **Automation Permissions:** To control other applications (Finder, Safari, Mail, etc.).\n    - Go to: System Settings > Privacy & Security > Automation.\n    - Find the application running the server (e.g., Terminal) in the list.\n    - Ensure it has checkboxes ticked for all applications it needs to control.\n    - See example: `docs/automation-permissions-example.png` (placeholder image).\n  - **Accessibility Permissions:** For UI scripting via \"System Events\" (e.g., simulating clicks, keystrokes).\n    - Go to: System Settings > Privacy & Security > Accessibility.\n    - Add the application running the server (e.g., Terminal) to the list and ensure its checkbox is ticked.\n  - First-time attempts to control a new application or use accessibility features may still trigger a macOS confirmation prompt, even if pre-authorized. The server itself cannot grant these permissions.\n\n## 🏃‍♂️ Quick Start: Release the Robots!\n\nThe easiest way to deploy your automation army is via `npx`. No installation needed - just pure robot magic!\n\nAdd this to your MCP client's `mcp.json` and watch the automation begin:\n\n```json\n{\n  \"mcpServers\": {\n    \"macos_automator\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"--package\", \"@steipete/macos-automator-mcp\", \"macos-automator-mcp\"]\n    }\n  }\n}\n```\n\nIf your MCP client has a VS Code-style package installer field, enter `@steipete/macos-automator-mcp` without `@latest`. The MCP config above still resolves the current npm `latest` version, while avoiding package-name validation issues and npm's scoped-package bin inference.\n\n### 🛠️ Robot Workshop Mode (Local Development)\n\nWant to tinker with the robot's brain? Clone the repo and become a robot surgeon!\n\n1.  **Clone the repository:**\n\n    ```bash\n    git clone https://github.com/steipete/macos-automator-mcp.git\n    cd macos-automator-mcp\n    pnpm install # Ensure dependencies are installed\n    ```\n\n2.  **Configure your MCP client:**\n    Update your MCP client's configuration to point to the absolute path of the `start.sh` script within your cloned repository.\n\n    Example `mcp.json` configuration snippet:\n\n    ```json\n    {\n      \"mcpServers\": {\n        \"macos_automator_local\": {\n          \"command\": \"/absolute/path/to/your/cloned/macos-automator-mcp/start.sh\",\n          \"env\": {\n            \"LOG_LEVEL\": \"DEBUG\"\n          }\n        }\n      }\n    }\n    ```\n\n    **Important:** Replace `/absolute/path/to/your/cloned/macos-automator-mcp/start.sh` with the correct absolute path on your system.\n\n    The `start.sh` script will automatically use `tsx` to run the TypeScript source directly if a compiled version is not found, or run the compiled version from `dist/` if available. It respects the `LOG_LEVEL` environment variable.\n\n    **Note for Developers:** The `start.sh` script, particularly if modified to remove any pre-existing compiled `dist/server.js` before execution (e.g., by adding `rm -f dist/server.js`), is designed to ensure you are always running the latest TypeScript code from the `src/` directory via `tsx`. This is ideal for development to prevent issues with stale builds. For production deployment (e.g., when published to npm), a build process would typically create a definitive `dist/server.js` which would then be the entry point for the published package.\n\n## 🤖 Robot Toolbox\n\n### 1. `execute_script` - The Script Launcher 9000\n\nYour robot's primary weapon for macOS domination. Feed it AppleScript or JXA, and watch the magic happen!\nScripts can be provided as inline content (`script_content`), an absolute file path (`script_path`), or by referencing a script from the built-in knowledge base using its unique `kb_script_id`.\n\n**Script Sources (mutually exclusive):**\n\n- `script_content` (string): Raw script code.\n- `script_path` (string): Absolute POSIX path to a script file (e.g., `.applescript`, `.scpt`, `.js`).\n- `kb_script_id` (string): The ID of a pre-defined script from the server's knowledge base. Use the `get_scripting_tips` tool to discover available script IDs and their functionalities.\n\n**Language Specification:**\n\n- `language` (enum: 'applescript' | 'javascript', optional): Specify the language.\n  - If using `kb_script_id`, the language is inferred from the knowledge base script.\n  - If using `script_content` or `script_path` and `language` is omitted, it defaults to 'applescript'.\n\n**Passing Inputs to Scripts:**\n\n- `arguments` (array of strings, optional):\n  - For `script_path`: Passed as standard arguments to the script's `on run argv` (AppleScript) or `run(argv)` (JXA) handler.\n  - For `kb_script_id`: Used if the pre-defined script accepts positional string arguments (e.g., `${arguments[0]}` or the legacy `--MCP_ARG_1`). Check the script's `argumentsPrompt` from `get_scripting_tips`.\n- `input_data` (JSON object, optional):\n  - Primarily for `kb_script_id` scripts designed to accept named, structured inputs.\n  - Values replace placeholders in the script (e.g., `${inputData.yourKeyName}` or the legacy `--MCP_INPUT:yourKeyName`). See `argumentsPrompt` from `get_scripting_tips`.\n  - Values (strings, numbers, booleans, simple arrays/objects) are converted to their AppleScript literal equivalents.\n\n**Other Options:**\n\n- `timeout_seconds` (integer, optional, default: 60): Maximum execution time.\n- `output_format_mode` (enum, optional, default: 'auto'): Controls `osascript` output formatting flags.\n  - `'auto'`: (Default) Uses human-readable for AppleScript (`-s h`), and direct output (no `-s` flags) for JXA.\n  - `'human_readable'`: Forces `-s h` (human-readable output, mainly for AppleScript).\n  - `'structured_error'`: Forces `-s s` (structured error reporting, mainly for AppleScript).\n  - `'structured_output_and_error'`: Forces `-s ss` (structured output for main result and errors, mainly for AppleScript).\n  - `'direct'`: No `-s` flags are used (recommended for JXA, also the behavior for JXA in `auto` mode).\n- `include_executed_script_in_output` (boolean, optional, default: false): If true, the output will include the full script content (after any placeholder substitutions for knowledge base scripts) or the script path that was executed. This is appended as an additional text part in the output content array.\n- `include_substitution_logs` (boolean, optional, default: false): If true, detailed logs of placeholder substitutions performed on knowledge base scripts are included in the output. This is useful for debugging how `input_data` and `arguments` are processed and inserted into the script. The logs are prepended to the script output on success or appended to the error message on failure.\n- `report_execution_time` (boolean, optional, default: false): If `true`, an additional message with the formatted script execution time will be included in the response content array.\n\n**SECURITY WARNING & MACOS PERMISSIONS:** (Same critical warnings as before about arbitrary script execution and macOS Automation/Accessibility permissions).\n\n**Examples:**\n\n- (Existing examples for inline/file path remain relevant)\n- **Using Knowledge Base Script by ID:**\n  ```json\n  {\n    \"toolName\": \"execute_script\",\n    \"input\": {\n      \"kb_script_id\": \"safari_get_active_tab_url\",\n      \"timeout_seconds\": 10\n    }\n  }\n  ```\n- **Using Knowledge Base Script by ID with `input_data`:**\n  ```json\n  {\n    \"toolName\": \"execute_script\",\n    \"input\": {\n      \"kb_script_id\": \"finder_create_folder_at_path\",\n      \"input_data\": {\n        \"folder_name\": \"New MCP Folder\",\n        \"parent_path\": \"~/Desktop\"\n      }\n    }\n  }\n  ```\n\n**Response Format:**\n\nThe `execute_script` tool returns a response in the following format:\n\n```typescript\n{\n  content: Array<{\n    type: 'text';\n    text: string;\n  }>;\n  isError?: boolean;\n}\n```\n\n- `content`: An array of text content items containing the script output\n- `isError`: (boolean, optional) Set to `true` when the script execution produced an error. This flag is set when:\n  - The script output (stdout) starts with \"Error\" (case-insensitive)\n  - This helps clients easily determine if the execution failed without parsing the output text\n\n**Example Response (Success):**\n\n```json\n{\n  \"content\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"Script executed successfully\"\n    }\n  ]\n}\n```\n\n**Example Response (Error):**\n\n```json\n{\n  \"content\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"Error: Cannot find application 'Safari'\"\n    }\n  ],\n  \"isError\": true\n}\n```\n\n### 2. `get_scripting_tips` - The Robot's Encyclopedia\n\nYour personal automation librarian! Searches through 200+ pre-built scripts faster than you can Google \"how to AppleScript\". Perfect for when your robot needs inspiration.\n\n**Arguments:**\n\n- `list_categories` (boolean, optional, default: false): If true, returns only the list of available knowledge base categories and their descriptions. Overrides other parameters.\n- `category` (string, optional): Filters tips by a specific category ID (e.g., \"finder\", \"safari\").\n- `search_term` (string, optional): Searches for a keyword within tip titles, descriptions, script content, keywords, or IDs.\n- `refresh_database` (boolean, optional, default: false): If true, forces a reload of the entire knowledge base from disk before processing the request. This is useful during development if you are actively modifying knowledge base files and want to ensure the latest versions are used without restarting the server.\n- `limit` (integer, optional, default: 10): Maximum number of results to return.\n\n**Output:**\n\n- Returns a Markdown formatted string containing the requested tips, including their title, description, script content, language, runnable ID (if applicable), argument prompts, and notes.\n\n**Example Usage:**\n\n- List all categories:\n  `{ \"toolName\": \"get_scripting_tips\", \"input\": { \"list_categories\": true } }`\n- Get tips for \"safari\" category:\n  `{ \"toolName\": \"get_scripting_tips\", \"input\": { \"category\": \"safari\" } }`\n- Search for tips related to \"clipboard\":\n  `{ \"toolName\": \"get_scripting_tips\", \"input\": { \"search_term\": \"clipboard\" } }`\n\n## 🎮 Robot Playground: Cool Things Your New Robot Friend Can Do\n\n- **Application Control (Teaching Apps Who's Boss):**\n  - Get the current URL from Safari: `{ \"input\": { \"script_content\": \"tell application \\\"Safari\\\" to get URL of front document\" } }`\n  - Get subjects of unread emails in Mail: `{ \"input\": { \"script_content\": \"tell application \\\"Mail\\\" to get subject of messages of inbox whose read status is false\" } }`\n- **File System Operations (Digital Housekeeping):**\n  - List files on the Desktop: `{ \"input\": { \"script_content\": \"tell application \\\"Finder\\\" to get name of every item of desktop\" } }`\n  - Create a new folder: `{ \"input\": { \"script_content\": \"tell application \\\"Finder\\\" to make new folder at desktop with properties {name:\\\"Robot's Secret Stash\\\"}\" } }`\n- **System Interactions (Mac Mind Control):**\n  - Display a system notification: `{ \"input\": { \"script_content\": \"display notification \\\"🤖 Beep boop! Task complete!\\\" with title \\\"Robot Report\\\"\" } }`\n  - Set system volume: `{ \"input\": { \"script_content\": \"set volume output volume 50\" } }` (0-100)\n  - Get current clipboard content: `{ \"input\": { \"script_content\": \"the clipboard\" } }`\n\n## 🔧 When Robots Rebel (Troubleshooting)\n\n- **\"Access Denied\" Drama:** Your robot lacks permissions! Check System Settings > Privacy & Security. Give your Terminal the keys to the kingdom.\n- **Script Syntax Sadness:** Even robots make typos. Test scripts in Script Editor first - it's like spell-check for automation.\n- **Timeout Tantrums:** Some tasks take time. Increase `timeout_seconds` if your robot needs more than 60 seconds to complete its mission.\n- **File Not Found Fiasco:** Robots need absolute paths, not relative ones. No shortcuts in robot land!\n- **JXA Output Oddities:** JavaScript robots are picky. Use `output_format_mode: 'direct'` or let `'auto'` mode handle it.\n\n## 🎛️ Robot Control Panel (Configuration)\n\nFine-tune your robot's behavior with these environment variables:\n\n- **`LOG_LEVEL`**: How chatty should your robot be?\n  - `DEBUG`: Robot tells you EVERYTHING (TMI mode)\n  - `INFO`: Normal robot chatter\n  - `WARN`: Only important stuff\n  - `ERROR`: Silent mode (robot speaks only when things explode)\n  - Example: `LOG_LEVEL=DEBUG npx -y --package @steipete/macos-automator-mcp macos-automator-mcp`\n\n- **`KB_PARSING`**: When should the robot load its brain?\n  - `lazy` (default): Loads knowledge on-demand (fast startup, lazy robot)\n  - `eager`: Loads everything at startup (slower start, ready-to-go robot)\n  - Example: `KB_PARSING=eager ./start.sh`\n\n## 👨‍🔬 Robot Scientists Welcome!\n\nWant to upgrade your robot? Check out the [development guide](docs/DEVELOPMENT.md) for the full technical manual on teaching new tricks to your automation assistant.\n\n## 🧠 Teach Your Robot New Tricks (Local Knowledge Base)\n\nYour robot can learn custom skills! Create your own automation recipes and watch your robot evolve.\n\nBy default, the application will look for this local knowledge base at `~/.macos-automator/knowledge_base`.\nYou can customize this path by setting the `LOCAL_KB_PATH` environment variable.\n\n**Example:**\n\nSuppose you have a local knowledge base at `/Users/yourname/my-custom-kb`.\nSet the environment variable:\n`export LOCAL_KB_PATH=/Users/yourname/my-custom-kb`\n\nOr, if you are running the validator script, you can use the `--local-kb-path` argument:\n`pnpm run validate -- --local-kb-path /Users/yourname/my-custom-kb`\n\n**Structure and Overrides:**\n\n- Your local knowledge base should mirror the category structure of the main `knowledge_base` (e.g., `01_applescript_core`, `05_web_browsers/safari`, etc.).\n- You can add new `.md` tip files or `_shared_handlers` (e.g., `.applescript` or `.js` files).\n- If a tip ID (either from frontmatter `id:` or generated from filename/path) in your local knowledge base matches an ID in the embedded knowledge base, your local version will **override** the embedded one.\n- Similarly, shared handlers with the same name and language (e.g., `my_utility.applescript`) in your local `_shared_handlers` directory will override any embedded ones with the same name and language within the same category (or globally if you place them at the root of your local KB's `_shared_handlers`).\n- Category descriptions from `_category_info.md` in your local KB can also override those from the embedded KB for the same category.\n\nThis allows for personalization and extension of the available automation scripts and tips without modifying the core application files.\n\n## 🤝 Join the Robot Revolution!\n\nFound a bug? Got a cool automation idea? Your robot army needs YOU! Submit issues and pull requests to the [GitHub repository](https://github.com/steipete/macos-automator-mcp).\n\n## 💪 Robot Superpowers Showcase\n\nHere's what your new silicon sidekick can do out of the box:\n\n### 🖥️ Terminal Tamer\n\n- **Command Line Wizardry:** Open new tabs, run commands, capture output - your robot speaks fluent bash!\n  ```\n  { \"input\": { \"kb_script_id\": \"terminal_app_run_command_new_tab\", \"input_data\": { \"command\": \"echo '🤖 Hello World!'\" } } }\n  ```\n\n### 🌐 Browser Bot\n\n- **Web Automation Master:** Control Chrome and Safari like a puppet master!\n  ```\n  { \"input\": { \"kb_script_id\": \"safari_get_front_tab_url\" } }\n  ```\n- **JavaScript Injection:** Make web pages dance to your robot's tune\n- **Screenshot Sniper:** Capture any webpage faster than you can say \"cheese\"\n\n### ⚙️ System Sorcerer\n\n- **Dark Mode Toggle:** Because robots have sensitive optical sensors\n  ```\n  { \"input\": { \"kb_script_id\": \"systemsettings_toggle_dark_mode_ui\" } }\n  ```\n- **Clipboard Commander:** Copy, paste, and manipulate like a pro\n- **Notification Ninja:** Send alerts that actually get noticed\n\n### 📁 File System Feng Shui\n\n- **Folder Creator 3000:** Organize your digital life with robotic precision\n  ```\n  { \"input\": { \"kb_script_id\": \"finder_create_new_folder_desktop\", \"input_data\": { \"folder_name\": \"Robot Paradise\" } } }\n  ```\n- **Text File Telepathy:** Read and write files faster than humanly possible\n\n### 📱 App Whisperer\n\n- **Calendar Conductor:** Schedule meetings while you sleep\n- **Email Automator:** Send emails without lifting a finger\n- **Music Maestro:** DJ your playlists programmatically\n  ```\n  { \"input\": { \"kb_script_id\": \"music_playback_controls\", \"input_data\": { \"action\": \"play\" } } }\n  ```\n\n🎯 **Pro Tip:** Use `get_scripting_tips` to discover all 200+ automation recipes!\n\n## 📜 Legal Stuff (Robot Rights)\n\nThis project is licensed under the MIT License - which means your robot is free to roam! See the [LICENSE](LICENSE) file for the fine print.\n\n---\n\n🤖 **Remember:** With great automation power comes great responsibility. Use your robot wisely!\n\n<a href=\"https://glama.ai/mcp/servers/@steipete/macos-automator-mcp\">\n  <img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/@steipete/macos-automator-mcp/badge\" alt=\"macOS Automator Server MCP server\" />\n</a>\n","readmeFilename":"README.md"}