Use the account API with your AI agent

There are TWO separate MCP servers here. This page is about the one that manages your account: who you are, whether Pro is active, and verifying a licence key. It never talks to a microcontroller. The one that actually drives boards is the desktop server you install yourself — see “Installing the device MCP server” below and the full tool list at /docs/quickstart.

Create an API key

Sign in and go to your account's Agent access section. Name the key (e.g. “Claude Code”) and create it. The plaintext is shown exactly once — copy it before leaving the page. Keys are stored hashed and can be revoked at any time; revoking stops every agent and the CLI using that key immediately.

There is no checkout or webhook tool anywhere on this surface. Buying Pro always happens in a browser at /pricing; an agent can only tell you the URL and whether Pro is already active.

Claude Code

claude mcp add --transport http mcuport-account https://mcuport.vercel.app/mcp \
  --header "Authorization: Bearer <your key>"

Or in .mcp.json:

{
  "mcpServers": {
    "mcuport-account": {
      "type": "http",
      "url": "https://mcuport.vercel.app/mcp",
      "headers": { "Authorization": "Bearer ${MCUPORT_API_KEY}" }
    }
  }
}

claude.ai / Claude Desktop

Settings > Connectors > Add custom connector > URL https://mcuport.vercel.app/mcp. Under “Request headers”, add fixed credentials: Authorization: Bearer <your key>.

Cursor

~/.cursor/mcp.json or .cursor/mcp.json:

{
  "mcpServers": {
    "mcuport-account": {
      "url": "https://mcuport.vercel.app/mcp",
      "headers": { "Authorization": "Bearer ${env:MCUPORT_API_KEY}" }
    }
  }
}

ChatGPT / Codex

codex mcp add mcuport-account --url https://mcuport.vercel.app/mcp \
  --bearer-token-env-var MCUPORT_API_KEY

VS Code

.vscode/mcp.json:

{
  "servers": {
    "mcuport-account": {
      "type": "http",
      "url": "https://mcuport.vercel.app/mcp",
      "headers": { "Authorization": "Bearer ${env:MCUPORT_API_KEY}" }
    }
  }
}

The tools

ToolWhat it does
whoamiThe account this key belongs to: email, account creation date, whether Pro is active, this key's name and scopes
get_entitlement_statusFull Pro detail: active or not, which source granted it, every licence key and its status, an upgrade URL when Pro is off
verify_license_keyChecks any licence key value (not only this caller's own) — minted, not revoked, owned by a live account
get_latest_versionThe device MCP server's current version and exactly how to install/register it — it does not itself touch a board

REST API and CLI

The same four jobs are a documented REST API at /openapi.json (GET /api/v1/me, GET /api/v1/entitlement, POST /api/v1/license/verify, GET /api/v1/version), and a zero-dependency CLI:

npx mcuport login            # paste your key, or set MCUPORT_API_KEY
npx mcuport whoami
npx mcuport entitlement
npx mcuport verify MCUP-....
npx mcuport version           # the device server's latest version + install docs
npx mcuport whoami --json     # machine-readable output for any command

The CLI is not published to npm yet; its source is in this repo under web/cli/. Every surface — the MCP tools, the REST routes and the CLI — calls the exact same functions in lib/agent_jobs.ts, so a key never grants more through one path than another.

Rate limits and audit

300 calls per key per hour. Every authenticated call (MCP or REST) is logged — action, which key, success, duration — and the account can read its own recent calls back from GET /api/v1/me.

Installing the device MCP server

This account API is not where boards get listed, flashed or read. That is a separate, local, stdio MCP server you run on the machine with the USB port. /docs/quickstart has the full setup (vendor CLIs to install, client config, the complete tool list, and what each tool is proven against today). get_latest_version above, or npx mcuport version on the CLI, returns that server's current version number and the exact commands to build and register it — useful when an agent is helping someone get set up and needs the current install story rather than a guess.