Esp Workspace
FreeNot checkedFull autonomous embedded firmware workspace MCP server for ESP-IDF
About
Full autonomous embedded firmware workspace MCP server for ESP-IDF
README
A full autonomous embedded firmware workspace server — the MCP (Model Context Protocol) infrastructure layer for AI agents working with ESP-IDF projects.
What it does
ESP-Workspace MCP turns an AI coding assistant into an autonomous firmware engineer. It provides tools for:
- Filesystem operations — read, write, list, glob with path sandboxing
- Shell execution — run commands with timeout, background jobs, output capture
- ESP-IDF build system — build, flash, clean, reconfigure via
eim runwithWISH_PRODUCTsupport - Security — Bearer token auth, path traversal prevention, configurable filesystem roots
Quick Start
Prerequisites
- Python 3.10+
- Espressif Install Manager (eim — handles ESP-IDF installation and environment setup
Installation
pip install esp-workspace-mcp
Or from source:
git clone https://github.com/AIRcableLLC/esp-workspace-mcp.git
cd esp-workspace-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
Configuration
Create a .env file:
MCP_API_TOKEN=your-secret-token-here
MCP_HOST=0.0.0.0
MCP_PORT=8765
MCP_ALLOWED_ROOTS=/home/user/projects
MCP_WISH_PRODUCT=TargetS3
MCP_EIM_PATH=eim
Or set environment variables directly.
Run the server
# SSE mode (default, for network access)
python run_server.py
# Stdio mode (for local MCP clients)
python run_server.py --stdio
The server exposes:
GET /sse— SSE connection endpoint (requires Bearer token)POST /messages— MCP message endpointGET /health— health check (no auth required)
MCP Tools
Filesystem Tools
| Tool | Description |
|---|---|
read_file(path, offset, limit) |
Read text file with pagination |
write_file(path, content) |
Write content to a file |
append_file(path, content) |
Append to an existing file |
list_dir(path) |
List directory entries |
create_dir(path) |
Create directory recursively |
delete_path(path) |
Delete file or empty directory |
file_stat(path) |
Get file/directory metadata |
glob_search(pattern, path) |
Find files by glob pattern |
Shell Tools
| Tool | Description |
|---|---|
run_command(cmd, cwd, timeout) |
Execute command and wait |
start_process(cmd, cwd) |
Start background job |
get_job_output(job_id, offset) |
Read job output |
kill_job(job_id) |
Terminate background job |
list_jobs() |
List all jobs |
ESP-IDF Tools
All ESP-IDF operations are invoked through eim run "WISH_PRODUCT=<product> idf.py ..." which handles environment setup automatically.
| Tool | Description |
|---|---|
eim_run(commands, project_dir, wish_product) |
Run any idf.py command via eim |
build_project(project_dir, wish_product, reconfigure) |
Build an ESP-IDF project |
set_target(project_dir, target, wish_product) |
Set target chip (esp32, esp32s3, etc.) |
flash_project(project_dir, port, wish_product) |
Flash firmware to device |
clean_project(project_dir) |
Clean build artifacts |
fullclean_project(project_dir) |
Remove entire build directory |
reconfigure_project(project_dir, wish_product) |
Regenerate sdkconfig + CMake cache |
Build Step Decision Tree
Is sdkconfig missing or have defaults changed?
├── YES → eim_run("reconfigure build", project_dir, wish_product)
└── NO → eim_run("build", project_dir, wish_product)
Security
| Control | Implementation |
|---|---|
| Filesystem sandbox | All paths validated against MCP_ALLOWED_ROOTS |
| Path traversal prevention | Symlink-resolved, .. escapes rejected |
| Shell timeout | Configurable, default 30s, max 300s |
| Output truncation | 50 KB max per response |
| Authentication | Bearer token on every request |
| Credential safety | Tokens in env vars only, never logged |
Integration with AI Agents
Hermes
hermes mcp add esp-workspace \
--url http://host:port/sse \
--header "Authorization: Bearer your-token"
Generic MCP Client
Any MCP-compatible client can connect to the SSE endpoint. The server implements the standard MCP protocol over SSE/HTTP transport.
Architecture
esp_workspace_mcp/
├── config.py # Settings from env, fail-fast validation
├── server.py # FastMCP server, tool registration
├── auth.py # Bearer token middleware
├── tools/
│ ├── filesystem.py # 8 path-validated file operations
│ ├── shell.py # Command execution + background jobs
│ └── esp_idf.py # eim-run wrapper, build/flash/clean
├── utils/
│ ├── security.py # Path sandboxing, symlink resolution
│ └── process.py # Subprocess management, JobManager
└── resources/
└── project.py # MCP resources (project status, etc.)
License
Apache-2.0
from github.com/aircable/ESP-Workspace-MCP-Server-for-Hermes
Install Esp Workspace in Claude Desktop, Claude Code & Cursor
unyly install esp-workspaceInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add esp-workspace -- uvx esp-workspace-mcpStep-by-step: how to install Esp Workspace
FAQ
Is Esp Workspace MCP free?
Yes, Esp Workspace MCP is free — one-click install via Unyly at no cost.
Does Esp Workspace need an API key?
No, Esp Workspace runs without API keys or environment variables.
Is Esp Workspace hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Esp Workspace in Claude Desktop, Claude Code or Cursor?
Open Esp Workspace on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
Roblox Studio
Enables AI coding tools to control Roblox Studio for workspace exploration, instance manipulation, and script management. It provides tools for playtesting, sce
by paralovOpencode Omniroute Plugin
OpenCode plugin for the OmniRoute AI Gateway. Drives dynamic model discovery, /connect auth flow, and multi-instance OmniRoute providers via the official @openc
by GitHub ActionsAWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
Compare Esp Workspace with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
