PIO Agent
Build, inspect, flash, and monitor PlatformIO firmware projects with policy-controlled tools.
Connector by jl-codes · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/jl-codes-platformio-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: debugging, testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
Runs code on install
Its package runs an install script (such as npm postinstall or setup.py code) as soon as you install it, before any tool is called. Read the script first.
- Tools
- 42 read · 26 write · 10 delete
- Secrets
- None asked for
- Install scripts
- Runs code on install
- Runs as
- Node.js package
Tools by what they do 78
Read from the source code; the running server may list different tools.
Read 42 · Look things up without changing anything.
agent_get_last_reportagent_resolve_targetagent_validate_projectcheck_projectcheck_task_statuscoredumpdecode_backtracedeps_checkget_approval_requestget_board_infoget_dashboard_urlget_lock_status
Show 30 more tools
get_monitor_statusget_policy_statusget_project_configget_project_contextlist_boardslist_deviceslist_installed_librarieslist_pending_approvalslist_targetslist_task_historyopen_pio_agent_panelpartition_tablepio_checkpio_coredumppio_decode_backtracepio_deps_checkpio_list_devicespio_memory_watchpio_monitor_capturepio_monitor_readpio_partition_tablepio_port_diagnosepio_size_reportpio_system_infopkg_listpkg_searchproject_envsquery_logssearch_librariessystem_info
Write 26 · Create, change, send or run things.
acquire_lockagent_build_diagnoseagent_flash_monitor_verifyagent_generate_board_reportagent_monitor_healthagent_safe_pin_auditbuild_projectcapture_serial_windowinit_projectinstall_librarypio_buildpio_monitor_start
Show 14 more tools
pio_monitor_writepio_project_initpio_run_targetpio_testpio_uploadpkg_installpkg_updaterelease_lockrun_targetrun_testsstart_monitorupdate_libraryupload_filesystemupload_firmware
Delete 10 · Delete, drop, revoke or wipe things.
cancel_taskclean_projectpio_cleanpkg_outdatedpkg_uninstallproject_metadatareset_server_statesize_reportstop_monitoruninstall_library
Network hosts it talks to 9
api.nuget.org· found in codebit.ly· found in codedocker.io· found in codedocs.platformio.org· found in codeghcr.io· found in codegithub.com· found in codegitlab.com· found in codepioagent.dev· found in codeplatformio.org· found in code
Files it touches
/dev/dev/cu.usbserial-1410/etc/alpine-release/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/hal/esp32s3/include/hal/cpu_ll.h/opt/homebrew/bin/pio/opt/pio/bin/pio-agent/proc/sys/kernel/random/boot_id/sys/bus/usb/devices/tmp/policy.yaml/usr/sbin/lsof/usr/sbin/system_profiler- Your home directory (~)
~/.gemini/antigravity/mcp.jsonC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\.platformio-mcp\\isolated-host-acceptance\\plugin-final\\plugins\\cache\\platformio-mcp\\platformio-mcp\\3.1.0C:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\.platformio-mcp\\ppk2-api-092-acceptance\\Scripts\\python.exeC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3C:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio-mcp-workspace\\logs\\upload\\upload-2026-09-25T17-13-19-713Z-93eece21.logC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio-mcp-workspace\\logs\\upload\\upload-2026-09-25T17-17-30-035Z-7c53d3c0.logC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio-mcp-workspace\\ota-private\\firmware-updated.binC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio\\build\\hil-esp32s3-native\\bootloader.binC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio\\build\\hil-esp32s3-native\\firmware.binC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio\\build\\hil-esp32s3-native\\firmware.elfC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio\\build\\hil-esp32s3-native\\partitions.binC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio\\build\\hil-esp32s3-ota\\spiffs.binC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio\\build\\hil-esp32s3\\firmware.elfC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\.pio\\build\\hil-esp32s3\\partitions.binC:\\Users\\proto\\.codex\\worktrees\\platformio-parity\\platformio-mcp\\tests\\fixtures\\hardware\\esp32s3\\partitions-hil.csvC:\\Users\\proto\\.platformio-mcp\\artifacts\\elf\\734a830867a13aba43ed46bf4f8960aea875c761456b1e5f1999e042a3c5f1c8\\29f15c4809965d38772b96cda405c8e4788d7f938dddd749dd4cdc875b69b0f8.elfC:\\Users\\proto\\.platformio-mcp\\artifacts\\elf\\e8524ba98c28f0f56fced44ba0c4e36e51ed25e17e12735bd2fa6ecd9f4fc237\\6073f2aa7277aaaa183b9bc466a80c8305cdc3ef2ab1ad02dfa953c8fb24d2ad.elfC:\\Users\\proto\\.platformio-mcp\\artifacts\\ota\\0b0b45fc0831667405eba2566b77f7890678e386f6bd223384e43dfa131b15f8\\9f982e4c1de1d4cac097ab2a31ce5dfa87f716febab570a41e4d321d94938b6e.binC:\\Users\\proto\\.platformio-mcp\\artifacts\\ota\\5cabbcd2bbceb67fe3e1a76c2ef700b49123b566914395b471f75c9dc9d12134\\2dfc609366ca382f4bd85aff642336763bae95e43e8f0a8a74f05250b9f9f973.binC:\\Users\\proto\\.platformio-mcp\\artifacts\\upload\\images\\145dcf289b58bc7ff7461fe120367bf2336145016f7c68270bd6e8e897ce023b\\f94c5d786a7a8fab06ac5d10e33bf37711a6697636dc037559ea19cc410a17f0.binC:\\Users\\proto\\.platformio-mcp\\artifacts\\upload\\images\\14d2032117adbec1c0256d7cf7b217b919cec313b329b4ade6e09f534a767630\\1776e4dd896a69d0a5c2e79957b0e2a88aa4129b1381d6478683515a1f6af343.binC:\\Users\\proto\\.platformio-mcp\\artifacts\\upload\\images\\3e143ea6af48adb65cd5d57a951c0bc7f6fd4374afb54bc9b7e495a30b5a8147\\0e9c3868da97ff3f97c2178f643458ed45d27a17565eaf7d633b4a8d9540d02d.binC:\\Users\\proto\\.platformio-mcp\\artifacts\\upload\\images\\793ecf2e3cf01296c0e2e2e02e448f08fed617d5332bf068967e9eafc757e290\\99327f62da7421140192de4e3ffcb4dd7140e9d54cdb319bd41fd717a58e73b3.binC:\\Users\\proto\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\main.cppC:\\Users\\proto\\.platformio\\packages\\framework-arduinoespressif32\\tools\\partitions\\boot_app0.binC:\\Users\\proto\\.platformio\\packages\\toolchain-xtensa-esp32s3\\bin\\xtensa-esp32s3-elf-gdb.exe
Tools (78)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
acquire_lockExplicitly claim the hardware queue lock for multi-step tasks. Throws if already held.
agent_build_diagnoseRuns build_project and returns rich structured diagnostics with error taxonomy, evidence, severity, retry-safety, and resource usage (RAM/Flash).
agent_flash_monitor_verifyBuilds (optionally), flashes firmware with monitor restart, then verifies runtime serial output against expected/rejected patterns and stability criteria.
agent_generate_board_reportGenerates a compact board intelligence report and caches it in .pio-mcp-workspace/boardReport.json.
agent_get_last_reportReturns the last persisted agent report from .pio-mcp-workspace/lastAgentReport.json.
agent_monitor_healthEvaluate Serial HealthResolves one device, performs a bounded serial capture, evaluates health markers, and persists change-only automation state when automationKey is provided.
agent_resolve_targetResolve PlatformIO Targetread-onlyResolves exactly one PlatformIO environment, board, and attached physical device. Returns ambiguity instead of guessing and issues a short-lived binding for write workflows.
agent_safe_pin_auditHeuristic static pin audit for board-specific GPIO risks (ESP32 strapping/input-only/flash pins).
agent_validate_projectAgent-oriented pre-flight validation for a PlatformIO project. Reports environments, board IDs, source-file presence, config gaps, connected devices, and recommended next actions.
build_projectCompiles the project and generates the firmware binary via PlatformIO. PREFERRED over running `pio run` directly in a shell — this tool integrates with the hardware lock, the content-hash build cache (skips toolchain work when src/ is unchanged), and a structured-error parser that returns `structuredErrors` + `nextSteps` alongside the raw log. Returns immediately on a cache hit (no compilation). Set `verbose=true` only when you need the full log; otherwise the response stays compact. Use `background=true` for very long first-time builds to avoid MCP timeouts and poll with `check_task_status`.
cancel_taskCancel PlatformIO Taskcan change or delete dataIdempotently cancels one known background task and releases only resources proven to be owned by that task.
capture_serial_windowCapture Serial WindowAcquires a bounded serial-monitor lease, captures redacted incremental output, and restores or releases resources on every exit path.
check_projectStatic analysis validation.
check_task_statusPolls the status of an ongoing background task. Returns a JSON object where `status` indicates the success of the polling operation itself, and `targetStatus` (running, failed, completed) indicates the state of the actual background task.
clean_projectRemoves build artifacts and compiled files from the project.
Show 63 more tools
coredumpInspect an ESP core dump from a file or explicitly authorized device partition read, optionally analyzing it against an explicit ELF. Device reads can reset hardware and require separate device and host-command grants.
decode_backtraceDecode crash addresses against the selected current or retained ELF. Requires build permission for metadata; does not prove flashed-device identity.
deps_checkAudit declared and installed project dependencies, with optional separately authorized build and LDF graph evidence.
get_approval_requestInspect Approval Requestread-onlyReads one approval request and expiry without exposing approve or deny mutations to the agent.
get_board_infoGets detailed information about a specific board including MCU, frequency, flash, RAM, and supported frameworks.
get_dashboard_urlRetrieves a short-lived authenticated launch URL for the browser dashboard. Automatically starts the local web server on demand if offline.
get_lock_statusReveals who currently owns the hardware queue lock.
get_monitor_statusInspect Serial Monitorread-onlyReports active, inactive, or stale serial monitor state with a bounded incremental cursor.
get_policy_statusReturns the active policy profile and allowed/approval-required/denied operations.
get_project_configDumps platformio.ini JSON.
get_project_contextReturns a compact pre-flight snapshot of a PlatformIO project: declared environments, source files under src/, `lib_deps`, build-cache state, firmware artifact path, connected serial devices, and a `nextSteps` checklist. Call this FIRST when starting work on a project instead of issuing several read_file/list_devices/cat-log calls — it collapses that ritual into a single deterministic response. Pure I/O, no toolchain invocation; safe to call repeatedly.
init_projectInitializes a new PlatformIO project with the specified board and optional framework. Creates project structure with src/, include/, lib/, and test/ directories.
install_libraryInstalls a library from the PlatformIO registry either globally or to a specific project. Supports version specification.
list_boardsLists all available PlatformIO boards with optional filtering by platform, framework, or MCU. Supports 1000+ boards across 30+ platforms.
list_devicesLists all connected serial devices that can be used for firmware upload and monitoring.
list_installed_librariesLists all installed libraries either globally or for a specific project.
list_pending_approvalsList Pending Approvalsread-onlyLists pending project-scoped approval requests without exposing any approval mutation.
list_targetsList structured target metadata for selected or all environments. Requires build permission; does not execute the listed targets.
list_task_historyList PlatformIO Tasksread-onlyReturns compact project-scoped task history after reconciling stale tracked processes.
open_pio_agent_panelOpen PIO Agent Panelread-onlyOpens the PIO Agent project, device, and task panel in a Codex host that supports MCP Apps. The headless result identifies the selected project without starting the browser dashboard.
partition_tableInspect ESP partition artifacts and firmware fit. Optional buildMetadata requires build permission and can execute project scripts. Optional readDevice resets/reads an explicitly selected serial device with separate permissions.
pio_buildRun a fresh PlatformIO build with optional parallel jobs and compact diagnostics. Canonical build permissions apply.
pio_checkRun static analysis with structured defects, source locations and CWE. Canonical check permissions apply.
pio_cleanClean selected build artifacts, optionally including dependencies. Canonical destructive cleanup permission applies.
pio_coredumpCapture and save the selected ESP core-dump partition, optionally analyzing it against the matching project ELF. Configuration, metadata, device, export and analysis permissions remain separate.
pio_decode_backtraceDecode supplied crash text or an owned monitor session against a verified ELF snapshot. Build metadata collection and serial reads retain separate canonical permissions.
pio_deps_checkCompatibility dependency audit using canonical permissions and optional authorized build evidence.
pio_list_devicesList serial device hints and caller-owned monitor sessions under canonical permissions.
pio_memory_watchCollect bounded heap/stack telemetry from an owned session or an authorized temporary monitor. Reports sample-window trends, explicit unknown units and incomplete collection; does not prove a memory leak.
pio_monitor_captureOpen, read and close an owned serial monitor. Both opening and reading must be authorized before startup; unconfirmed closure retains device ownership.
pio_monitor_readRead an owned monitor with cursors and bounded Python-compatible regex matching on completed lines. Maximum wait 120 seconds; response and storage byte limits apply.
pio_monitor_startStart an owned serial monitor using explicit arguments, resolved project settings, or an unambiguous device candidate. Opening requires hardware authorization and exclusive device ownership.
pio_monitor_writeWrite UTF-8 text to an owned serial session after payload-bound hardware authorization. Limited to 64 KiB including the optional newline.
pio_partition_tableInspect the effective ESP partition layout and optionally compare a serial device. Build metadata and hardware access retain separate canonical permissions.
pio_port_diagnoseInspect serial-port presence, permissions and observed holders without opening or closing the device. Missing holder evidence does not prove availability.
pio_project_initInitialize a PlatformIO project with ordered options. Canonical initialization and configuration-read permissions apply before filesystem changes.
pio_run_targetRun a named target through the canonical effect permissions and caller-owned serial lifecycle.
pio_size_reportReport ELF sections, largest symbols/files and partition-aware PlatformIO accounting under canonical build permissions. Static RAM excludes runtime heap and stack.
pio_system_infoInspect PlatformIO Core, effective server policy and caller-owned monitors through canonical permissions.
pio_testRun PlatformIO tests with per-case results. Embedded tests can upload and open hardware; canonical high-risk test permission applies. Build-only policy disables upload and test execution.
pio_uploadBuild and upload firmware through shared upload permissions and caller-owned serial cleanup.
pkg_installInstall a library, platform or tool in a project and save dependencies through PlatformIO.
pkg_listList project packages and environments. Requires build permission because PlatformIO loads platform code.
pkg_outdatedReport outdated project packages. Requires build permission because PlatformIO loads platform code.
pkg_searchSearch PlatformIO library, platform or tool registry packages by type and page.
pkg_uninstallRemove a library, platform or tool from a project and its declared dependencies.
pkg_updateUpdate project dependencies within declared version constraints, with retained output and configuration change hashes.
project_envsList resolved project environments, inherited board/framework/port settings and configured defaults without running build scripts.
project_metadataGenerate bounded build metadata for selected or all environments. Requires build permission; may execute project scripts or install dependencies.
query_logsScans the latest active background serial trace spool, returning a filtered string block.
release_lockRelease the explicit queue lock matching your session ID.
reset_server_stateForcefully cleans all server locks and terminates any tracked daemon or compilation PIDs globally or locally.
run_targetRun a named PlatformIO target with effect-based permissions. Serial upload targets coordinate owned monitors and endpoint custody; network/probe destinations require their dedicated workflow.
run_testsValidates unit tests locally/remote.
search_librariesSearches the PlatformIO library registry for available libraries by name, keywords, or description.
size_reportReport GNU symbols and PlatformIO memory accounting for one environment. Metadata and size checks require build permission and may execute project scripts.
start_monitorManually start or restart the background serial-to-disk spooler for a specific device.
stop_monitorKills the active background serial listener and unlocks the UART.
system_infoGets sys diagnostic path output.
uninstall_libraryRemoves target library.
update_libraryUpgrades library versions.
upload_filesystemBuilds and uploads a SPIFFS/LittleFS filesystem image to the connected device. PREFERRED over `pio run --target uploadfs` in a shell — same hardware-lock and port-auto-detect benefits as `upload_firmware`. Supports `start_monitor=true` to re-attach serial after upload.
upload_firmwareUploads compiled firmware to a connected device. PREFERRED over `pio run --target upload` in a shell — this tool routes through the hardware lock to serialize port access, auto-detects the port, and (with `start_monitor=true`) re-attaches the serial monitor after the device re-enumerates. Automatically rebuilds via `build_project` semantics if the cache is cold.
Signals
- Stars
- 53
- Forks
- 19
- Open issues
- 9
- Contributors
- 8
- Last commit
- Oct 5, 2026 (25 days ago)
- Last release
- Sep 25, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.jl-codes/platformio-mcp- Version
- 3.1.0
- Auth
- No auth
- Packages
- npm platformio-mcp
- License
- MIT
- Repository
- github.com/jl-codes/platformio-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from jl-codes
- 0.524score
laser-calibrate
jl-codes
Generate and record kerf, fit, focus, line interval, speed/power, scan-offset, and engraving-depth calibration artifacts for laser machines and material…
SkillBFreshness: BClaude Code +9 - 0.524score
laser-design
jl-codes
Orchestrate new laser-fabrication designs, uploaded artwork, design modifications, and fabrication briefs into explicit design.yaml manifests and dimensioned…
SkillBFreshness: BClaude Code +9 - 0.521score
laser-vector
jl-codes
Inspect, trace, vectorize, clean, measure, normalize, convert, or repair raster, SVG, and DXF artwork for laser fabrication.
SkillBFreshness: BClaude Code +9 - 0.521score
lightburn-job
jl-codes
Prepare a selected, preflighted laser job for a specific LightBurn device and profile, including exact-scale files, semantic layer maps, settings tables…
SkillBFreshness: BClaude Code +9 - 0.517score
laser-preflight
jl-codes
Validate laser-bound jobs and artwork for dimensions, topology, operation mapping, material and machine compatibility, recipe evidence, compensation…
SkillBFreshness: BClaude Code +9
Cite this page
PIO Agent MCP server. Agent Mart. https://agentmart.dev/connectors/jl-codes-platformio-mcp (last updated 2026-10-24)