Skip to main content
Glama

robo-mcp

A local, offline MCP server that helps you plan Arduino/ESP32/Raspberry Pi robotics builds: correct pinouts, wiring diagrams, board pinout references, and code skeletons — all checked against real component specs instead of generated from memory.

Why this exists

LLMs are good at reasoning about a build and bad at remembering exact pinout facts. This server doesn't try to fix that with more prompting — it hands the calling model a small, verified knowledge base (board/component JSON, cross-checked against Fritzing, KiCad, and PlatformIO data) plus deterministic renderers and checkers. The server itself never calls an AI model. Every tool either looks up grounded data, runs a deterministic rule/graph check, or shells out to an external verifier (arduino-cli, cppcheck, mypy). All the actual reasoning about what to build happens in your own Claude/LLM session, on your own credits.

Related MCP server: arduino-mcp-server

Status

Under active development. See the build phases below for what's implemented.

  • Phase 1 — data modeling: JSON Schema, 3 boards (Arduino Uno, ESP32 DevKit, Raspberry Pi), 12 components, domain compatibility rules

  • Phase 2 — renderers: generate_wiring_diagram (schemdraw) and generate_pinout_reference (schemdraw, see note below)

  • Phase 3 — MCP server wiring

  • Phase 4 — end-to-end acceptance test against Claude Desktop

  • Phase 5 — grow to ~15-20 components

  • Phase 6 — packaging + docs (PyPI, supported-hardware table, CONTRIBUTING.md)

  • Phase 7 — SKiDL structural ERC, layout preview, verify_code, generate_mount

Note: boardgen was dropped

The original design called for boardgen (ltchiptool's pinout diagram tool) to power generate_pinout_reference. In practice it's built specifically for bare chip-package pinouts using LibreTiny's own hand-authored SVG shape templates, and has no template for a full Arduino Uno/ESP32 DevKit/Raspberry Pi board outline — building one would mean recreating a chunk of that project's own art assets just to use the library. generate_pinout_reference is implemented with schemdraw instead (the same rendering stack generate_wiring_diagram already uses), rendering the same contract: a full physical pinout diagram of one board, independent of any project, cached per board.

Installation

Not yet published to PyPI. For local development:

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

License and dependency discipline

This project is MIT licensed. Everything imported into the package is MIT/Apache/BSD/CC0/PSF licensed (see pyproject.toml). Some verification tools used by verify_code are GPL-licensed (arduino-cli's toolchain, cppcheck, clang-tidy) — these are never vendored or imported. They are invoked as separately-installed external binaries via subprocess, auto-detected on PATH, and skipped gracefully with a note if not installed. You must install them yourself if you want that verification path:

No hosted/remote server, no required network access, no API keys. Works fully offline after pip install.

Data sources

Board and component specs are cross-checked against:

Contributing

Adding a new board or component is a one-JSON-file contribution — see src/robomcp/schema/ for the JSON Schemas and src/robomcp/data/ for examples. (Full CONTRIBUTING.md coming in the packaging phase.)

License

MIT — see LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides AI agents with instant, structured access to electronic component datasheets, pinouts, and electrical specifications without requiring PDF uploads. It enables seamless part searching, design validation, and side-by-side component comparisons across major hardware providers.
    12
    38 npm
    12
    MIT
  • F
    license
    D
    quality
    B
    maintenance
    Enables AI agents to design electrical schematics through a high-level semantic API, handling components, pins, nets, validation/ERC, auto-layout, and SVG/KiCad rendering without requiring coordinate or file internals.
    22
    -