MCP Remote Access
Enables SSH and UART/serial port access for Claude Code to directly control remote devices like Raspberry Pi, embedded systems, and IoT devices. Supports command execution, file transfers via SFTP, and serial communication.
README
<p align="center"> <img src="assets/logo.svg" alt="MCP Remote Access" width="400"> </p>
<p align="center"> <strong>SSH & Serial port access for MCP-compatible clients</strong> </p>
<p align="center"> <a href="#installation">Installation</a> • <a href="#features">Features</a> • <a href="#usage-examples">Usage</a> </p>
An MCP server providing SSH and UART/serial port access for MCP-compatible clients (for example, Codex CLI or Claude Code). Enables direct control of remote devices like Raspberry Pi, embedded systems, and IoT devices.
Features
SSH Tools
- ssh_connect - Connect to remote hosts via SSH (password or key auth)
- ssh_execute - Run commands on connected hosts
- ssh_upload - Upload files via SFTP
- ssh_download - Download files via SFTP
- ssh_disconnect - Close connections
- ssh_list_connections - Show active connections
UART/Serial Tools
- serial_list_ports - List available serial ports
- serial_connect - Connect to a serial port
- serial_connect_match - Connect by matching VID/PID/serial/description
- serial_send - Send data (with optional response reading and configurable line ending)
- serial_read - Read data from port
- serial_wait_for - Wait for a specific pattern in output
- serial_expect - Wait/send sequences for prompts and AT flows
- serial_send_break - Send a break signal
- serial_set_dtr - Set DTR line state
- serial_set_rts - Set RTS line state
- serial_reset_device - Reset devices via DTR/RTS sequences
- serial_flush - Flush serial buffers
- serial_disconnect - Close connections
- serial_list_connections - Show active connections
Installation
1. Clone and install
git clone https://github.com/RFingAdam/mcp-remote-access.git
cd mcp-remote-access
uv pip install -e .
2. Add to your MCP client
Codex CLI example:
codex mcp add remote-access -- uv run --directory /path/to/mcp-remote-access mcp-remote-access
Claude Code example:
claude mcp add remote-access -- uv run --directory /path/to/mcp-remote-access mcp-remote-access
If your client uses a config file, set the MCP server command to:
{
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-remote-access", "mcp-remote-access"]
}
3. Start your client
For example:
codex
claude
Usage Examples
SSH to a Raspberry Pi
Connect to my Pi at vpn-ap.local with username pi and password raspberry
The client will use:
ssh_connectto establish connectionssh_executeto run commandsssh_upload/downloadfor file transfers
Serial Connection to Embedded Device
List available serial ports and connect to /dev/ttyUSB0 at 115200 baud
The client will use:
serial_list_portsto show available portsserial_connectto establish connectionserial_send/serial_readfor communication
Connect to the USB serial device with VID 0x10c4 and PID 0xea60 at 115200 baud
The client will use:
serial_connect_matchto select the portserial_send/serial_readfor communication
Serial Prompt Automation
Connect to the UART and log in as root (password summit), then wait for a shell prompt
The client will use:
serial_connectorserial_connect_matchto open the portserial_expectto wait for prompts and send responses
Security Notes
- SSH passwords are passed in memory only, never stored
- Connections are session-based and cleared on server restart
- Use SSH keys when possible for better security
- The server only accepts connections from the local MCP client (stdio transport)
Troubleshooting
SSH Connection Issues
- Verify the host is reachable:
ping vpn-ap.local - Check SSH is running on target:
ssh pi@vpn-ap.local - Ensure credentials are correct
Serial Port Issues
- Check port permissions:
ls -la /dev/ttyUSB* - Add user to dialout group:
sudo usermod -a -G dialout $USER - Verify device is connected:
dmesg | tail
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.