{"_id":"@chaixueyuan/weapp-agent-mcp","_rev":"11-11984a60ee0f6ff8d1766ce4ec14ce63","name":"@chaixueyuan/weapp-agent-mcp","dist-tags":{"latest":"0.4.8"},"versions":{"0.3.0":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.3.0","keywords":["mcp","wechat","mini-program","automation"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.3.0","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"81131de7248033bb0b31613a9469b35dcc1b022f","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.3.0.tgz","fileCount":21,"integrity":"sha512-fzqZx/RpdERGvRcnryYVppPJisksKi7g/s5QirUjAuHSSMMGlgQ0+ppXYNlFvffXj5seiYpMV6bSo1yd5CpJbw==","signatures":[{"sig":"MEUCICQHbHwe2U59DAAZfwkBQatuqbCDYO3bH5PwY5bP3PIGAiEAxk1HH4k4S4t5+PR03JzdVKbTrQHtn4V/OXqH4ldAdbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340130},"type":"module","gitHead":"42f31d09f3291cfc40b44d057f3ebffba5423c5d","scripts":{"dev":"node --import tsx src/index.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.3.0_1776229019052_0.1422085747554418","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.3.1","keywords":["mcp","wechat","mini-program","automation"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.3.1","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"9582f02b3aca7c039e21334e9bb1c704122838d3","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.3.1.tgz","fileCount":21,"integrity":"sha512-3GLvJ3Rlnoq5UffRryW3UJzRUZqs11LOLyrOOa/jPX59QxElN/PGODYa1axI6zChRZBeUHdjB6cn9HQs7N/s5g==","signatures":[{"sig":"MEUCIQD7TykrnQJ+QgEzTe0bCMKCCKf8fBlYsdhJrlipWVRcswIgHCN14rFxld596pB742iM0ivcpoL5/9hF7iw5hSulggQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":365148},"type":"module","gitHead":"c82ac7b8a6f415ad4a9f2d577cd2d87dcf16b75a","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.3.1_1776423370173_0.9463693054012157","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.0","keywords":["mcp","wechat","mini-program","automation"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.4.0","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"cdd0fe2f205a07646e65e3d793e7d8b878913c87","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.0.tgz","fileCount":21,"integrity":"sha512-/FYnLNLXVB6pqIJkUwLkiLqH7hQACilbWJCpD48f8+HisMBXG/ndZtR0HsJQdSdVUw4a4OqSJb79j7Ri0cJ7+Q==","signatures":[{"sig":"MEUCIQCxXx+aWOhxZdIY44o0ZNfd4FtGNMF6+Z/4dxE4ws7TVAIgOuyACni/0vJRpiEgtI01sxBrJ02K+qktUKc902n5K+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405153},"type":"module","gitHead":"c4c93fdcded8e6abaeba222871970b0361f40477","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.4.0_1778564625141_0.04968710358972639","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.1","keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.4.1","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"f3af2428d51bd4a1ed637169e3433e2efa3b0fcf","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.1.tgz","fileCount":21,"integrity":"sha512-6jwKGEttwngBJcozlpJlR/aNUoR4GpxmUymDL2zPnGStXu1355kRApEi9YofvV7sheMxcPBL1zJ7Tz5j5L9hRQ==","signatures":[{"sig":"MEYCIQCXrAJXgsedyh1tjpjdR33Olr1l3Fr619o72JYA7cgUggIhAPT72mmlgUidVdsGt0Le8qv3BAYVPa9QK+t6EujzMhRw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407636},"type":"module","gitHead":"c4c93fdcded8e6abaeba222871970b0361f40477","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.4.1_1778741904354_0.25592773583528494","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.2","keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.4.2","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"7b5f093886d3a45417e24ed6d45da0e8615d448d","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.2.tgz","fileCount":21,"integrity":"sha512-+ZC78Bk34zAueBJ53/+8HZjy90DyoG3J3BBKjs9YUWzWCUYDZoUD2exjQ/nbg0Ito9OqKzTfsnUlICC3iZX7LQ==","signatures":[{"sig":"MEUCIQDORgmvql4Qcpy+TSEBop7XAVT5p1wky1e7wJ2PAHH/pAIgDYZfJprGDTzS1hKkOd8bCOFdc/y9jxeCduUwYp67Rj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407690},"type":"module","gitHead":"c4c93fdcded8e6abaeba222871970b0361f40477","mcpName":"io.github.chaixueyuan/weapp-agent-mcp","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.4.2_1778743350106_0.4503834194432934","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.3","keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.4.3","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"0922ee8a3de84dae97e8dccec3e458d4be4a1a84","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.3.tgz","fileCount":21,"integrity":"sha512-+e7X4UNzRTbGjdzM+CUICB/YTRqPgojn4TihKqrP37QLuS/enKhMu3EtPAsEdWPBG73fc/SKmfIZaszSopqkNw==","signatures":[{"sig":"MEYCIQDVVP8+Al6MTcqUwELZjEdfCqtObg+9liR1o4mfxMCL6wIhAKtxur92cdFHXHMOJnPZjldrbad/HydO74RlrFSQlQPf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407690},"type":"module","gitHead":"c4c93fdcded8e6abaeba222871970b0361f40477","mcpName":"io.github.Chaixueyuan/weapp-agent-mcp","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.4.3_1778743629570_0.1899770967239689","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.4","keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.4.4","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"75ff06aa276e3a478aeccb89d7627a780f7659b5","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.4.tgz","fileCount":21,"integrity":"sha512-u5kH+r9LwbsEg+jvptcqacw2E6w9J19AnVuIcJOexYF1DHdDC6T5LTCmpfh0tz0Quun8DDCuV0BNn4ctw70ppw==","signatures":[{"sig":"MEQCID6j4pbkHj379q8iBxajANYqgke6K2mkK0KMgxRX9RFGAiBaNbSDdyTnNeDckL64stiGJeGCJ7Y1WciwS5wHOQOBtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409932},"type":"module","gitHead":"065846ef743ade5d470d36ebf53dc8b4b4e12732","mcpName":"io.github.Chaixueyuan/weapp-agent-mcp","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.4.4_1779186680180_0.5997120950505486","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.5","keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.4.5","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"20a564938eb88901842b5a26bcc2ddc9bf9a7876","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.5.tgz","fileCount":23,"integrity":"sha512-+aBiB2WeEnv7Vtt5smzsqBFFDKNkYPZwtqAjiYT9JqYt/ZBI6gS6iwJ8eDr1rkoptMf0r1LDDgeBSbMhyJP3wQ==","signatures":[{"sig":"MEUCIQDGtgq2m61kIuHwa13SE9SAc2cM4Zvyey3xhOJ4d/wMUAIgMD4MERqaBEp8rsOlXFkXWuATOBsPisQj0C2FP2FshW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416982},"type":"module","gitHead":"5e55a81348e6fb5e32c31a0efeee5fed75937890","mcpName":"io.github.Chaixueyuan/weapp-agent-mcp","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.4.5_1779334309823_0.21222956647026603","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.6","keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.4.6","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"600130e2fc3693708ac23fc2d6a0f16de2222d10","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.6.tgz","fileCount":23,"integrity":"sha512-zsFXJU/CZGdDoYOmH6XsLsm3uhwYbRHy1jF3kA2rTQc9BXQwwtypRMHH8lZvLy033AR6QBfoHGAOKZa1oAQ1sw==","signatures":[{"sig":"MEUCIFbSbJ2XnmlXHg9gEhLIaeU3SxXLmMwC8WOuiDw/cJGWAiEAjiAInHpH5PAbADXRekkuXzt5QxYTmsXKV/SMHe3FEJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":644845},"type":"module","engines":{"node":">=18"},"gitHead":"c76ac804d19a072e43de9b46e93c709d849b1acf","mcpName":"io.github.Chaixueyuan/weapp-agent-mcp","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.4.6_1780638309736_0.8378882377546502","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.7","keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"author":{"name":"chaixueyuan"},"license":"MIT","_id":"@chaixueyuan/weapp-agent-mcp@0.4.7","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"bin":{"weapp-agent-mcp":"dist/index.js"},"dist":{"shasum":"9cec78cedbf64370f19229c87bc9ef6fcdc1631b","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.7.tgz","fileCount":23,"integrity":"sha512-JeX+xXnOQuWFsPlh2NTL18y89v6nOl5Sn41JbGJZSa7mzUDj833RZOISpMRnm5ycD/L/KScmaKBnOkVMkURmjw==","signatures":[{"sig":"MEYCIQDnkzj4s2l6JDPO3vYb84XJrWGGBsL0yxjFy3a/mZyxoQIhAPu8lxXKtHTN+1C5ru+Ln0lNZpVbjMmhAJ3GsidakPgc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":645179},"type":"module","engines":{"node":">=18"},"gitHead":"a186ee2d0109c50893a71e777508648804ba5346","mcpName":"io.github.Chaixueyuan/weapp-agent-mcp","scripts":{"dev":"node --import tsx src/index.ts","test":"node --import tsx --test tests/**/*.test.ts","build":"tsc --project tsconfig.json","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"repository":{"url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^6.0.2","@types/node":"^25.5.0","@modelcontextprotocol/inspector":"^0.21.1"},"_npmOperationalInternal":{"tmp":"tmp/weapp-agent-mcp_0.4.7_1780640003149_0.3744061779302148","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@chaixueyuan/weapp-agent-mcp","version":"0.4.8","mcpName":"io.github.Chaixueyuan/weapp-agent-mcp","description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","type":"module","bin":{"weapp-agent-mcp":"dist/index.js"},"engines":{"node":">=18"},"scripts":{"build":"tsc --project tsconfig.json","dev":"node --import tsx src/index.ts","start":"node dist/index.js","test":"node --import tsx --test tests/**/*.test.ts","prepublishOnly":"npm run build"},"keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"author":{"name":"chaixueyuan"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git"},"homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","fastmcp":"^3.34.0","miniprogram-automator":"^0.12.1","zod":"^4.3.6"},"devDependencies":{"@modelcontextprotocol/inspector":"^0.21.1","@types/node":"^25.5.0","tsx":"^4.21.0","typescript":"^6.0.2"},"gitHead":"117e660531e5a4a6ee16cfddadd9a2149fe2b822","_id":"@chaixueyuan/weapp-agent-mcp@0.4.8","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-BSY1KGhGZrjT4Yp/MwfUxwhordhtUBiAq3X0c1SGnA1Je3EbmgEigQhQ1KplIrUpy94eMLKS1Hn8pXxv0+ArLw==","shasum":"a07fd10e9e9abbbe522fc4efeb22eff780774eb8","tarball":"https://registry.npmjs.org/@chaixueyuan/weapp-agent-mcp/-/weapp-agent-mcp-0.4.8.tgz","fileCount":23,"unpackedSize":650072,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA5W1HKj0WosJx3xrl1NdlhN/Mo/Z45Axl0Yj2GsjcjSAiEA/os0j1hRV4BXpUko/1QNg/eA70cjQiqOx7keRIRyAQQ="}]},"_npmUser":{"name":"chaixueyuan","email":"13693695756@163.com"},"directories":{},"maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/weapp-agent-mcp_0.4.8_1782893024786_0.19366998215881392"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-15T04:56:58.951Z","modified":"2026-07-01T08:03:45.205Z","0.3.0":"2026-04-15T04:56:59.184Z","0.3.1":"2026-04-17T10:56:10.309Z","0.4.0":"2026-05-12T05:43:45.303Z","0.4.1":"2026-05-14T06:58:24.492Z","0.4.2":"2026-05-14T07:22:30.269Z","0.4.3":"2026-05-14T07:27:09.756Z","0.4.4":"2026-05-19T10:31:20.344Z","0.4.5":"2026-05-21T03:31:49.994Z","0.4.6":"2026-06-05T05:45:09.920Z","0.4.7":"2026-06-05T06:13:23.279Z","0.4.8":"2026-07-01T08:03:45.085Z"},"bugs":{"url":"https://github.com/Chaixueyuan/weapp-agent-mcp/issues"},"author":{"name":"chaixueyuan"},"license":"MIT","homepage":"https://github.com/Chaixueyuan/weapp-agent-mcp#readme","keywords":["mcp","mcp-server","model-context-protocol","wechat","wechat-miniprogram","weapp","miniprogram","miniprogram-automator","wechat-devtools","agent","claude","claude-code","cursor","automation","e2e-testing","小程序","微信小程序"],"repository":{"type":"git","url":"git+https://github.com/Chaixueyuan/weapp-agent-mcp.git"},"description":"Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight testing","maintainers":[{"name":"chaixueyuan","email":"13693695756@163.com"}],"readme":"# weapp-agent-mcp\n\n[![npm version](https://img.shields.io/npm/v/@chaixueyuan/weapp-agent-mcp.svg)](https://www.npmjs.com/package/@chaixueyuan/weapp-agent-mcp)\n[![npm downloads](https://img.shields.io/npm/dm/@chaixueyuan/weapp-agent-mcp.svg)](https://www.npmjs.com/package/@chaixueyuan/weapp-agent-mcp)\n[![license](https://img.shields.io/npm/l/@chaixueyuan/weapp-agent-mcp.svg)](./LICENSE)\n[![MCP](https://img.shields.io/badge/MCP-server-blue.svg)](https://modelcontextprotocol.io/)\n\n> **Agent-first MCP server for WeChat Mini Program debugging, automation, and lightweight regression testing.**\n>\n> 面向 agent 的微信小程序 MCP 服务 — 让 Claude Code / Cursor / Codex 等 agent 在对话中直接驱动微信开发者工具完成调试、UI 操作、页面巡检与轻量测试。\n\n<!-- TODO: 这里放一段 5-10 秒 demo GIF：agent 调用 mp_screenshot + page_expectVisible 完成一次页面巡检。建议 ≤ 1.5MB，命名 docs/demo.gif -->\n\n📖 [Changelog](https://github.com/Chaixueyuan/weapp-agent-mcp/blob/main/CHANGELOG.md) · 🐛 [Issues](https://github.com/Chaixueyuan/weapp-agent-mcp/issues) · 💬 [Discussions](https://github.com/Chaixueyuan/weapp-agent-mcp/discussions)\n\n`weapp-agent-mcp` 是一个面向 agent 的微信小程序 MCP 服务，基于 [`miniprogram-automator`](https://www.npmjs.com/package/miniprogram-automator) 封装微信开发者工具自动化能力，用于页面调试、元素操作、轻量回归测试与恢复友好型排查。\n\n它适合：\n- agent 主开发 / 主调试\n- 串行截图与页面巡检\n- 轻量 scenario / report\n- 基于稳定 selector 的自动化验证\n\n它当前不应被宣传为：\n- 并发截图通道\n- 超长高压全链路回归引擎\n\n## 文档导航\n\n更完整的文档入口见 `docs/README.md`。\n\n## 为什么选 weapp-agent-mcp\n\n如果你已经在用 Claude Code / Cursor / Codex 等 agent 写小程序，传统的 `miniprogram-automator` 脚本式调用不够顺手 — 你得让 agent 写 node 脚本、跑、读输出、再调整。本项目把自动化能力直接暴露成 agent 工具调用，让 agent 在对话中可以：\n\n- 🤖 **零脚本调试** — 直接调用 `mp_screenshot` / `page_snapshot` / `element_tap`，不必中转脚本\n- 🔁 **恢复友好** — 内置 `mp_healthCheck` / `mp_recoverConnection`，断连后能自愈，长会话更稳\n- 📋 **轻量回归** — `mp_runScenario` + `mp_generateScenarioReport` 产出 markdown 报告，适合给 PR / oncall 用\n- 🎯 **稳定 selector 优先** — 设计上鼓励 `qa-*` 命名锚点，减少 UI 改版后的脚本碎裂\n\n### 适用 / 不适用对比\n\n| 场景 | 是否适用 |\n|---|---|\n| Agent 主动驱动调试 / 巡检 | ✅ 主推场景 |\n| 写传统脚本式 e2e 测试 | ⚪ 直接用原生 `miniprogram-automator` SDK 更轻 |\n| 并发截图 / 压测 | ❌ 不适用 — 截图通道按串行设计 |\n| 长会话 / 多轮调试 | ✅ 有 health / recover 工具兜底 |\n| CI 上的长链路回归 | ⚠️ 拆短 scenario 后可用，超长链路建议专业框架 |\n\n## 前置要求\n\n- 已安装微信开发者工具，支持命令行访问（`cli` / `cli.bat`）\n- 本地已安装 Node.js 18+ 和 `npm`\n- 有可以在开发者工具中打开的小程序项目\n- 已在微信开发者工具中开启自动化测试与服务端口\n\n## 快速开始\n\n### 方式一：通过 npm / npx 接入（推荐，普通用户默认这样用）\n\n不需要先把仓库拉到本地，也不需要自己手动构建 `dist`。只要本机有 Node.js 和 `npx`，就可以直接在 MCP 客户端里这样配置：\n\n```json\n{\n  \"mcpServers\": {\n    \"weapp-agent-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@chaixueyuan/weapp-agent-mcp\"\n      ],\n      \"env\": {\n        \"WEAPP_WS_ENDPOINT\": \"ws://localhost:9420\"\n      }\n    }\n  }\n}\n```\n\n> 如果你希望在 Claude 等客户端里用更短的别名，也可以把 MCP server key 命名为 `weapp-dev`，但发布包名和服务名以 `weapp-agent-mcp` 为准。\n\n可选：如果你习惯全局安装，也可以先执行：\n\n```bash\nnpm install -g @chaixueyuan/weapp-agent-mcp\n```\n\n然后把 MCP 配置改成：\n\n```json\n{\n  \"mcpServers\": {\n    \"weapp-agent-mcp\": {\n      \"command\": \"weapp-agent-mcp\",\n      \"env\": {\n        \"WEAPP_WS_ENDPOINT\": \"ws://localhost:9420\"\n      }\n    }\n  }\n}\n```\n\n### 方式二：本地源码构建接入（仅开发者 / 贡献者）\n\n只有在以下场景才需要这样用：\n\n- 你正在开发这个仓库本身\n- 你要调试尚未发布到 npm 的改动\n- 你要在本地修改源码后立刻验证\n\n```bash\nnpm install\nnpm run build\nnode dist/index.js\n```\n\n```json\n{\n  \"mcpServers\": {\n    \"weapp-agent-mcp\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"/absolute/path/to/weapp-agent-mcp/dist/index.js\"\n      ],\n      \"env\": {\n        \"WEAPP_WS_ENDPOINT\": \"ws://localhost:9420\"\n      }\n    }\n  }\n}\n```\n\n### 本地开发\n\n```bash\nnpm install\nnpm run dev\n```\n\n## 重要边界\n\n- `mp_screenshot` 当前按串行单通道能力设计，不支持并发压测\n- 复杂业务链建议拆成多个短 scenario，而不是一个超长 scenario\n- `page_snapshot`、`mp_screenshot`、长 `mp_runScenario` 在连续复杂操作后可能超时\n- 若出现连续失败，先运行 `mp_healthCheck`；仅当 `needsRecovery=true` 时执行 `mp_recoverConnection`\n- 稳定性高度依赖业务页面提供清晰的 `qa-*` selector 或其他稳定定位锚点\n\n## MCP 客户端集成\n\n### Claude Code 自动批准工具权限\n由于使用 Claude Code 调用 MCP 工具时，会触发工具调用权限申请，此时可能会丢失 MCP 与微信开发者工具的连接状态，由于获取控制台输出高度依赖连接状态，此时会无法连贯的获取输出日志，所以建议手动添加权限：\n\n在项目目录下创建 `.claude/settings.local.json` 文件，或在已有文件添加以下内容后即可免确认直接调用工具，或者根据需要添加您允许免确认调用的工具：\n\n```json\n{\n  \"permissions\": {\n    \"allow\": [\n      \"mcp__weapp-agent-mcp__mp_diagnoseConnection\",\n      \"mcp__weapp-agent-mcp__mp_ensureConnection\",\n      \"mcp__weapp-agent-mcp__mp_navigate\",\n      \"mcp__weapp-agent-mcp__mp_screenshot\",\n      \"mcp__weapp-agent-mcp__mp_callWx\",\n      \"mcp__weapp-agent-mcp__mp_evaluate\",\n      \"mcp__weapp-agent-mcp__mp_pollUntil\",\n      \"mcp__weapp-agent-mcp__mp_getLogs\",\n      \"mcp__weapp-agent-mcp__mp_runScenario\",\n      \"mcp__weapp-agent-mcp__mp_generateScenarioReport\",\n      \"mcp__weapp-agent-mcp__mp_currentPage\",\n      \"mcp__weapp-agent-mcp__mp_healthCheck\",\n      \"mcp__weapp-agent-mcp__mp_recoverConnection\",\n      \"mcp__weapp-agent-mcp__mp_listProjects\",\n      \"mcp__weapp-agent-mcp__mp_setDefaultProject\",\n      \"mcp__weapp-agent-mcp__page_getElement\",\n      \"mcp__weapp-agent-mcp__page_getElements\",\n      \"mcp__weapp-agent-mcp__page_waitElement\",\n      \"mcp__weapp-agent-mcp__page_waitElementGone\",\n      \"mcp__weapp-agent-mcp__page_waitRoute\",\n      \"mcp__weapp-agent-mcp__page_waitTimeout\",\n      \"mcp__weapp-agent-mcp__page_expectRoute\",\n      \"mcp__weapp-agent-mcp__page_expectVisible\",\n      \"mcp__weapp-agent-mcp__page_expectElementText\",\n      \"mcp__weapp-agent-mcp__page_expectCount\",\n      \"mcp__weapp-agent-mcp__page_expectData\",\n      \"mcp__weapp-agent-mcp__page_snapshot\",\n      \"mcp__weapp-agent-mcp__page_getData\",\n      \"mcp__weapp-agent-mcp__page_setData\",\n      \"mcp__weapp-agent-mcp__page_callMethod\",\n      \"mcp__weapp-agent-mcp__element_tap\",\n      \"mcp__weapp-agent-mcp__element_touch\",\n      \"mcp__weapp-agent-mcp__element_swipe\",\n      \"mcp__weapp-agent-mcp__element_input\",\n      \"mcp__weapp-agent-mcp__element_callMethod\",\n      \"mcp__weapp-agent-mcp__element_getData\",\n      \"mcp__weapp-agent-mcp__element_setData\",\n      \"mcp__weapp-agent-mcp__element_getInnerElement\",\n      \"mcp__weapp-agent-mcp__element_getInnerElements\",\n      \"mcp__weapp-agent-mcp__element_getWxml\",\n      \"mcp__weapp-agent-mcp__element_getStyles\",\n      \"mcp__weapp-agent-mcp__element_scrollTo\",\n      \"mcp__weapp-agent-mcp__element_getAttributes\",\n      \"mcp__weapp-agent-mcp__element_getBoundingClientRect\"\n    ]\n  }\n}\n```\n\n> **注意：** 工具名称格式为 `mcp__<服务器名称>__<工具名称>`，请确保服务器名称与您的 MCP 配置中的名称一致。\n\n### 可选：人工预启动微信开发者工具\n\n默认流程无需 agent 手动执行 CLI：直接调用 `mp_ensureConnection`，本地端口未监听且允许 AutoLaunch 时，server 会自行执行 `cli auto`。下面的命令只用于人工排障，或显式设置 `WEAPP_AUTOLAUNCH=false` 后由用户自行预启动开发者工具。\n\n💡 在开始之前：\n1. 打开微信开发者工具\n2. 进入 **设置 → 安全设置 → 服务端口**\n3. 开启 **\"HTTP 调试\"** 和 **\"自动化测试\"**\n\n**人工使用命令行启动**\n\n使用命令行启动微信开发者工具并自动开启 WebSocket 服务：\n\n**macOS：**\n```bash\n/Applications/wechatwebdevtools.app/Contents/MacOS/cli auto --project /path/to/your/project --auto-port 9420\n```\n\n**Windows：**\n```cmd\n\"C:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli.bat\" auto --project C:\\path\\to\\your\\project --auto-port 9420\n```\n\n其中：\n- `--project` 指定小程序项目目录路径（请替换为实际的项目路径）\n- `--auto-port` 指定 automation websocket 端口（默认 9420）。注意：这个 flag 在 `cli auto --help` 输出里看不到，但官方 `miniprogram-automator` SDK 内部一直用，是有效参数\n\n\n**⚠️ 警告**\n由于沙箱机制，部分客户端不允许 MCP 访问项目目录以外的微信开发者工具的 cli，所以这里只介绍了使用 WebSocket 服务\n\n\n### 环境变量配置\n\n通过环境变量控制自动化工具如何连接到微信开发者工具：\n\n| 变量 | 说明 |\n| --- | --- |\n| `WEAPP_WS_ENDPOINT` | **【推荐】** 已运行的开发者工具自动化 WebSocket 端点。设置后，服务器使用 `connect` 模式而不是启动新实例。示例：`ws://localhost:9420` |\n| `WECHAT_DEVTOOLS_CLI_PATH` | 微信开发者工具 CLI 路径（如果默认路径有效则可选）。 |\n| `WEAPP_AUTOMATOR_MODE` | 强制使用 `launch` 或 `connect` 模式。除非提供了 `WEAPP_WS_ENDPOINT`，否则默认为 `launch`。 |\n| `WEAPP_DEVTOOLS_PORT` | `launch` 模式下传给 `cli auto --auto-port` 的自动化端口。不会在失败后自动切到其他端口。 |\n| `WEAPP_DEVTOOLS_TIMEOUT` | 启动超时时间（毫秒，默认 30000）。 |\n| `WEAPP_AUTO_ACCOUNT` | 传递给 `--auto-account` 用于自动登录。 |\n| `WEAPP_DEVTOOLS_TICKET` | 启动时传递给 `--ticket`。 |\n| `WEAPP_TRUST_PROJECT` | 设置为 `true` 以在启动时包含 `--trust-project`。 |\n| `WEAPP_DEVTOOLS_ARGS` | 启动时的额外 CLI 参数（空格分隔）。 |\n| `WEAPP_DEVTOOLS_CWD` | 传递给开发者工具进程的工作目录。 |\n| `WEAPP_AUTOCLOSE` | 设置为 `true` 时，每次工具调用后关闭开发者工具会话。 |\n| `WEAPP_AUTOLAUNCH` | 本地 `connect` 目标端口未监听时是否允许 `mp_ensureConnection` 使用 `cli auto` 拉起开发者工具；默认允许，设为 `false` 禁用。不会自动切换端口或拉起远程目标。 |\n| `WEAPP_LAUNCH_TIMEOUT` | 启动超时时间（毫秒，默认 45000） |\n| `WEAPP_CONNECT_TIMEOUT` | 连接超时时间（毫秒，默认 45000） |\n| `WEAPP_PROJECT_PATH` | 小程序项目路径（可选） |\n\n> **注意：** `launch` / 本地自动拉起最终都需要可解析的小程序项目目录。可通过 `connection.projectPath`、`WEAPP_PROJECT_PATH`、`mp_setDefaultProject` 的持久化默认值、最近项目或当前工作目录提供；显式设置的默认项目不会被后续活动会话覆盖。\n\n工具调用可以通过 `connection` 对象覆盖这些默认值中的大部分。\n\n### 连接模式说明\n\n#### 模式 A：连接已有 IDE（connect）\n\n适用于你已经手动打开微信开发者工具，并且已经在 **设置 → 安全设置 → 服务端口** 中开启了自动化。\n\n```json\n{\n  \"mcpServers\": {\n    \"weapp-agent-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chaixueyuan/weapp-agent-mcp\"],\n      \"env\": {\n        \"WEAPP_WS_ENDPOINT\": \"ws://localhost:9420\"\n      }\n    }\n  }\n}\n```\n\n这个模式下：\n- `WEAPP_WS_ENDPOINT` 必须指向可被 `miniprogram-automator.connect()` 连接的 websocket endpoint\n- 不要把 IDE HTTP 端口误当成 websocket 端口\n- 不要手动执行 `cli open`、`cli auto`、`cli quit`\n- 默认直接调用 `mp_ensureConnection`；它会优先复用现有会话，并在本地端口未监听时按配置自愈\n- 只想只读探测，或 ensure / recovery 已失败时，再调用 `mp_diagnoseConnection`\n- 不要自动切端口；如需禁止 ensure 自动执行 `cli auto`，设置 `WEAPP_AUTOLAUNCH=false`\n\n#### 模式 B：由 MCP 拉起 IDE（launch）\n\n适用于当前未打开 IDE，需要 MCP 通过 CLI 启动项目。\n\n```json\n{\n  \"mcpServers\": {\n    \"weapp-agent-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chaixueyuan/weapp-agent-mcp\"],\n      \"env\": {\n        \"WEAPP_AUTOMATOR_MODE\": \"launch\",\n        \"WEAPP_PROJECT_PATH\": \"/path/to/project\",\n        \"WECHAT_DEVTOOLS_CLI_PATH\": \"/Applications/wechatwebdevtools.app/Contents/MacOS/cli\",\n        \"WEAPP_DEVTOOLS_PORT\": \"9420\"\n      }\n    }\n  }\n}\n```\n\n这个模式下：\n- `WEAPP_DEVTOOLS_PORT` 表示 `cli auto --auto-port` 使用的自动化端口\n- 只有在明确使用 `launch` 模式时，MCP 才应该启动 IDE\n- 如果检测到同项目已经有 IDE 实例在运行，应停止自动 launch 并返回诊断信息\n- `connect` 与 `launch` 两种模式不要混用\n\n#### `--port` 和 `--auto-port` 的区别\n\n微信开发者工具至少涉及两类端口：\n- `--port`：IDE HTTP 服务端口\n- `--auto-port`：自动化 websocket 端口\n\n这两个端口不能混用。`WEAPP_WS_ENDPOINT` 必须指向自动化 websocket 端口，而不是 IDE HTTP 端口。\n\n#### Codex / agent 使用规则\n\n当用户已经打开微信开发者工具时：\n1. 不要执行 `cli open`\n2. 不要执行 `cli quit`\n3. 默认直接调用 `mp_ensureConnection`，它会优先复用现有自动化会话\n4. `mp_diagnoseConnection` 仅用于只读探测，或在 ensure / recovery 失败后补充诊断\n5. 不要手动切端口；本地自动化端口未监听且 `WEAPP_AUTOLAUNCH` 未禁用时，`mp_ensureConnection` 可自行执行 `cli auto`\n6. 不允许自动拉起时设置 `WEAPP_AUTOLAUNCH=false`\n\n## 可用工具\n\n### 应用工具（Application Tools）\n\n- `mp_diagnoseConnection` – 只诊断当前连接目标，不启动 IDE、不修改项目状态\n- `mp_ensureConnection` – 确保自动化会话就绪，是连接链路默认入口；失败后再按返回指引诊断或恢复\n- `mp_navigate` – 在小程序内导航，支持 `navigateTo`、`redirectTo`、`reLaunch`、`switchTab` 或 `navigateBack`\n- `mp_screenshot` – 捕获屏幕截图并返回（或保存到磁盘）\n- `mp_callWx` – 调用微信小程序 API 方法（如 `wx.showToast`）\n- `mp_evaluate` – 向小程序 AppService 注入并执行函数代码，适合做显式运行时读取\n- `mp_pollUntil` – 轮询 AppService 条件，命中后可执行动作并采集前后状态快照\n- `mp_getLogs` – 获取小程序控制台日志，支持按 `type`、`contains`、`since`、`limit` 过滤，并返回日志监听状态（如 `listenerAttached`、`lastLogAt`、`sessionId`）\n- `mp_runScenario` – 按顺序执行一组最小测试步骤，当前支持 `navigate`、`tap`、`input`、`waitRoute`、`expect*`、`snapshot`、`getLogs`、`screenshot`\n- `mp_generateScenarioReport` – 执行 scenario 并输出 markdown 报告；可选写入 `outputPath`，适合产出轻量回归测试记录，并可引用截图路径\n- `mp_currentPage` – 获取当前页面信息（路径、查询参数、尺寸和滚动位置），`withData` 为 true 时额外返回页面数据\n- `mp_healthCheck` – 聚合连接、页面、项目路径和日志监听状态，判断当前是否健康、是否需要恢复\n- `mp_recoverConnection` – 按标准顺序执行恢复，并返回恢复动作、恢复前后状态与最新 health\n- `mp_listProjects` – 列出微信开发者工具中的最近项目，方便选择项目目录\n- `mp_setDefaultProject` – 设置默认的小程序项目路径，设置后下次连接会自动使用该项目\n\n### 页面工具（Page Tools）\n\n- `page_getElement` – 通过选择器获取页面元素，返回元素摘要信息（tagName、text、value、size、offset）；设置 `withWxml: true` 可额外返回完整 outerWxml；**支持 [index=N] 语法选择第 N 个元素**\n- `page_getElements` – 通过选择器获取页面元素数组，返回每个元素的摘要信息；`limit` 默认/最大 100；设置 `withWxml: true` 可额外返回每个元素的完整 outerWxml；**支持 [index=N] 语法**\n- `page_waitElement` – 等待元素出现在页面上（⚠️ 不适用于自定义组件内部元素）；**支持 [index=N] 语法；增加超时和重试间隔参数**\n- `page_waitElementGone` – 等待元素从页面上消失；**支持 [index=N] 语法；支持超时和重试间隔参数**\n- `page_waitRoute` – 等待当前页面路径变为指定值，适合确认导航真正完成；支持超时和重试间隔参数\n- `page_waitTimeout` – 等待指定的毫秒数\n- `page_expectRoute` – 断言当前页面路径是否等于预期值\n- `page_expectVisible` – 断言页面上是否存在可定位到的元素；支持 `[index=N]` 语法\n- `page_expectElementText` – 断言元素文本是否等于或包含预期值；支持 `[index=N]` 语法\n- `page_expectCount` – 断言页面上匹配选择器的元素数量是否等于预期值\n- `page_expectData` – 断言当前页面指定 `data` 路径的值是否与预期相等\n- `page_snapshot` – 返回当前页面的轻量结构快照，聚合 route、query、指定 data 路径和值，以及关键选择器的元素摘要；不默认处理页面 title，标题校验请用明确选择器配合 `page_expectElementText`\n- `page_getData` – 获取当前页面的数据对象，可选择指定子数据路径\n- `page_setData` – 使用 `setData` 更新当前页面的数据\n- `page_callMethod` – 调用当前页面实例上暴露的方法\n\n### 元素工具（Element Tools）\n\n- `element_tap` – 通过 CSS 选择器模拟点击 WXML 元素；**支持 [index=N] 语法选择第 N 个元素**\n- `element_touch` – 对元素执行真实触摸事件；支持 `start` / `move` / `end` / `sequence` 四种模式，坐标基于元素左上角，默认取元素中心；**支持 [index=N] 语法**\n- `element_swipe` – 对元素执行真实滑动手势；支持 `up` / `down` / `left` / `right`，可指定距离和持续时间；**支持 [index=N] 语法**\n- `element_input` – 向元素输入文本（适用于 `input` 和 `textarea` 组件）\n- `element_callMethod` – 调用自定义组件实例的方法\n- `element_getData` – 获取自定义组件实例的渲染数据\n- `element_setData` – 设置自定义组件实例的渲染数据\n- `element_getInnerElement` – 获取元素内的元素（相当于 `element.$(selector)`），返回元素摘要信息；设置 `withWxml: true` 可额外返回完整 outerWxml\n- `element_getInnerElements` – 获取元素内的元素数组（相当于 `element.$$(selector)`），返回元素摘要信息；`limit` 默认/最大 100；设置 `withWxml: true` 可额外返回每个元素的完整 outerWxml\n- `element_getWxml` – 获取元素 WXML（内部或外部）\n- `element_getStyles` – 获取元素的 CSS 样式值，names 参数为样式名数组（如 `['color', 'fontSize']`）\n- `element_scrollTo` – 滚动 scroll-view 组件到指定位置（x, y）\n- `element_getAttributes` – 获取元素的特性值，names 参数为特性名数组（如 `['class', 'id', 'data-index']`）\n- `element_getBoundingClientRect` – 获取元素相对于视口的边界矩形信息（left、top、width、height、right、bottom），考虑 CSS transform 变换（目前仅支持 ID 选择器、类选择器）\n\n每个工具都接受可选的 `connection` 块来覆盖环境默认值（项目路径、CLI 路径、WebSocket 端点等）。\n\n\n## 使用技巧\n\n### 一般提示\n\n- 连接前，在微信开发者工具中启用自动化（`设置 → 安全设置 → 服务端口`）\n- 默认先调用 `mp_ensureConnection` 建立或复用会话；只读探测或连接失败排查再用 `mp_diagnoseConnection`\n- 使用 `WEAPP_AUTOCLOSE=true` 适合无状态的一次性交互\n- **导航时始终使用绝对路径**（以 `/` 开头）：`/pages/mine/mine`\n- tabBar 页面使用 `switchTab`，普通页面使用 `navigateTo`\n- `switchTab` 只应视为一种导航动作，不应默认作为底部 tab UI 选中态的判断依据；很多项目会自定义底部 tab\n\n### 操作自定义组件\n\n操作自定义组件时，有两种方法：\n\n#### 方法一：使用 `innerSelector` 参数（推荐）\n\n适用于 `element_tap`、`element_input`、`element_getWxml` 等工具：\n\n```json\n{\n  \"selector\": \"#my-component\",\n  \"innerSelector\": \".inner-button\"\n}\n```\n\n- `selector`：自定义组件的选择器\n- `innerSelector`：组件内部元素的选择器\n\n#### 方法二：使用元素内查询工具\n\n适用于 `element_getInnerElement` 和 `element_getInnerElements`：\n\n```json\n{\n  \"selector\": \"#my-component\",\n  \"targetSelector\": \".inner-button\"\n}\n```\n\n#### 限制说明\n\n- `page_waitElement` **不适用于**自定义组件内部元素。请使用 `page_waitTimeout` 配合元素查询工具进行轮询检查。\n- 页面跳转校验可优先使用 `page_waitRoute`，比单纯 `mp_navigate` 后固定等待更稳。\n- 临时弹层、loading、toast 等消失场景可使用 `page_waitElementGone`。\n\n### 自动启动功能（AutoLaunch）\n\n本地 `connect` 目标端口未监听时，`mp_ensureConnection` 默认会使用 `cli auto` 拉起开发者工具。设置 `WEAPP_AUTOLAUNCH=false` 可显式禁用。远程 `wsEndpoint` 不会触发本机自动拉起。\n\n当前安全策略是：\n1. 如果用户已经手动打开 IDE，应优先使用 `connect`\n2. 本地 `connect` 端口未监听时，MCP 可自动执行 `cli auto`，但不自动切模式、不自动切端口\n3. `autoLaunch=false` 或远程 `wsEndpoint` 时不会自动启动 IDE\n4. 如果检测到 DevTools 已在运行，会优先阻止重复拉起\n\n#### 配置示例\n\n```json\n{\n  \"mcpServers\": {\n    \"weapp-agent-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@chaixueyuan/weapp-agent-mcp\"\n      ],\n      \"env\": {\n        \"WEAPP_AUTOLAUNCH\": \"true\",\n        \"WEAPP_PROJECT_PATH\": \"D:\\\\path\\\\to\\\\your\\\\project\"\n      }\n    }\n  }\n}\n```\n\n#### 工作流程\n\n1. 首次连接时，检测到本地自动化端口未监听且未设置 `WEAPP_AUTOLAUNCH=false`\n2. 检查 9420 端口是否有服务\n3. 无服务则自动启动开发者工具（使用 `cli.bat auto --project <path> --auto-port 9420`）\n4. 按 `WEAPP_LAUNCH_TIMEOUT` 等待开发者工具就绪（默认 45 秒）\n5. 建立 WebSocket 连接\n6. **后续连接自动复用现有连接**\n\n> **提示**：使用 `mp_setDefaultProject` 设置默认项目后，下次连接无需再次选择项目。\n","readmeFilename":"README.md"}