{"_id":"@aliceshimada/mica","_rev":"16-b418a489a40556d62bcbdd8f013385a2","name":"@aliceshimada/mica","dist-tags":{"rc":"1.2.4","latest":"1.4.1"},"versions":{"1.0.0":{"name":"@aliceshimada/mica","version":"1.0.0","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.0.0","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"38ed5a23c9c2404b4136971ab9f3adabf9169752","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.0.0.tgz","fileCount":36,"integrity":"sha512-K5yjnIRMXEB6gXeZH5CWnDcM7vbJScLe8xwMhReqatpjDfM0hHqe2AWExm0BfZut66tpkM+LcTKXRijfzoeOMg==","signatures":[{"sig":"MEUCIQDXk3yo4bt0UxCX3dwxAuoeeLfT22OTD1AAXrfWAXef4AIgF0pjmBvRxlJEKfPpIv4D8cYHR33zQ9yMzMhxAMaHoMY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275654},"type":"module","engines":{"node":">=20"},"gitHead":"9fea3361f2452e86b45cde37b90f0151419093cd","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.0.0_1780394001784_0.763211382254358","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aliceshimada/mica","version":"1.0.1","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.0.1","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"c28ad55a445c02b3e3b1d91a4b6c1761924cd9ff","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.0.1.tgz","fileCount":39,"integrity":"sha512-qw15HBLdaLdn4M0XQB4e9kvj9f4BWHtX7ndR8CHuf3arwt8LYdW6co8wBvKBPXu19Uuob0VwLMLfXfa0DVFFig==","signatures":[{"sig":"MEUCIQD3AMz5VIh+5i0lgTiMx39O0Vw64daNQw3CJLOu5oYODgIgHZUe7JFGK1IVMhNhfSszdoAEY7DcckkGBCTy/WHlnzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285739},"type":"module","engines":{"node":">=20"},"gitHead":"f58fff9b2ebb826321a7b3db14e2ef6c5eecacb2","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.0.1_1780398174094_0.37521877929025216","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aliceshimada/mica","version":"1.0.2","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.0.2","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"3bf8a3f5a9249f4be88a200d801c30d6da583f40","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.0.2.tgz","fileCount":40,"integrity":"sha512-GiGsj2mxazrhAD532PiX9juHZqcL3H68u+wWeXx0yBoRf5hbLPp/dNn1lwN+OUDrdUTShVRT9VqqsAj8EKiQKA==","signatures":[{"sig":"MEUCIHQbyfeYcNx1ZENE6qLAfsIBNsMMuXo6Vp6xPcjgkLLXAiEAh0XYNGnf4wtT6Poa1+9Hff8dEybYycayKVZzJfrwMh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292657},"type":"module","engines":{"node":">=20"},"gitHead":"ab8d1cdc0c8d2de81d35bb485b90fd967257b772","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.0.2_1780754762495_0.2661301644190648","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aliceshimada/mica","version":"1.0.3","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.0.3","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"db31baf37b2defc2ceb40918791c6241258b5836","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.0.3.tgz","fileCount":39,"integrity":"sha512-R1Sq/QQIF1+P/BbbBJEgFXkpTnrXJFjq25Nfq4/IdOcBPFEs6xM9trivSIDaV9aiHVACj2isSzx+gw7wPf7vaw==","signatures":[{"sig":"MEYCIQCiJ8T8M1PlfdF6wmzcHTvmW46mtBbU/u+71yGpHoQrMQIhAOYBLx8wHfkG6vn5gN7Ec7dg+5sjqwUvdabvGHroqJmS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286960},"type":"module","engines":{"node":">=20"},"gitHead":"1d7459ff7c8029acbe5783a0ff5819aa7815763f","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.0.3_1780757059641_0.8065897890385614","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aliceshimada/mica","version":"1.0.4","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.0.4","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"4a5c8d738903c078960cacaef0b1d54e6590530f","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.0.4.tgz","fileCount":32,"integrity":"sha512-kCl6nLliFS7kjSpSwexKGATb0IK26snCSqI1usW19zsHH7jQw9W2jQS/cK1JDBBwfCUbR+xxwCAwQJ0RxGvS5Q==","signatures":[{"sig":"MEUCIGvNpXVHqKNa6doR2i4lI4UnQkDugyZiY1STxw+oSczTAiEAg0t5TI0rwsBnkFjzjg0Z/pDhdPzaoTuNdeU12B8C2EE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252053},"type":"module","engines":{"node":">=20"},"gitHead":"8ad8428aaea47dd980823c3a54f08ad65076b056","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.0.4_1780846123122_0.6505470430096081","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@aliceshimada/mica","version":"1.0.5","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.0.5","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"3493e1f1c9d996beb25bc143d638932703c2e59f","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.0.5.tgz","fileCount":32,"integrity":"sha512-JVoW9qIVMXOuyb9Z1VTR0OYudmkse1JSM3vlqyBXEehc/Uhz9wRlW1UELlt5ZR3K+amrWy4bSmq0Me5t+aMNBg==","signatures":[{"sig":"MEQCIA2cfKnsAZKP7UZSL0MaGyOwVUIp1jtFOgHLsJUtuDK6AiB85Z+N1Ptu/Ht9pMaCk51Xn65Ak4TT+dDVsn3QJ6fatA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252399},"type":"module","engines":{"node":">=20"},"gitHead":"254eb1e3655b95fcd4d3ddd6bf3c6decd941c1b4","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.0.5_1780995077488_0.42478517365479496","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aliceshimada/mica","version":"1.1.0","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.1.0","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"9b90fea9ee6dccd2e632b8e2890027ab7b2d6efe","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.1.0.tgz","fileCount":32,"integrity":"sha512-oGXFWRT6BzLMNzAnB/Hu5mvM+H5FbQB5c7kZkmq9mZDZpS40BNW8TFkEwDYUmuzTmwfxLowZYW5STK+MBG+DMg==","signatures":[{"sig":"MEUCIQC2kXio0wGkm8dg211t+cHJRqpaLSDOAZ/eK+u4c/D6DgIgfypVGE9NCy8wO+G81TdStX90PkpqvzrlGTdWnPwNM/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255977},"type":"module","engines":{"node":">=20"},"gitHead":"967882cf576db8e80781434bad583d556506e548","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.1.0_1781512126539_0.779948180303506","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@aliceshimada/mica","version":"1.1.1","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.1.1","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"25e4bf0b5a6db298b3ccf0b555264ac75ff22675","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.1.1.tgz","fileCount":32,"integrity":"sha512-3VQGIBDB2fIWw8m8iav27HNJGDdUDWeJglaiUuhSmpv1vuWTi48/t+rxJO0wx04tpq+BW68XAKeWQVQeu1wsOQ==","signatures":[{"sig":"MEYCIQDxmPeRRakXuZwRCgGbhS+tHoFPTU+eqcPJCAxJ922DXwIhAKJSwlZjVrd118E71ZUZ6MUZDsR+SjpbJtUnv4eqellF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257905},"type":"module","engines":{"node":">=20"},"gitHead":"52d15a9a7372ceeae82525f6cbfde9739933013a","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.1.1_1781681876857_0.11482685811961502","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@aliceshimada/mica","version":"1.2.0","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.2.0","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"e0e8f0fc4a2b19510a835da6533a5d8faaf0d018","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.2.0.tgz","fileCount":32,"integrity":"sha512-aQSJJpgxjrx3Cgjuloi4coQoKNkXNCtqmZp2aK/K++uJcFjAd2FYjLk0p7v9LM6va5QljnZb+jcY1X7gFWGi4w==","signatures":[{"sig":"MEUCIGkT/yPVRXv1SjlU/Pn9cdaQrlN9hmoqPTe+QHMz7XDKAiEAsMhaOsYv5w48J1c1PPuRIeXkgzd2W74vwCFVa2FCBgQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262755},"type":"module","engines":{"node":">=20"},"gitHead":"cbd2a9c5078b2c8a8263a4d2aa865fc7e7eb91d9","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.2.0_1782365318965_0.18688497830211692","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@aliceshimada/mica","version":"1.2.1","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.2.1","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"92613d7cdcaa2c44d6b1e51dc92ae5e3108d9a58","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.2.1.tgz","fileCount":32,"integrity":"sha512-2PzJ87DBhMIzubem6UAfYsMz8BgaXFofgmsHKsqGW20hp/ukC7hXSEu3A5McOx9RN/TsxUxe5iN0vYFZEf4oeA==","signatures":[{"sig":"MEQCICij4YYXUXoG05jtIjCWpv6DMGyE/i9c+gQtwVBkzevXAiAkQFocpfM2haChJKJITMCJlTuQdXGgbIYM8OLwUlFCAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263727},"type":"module","engines":{"node":">=20"},"gitHead":"5e68901cac4150c61b3e516aedd514aeced4f3a3","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.2.1_1782369254857_0.7222093933204412","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@aliceshimada/mica","version":"1.2.2","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.2.2","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"fe6adfd9bbaa6cf6f0be59e68ac70c1ddae3736b","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.2.2.tgz","fileCount":33,"integrity":"sha512-F1f/fDdOBYF9SdqGJ9V7XfR6jCvNeiZfGmZnMvEdJUDx/D3lNKHiA7HSh1Ynw02GyjwXuyQjJngakAYTz9+KSA==","signatures":[{"sig":"MEYCIQDp6NVpMRRTxz/z9a7jizf/6UQjb6yHXKGcRwtdjmDPwQIhAPP8As0khe6YtA0ZfzUHCqQCaFwtcOkW+qTtSXWwVH7w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267520},"type":"module","engines":{"node":">=20"},"gitHead":"4df8efff3774cc2b582da98585668a24be75873f","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.2.2_1782834205028_0.6996247550579664","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@aliceshimada/mica","version":"1.2.3","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.2.3","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"aba090db2c260d8596405941fc76693ae4e16c4a","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.2.3.tgz","fileCount":33,"integrity":"sha512-LL3Id2vk2fE30j8CfytSI9dFt7NqfhJX0c3Uz4Y1G05I04rRFXWNx9lxzQox7HMXneDXZlA0w6PGp3Nvy3DAzQ==","signatures":[{"sig":"MEYCIQCSn2CGFW0ZwK5kbJ9XnNZEp7ieMX1B85i+lo8NF/EVfQIhAMGo4V8DPxCA89Wzn9thpkMIo7NKOrwlsyxvz3a3mixb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274527},"type":"module","engines":{"node":">=20"},"gitHead":"3fb3838b67a4ba2fbf327e83b46ea171de6ab1ea","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.2.3_1783069530332_0.9382082388067021","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@aliceshimada/mica","version":"1.2.4","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.2.4","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"f1313ff8ca4d49e5476baeef2cc09509a50972e5","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.2.4.tgz","fileCount":33,"integrity":"sha512-SJex180CGMSUWOQgVFI6wdo1V6gyreK8T1nVTa1MzbVidVRbgqgAHBbeqJ+oHpqr34ikrcCrDmElQJ7F17trpA==","signatures":[{"sig":"MEUCIQDkQyiNxa3W9fxt1Dru7ZH3CxoYhj1h1bZYzVDlwGMGtgIgBvtEuah6Xm4LrdZ8U20qJseslsidFT5tYKiTTuNRGWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275927},"type":"module","engines":{"node":">=20"},"gitHead":"3fb3838b67a4ba2fbf327e83b46ea171de6ab1ea","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-CN.md","devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.2.4_1783792360330_0.5377998446295387","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@aliceshimada/mica","version":"1.2.5","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.2.5","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"fbfa5f93a5544ab6f4d133216d23d8e346ab9ec7","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.2.5.tgz","fileCount":33,"integrity":"sha512-SxKK+G8ZmMU1LAm4e9gpHSpYdAyRUjSHiS8E1Dhf75uGyZgGRYZy8QCr+3T+fQHctkrLx4TXFNnInSXsa1jgyg==","signatures":[{"sig":"MEUCIQCc8Sqb2ycCYdxuNbEPmqjD+RS6kgQy49W+3m3LbYNSwgIgRKI+/1SC/1w7YMLQs/cLaTmplZ147Xu6gIs+G7VRE/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283393},"type":"module","engines":{"node":">=20"},"gitHead":"bc07434d3cdd893e54ddd17615585deaf65fc413","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.2.5_1784857839075_0.11182548884930776","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@aliceshimada/mica","version":"1.4.0","keywords":["mcp","wolfram","mathematica","notebook","agent"],"license":"MIT","_id":"@aliceshimada/mica@1.4.0","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"homepage":"https://github.com/Alice-Shimada/mica#readme","bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"bin":{"mica":"dist/src/cli/index.js"},"dist":{"shasum":"3eff4670baee7b7bd7af71b5c6ae4bc896d48b9e","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.4.0.tgz","fileCount":35,"integrity":"sha512-TwKvqM28LwV06p3c9AzHYc46wzgrlFj9O5cznNboSXugHBfeVpaFfo9vbU9sCKR2hAfPAPIys8dQOPZNQzIG+Q==","signatures":[{"sig":"MEYCIQDNLnHQFihJ/aZDXPrU6ZDY1U2ht/YE213Pepb/PnrLYQIhAKjjel8aMmJoU0iFvL/763UJDvE+sEi0J+Ata1J8uSaZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302362},"type":"module","engines":{"node":">=20"},"gitHead":"234e701c8b7290bb1c8d18a2c45296f2f1405076","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:mcp":"tsx src/bun/index.ts","start:mcp":"node dist/src/bun/index.js","typecheck":"tsc -p tsconfig.json --noEmit","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","test:watch":"vitest","dev:bun:mcp":"bun run src/bun/index.ts","dev:legacy:mcp":"tsx src/index.ts"},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"repository":{"url":"git+https://github.com/Alice-Shimada/mica.git","type":"git"},"_npmVersion":"11.12.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.0","@modelcontextprotocol/sdk":"^1.13.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^22.15.0"},"_npmOperationalInternal":{"tmp":"tmp/mica_1.4.0_1786551352756_0.3012836771775578","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@aliceshimada/mica","version":"1.4.1","description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","type":"module","repository":{"type":"git","url":"git+https://github.com/Alice-Shimada/mica.git"},"bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"homepage":"https://github.com/Alice-Shimada/mica#readme","keywords":["mcp","wolfram","mathematica","notebook","agent"],"bin":{"mica":"dist/src/cli/index.js"},"scripts":{"build":"tsc -p tsconfig.json","start:mcp":"node dist/src/bun/index.js","dev:mcp":"tsx src/bun/index.ts","dev:bridge":"tsx src/bun/index.ts --bridge-only","dev:bun:mcp":"bun run src/bun/index.ts","dev:bun":"bun run src/bun/index.ts --bridge-only","dev:legacy":"tsx src/index.ts --bridge-only","dev:legacy:mcp":"tsx src/index.ts","test":"vitest run","test:watch":"vitest","typecheck":"tsc -p tsconfig.json --noEmit"},"dependencies":{"@modelcontextprotocol/sdk":"^1.13.0","zod":"^3.25.0"},"devDependencies":{"@types/node":"^22.15.0","tsx":"^4.19.0","typescript":"^5.8.0","vitest":"^3.1.0"},"engines":{"node":">=20"},"license":"MIT","gitHead":"6c942132657e0e0d16af6924f8f9725fedf1a4ce","_id":"@aliceshimada/mica@1.4.1","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-zLcHud/QRc2W/BzfADwaT/xfUBbXhQZ2/Ipscrkrc0uJKjSYzupEvBcG0N3bj7iTfhV66CY84bkMbVkvqVKueA==","shasum":"6b52b3035229bcdda2cf5ff4276505e963eda5dd","tarball":"https://registry.npmjs.org/@aliceshimada/mica/-/mica-1.4.1.tgz","fileCount":35,"unpackedSize":305445,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDBOO4DRYUBQLy7UeaYUl8KMey0QVGm35W3kZdX+ipivAIgMeZ2J2iEgag1T2ccsqj1GismK4Fa1eLOFxUbPijnWIc="}]},"_npmUser":{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"},"directories":{},"maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mica_1.4.1_1786950215780_0.9400261995244512"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-02T09:53:21.662Z","modified":"2026-08-17T07:03:36.225Z","1.0.0":"2026-06-02T09:53:21.929Z","1.0.1":"2026-06-02T11:02:54.265Z","1.0.2":"2026-06-06T14:06:02.658Z","1.0.3":"2026-06-06T14:44:19.794Z","1.0.4":"2026-06-07T15:28:43.268Z","1.0.5":"2026-06-09T08:51:17.668Z","1.1.0":"2026-06-15T08:28:46.681Z","1.1.1":"2026-06-17T07:37:56.985Z","1.2.0":"2026-06-25T05:28:39.131Z","1.2.1":"2026-06-25T06:34:14.988Z","1.2.2":"2026-06-30T15:43:25.182Z","1.2.3":"2026-07-03T09:05:30.468Z","1.2.4":"2026-07-11T17:52:40.471Z","1.2.5":"2026-07-24T01:50:39.227Z","1.4.0":"2026-08-12T16:15:52.973Z","1.4.1":"2026-08-17T07:03:35.914Z"},"bugs":{"url":"https://github.com/Alice-Shimada/mica/issues"},"license":"MIT","homepage":"https://github.com/Alice-Shimada/mica#readme","keywords":["mcp","wolfram","mathematica","notebook","agent"],"repository":{"type":"git","url":"git+https://github.com/Alice-Shimada/mica.git"},"description":"Local MCP bridge for controlling live Wolfram Desktop / Mathematica notebooks.","maintainers":[{"name":"aliceshimada","email":"liuyuanche@mail.ustc.edu.cn"}],"readme":"# MICA\n\n**Mathematica Interactive Control Agent**\n\n简体中文 | [English](README.md)\n\n[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n![Node](https://img.shields.io/badge/node-%3E%3D20-5FA04E?logo=node.js&logoColor=white)\n![Bun](https://img.shields.io/badge/runtime-Bun-f3e7d3?logo=bun&logoColor=111111)\n![MCP](https://img.shields.io/badge/protocol-MCP-2563eb)\n![Wolfram Desktop](https://img.shields.io/badge/Wolfram%20Desktop-14.1%2B-dd1100)\n![Platforms](https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-111827)\n\nMICA 是一个面向 Wolfram Desktop / Mathematica 的本地 MCP 桥接器。它让支持 MCP 的代码 Agent 通过真实的 FrontEnd Notebook 工作：发现 live Notebook、通过本机 OS 打开已有 `.nb` 文件、创建空白 Notebook、检查 cell、插入和编辑代码、运行求值、读取输出与消息、管理 Notebook kernel，并查询 Wolfram Language 文档；整个过程不需要直接编辑 `.nb` 文件，也不需要切到脱离 FrontEnd 的 `wolframscript` 工作流。\n\n![MICA architecture hero](docs/assets/mica-readme-hero.png)\n\n## 为什么选择 MICA？\n\n- **直接作用于真实 Notebook**：Agent 操作的是 Wolfram Desktop 中可见的 Notebook，而不是一个分离的 headless kernel。\n- **Agent 的工作对人可见**：插入的代码、输出、消息和编辑都会出现在 Notebook 里，方便你检查。\n- **Notebook lifecycle 工具**：Agent 可以列出、选择、创建、打开、保存和恢复 Notebook，不需要离开 MCP 工作流。\n- **Notebook-aware targeting**：Agent 可以选择目标 Notebook，并为会修改 Notebook 的工具启用严格目标选择。\n- **面向 Agent 的协议设计**：`mma_status`、`mma_list_notebooks`、结构化错误、有界输出、artifact 分页，以及 `mica_notebook_workflow` prompt 会告诉 Agent 如何安全推进。\n- **显式权限控制**：读取、插入、修改、删除、运行、创建/打开、kernel lifecycle 和保存权限都显式配置。\n- **本地优先的安全模型**：桥接服务绑定到 `127.0.0.1`，使用生成的 bearer token，不提供远程访问模式。\n- **面向发布的安装路径**：安装和卸载可逆，并会为 `Kernel/init.m` 创建带时间戳的备份。\n\n## 为什么通过 Wolfram Desktop Notebook 工作？\n\n传统自动化通常会把代码复制到独立脚本中，或者启动 headless kernel。这对批处理任务很有用，但会丢失 Notebook 本身的上下文。MICA 让 Agent 留在你正在使用的同一个 FrontEnd 工作流里，无论该 Notebook 是已经打开、由 MICA 创建，还是从已有 `.nb` 文件启动。\n\n- **保留实时上下文**：已有定义、前面的 cell、富输出、消息和 Notebook 结构都留在真实工作 Notebook 中。\n- **人始终在回路中**：你可以看到 Agent 插入了什么，手动中断长时间求值，自己编辑 cell，或者手动重新运行某段内容。\n- **更容易审计**：代码执行发生在 Notebook cell 中，而不是不可见的 raw-eval 端点中；Notebook 会留下可见的 cell 和输出。\n- **减少上下文损失**：Agent 可以先读取附近的 cell、输出和消息，再决定下一步怎么做。\n- **支持多个 Notebook**：Agent 可以发现已打开的 Notebook、打开已有 `.nb` 文件、创建空白 Notebook，并通过当前 `notebookId` 或显示名称定位目标。\n- **适合探索式 Wolfram 工作**：图形、动态输出、格式化 box，以及 FrontEnd Notebook 操作都仍然是工作流的一部分。\n\n## 工作方式\n\n```text\nMCP client / 代码 Agent\n        |\n        | stdio MCP\n        v\nMICA MCP server + 本地 dashboard\n        |\n        | HTTP queue on 127.0.0.1:19791\n        v\n隐藏的 Wolfram FrontEnd control agent\n        |\n        | NotebookRead / NotebookWrite / Cells / CellObject\n        v\n可见的 Mathematica Notebook\n（已打开、已创建，或由 `.nb` 启动）\n```\n\n隐藏的 Wolfram Agent 运行在专用的 `MMAAgentControl` FrontEnd evaluator 中。你的普通 Notebook 继续使用自己的 evaluator；MICA 负责保持轮询、队列、超时处理和中止请求的响应性。\n\n## 环境要求\n\n| 要求 | 说明 |\n| --- | --- |\n| Wolfram Desktop / Mathematica | 支持 14.1+。13.x / 14.0 为 experimental（可能可用，但未正式测试）。Headless Wolfram Engine 不支持 live Notebook 控制。 |\n| Node.js | 20 或更新版本。 |\n| Bun | 可选。用于 Bun 开发脚本。发布版 CLI 通过 Node 运行。 |\n| MCP client | Codex、Claude Desktop、Cursor，或任何 stdio MCP client。 |\n\n## 快速开始\n\n从 npm 全局安装：\n\n```bash\nnpm install -g @aliceshimada/mica\nmica install\n```\n\n然后完全退出并重启 Wolfram Desktop。你可以手动打开 Notebook，也可以让 Agent 用 `mma_open_notebook` 打开已有 `.nb`；随后启动 MCP server 并连接你的 MCP client：\n\n```bash\nmica mcp\n```\n\n或者从发布版 checkout 开始：\n\n```bash\ngit clone https://github.com/Alice-Shimada/mica.git\ncd mica\nnpm ci\nnpm run build\nnode dist/src/cli/index.js install\n```\n\n然后完全退出并重启 Wolfram Desktop。你可以手动打开 Notebook，也可以让 Agent 用 `mma_open_notebook` 打开已有 `.nb`；随后启动 MCP server 并连接你的 MCP client：\n\n```bash\nnode dist/src/cli/index.js mcp\n```\n\n如果 MICA 已经安装在你的 `PATH` 中，也可以使用等价的发布版命令：\n\n```bash\nmica install\nmica mcp\nmica doctor\nmica status\n```\n\nDashboard / 仪表盘：\n\n```text\n使用 MICA server 打印的 `Dashboard: http://127.0.0.1:<port>/#token=<token>` URL。\n```\n\nDashboard 使用 token gate：直接打开 `/` 不会获取或显示桥接数据。使用打印出的 token URL 时，它会按 Server、Security、Agents、Notebooks 和 Requests 分组展示诊断信息。点击 Agents 或 Notebooks 可以在概览卡片下方打开共享详情面板。\n\n安装器只会编辑当前用户的 Wolfram `Kernel/init.m`，创建带时间戳的备份，并打印 MCP client 配置片段。它不会编辑系统级 Wolfram 文件，也不会替你编辑 MCP client 配置。\n\nDry run 和卸载：\n\n```bash\nnode dist/src/cli/index.js install --dry-run\nnode dist/src/cli/index.js uninstall\n```\n\n`mica status` 会打印当前 session file、server URL、version、PID、live agent/notebook 数量，以及带 token 的 dashboard URL。如果 server 已经在运行，`mica mcp` 会代理到已有后端，而不是因为端口占用直接失败；因此你随时可以用它找回 dashboard token。\n\n### 生命周期与错误恢复\n\n只要 Wolfram Desktop 仍在运行，MICA 会保留隐藏的 FrontEnd control loop，以便发现同一会话中之后打开的 Notebook。状态页和 dashboard 只显示 live agent；连接丢失的 agent 会先进入退休或离线状态，保留一个短暂恢复窗口后再从 registry 清理。MCP proxy 收到本地后端 HTTP 错误时，会尽可能保留结构化 JSON 错误的原始详情；若响应不是 JSON，则以 `MCP_PROXY_HTTP_ERROR` 和 HTTP 状态报告，而不再统一坍缩为通用内部错误。\n\n兼容用的 legacy 安装入口仍然可用：`node scripts/install.js --dry-run`。\n\n## MCP Client 配置\n\n打印可复制的 MCP config snippet：\n\n```bash\nmica config codex\nmica config claude-desktop\nmica config cursor\nmica config opencode\n```\n\nMICA 只打印配置片段，不会替你编辑 client config 文件。\n\nOpenCode 的 snippet 使用经过验证的 local MCP 形状：\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"mcp\": {\n    \"mica\": {\n      \"type\": \"local\",\n      \"command\": [\"mica\", \"mcp\"],\n      \"enabled\": true\n    }\n  }\n}\n```\n\n编辑 OpenCode config 后需要重启 OpenCode；config 只在启动时加载。\n\n如果要从本地 checkout 手动设置，请使用构建后的发布版入口：\n\n```toml\n[mcp_servers.mica]\ncommand = \"node\"\nargs = [\"/absolute/path/to/mica/dist/src/cli/index.js\", \"mcp\"]\n```\n\n开发时也可以让 MCP client 指向 TypeScript 入口：\n\n```toml\n[mcp_servers.mica]\ncommand = \"npx\"\nargs = [\"tsx\", \"/absolute/path/to/mica/src/cli/index.ts\", \"mcp\"]\n```\n\n## Agent 使用指南 Prompt\n\nMICA 在两个 MCP-facing 位置暴露使用指导：\n\n- Server initialization `instructions`\n- 可复用 prompt：`mica_notebook_workflow`\n\n这个 prompt 会要求 Agent 从 `mma_status` 或 `mma_list_notebooks` 开始，使用当前的 `notebookId`，只在用户明确要求以不显示窗口的方式运行 Notebook 时才使用隐藏或离屏 Notebook；只有在用户明确要求创建或打开 Notebook 时才使用 `mma_create_notebook` / `mma_open_notebook`；避免用 detached `wolframscript` 调试 live Notebook，并处理结构化的 `ok: true` / `ok: false` 响应。\n\n它还包含 Wolfram Language 编写规范：按语境决定命名方式，而不是机械地把每个符号都改成大驼峰；正确使用 `SetDelayed`、`Module` / `With` / `Block`、标准 option 机制、可重复运行的 Notebook 状态和验证。Agent 会被明确要求让每个 Input cell 只承担一个连贯步骤，并在调试、教学或探索时暴露有用的中间结果。`mma_insert_cell` 和 `mma_modify_cell` 的 tool description 还会重复一份精简的 Cell 编写提醒，使客户端在真正修改 Notebook 时再次看到它。\n\n## 工具\n\n| 工具 | 用途 |\n| --- | --- |\n| `mma_status` | 报告 server、agent 和 Notebook registry 状态。 |\n| `mma_list_notebooks` | 列出已注册的 live Notebook 和 active notebook id。 |\n| `mma_select_notebook` | 通过 `notebookId` 或无歧义的 `displayName` 选择 active Notebook。 |\n| `mma_create_notebook` | 通过 Wolfram FrontEnd 创建一个新的可见空白 Notebook。 |\n| `mma_open_notebook` | 通过本机 OS 默认应用打开一个已有的绝对 `.nb` 路径，或通过 `visible: false` 在 FrontEnd 中隐藏打开。 |\n| `mma_set_notebook_visible` | 在 Wolfram FrontEnd 中显示或隐藏所选 Notebook 窗口（使用 `OpenNotebook` 权限）。 |\n| `mma_symbol_lookup` | 查询 Wolfram Language 的 usage、options、attributes 和文档 URL。 |\n| `mma_list_cells` | 列出所选 Notebook 中的 cell。 |\n| `mma_read_cell` | 读取单个 cell 的内容和 metadata。 |\n| `mma_insert_cell` | 插入 cell；使用 `afterCellId=\"__end__\"` 可以追加到末尾。 |\n| `mma_modify_cell` | 修改已有 cell。 |\n| `mma_delete_cell` | 删除已有 cell。 |\n| `mma_run_cell` | 在 timeout 限制下求值一个 cell。 |\n| `mma_abort_evaluation` | 中止当前 Notebook 求值。 |\n| `mma_kill_kernel` | 退出某个 Notebook 的 Wolfram kernel，同时保护 MICA control agent evaluator。 |\n| `mma_restart_kernel` | 使用 `Quit[]` 重启某个 Notebook 的 Wolfram kernel，然后强制一次 fresh evaluation。 |\n| `mma_get_cell_output` | 读取 cell 的输出和消息。 |\n| `mma_read_artifact` | 按 byte page 读取大输出或大消息 artifact。 |\n| `mma_save_notebook` | 在授予 `SaveNotebook` 权限时保存 Notebook。 |\n\n所有 MCP 工具都会返回 JSON text 和 `structuredContent`。\n\n```json\n{ \"ok\": true, \"result\": \"...\" }\n```\n\n### 打开和创建 Notebook\n\n`mma_create_notebook` 会请求 live Wolfram FrontEnd control agent 创建一个可见空白 Notebook，因此需要 MICA 已经连接到 Wolfram Desktop。\n\n`mma_open_notebook` 通常不同：它在 Node 后端运行，并通过本机 OS 文件关联打开已有 `.nb` 文件（Windows 使用 `rundll32`，macOS 使用 `open`，Linux 使用 `xdg-open`）。它只接受指向已有 `.nb` 文件的绝对路径，并且可以在还没有 MICA agent 连接时启动 Mathematica。该工具返回 `status: \"launching\"`；Notebook 打开且 bridge 注册完成后，再调用 `mma_list_notebooks` 获取当前 `notebookId`，之后再使用需要目标 Notebook 的工具。\n\n传入 `visible: false` 则改为在隐藏的 FrontEnd 窗口中打开 Notebook：窗口不可见，但 Notebook 仍可正常求值 cell，适合把计算放到后台运行。隐藏打开在 live Wolfram control agent 内执行，返回 `status: \"opened_hidden\"` 和 `notebookId`，并由 `OpenNotebook` 权限把关（允许弹出的确认框，或在 bridge 权限 block 中设置 `OpenNotebook -> True`）。打开的 Notebook 会注册到 bridge，并由 agent 心跳持续保活，因此即使没有可见窗口，agent 也可以像对待普通 Notebook 一样使用常用工具对它操作。\n\n`mma_set_notebook_visible` 用于切换已注册 Notebook 窗口的可见性：传入 `visible: true` 会把隐藏的 Notebook 切到前台（`status: \"shown\"`），传入 `visible: false` 会再次隐藏（`status: \"hidden\"`）；请求当前状态时返回 `status: \"unchanged\"`。与隐藏打开一样，它使用 `OpenNotebook` 权限，并接受 `notebookId` / `displayName` selector。\n\nKernel lifecycle 工具使用比普通 cell 修改更长的后端 timeout：`mma_kill_kernel` 和 `mma_restart_kernel` 有 60 秒，用于应对较慢的 FrontEnd/kernel 恢复过程。它们会拒绝作用于受保护的 MICA control-agent evaluator。\n\n`mma_read_cell` 默认会截断大的 cell 内容、输出和消息，以保持 MCP 响应有界。`mma_get_cell_output` 会把小输出和消息内联返回，并为大条目返回 artifact metadata；把返回的 `artifactId` 传给 `mma_read_artifact`，并提供 `offset` 和 `limit`，即可分页读取完整文本。Artifact id 是确定性的但短生命周期：它们通过重新扫描当前 Notebook 来解析，所以 Notebook 被编辑或重新运行后，id 可能失效，或者指向更新后的内容。读取输出或 artifact 也可能刷新已完成 cell 的运行状态。输出状态包括 `running`、`abort_requested`、`aborted`、`finished`、`timeout` 和 `unknown`；`abort_requested` 表示 MICA 已发送中止信号，但还没有观察到终态完成。可以传入 `maxBytes`（正整数，最大 1 MiB）来请求不同的响应预算。截断或 artifact-backed 响应会包含 `truncated`、`originalByteLength` 和 `returnedByteLength` metadata。\n\n预期内失败会被结构化，并设置 MCP `isError` flag：\n\n```json\n{\n  \"ok\": false,\n  \"error\": {\n    \"code\": \"PERMISSION_DENIED\",\n    \"message\": \"The selected notebook did not grant permission for this tool.\",\n    \"retryable\": false,\n    \"tool\": \"mma_save_notebook\"\n  }\n}\n```\n\n## 手动启动 Wolfram 侧桥接\n\n如果你不想编辑 `Kernel/init.m`，可以启动 Wolfram Desktop，并在替换路径后求值以下代码：\n\n```wolfram\nGet[\"/absolute/path/to/mica/paclet/Kernel/MMAAgentBridge.wl\"];\nMMAAgentBridge`Private`$BridgePermissions = <|\n  \"ReadNotebook\" -> True,\n  \"InsertCell\" -> True,\n  \"ModifyCell\" -> True,\n  \"DeleteCell\" -> True,\n  \"RunCell\" -> True,\n  \"CreateNotebook\" -> False,\n  \"OpenNotebook\" -> False,\n  \"SaveNotebook\" -> False\n|>;\nMMAAgentBridge`StartMMAAgentControlKernel[]\n```\n\n## 开发\n\n```bash\nnpm test\nnpm run typecheck\nnpm run build\nnpm run dev:mcp\nnpm run dev:bridge\n```\n\n常用命令：\n\n| 命令 | 用途 |\n| --- | --- |\n| `npm run dev:mcp` | 通过 `tsx` 启动 TypeScript MCP server。 |\n| `npm run dev:bridge` | 启动 TypeScript bridge 和 dashboard，不启用 stdio MCP。 |\n| `npm run dev:bun:mcp` | 通过 Bun 启动 MCP server。 |\n| `npm run dev:bun` | 通过 Bun 启动 bridge 和 dashboard，不启用 stdio MCP。 |\n| `npm run dev:legacy` | 启动 legacy Node HTTP bridge，用于 Palette 兼容性测试。 |\n| `npm run build` | 在 `dist/` 下输出生产 JavaScript。 |\n\n## 验证清单\n\n```bash\nnpm test\nnpm run typecheck\nnpm run build\nnode dist/src/cli/index.js install --dry-run\nnode dist/src/cli/index.js doctor\n```\n\nLive 冒烟测试：\n\n1. 运行 `node dist/src/cli/index.js install`。\n2. 完全重启 Wolfram Desktop。\n3. 打开一个 Notebook。\n4. 确认 `mma_status` 报告 online agent 和已注册 Notebook。\n5. 确认 insert、read、modify、run、get-output、delete、abort、kernel restart、create/open notebook 和 symbol lookup 都能作用于该 Notebook。\n6. 运行 `node dist/src/cli/index.js uninstall`，并确认 `Kernel/init.m` 中标记的 block 已被移除。\n\n另见：\n\n- [Manual Smoke Test](docs/qa/manual-smoke-test.md) — 完整发布检查清单。\n- [Support Matrix](docs/qa/support-matrix.md) — 平台和运行时覆盖情况。\n\n## 故障排查\n\n优先运行内置 doctor；它会无副作用地诊断最常见问题：\n\n```bash\nnode dist/src/cli/index.js doctor\n# 或者，如果已经全局安装：\nmica doctor\n```\n\nDoctor 会检查 Node 版本、package build、session file、auth token、server 可达性、live agent/notebook 数量、Wolfram user base、`Kernel/init.m` 和 MICA autoload block。每项检查都会报告 `OK` 或 `FAIL`，并给出建议的 `FIX` 行。\n\n**常见失败与修复：**\n\n| Doctor 输出 | 可能原因 | 操作 |\n| --- | --- | --- |\n| `FAIL Session file` | Server 尚未启动 | `mica mcp` |\n| `FAIL Auth token` | Token 不匹配或已过期 | 重启 server |\n| `FAIL Server /status reachable` | Server 未运行 | `mica mcp` |\n| `FAIL Live agent count: 0` | Wolfram 未运行或 bridge 未加载 | 安装后重启 Wolfram Desktop |\n| `FAIL Live notebook count: 0` | 没有打开或注册的 Notebook | 在 Wolfram Desktop 中打开 Notebook，或让 Agent 用绝对 `.nb` 路径调用 `mma_open_notebook` |\n| `FAIL Kernel/init.m` | 尚未运行安装器 | `mica install` |\n| `FAIL Autoload block` | 尚未安装或已卸载 | `mica install` |\n| `FAIL Package build` | 缺少 build artifacts | `npm run build` |\n\n如果 doctor 通过，但 MCP client 中仍看到 `NO_LIVE_AGENT`、`NOTEBOOK_STALE` 或连接错误，请完全退出并重启 Wolfram Desktop，然后重启 MICA server。\n\n## 安全模型\n\n- MICA 将 HTTP bridge 绑定到 `127.0.0.1`。\n- MICA 会写入包含生成 auth token 的本地 session file，并要求 protocol endpoints 使用 `Authorization: Bearer <token>`。\n- Dashboard token 放在 URL fragment（`#token=...`）中，而不是 HTTP request path 中。\n- Dashboard URL（包含本地 bearer token）会打印到当前用户会话的 server startup log。\n- MICA 不提供远程访问模式。\n- MICA 不包含任意 shell 工具，也没有直接 raw-eval MCP endpoint。\n- Notebook 修改通过 Wolfram FrontEnd API 和显式权限完成。\n- `mma_open_notebook` 会通过 OS 默认应用启动本地 `.nb` 路径，但不会直接编辑 Notebook 文件；隐藏打开（`visible: false`）在 live Wolfram control agent 内执行，与 `mma_set_notebook_visible` 一起由 `OpenNotebook` 权限把关。\n- 安装器权限 block 默认禁用 `mma_save_notebook`。\n- Node/Bun 进程不会直接编辑 `.nb` 文件。\n\n## 显式 Notebook Targeting\n\n设置 `MICA_STRICT_TARGETING=1` 后，所有需要目标 Notebook 且会修改状态的 MCP 工具（`mma_insert_cell`、`mma_modify_cell`、`mma_delete_cell`、`mma_run_cell`、`mma_abort_evaluation`、`mma_kill_kernel`、`mma_restart_kernel`、`mma_save_notebook`、`mma_set_notebook_visible`）都必须显式提供 `notebookId`（或 `displayName`）。只读 Notebook 工具（`mma_list_cells`、`mma_read_cell`、`mma_get_cell_output`、`mma_read_artifact`）仍然使用 active Notebook，`mma_symbol_lookup` 不受影响，因为它不针对某个 Notebook。`mma_open_notebook` 也不需要 Notebook selector，因为它是在 Notebook 获得 session-local `notebookId` 之前打开文件路径。启用 strict targeting 后，如果未提供 selector，工具会返回 error code `EXPLICIT_NOTEBOOK_REQUIRED`，并设置 `retryable: false`。默认行为（未设置 env var，或值不是 `\"1\"`）保持不变。\n\n## 已知限制\n\n- 当 Wolfram kernel 已经繁忙时，取消操作是 best-effort。\n- 与 abort 相比，kernel kill/restart 更适合恢复卡住的 Notebook kernel，但 FrontEnd 恢复仍可能需要时间；重启后请轮询 `mma_status` / `mma_list_notebooks`。\n- `mma_open_notebook` 需要指向已有 `.nb` 文件的绝对路径；可见打开还需要本机 OS 中 Mathematica/Wolfram Desktop 的文件关联，而隐藏打开（`visible: false`）需要 live MICA agent，以便在隐藏的 FrontEnd 窗口中运行。\n- Cell id 是 session-local 的，重新打开 Notebook 后可能变化。\n- FrontEnd Notebook 操作目前是串行化的。\n- Legacy Palette flow 仅保留用于迁移期兼容；文档化的发布路径是 CLI + MCP server。\n\n## 许可证\n\nMIT — 见 [LICENSE](LICENSE)。\n","readmeFilename":"README.zh-CN.md"}