{"_id":"platformio-mcp","_rev":"7-47ac529ee5aeb259f91b6bc2988acb98","name":"platformio-mcp","dist-tags":{"latest":"3.1.0"},"versions":{"2.0.0":{"name":"platformio-mcp","version":"2.0.0","keywords":["mcp","model-context-protocol","platformio","embedded","iot","arduino","esp32","stm32","firmware","embedded-systems","cline","claude","antigravity","ai","dashboard"],"author":{"name":"PlatformIO MCP Server Contributors"},"license":"MIT","_id":"platformio-mcp@2.0.0","maintainers":[{"name":"forkbomb","email":"turingxo@gmail.com"}],"homepage":"https://github.com/jl-codes/platformio-mcp#readme","bugs":{"url":"https://github.com/jl-codes/platformio-mcp/issues"},"bin":{"platformio-mcp":"build/index.js"},"dist":{"shasum":"95ba43b572f7813105da027a4f0873b5ec760478","tarball":"https://registry.npmjs.org/platformio-mcp/-/platformio-mcp-2.0.0.tgz","fileCount":114,"integrity":"sha512-kZmr4hMltkzIcX9fRBogF4jAj/e4WD+nM3CKO3jOtwafAVWNbYgZeMHQwGGPXc++t+HIoT4Z6NO1j2gKFCUnmA==","signatures":[{"sig":"MEQCIGJivmtcpBRfdF/Ko8euRzk5b3RFSQgpfpIiwqykehk8AiAShOTpQHVCj5YomWJbqK20Ge46f45iGByY7YBey8ZxUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1642746},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"426b186b914d7129ec873c455e4007ccc62288d8","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest run tests","build":"npm run build:ui && tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","build:ui":"cd web && npm ci && npm run build","smoke-test":"node -e \"require('fs').accessSync('build/index.js'); require('fs').accessSync('web/dist/index.html'); require('fs').accessSync('scripts/installers/index.js')\"","test:watch":"vitest","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run smoke-test"},"_npmUser":{"name":"forkbomb","email":"turingxo@gmail.com"},"repository":{"url":"git+https://github.com/jl-codes/platformio-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"PlatformIO MCP server + web dashboard for AI agents (Cline, Claude Desktop, VS Code, Antigravity). Supports 1000+ boards across 30+ platforms.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","open":"^10.2.0","express":"^4.21.0","socket.io":"^4.8.0","tree-kill":"^1.2.2","proper-lockfile":"^4.1.2","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.0.0","vitest":"^4.0.0","prettier":"^3.1.0","supertest":"^7.2.2","@vitest/ui":"^4.0.0","typescript":"^5.3.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","@types/express":"^5.0.0","@types/supertest":"^7.2.0","socket.io-client":"^4.8.3","typescript-eslint":"^8.0.0","@types/proper-lockfile":"^4.1.4","@types/express-rate-limit":"^5.1.3"},"_npmOperationalInternal":{"tmp":"tmp/platformio-mcp_2.0.0_1777952145128_0.3268485353589978","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"platformio-mcp","version":"2.1.0","keywords":["mcp","model-context-protocol","platformio","embedded","iot","arduino","esp32","stm32","firmware","embedded-systems","cline","claude","antigravity","ai","dashboard"],"author":{"name":"PlatformIO MCP Server Contributors"},"license":"MIT","_id":"platformio-mcp@2.1.0","maintainers":[{"name":"forkbomb","email":"turingxo@gmail.com"}],"homepage":"https://github.com/jl-codes/platformio-mcp#readme","bugs":{"url":"https://github.com/jl-codes/platformio-mcp/issues"},"bin":{"platformio-mcp":"build/index.js"},"dist":{"shasum":"6a042781df9cd14edf1e5d30eafa697d2e26b304","tarball":"https://registry.npmjs.org/platformio-mcp/-/platformio-mcp-2.1.0.tgz","fileCount":115,"integrity":"sha512-ay+1hEuI+Od03B49qek4CwmPs+aKnmrD3TaeojOPy/1hl/xooXa8AxupC5Jby3dkrvE1KgKdF0ura2pyWnM0cQ==","signatures":[{"sig":"MEYCIQCMI0xljcHBXjQp50n1GVelbl/kZTlEKAkkbg4EfEBoDgIhANsPDQ0U/3M/jjb/OahdCC2vfUS18wmoC9yYkFb+Ta2v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1648863},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"6514c411a766f5f0a3209a48b0b0ca59add81dc4","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest run tests","build":"npm run build:ui && tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","build:ui":"cd web && npm ci && npm run build","smoke-test":"node -e \"require('fs').accessSync('build/index.js'); require('fs').accessSync('web/dist/index.html'); require('fs').accessSync('scripts/installers/index.js')\"","test:watch":"vitest","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run smoke-test"},"_npmUser":{"name":"forkbomb","email":"turingxo@gmail.com"},"repository":{"url":"git+https://github.com/jl-codes/platformio-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"PlatformIO MCP server + web dashboard for AI agents (Cline, Claude Desktop, VS Code, Antigravity). Supports 1000+ boards across 30+ platforms.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","open":"^10.2.0","express":"^4.21.0","socket.io":"^4.8.0","tree-kill":"^1.2.2","proper-lockfile":"^4.1.2","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.0.0","vitest":"^4.0.0","prettier":"^3.1.0","supertest":"^7.2.2","@vitest/ui":"^4.0.0","typescript":"^5.3.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","@types/express":"^5.0.0","@types/supertest":"^7.2.0","socket.io-client":"^4.8.3","typescript-eslint":"^8.0.0","@types/proper-lockfile":"^4.1.4","@types/express-rate-limit":"^5.1.3"},"_npmOperationalInternal":{"tmp":"tmp/platformio-mcp_2.1.0_1778027363934_0.45612444602534663","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"platformio-mcp","version":"2.2.0","keywords":["mcp","model-context-protocol","platformio","embedded","iot","arduino","esp32","stm32","firmware","embedded-systems","cline","claude","antigravity","ai","dashboard"],"author":{"name":"PlatformIO MCP Server Contributors"},"license":"MIT","_id":"platformio-mcp@2.2.0","maintainers":[{"name":"forkbomb","email":"turingxo@gmail.com"}],"homepage":"https://github.com/jl-codes/platformio-mcp#readme","bugs":{"url":"https://github.com/jl-codes/platformio-mcp/issues"},"bin":{"platformio-mcp":"build/index.js"},"dist":{"shasum":"c0aa22cceb83da89f19468094e2ed2d1dd9bf6de","tarball":"https://registry.npmjs.org/platformio-mcp/-/platformio-mcp-2.2.0.tgz","fileCount":119,"integrity":"sha512-L+oeSx8DPNnlJW4LrvbNa4j8hp2Q2W96ywX14Kx+M5Lvp71RdQrnfD23GPHUxNGqFOpxHW2kGN4ifsW3hSF5tQ==","signatures":[{"sig":"MEUCIQCZOsMNyRVukeDWYa0gMyKD6bY1nM8iz6loIZJ7PjKpUAIgB9B0CjNPkmd00Wws34z1P2zVSGEGY2Zrx0+pOM9hx/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1716806},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"165613ccd849cb58db0ae453e72c9d49bbd4a82e","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest run tests","build":"npm run build:ui && tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","build:ui":"cd web && npm ci && npm run build","smoke-test":"node -e \"require('fs').accessSync('build/index.js'); require('fs').accessSync('web/dist/index.html'); require('fs').accessSync('scripts/installers/index.js')\"","test:watch":"vitest","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run smoke-test"},"_npmUser":{"name":"forkbomb","email":"turingxo@gmail.com"},"repository":{"url":"git+https://github.com/jl-codes/platformio-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"PlatformIO MCP server + web dashboard for AI agents (Cline, Claude Desktop, VS Code, Antigravity). Supports 1000+ boards across 30+ platforms.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","open":"^10.2.0","express":"^4.21.0","socket.io":"^4.8.0","tree-kill":"^1.2.2","proper-lockfile":"^4.1.2","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.0.0","vitest":"^4.0.0","prettier":"^3.1.0","supertest":"^7.2.2","@vitest/ui":"^4.0.0","typescript":"^5.3.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","@types/express":"^5.0.0","@types/supertest":"^7.2.0","socket.io-client":"^4.8.3","typescript-eslint":"^8.0.0","@types/proper-lockfile":"^4.1.4","@types/express-rate-limit":"^5.1.3"},"_npmOperationalInternal":{"tmp":"tmp/platformio-mcp_2.2.0_1778534305246_0.24964622222581623","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"platformio-mcp","version":"2.2.1","keywords":["mcp","model-context-protocol","platformio","embedded","iot","arduino","esp32","stm32","firmware","embedded-systems","cline","claude","antigravity","ai","dashboard"],"author":{"name":"PlatformIO MCP Server Contributors"},"license":"MIT","_id":"platformio-mcp@2.2.1","maintainers":[{"name":"forkbomb","email":"turingxo@gmail.com"}],"homepage":"https://github.com/jl-codes/platformio-mcp#readme","bugs":{"url":"https://github.com/jl-codes/platformio-mcp/issues"},"bin":{"platformio-mcp":"build/index.js"},"dist":{"shasum":"e3dccab96585c5280a6f67fbe97bd5d7291c9eb6","tarball":"https://registry.npmjs.org/platformio-mcp/-/platformio-mcp-2.2.1.tgz","fileCount":119,"integrity":"sha512-PfLzBxFxneMWIGc/i4PmuaZ028eUfgcPDPLpoFjvUHe8TsnVqkAbfIAv4CseiQ+PP7ekxQa5mJTEN/ZpllYyXA==","signatures":[{"sig":"MEUCIQDECemv3mNTGrGoyTdU6/2NRrsKtHx+WOBAFTy3pHxZpgIgbl7gnx/27k0PhtpJ2rjNNKOrabZuDdl03i42+XaCHWA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1718676},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"09f3d8e18d10af174bbdf9ae82d80a840ed238f5","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest run tests","build":"npm run build:ui && tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","build:ui":"cd web && npm ci && npm run build","smoke-test":"node -e \"require('fs').accessSync('build/index.js'); require('fs').accessSync('web/dist/index.html'); require('fs').accessSync('scripts/installers/index.js')\"","test:watch":"vitest","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run smoke-test"},"_npmUser":{"name":"forkbomb","email":"turingxo@gmail.com"},"repository":{"url":"git+https://github.com/jl-codes/platformio-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"PlatformIO MCP server + web dashboard for AI agents (Cline, Claude Desktop, VS Code, Antigravity). Supports 1000+ boards across 30+ platforms.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","open":"^10.2.0","express":"^4.21.0","socket.io":"^4.8.0","tree-kill":"^1.2.2","proper-lockfile":"^4.1.2","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.0.0","vitest":"^4.0.0","prettier":"^3.1.0","supertest":"^7.2.2","@vitest/ui":"^4.0.0","typescript":"^5.3.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","@types/express":"^5.0.0","@types/supertest":"^7.2.0","socket.io-client":"^4.8.3","typescript-eslint":"^8.0.0","@types/proper-lockfile":"^4.1.4","@types/express-rate-limit":"^5.1.3"},"_npmOperationalInternal":{"tmp":"tmp/platformio-mcp_2.2.1_1778807075236_0.36320778459570646","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"platformio-mcp","version":"2.2.2","keywords":["mcp","model-context-protocol","platformio","embedded","iot","arduino","esp32","stm32","firmware","embedded-systems","cline","claude","antigravity","ai","dashboard"],"author":{"name":"PlatformIO MCP Server Contributors"},"license":"MIT","_id":"platformio-mcp@2.2.2","maintainers":[{"name":"forkbomb","email":"turingxo@gmail.com"}],"homepage":"https://github.com/jl-codes/platformio-mcp#readme","bugs":{"url":"https://github.com/jl-codes/platformio-mcp/issues"},"bin":{"pio-agent":"build/cli.js","platformio-mcp":"build/cli.js"},"dist":{"shasum":"042e4c50ddb1576a3bb067ca3c0ddfd1008e6ee1","tarball":"https://registry.npmjs.org/platformio-mcp/-/platformio-mcp-2.2.2.tgz","fileCount":215,"integrity":"sha512-2d2WFvz3uKRU78EidxQ5Itp/2DWPuPnHjEB3tMqPwzzg0ue+szGUnbjWbT0DOpXMwbZThLdogEpTErY4Ia7n/w==","signatures":[{"sig":"MEUCICum+BrtumfSvvfO3nvYdi6EN4Pq+yn8EtO19TqYKrkWAiEArMxwUEouwY3qF8VNtcMoX4fwHfr0N4XSmb1/0ZB1LrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1871811},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"058e35b979cd37bdd9e74f6006a573f07c9e573e","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest run tests","build":"npm run build:ui && tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","build:ui":"cd web && npm ci && npm run build","smoke-test":"node -e \"require('fs').accessSync('build/index.js'); require('fs').accessSync('build/cli.js'); require('fs').accessSync('web/dist/index.html'); require('fs').accessSync('scripts/installers/index.js')\"","test:watch":"vitest","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run smoke-test"},"_npmUser":{"name":"forkbomb","email":"turingxo@gmail.com"},"repository":{"url":"git+https://github.com/jl-codes/platformio-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"PlatformIO MCP server + web dashboard for AI agents (Cline, Claude Desktop, VS Code, Antigravity). Supports 1000+ boards across 30+ platforms.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","open":"^10.2.0","express":"^4.21.0","socket.io":"^4.8.0","tree-kill":"^1.2.2","proper-lockfile":"^4.1.2","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.0.0","vitest":"^4.0.0","prettier":"^3.1.0","supertest":"^7.2.2","@vitest/ui":"^4.0.0","typescript":"^5.3.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","@types/express":"^5.0.0","@types/supertest":"^7.2.0","socket.io-client":"^4.8.3","typescript-eslint":"^8.0.0","@types/proper-lockfile":"^4.1.4","@types/express-rate-limit":"^5.1.3"},"_npmOperationalInternal":{"tmp":"tmp/platformio-mcp_2.2.2_1779075929597_0.47738434306603494","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"platformio-mcp","version":"3.0.0","keywords":["mcp","model-context-protocol","platformio","pio-agent","embedded","iot","arduino","esp32","stm32","firmware","embedded-systems","cline","claude","antigravity","ai","dashboard"],"author":{"name":"PIO Agent Contributors"},"license":"MIT","_id":"platformio-mcp@3.0.0","maintainers":[{"name":"forkbomb","email":"turingxo@gmail.com"}],"homepage":"https://github.com/jl-codes/platformio-mcp#readme","bugs":{"url":"https://github.com/jl-codes/platformio-mcp/issues"},"bin":{"pio-agent":"build/cli.js","platformio-mcp":"build/cli.js"},"dist":{"shasum":"933b96e3977d01a5856382ede4564ce893db0529","tarball":"https://registry.npmjs.org/platformio-mcp/-/platformio-mcp-3.0.0.tgz","fileCount":309,"integrity":"sha512-QTAO/FrXI1bdDUmr6jFw3x2F1CnVAu9kp7/VYVObgEFuy+LR8n9HpGDO8nfm/9YpDZeGt9hWwrTywW5C5IfaMw==","signatures":[{"sig":"MEUCIQDLsv5NQVDv2UUdqCoJvDO4fW+cdlCdQUpGqQWdyqjTVAIgG9pW6Zim8Uz3+9S00qTi6ZXpcQQYcCHF9G33FPK2DPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16620679},"main":"build/index.js","type":"module","_from":"file:tmp/release-smoke-22648fd2d89e44398bb3243e7f56d4c9/packs/platformio-mcp-3.0.0.tgz","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest run tests","build":"npm run build:ui && tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","build:ui":"cd web && npm ci && npm run build","smoke-test":"node -e \"require('fs').accessSync('build/index.js'); require('fs').accessSync('build/cli.js'); require('fs').accessSync('web/dist/index.html'); require('fs').accessSync('scripts/installers/index.js'); require('fs').accessSync('scripts/validate-codex-plugin.mjs')\"","test:watch":"vitest","plugin:sync":"node scripts/sync-codex-plugin.mjs","plugin:test":"vitest run tests/codex-plugin-manifest.test.ts tests/codex-plugin-launcher.test.ts tests/codex-plugin-skills.test.ts","test:e2e:ci":"vitest run tests/agent-workflows.test.ts tests/cli-agent-smoke.test.ts tests/mcp-agent-smoke.test.ts","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","plugin:build":"npm run plugin:sync && npm run build:ui && tsc && node scripts/build-codex-plugin.mjs","test:ci:unit":"vitest run tests --exclude tests/mcp.test.ts --exclude tests/mcp-agent-smoke.test.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run plugin:build && npm run plugin:validate && npm run plugin:test && npm run smoke-test && npm run package:validate","plugin:validate":"node scripts/validate-codex-plugin.mjs --require-runtime","package:validate":"node scripts/validate-npm-package.mjs","plugin:sync:check":"node scripts/sync-codex-plugin.mjs --check"},"_npmUser":{"name":"forkbomb","email":"turingxo@gmail.com","approver":{"name":"forkbomb","email":"turingxo@gmail.com"}},"_resolved":"C:\\Users\\proto\\Workspace\\platformio-mcp\\tmp\\codex-plugin-worktree\\tmp\\release-smoke-22648fd2d89e44398bb3243e7f56d4c9\\packs\\platformio-mcp-3.0.0.tgz","_integrity":"sha512-QTAO/FrXI1bdDUmr6jFw3x2F1CnVAu9kp7/VYVObgEFuy+LR8n9HpGDO8nfm/9YpDZeGt9hWwrTywW5C5IfaMw==","repository":{"url":"git+https://github.com/jl-codes/platformio-mcp.git","type":"git"},"_npmVersion":"12.0.2","description":"PIO Agent: a PlatformIO MCP server and visual control plane for AI-assisted embedded development across 1000+ boards.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","open":"^10.2.0","express":"^5.2.1","socket.io":"^4.8.0","tree-kill":"^1.2.2","proper-lockfile":"^4.1.2","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","eslint":"^9.0.0","vitest":"^4.0.0","esbuild":"^0.28.2","prettier":"^3.1.0","supertest":"^7.2.2","@vitest/ui":"^4.0.0","typescript":"^5.3.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","@types/express":"^5.0.0","@types/supertest":"^7.2.0","socket.io-client":"^4.8.3","typescript-eslint":"^8.0.0","@types/proper-lockfile":"^4.1.4","@types/express-rate-limit":"^5.1.3"},"_npmOperationalInternal":{"tmp":"tmp/platformio-mcp_3.0.0_1788922539084_0.8473727501992256","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"_id":"platformio-mcp@3.1.0","bin":{"pio-agent":"build/cli.js","platformio-mcp":"build/cli.js"},"bugs":{"url":"https://github.com/jl-codes/platformio-mcp/issues"},"dist":{"shasum":"e14cd4895b487910480484ab3c622ed4c37886eb","tarball":"https://registry.npmjs.org/platformio-mcp/-/platformio-mcp-3.1.0.tgz","fileCount":1167,"integrity":"sha512-W69BuR+ctrs7DeFv/6it9xgzg2HSJpX1aI2vTOwsu7ffecRT7w7e8bJijX3CFztKOCz2AQ+FN39MLLriuCnLaA==","signatures":[{"sig":"MEUCIQD4gJ++J/gZ685lC+/WnRRkN9fos83u/bCo90ceaBQY8gIgA+Qtv+112hWsYc9eemn4RchnPbKGytlsufYXESkJ7z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBT4G+v0Et68PSKyzWmaygNekSEd31Zte4bIwfBfrq0bAiBSK/kh7Wuseemidbsktv+maJ7cKxM5jtmV837JH7MyRQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/platformio-mcp@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22082664},"main":"build/index.js","name":"platformio-mcp","type":"module","_from":"file:/home/runner/work/platformio-mcp/platformio-mcp/release-artifacts/platformio-mcp-3.1.0.tgz","types":"./build/index.d.ts","author":{"name":"PIO Agent Contributors"},"engines":{"node":">=20.0.0"},"license":"MIT","mcpName":"io.github.jl-codes/platformio-mcp","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"vitest run tests","build":"npm run build:ui && tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","build:ui":"cd web && npm ci && npm run build","accept:npm":"node scripts/accept-npm-release.mjs","smoke-test":"node -e \"require('fs').accessSync('build/index.js'); require('fs').accessSync('build/cli.js'); require('fs').accessSync('web/dist/index.html'); require('fs').accessSync('scripts/installers/index.js'); require('fs').accessSync('scripts/validate-codex-plugin.mjs')\"","test:watch":"vitest","plugin:sync":"node scripts/sync-codex-plugin.mjs","plugin:test":"vitest run tests/codex-plugin-manifest.test.ts tests/codex-plugin-launcher.test.ts tests/codex-plugin-skills.test.ts","test:e2e:ci":"vitest run tests/agent-workflows.test.ts tests/cli-agent-smoke.test.ts tests/mcp-agent-smoke.test.ts","aliases:sync":"node scripts/sync-npm-aliases.mjs","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","plugin:build":"npm run plugin:sync && npm run build:ui && tsc && node scripts/build-codex-plugin.mjs","test:ci:unit":"vitest run tests --exclude tests/mcp.test.ts --exclude tests/mcp-agent-smoke.test.ts","aliases:check":"node scripts/sync-npm-aliases.mjs --check","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run plugin:build && npm run plugin:validate && npm run plugin:test && npm run smoke-test && npm run package:validate","namespace:audit":"node scripts/audit-namespaces.mjs docs/reviews/platformio-namespace-observations.json","package:aliases":"node scripts/pack-npm-alias-candidates.mjs","package:release":"node scripts/pack-npm-release.mjs","plugin:validate":"node scripts/validate-codex-plugin.mjs --require-runtime","test:namespaces":"node --test --test-reporter=tap tests/config-acceptance-producer.test.mjs tests/parity-evidence-download.test.mjs tests/parity-acceptance-collector.test.mjs tests/namespace-audit.test.mjs tests/npm-release-identity.test.mjs tests/mcp-registry-identity.test.mjs tests/github-release-assets.test.mjs","package:validate":"node scripts/validate-npm-package.mjs","package:container":"python scripts/prepare-container-context.py","plugin:sync:check":"node scripts/sync-codex-plugin.mjs --check","registry:validate":"node scripts/validate-mcp-registry.mjs","namespace:coverage":"node scripts/namespace-coverage.mjs docs/reviews/platformio-namespace-coverage.json","test:python-runtime":"node --test tests/python-runtime.test.mjs","test:parity:acceptance":"node scripts/validate-parity-acceptance.mjs"},"version":"3.1.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9ef09e35-ccca-4041-8688-318c4de05436"}},"homepage":"https://github.com/jl-codes/platformio-mcp#readme","keywords":["mcp","model-context-protocol","platformio","pio-agent","embedded","iot","arduino","esp32","stm32","firmware","embedded-systems","cline","claude","antigravity","ai","dashboard"],"_resolved":"/home/runner/work/platformio-mcp/platformio-mcp/release-artifacts/platformio-mcp-3.1.0.tgz","_integrity":"sha512-W69BuR+ctrs7DeFv/6it9xgzg2HSJpX1aI2vTOwsu7ffecRT7w7e8bJijX3CFztKOCz2AQ+FN39MLLriuCnLaA==","repository":{"url":"git+https://github.com/jl-codes/platformio-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"PIO Agent: a PlatformIO MCP server and visual control plane for AI-assisted embedded development across 1000+ boards.","directories":{},"maintainers":[{"name":"forkbomb","email":"turingxo@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"zod":"^3.22.0","cors":"^2.8.5","open":"^10.2.0","yaml":"2.9.1","express":"^5.2.1","socket.io":"^4.8.0","tree-kill":"^1.2.2","proper-lockfile":"^4.1.2","express-rate-limit":"^8.3.2","toml-eslint-parser":"0.10.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"8.18.0","tsx":"^4.7.0","eslint":"^9.0.0","vitest":"^4.0.0","esbuild":"^0.28.2","prettier":"^3.1.0","supertest":"^7.2.2","@vitest/ui":"^4.0.0","typescript":"^5.3.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","@types/express":"^5.0.0","@types/supertest":"^7.2.0","socket.io-client":"^4.8.3","typescript-eslint":"^8.0.0","@types/proper-lockfile":"^4.1.4","@types/express-rate-limit":"^5.1.3"},"optionalDependencies":{"serialport":"13.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/platformio-mcp_3.1.0_1790372076595_0.3670580837138422"}}},"time":{"created":"2026-05-05T03:35:45.004Z","modified":"2026-09-25T21:34:37.224Z","2.0.0":"2026-05-05T03:35:45.325Z","2.1.0":"2026-05-06T00:29:24.139Z","2.2.0":"2026-05-11T21:18:25.505Z","2.2.1":"2026-05-15T01:04:35.482Z","2.2.2":"2026-05-18T03:45:29.781Z","3.0.0":"2026-09-09T02:55:39.355Z","3.1.0":"2026-09-25T21:34:36.937Z"},"bugs":{"url":"https://github.com/jl-codes/platformio-mcp/issues"},"author":{"name":"PIO Agent Contributors"},"license":"MIT","homepage":"https://github.com/jl-codes/platformio-mcp#readme","keywords":["mcp","model-context-protocol","platformio","pio-agent","embedded","iot","arduino","esp32","stm32","firmware","embedded-systems","cline","claude","antigravity","ai","dashboard"],"repository":{"url":"git+https://github.com/jl-codes/platformio-mcp.git","type":"git"},"description":"PIO Agent: a PlatformIO MCP server and visual control plane for AI-assisted embedded development across 1000+ boards.","maintainers":[{"name":"forkbomb","email":"turingxo@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"docs/assets/pio_agent.png\" alt=\"PIO Agent\" width=\"240\"/>\n</p>\n\n# PIO Agent\n\nPIO Agent is the open-source, agent-first hardware execution layer for embedded development, built on the PlatformIO MCP runtime.\n\n## 3.1.0 development status\n\nThe parity branch prepares an unreleased 3.1.0 version with optional reference tool\naliases, owned serial workflows, retained flash, OTA and expanded distribution\ncandidates. Existing published installations remain 3.0.0. See the\n[unreleased changelog](CHANGELOG.md#310---unreleased),\n[compatibility guide](docs/package-compatibility.md), and\n[distribution readiness](docs/DISTRIBUTION_READINESS.md) for implemented behavior,\nremaining acceptance, and which package names are prepared versus published.\n\n## Brand and Compatibility\n\n**PIO Agent** is the product and Codex Plugin name. **PlatformIO MCP** is the underlying MCP runtime and the compatibility identity used by existing installations. The Codex plugin ID, marketplace ID, configuration keys, and skill namespace remain `platformio-mcp`. On npm, `platformio-mcp` is the canonical package while `pio-mcp` and `pio-agent` are thin compatibility packages that delegate to it. The canonical package also installs both `platformio-mcp` and `pio-agent` executable names. This lets existing consumers upgrade without migration while new users see PIO Agent throughout the interface.\n\nIt exposes PlatformIO workflows for board discovery, project setup, build, flash, monitor, diagnostics, and task orchestration through:\n- an MCP server adapter\n- a first-class CLI adapter (`platformio-mcp` / `pio-agent`)\n- an optional local dashboard for visibility and control\n\nMCP is one adapter. PlatformIO is the first backend.\n\n## Agent-First Capabilities\n\n- Project readiness validation (`agent_validate_project`)\n- Rich build diagnostics with structured error taxonomy (`agent_build_diagnose`)\n- Board-aware GPIO safety audits (`agent_safe_pin_audit`)\n- Flash + monitor + runtime assertions (`agent_flash_monitor_verify`)\n- Persistent workflow artifacts in `.pio-mcp-workspace/` (`lastAgentReport.json`, `boardReport.json`)\n- Board intelligence reports (`agent_generate_board_report`)\n- Policy profile introspection (`get_policy_status`)\n- Exact project/environment/device bindings (`agent_resolve_target`)\n- Bounded, cursor-based serial health checks (`agent_monitor_health`)\n- Idempotent task cancellation and compact history (`cancel_task`, `list_task_history`)\n- Read-only approval status for agents; approval remains human-controlled\n\nAll risky operations still honor policy and approval rules.\n\n## Quick Start\n\n### 1. Run the dashboard\n\n```bash\nnpx platformio-mcp dashboard\n```\n\n### 2. Use the CLI\n\nAll three npm names are supported. `platformio-mcp` is canonical; `pio-mcp` and `pio-agent` install the same CLI through thin dependency-only aliases:\n\n```bash\nnpx platformio-mcp --help\nnpx pio-mcp --help\nnpx pio-agent --help\n```\n\n```bash\nnpx --package platformio-mcp pio-agent devices\nnpx --package platformio-mcp pio-agent boards --filter esp32\nnpx platformio-mcp init --board esp32dev --framework arduino --project-dir ./firmware\nnpx platformio-mcp build --project-dir ./firmware\nnpx platformio-mcp flash --project-dir ./firmware --port auto\nnpx platformio-mcp monitor --project-dir ./firmware --port auto --expect BOOT_OK --timeout 30\nnpx platformio-mcp agent-validate --project-dir ./firmware\nnpx platformio-mcp agent-build-diagnose --project-dir ./firmware\nnpx platformio-mcp agent-safe-pin-audit --project-dir ./firmware --board esp32dev\nnpx platformio-mcp agent-flash-monitor-verify --project-dir ./firmware --expect-all BOOT_OK --reject-patterns \"Guru Meditation,Brownout detector,WDT reset\" --timeout 45\nnpx platformio-mcp agent-last-report --project-dir ./firmware\nnpx platformio-mcp policy-status --project-dir ./firmware\nnpx platformio-mcp task-status <task-id>\n```\n\nUse `--json` for machine-readable output:\n\n```bash\nnpx platformio-mcp build --project-dir ./firmware --json\n```\n\n### 3. Install into AI hosts\n\n```bash\nnpx platformio-mcp install --cline\nnpx platformio-mcp install --claude\nnpx platformio-mcp install --vscode\nnpx platformio-mcp install --antigravity\nnpx platformio-mcp install --codex\n```\n\n### 4. Install the full Codex Plugin\n\nThe PIO Agent Codex Plugin adds the bundled MCP runtime, focused embedded skills, secure in-app dashboard flow, and monitoring-automation guidance. Codex requires one stable plugin identifier, so install selectors and skill namespaces remain `platformio-mcp`; the installed product is shown as PIO Agent. From a clone:\n\n```bash\nnpm install\nnpm --prefix web install\nnpm run plugin:build\nnode build/cli.js install --codex-plugin\n```\n\nFrom npm:\n\n```bash\nnpx -y platformio-mcp install --codex-plugin\n```\n\nStart a new Codex task after installation. The legacy `install --codex` command remains available for MCP-only configuration. See the [full Codex Plugin guide](docs/CODEX.md) for update, uninstall, browser fallback, policy, automation, and rollback details.\n\nThe plugin release gates run on Windows, macOS, and Linux, exercise the authenticated dashboard in Chromium, validate the bundled runtime and 44-tool registry, and keep physical-board evidence in a separate manual workflow. That workflow uploads only bounded, sanitized evidence; raw hardware logs stay on the self-hosted runner. See the [release and validation guide](docs/CODEX_PLUGIN_RELEASE.md).\n\nFor headless verification and status inspection, the same CLI also provides `plugin validate`, `target-resolve`, `monitor-status`, `monitor-health`, `task-history`, `approval-status`, and `pending-approvals`. Run `platformio-mcp --help` for bounded options and JSON output support.\n\n## Manual MCP Config\n\n```json\n{\n  \"mcpServers\": {\n    \"platformio\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"platformio-mcp\", \"--open-dashboard-on-start\"]\n    }\n  }\n}\n```\n\nOn Windows, use `npx.cmd` if your host requires explicit shim resolution.\n\n## Core Capabilities\n\n- Board and device discovery for PlatformIO-supported hardware\n- Project initialization and config inspection\n- Build, upload, monitor, and background task polling\n- Structured diagnostics for build/upload/serial failures\n- Safety and policy guardrails (approval gates, audit logs, redaction)\n- Dashboard visibility for commands, logs, locks, and safety state\n\n## Safety Model\n\nPIO Agent enforces policy decisions across CLI and MCP flows.\n\n- Actions can be `allow`, `deny`, or `requires_approval`\n- Risky operations (for example firmware upload/reset paths) require explicit approval\n- All actions can be audited\n- Secrets are redacted in exposed log streams\n\nPolicy profiles can be selected per-project via `.pio-mcp-policy.json`:\n\n```json\n{\n  \"profile\": \"flash_requires_approval\"\n}\n```\n\nSupported profiles:\n- `read_only`\n- `build_only`\n- `monitor_only`\n- `flash_requires_approval`\n- `lab_runner` (explicit, expiring unattended-lab policy required)\n- `lab_admin`\n\nCLI approval workflows:\n\n```bash\nnpx platformio-mcp approvals --status pending --json\nnpx platformio-mcp approve <approval-id> --json\nnpx platformio-mcp deny <approval-id> --json\n```\n\n## Codex Usage\n\nCodex-facing docs and prompt cookbook:\n\n- [Codex Usage Guide](docs/CODEX.md)\n- [Codex Prompt Cookbook](docs/CODEX_PROMPT_COOKBOOK.md)\n\n## Documentation\n\nGetting started:\n- [LLM Installation Guide](docs/LLMInstallationGuide.md)\n\nGuides and references:\n- [Agent Customization Guide](docs/reference/AgentCustomizationGuide.md)\n- [MCP Server Command Reference](docs/MCPServerCommandReference.md)\n- [Troubleshooting Guide](docs/TroubleshootingGuide.md)\n- [Agent-First Embedded Workflow](docs/AGENT_FIRST_EMBEDDED.md)\n- [Competitive Positioning](docs/COMPETITIVE_POSITIONING.md)\n- [MCP-U Integration Template](docs/MCP_U_INTEGRATION.md)\n- [Agent Skills Directory](.skills/README.md)\n\nSpecifications:\n- [PIO Agent Design Specification](docs/PIOMCPDesignSpecification.md)\n- [Web UX Design Specification](docs/WebUXDesignSpecification.md)\n- [Development Guide](docs/reference/DevelopmentGuide.md)\n\n## Development\n\nPrerequisites:\n- Node.js >= 20 (including the bundled direct-serial runtime)\n- PlatformIO Core CLI ([install guide](https://platformio.org/install/cli))\n\nLocal setup:\n\n```bash\ngit clone https://github.com/jl-codes/platformio-mcp.git\ncd platformio-mcp\nnpm install\nnpm run build\nnpm run test\nnpm run smoke-test\n```\n\nCI/CD test tiers:\n\n- `npm run test:ci:unit` runs unit/component coverage used in cross-platform CI.\n- `npm run test:e2e:ci` runs CI-safe end-to-end tests for agent workflows and CLI wiring.\n- `.github/workflows/ci.yml` runs typecheck, tests, and package smoke checks on pull requests/pushes.\n- `.github/workflows/hardware-e2e.yml` is a manual self-hosted-runner workflow for one explicitly confirmed physical-board write, bundled-plugin protocol checks, post-flash identity/serial assertions, cleanup proof, and sanitized evidence.\n\n## Contributing\n\nContributions are welcome.\n\n- Open an issue for bugs or feature requests\n- Submit a pull request with tests when applicable\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n### Firmware crash and size analysis\n\nThe MCP tools `decode_backtrace` and `size_report` analyze an explicitly selected project/environment using its registered GNU toolchain. Metadata and memory checks require build permission because they can execute project scripts. Reports identify the exact ELF, retain unresolved crash addresses, and distinguish PlatformIO memory usage from GNU estimates. They do not prove which firmware is on a device. See [firmware analysis](docs/firmware-analysis.md) for inputs, approval behavior, evidence and current limits.\n","readmeFilename":"README.md"}