About Iot Go
Iot Go is an MCP server published by sukeesh in the Developer Tools category: mCP Server for Sensors.
The repository has 8 stars and 2 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/sukeesh/mcp-iot-goThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (4)
buzzer_controlControls a buzzer connected to an Arduino pin with optional duration
Parameters not published.
port_listLists all available serial ports
Parameters not published.
read_serial_lineReads a single line of data from a specified serial port
Parameters not published.
write_digitalWrites a digital value (HIGH/LOW) to a pin on a specified port
Parameters not published.
Ask AI
Ask AI about Iot Go
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
MCP for IOT
Overview
MCP for IOT is a Go implementation of the Model Context Protocol (MCP) server that allows AI models like Claude to directly interact with IoT devices, specifically Arduino boards. This server acts as a bridge between Claude and your Arduino hardware, enabling AI-controlled hardware automation.
Features
- 🔌 List available serial ports
- 📡 Read data from Arduino's serial port
- 🚦 Control digital pins (LEDs, relays, etc.)
- 🔊 Control buzzers with on/off and duration settings
- 🤖 Seamless integration with Claude AI
Usage
https://github.com/user-attachments/assets/46d7d731-f5d0-4acd-b53e-c00be8b83215
Prerequisites
- Go (version 1.24 or later)
- Arduino hardware with USB connection
- Claude Desktop App or compatible MCP client
Installation
Build from Source
git clone https://github.com/sukeesh/mcp-iot-go.git
cd mcp-iot-go
go install
The binary will be installed to your GOBIN directory, which should be in your PATH.
Arduino Setup
- Connect your Arduino to your computer
- Upload the provided Arduino firmware:
arduino/firmware.ino
This firmware accepts commands via serial communication:
M,pin,mode- Sets pin mode (e.g.,M,6,OUTPUT)D,pin,value- Controls digital pins (e.g.,D,6,HIGHorD,6,LOW)BZ,pin,state- Controls buzzers (e.g.,BZ,8,ONorBZ,8,OFF)
Configuration with MCP Client
Configure Claude Desktop:
- Open Claude Desktop → Settings → Developer → Edit Config
- Add the following to your
claude_desktop_config.json:
{
"mcpServers": {
"iot": {
"command": "<path-to-mcp-iot-go-binary>",
"env": {}
}
}
}
- Restart Claude Desktop
Available Tools
| Tool | Description |
|---|---|
port_list |
Lists all available serial ports |
read_serial_line |
Reads a single line of data from a specified serial port |
write_digital |
Writes a digital value (HIGH/LOW) to a pin on a specified port |
buzzer_control |
Controls a buzzer connected to an Arduino pin with optional duration |
Usage Examples
After setup, you can interact with your Arduino hardware directly through Claude:
- "List all available serial ports"
- "Read data from the Arduino on port /dev/cu.usbmodem12401"
- "Turn on the red LED on pin 6"
- "Activate the buzzer on pin 8 for 2 seconds"
Development
Project Structure
main.go- MCP server setup and tool definitionsinternal/tools.go- Tool implementation for Arduino communicationarduino/firmware.ino- Arduino firmware for processing commands
Dependencies
- mcp-go - Go library for MCP implementation
- go.bug.st/serial - Serial port communication library
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
README fetched from the repository 7 days ago. The original is authoritative.