Skip to content

Tinymcp

Let LLMs control embedded devices via the Model Context Protocol.

Install

$claude mcp add --transport http tinymcp http://localhost:8080 -H 'Authorization: Bearer none'

Install command taken from the project's README or registry entry. Always review code before running it.

tinymcp

Let LLMs control embedded devices via the Model Context Protocol.

[!WARNING] tinymcp is an experimental project. Expect frequent breaking changes. Extreme caution should be taken when delegating physical capabilities to AI systems.

Background

The tinymcp project includes an MCP server, which is executed locally, but communicates with remote devices via the Golioth management API. It uses two existing device services on the Golioth platform, LightDB State and Remote Procedure Calls (RPCs), to expose device functionality via MCP.

RPCs can be exposed as tools by including a schema in on the mcp/tools/schema path in LightDB State. Because LightDB State can be updated by devices or users, RPCs on existing devices can be exposed without needing to modify the device firmware.

Setup

To use tinymcp, you need to connect a device to the Golioth platform, then run the tinymcp server on your local machine.

Firmware

While existing devices can be used without changing the firmware, if you don't already have a device on Golioth, the blinky example provides a simple demonstration of how to expose LED control to an LLM via tinymcp. It uses Zephyr RTOS, which requires setting up dependencies before building. After doing so, you can initialize your workspace with one of the following commands.

west init -l .

Or, to use the downstream Nordic nRF Connect SDK.

west init -l . --mf west-ncs.yml

With your workspace initialized, use west update to fetch necessary modules and libraries.

west update --narrow -o=--depth=1

You are now ready to build the firmware and flash your device. See the blinky documentation for more information.

Server

In order to run the tinymcp MCP server locally, the following environment variables need to be supplied.

TINYMCP_PROJECT=<your-golioth-project-id>
TINYMCP_DEVICE=<your-golioth-device-id>
TINYMCP_API_KEY=

The server can be built into an executable using go build -o tinymcp ./server or run directly with go run ./server.

If you don't already have a device on Golioth, the blinky example demonstrates how to expose LED control to an LLM via tinymcp. See the documentation to build and flash on your device, then expose the registered RPCs in your MCP schema.

There are many MCP client implementations, most of which should be compatible with tinymcp. Setup for a few popular options are listed below.

MCP Inspector

MCP Inspector is a visual testing tool for MCP servers. It allows you to interact with MCP methods directly, rather than going through an LLM. This can be useful when troubleshooting why an LLM may be failing to interact with your device.

Similar plugs

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发

Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype…

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io