PluginBench
MCP Server
Active
MIT

PIO Agent MCP Server

io.github.jl-codes/platformio-mcp

Agent-first embedded development: build, flash, and monitor PlatformIO firmware with policy-controlled safety guardrails.

What is the PIO Agent MCP server?

PIO Agent is an open-source MCP server that exposes PlatformIO workflows for embedded development, including board discovery, project setup, build, flash, monitor, and diagnostics. It enforces policy-based approval gates and safety audits to keep risky operations under human control while enabling AI agents to validate projects, diagnose build failures, and manage firmware deployment.

PIO Agent bridges AI agents and embedded hardware by wrapping PlatformIO's CLI into an MCP runtime with agent-first capabilities. It provides structured diagnostics, GPIO safety audits, flash+monitor verification, and persistent workflow artifacts—all gated by configurable policies (read-only, build-only, flash-requires-approval, lab-runner). Use it to automate firmware builds, validate project readiness, audit pin safety, and manage device flashing with approval workflows.

How to install PIO Agent

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "platformio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "platformio-mcp"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • agent_validate_project — Validate project readiness for build and deployment.
  • agent_build_diagnose — Rich build diagnostics with structured error taxonomy.
  • agent_safe_pin_audit — Board-aware GPIO safety audits.
  • agent_flash_monitor_verify — Flash, monitor, and verify runtime assertions.
  • agent_generate_board_report — Generate board intelligence reports.
  • agent_resolve_target — Resolve exact project/environment/device bindings.
  • agent_monitor_health — Bounded, cursor-based serial health checks.
  • get_policy_status — Introspect policy profile configuration.
  • cancel_task — Idempotent task cancellation.
  • list_task_history — Compact task history retrieval.
  • decode_backtrace — Analyze firmware crash backtraces using GNU toolchain.
  • size_report — Generate firmware size and memory usage reports.
  • devices — Discover connected PlatformIO-supported hardware.
  • boards — List and filter available PlatformIO boards.
  • init — Initialize a new PlatformIO project.
  • build — Build firmware for a project.
  • flash — Upload firmware to a device.
  • monitor — Monitor serial output from a device.

Use cases

  • Automate firmware builds and validate project configuration before deployment.
  • Diagnose build failures with structured error taxonomy and memory analysis.
  • Audit GPIO pin usage for safety conflicts before flashing to hardware.
  • Flash firmware and verify runtime behavior with serial assertions and timeout handling.
  • Manage approval workflows for risky operations like device reset and firmware upload.

PIO Agent MCP server FAQ

What is PIO Agent?

PIO Agent is an MCP server that wraps PlatformIO's embedded development workflows (build, flash, monitor, diagnostics) with agent-first capabilities, policy-controlled approval gates, and safety audits for GPIO and firmware operations.

Is PIO Agent free?

Yes, PIO Agent is open-source under the MIT license. It requires PlatformIO Core CLI (free) and Node.js >= 20.

How do I install PIO Agent in Claude or Cursor?

Install via npm: `npx platformio-mcp install --claude` or `npx platformio-mcp install --cline`. Alternatively, add manual MCP config pointing to `npx platformio-mcp --open-dashboard-on-start`.

What authentication is required?

PIO Agent does not require external authentication. It uses local PlatformIO configuration and device discovery. Policy approval workflows are human-controlled via CLI or dashboard.

What safety features does PIO Agent provide?

Policy profiles (read-only, build-only, flash-requires-approval, lab-runner) gate risky operations. GPIO safety audits prevent pin conflicts. All actions are auditable and secrets are redacted in logs.

Can I use PIO Agent without a dashboard?

Yes. PIO Agent works as a CLI tool (`platformio-mcp` / `pio-agent`) and as an MCP server for AI hosts. The dashboard is optional for visibility and control.

README (reference)

Source of truth, from the repository.

<p align="center"> <img src="docs/assets/pio_agent.png" alt="PIO Agent" width="240"/> </p>

PIO Agent

PIO Agent is the open-source, agent-first hardware execution layer for embedded development, built on the PlatformIO MCP runtime.

3.1.0 development status

The parity branch prepares an unreleased 3.1.0 version with optional reference tool aliases, owned serial workflows, retained flash, OTA and expanded distribution candidates. Existing published installations remain 3.0.0. See the unreleased changelog, compatibility guide, and distribution readiness for implemented behavior, remaining acceptance, and which package names are prepared versus published.

Brand and Compatibility

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.

It exposes PlatformIO workflows for board discovery, project setup, build, flash, monitor, diagnostics, and task orchestration through:

  • an MCP server adapter
  • a first-class CLI adapter (platformio-mcp / pio-agent)
  • an optional local dashboard for visibility and control

MCP is one adapter. PlatformIO is the first backend.

Agent-First Capabilities

  • Project readiness validation (agent_validate_project)
  • Rich build diagnostics with structured error taxonomy (agent_build_diagnose)
  • Board-aware GPIO safety audits (agent_safe_pin_audit)
  • Flash + monitor + runtime assertions (agent_flash_monitor_verify)
  • Persistent workflow artifacts in .pio-mcp-workspace/ (lastAgentReport.json, boardReport.json)
  • Board intelligence reports (agent_generate_board_report)
  • Policy profile introspection (get_policy_status)
  • Exact project/environment/device bindings (agent_resolve_target)
  • Bounded, cursor-based serial health checks (agent_monitor_health)
  • Idempotent task cancellation and compact history (cancel_task, list_task_history)
  • Read-only approval status for agents; approval remains human-controlled

All risky operations still honor policy and approval rules.

Quick Start

1. Run the dashboard

npx platformio-mcp dashboard

2. Use the CLI

All three npm names are supported. platformio-mcp is canonical; pio-mcp and pio-agent install the same CLI through thin dependency-only aliases:

npx platformio-mcp --help
npx pio-mcp --help
npx pio-agent --help
npx --package platformio-mcp pio-agent devices
npx --package platformio-mcp pio-agent boards --filter esp32
npx platformio-mcp init --board esp32dev --framework arduino --project-dir ./firmware
npx platformio-mcp build --project-dir ./firmware
npx platformio-mcp flash --project-dir ./firmware --port auto
npx platformio-mcp monitor --project-dir ./firmware --port auto --expect BOOT_OK --timeout 30
npx platformio-mcp agent-validate --project-dir ./firmware
npx platformio-mcp agent-build-diagnose --project-dir ./firmware
npx platformio-mcp agent-safe-pin-audit --project-dir ./firmware --board esp32dev
npx platformio-mcp agent-flash-monitor-verify --project-dir ./firmware --expect-all BOOT_OK --reject-patterns "Guru Meditation,Brownout detector,WDT reset" --timeout 45
npx platformio-mcp agent-last-report --project-dir ./firmware
npx platformio-mcp policy-status --project-dir ./firmware
npx platformio-mcp task-status <task-id>

Use --json for machine-readable output:

npx platformio-mcp build --project-dir ./firmware --json

3. Install into AI hosts

npx platformio-mcp install --cline
npx platformio-mcp install --claude
npx platformio-mcp install --vscode
npx platformio-mcp install --antigravity
npx platformio-mcp install --codex

4. Install the full Codex Plugin

The 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:

npm install
npm --prefix web install
npm run plugin:build
node build/cli.js install --codex-plugin

From npm:

npx -y platformio-mcp install --codex-plugin

Start a new Codex task after installation. The legacy install --codex command remains available for MCP-only configuration. See the full Codex Plugin guide for update, uninstall, browser fallback, policy, automation, and rollback details.

The 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.

For 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.

Manual MCP Config

{
  "mcpServers": {
    "platformio": {
      "command": "npx",
      "args": ["-y", "platformio-mcp", "--open-dashboard-on-start"]
    }
  }
}

On Windows, use npx.cmd if your host requires explicit shim resolution.

Core Capabilities

  • Board and device discovery for PlatformIO-supported hardware
  • Project initialization and config inspection
  • Build, upload, monitor, and background task polling
  • Structured diagnostics for build/upload/serial failures
  • Safety and policy guardrails (approval gates, audit logs, redaction)
  • Dashboard visibility for commands, logs, locks, and safety state

Safety Model

PIO Agent enforces policy decisions across CLI and MCP flows.

  • Actions can be allow, deny, or requires_approval
  • Risky operations (for example firmware upload/reset paths) require explicit approval
  • All actions can be audited
  • Secrets are redacted in exposed log streams

Policy profiles can be selected per-project via .pio-mcp-policy.json:

{
  "profile": "flash_requires_approval"
}

Supported profiles:

  • read_only
  • build_only
  • monitor_only
  • flash_requires_approval
  • lab_runner (explicit, expiring unattended-lab policy required)
  • lab_admin

CLI approval workflows:

npx platformio-mcp approvals --status pending --json
npx platformio-mcp approve <approval-id> --json
npx platformio-mcp deny <approval-id> --json

Codex Usage

Codex-facing docs and prompt cookbook:

Documentation

Getting started:

Guides and references:

Specifications:

Development

Prerequisites:

  • Node.js >= 20 (including the bundled direct-serial runtime)
  • PlatformIO Core CLI (install guide)

Local setup:

git clone https://github.com/jl-codes/platformio-mcp.git
cd platformio-mcp
npm install
npm run build
npm run test
npm run smoke-test

CI/CD test tiers:

  • npm run test:ci:unit runs unit/component coverage used in cross-platform CI.
  • npm run test:e2e:ci runs CI-safe end-to-end tests for agent workflows and CLI wiring.
  • .github/workflows/ci.yml runs typecheck, tests, and package smoke checks on pull requests/pushes.
  • .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.

Contributing

Contributions are welcome.

  • Open an issue for bugs or feature requests
  • Submit a pull request with tests when applicable

License

MIT. See LICENSE.

Firmware crash and size analysis

The 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 for inputs, approval behavior, evidence and current limits.

Related MCP servers

MCP server wrapping the Tesla Fleet API and TeslaMate API

2
Python
MIT
View repository →
SESellbase logo

Sellbase

Active

Open source commerce in your own Supabase: catalog, checkout, orders and bookings, run by your AI.

0
TypeScript
MIT
View repository →

MCP server for the iamf-sentinel IAMF conformance validator and the iamf-loom packager

0
Python
Apache-2.0
View repository →

Search Facebook Marketplace, eBay, Depop, and Poshmark for secondhand items with AI.

49
TypeScript
MIT
View repository →

40 Apify public-data tools for leads, news, SEO, jobs, SEC, procurement, and registries.

0
Python
MIT
View repository →

Webinar analytics for Zoom Meeting-based webinars: Funnels, transcripts, email engagement