Token导航 LogoToken导航TokenDH.com
Webserial MCP logo
AI代理stdio官方级别未说明来源级核验

Webserial MCP

MCP Server

一个完整的模型上下文协议(MCP)桥接工具,通过Claude Code在浏览器中通过WebSerial API开发、上传和管理ESP32设备上的MicroPython程序。

工具数

0

提示词数

0

GitHub Stars

6

资源数

0
实时通信PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

DG1001

提供方

DG1001

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

🚀 ESP32串行MCP电桥

通过Claude Code进行人工智能驱动的ESP32 MicroPython开发

一个完整的模型上下文协议(MCP)桥,使Claude Code能够通过浏览器中的WebSerial API在ESP32设备上开发、上传和管理MicroPython程序。

🏗️ 建筑

Claude Code ──► MCP Client ──► WebSocket ──► Browser ──► WebSerial API ──► ESP32
                     ▲                           │
                     └───────── Response ────────┘

✨ 特性

🔧 MCP集成

  • 完整的MCP v1.0.0支持 -完整的JSON-RPC 2.0实现
  • 5核心工具 -上传、执行、读取、重置和列出文件
  • 实时通信 -基于WebSocket的双向数据流
  • 错误处理 -全面的错误传播和恢复

🌐 现代Web界面

  • VS代码样式UI -熟悉的开发环境
  • 网络串行API -直接浏览器到ESP32通信
  • 实时控制台 -实时REPL输出和交互
  • 代码编辑器 -语法高亮显示和项目模板

🧪 测试与开发

  • 模拟ESP32 -无硬件开发和测试
  • 单元测试 -pytest的测试覆盖率超过95%
  • 集成测试 -端到端工作流验证
  • 性能测试 -并发请求处理

🚀 快速开始

1.安装依赖项

pip install -r requirements.txt

2.启动网桥服务器

python esp32_bridge_server.py

服务器在上运行 http://localhost:3000

3.打开浏览器界面

引导到 http://localhost:3000 Chrome或Edge浏览器(需要WebSerial)

4.连接ESP32

  1. 在web界面中单击“连接ESP32”
  2. 从列表中选择您的ESP32设备
  3. 选择波特率(默认值:115200)

5.配置克劳德代码

添加到您的Claude Code MCP配置中:

{
  "mcpServers": {
    "esp32-bridge": {
      "command": "python",
      "args": ["/workspace/mcp_client.py", "ws://localhost:3000"],
      "env": {}
    }
  }
}

📋 MCP工具

🔧 可用工具

工具说明参数
upload_code将MicroPython代码上传到ESP32code (字符串), filename (可选)
execute_command在REPL中执行命令command (字符串)
read_console获取最近的控制台输出lines (可选,默认值:10)
reset_device软复位ESP32
list_files列出文件系统文件

📝 Claude代码中的示例用法

Upload this LED blink code to my ESP32:

import time
from machine import Pin

led = Pin(2, Pin.OUT)

while True:
    led.on()
    time.sleep(0.5)
    led.off()
    time.sleep(0.5)

Claude Code将自动:

  1. 将代码上传为 main.py
  2. 验证上传
  3. 演示如何运行它
  4. 监控输出

🧪 测试

单元测试

# Run all tests
pytest tests/ -v

# Run specific test file
pytest tests/test_mcp.py -v

# Run with coverage
pytest tests/ --cov=mcp_handler --cov-report=html

集成测试

# Start bridge server (Terminal 1)
python esp32_bridge_server.py

# Start mock ESP32 (Terminal 2)
python tests/mock_esp32.py

# Run integration tests (Terminal 3)
pytest tests/test_integration.py -v

模拟开发

# Start mock ESP32 for development
python tests/mock_esp32.py --port 3001 --debug

# Test with curl
curl http://localhost:3001/health

🏗️ 项目结构

esp32-webserial-bridge/
├── esp32_bridge_server.py      # Main Flask WebSocket server
├── mcp_handler.py              # MCP protocol implementation
├── mcp_client.py               # Claude Code entry point
├── claude_code_config.json     # MCP server configuration
├── requirements.txt            # Python dependencies
├── templates/
│   └── esp32_bridge.html       # Web interface
├── tests/
│   ├── test_mcp.py            # Unit tests
│   ├── test_integration.py     # Integration tests
│   └── mock_esp32.py          # Mock ESP32 server
└── README.md                   # This file

⚙️ 配置

环境变量

  • FLASK_DEBUG -启用Flask调试模式
  • WEBSOCKET_URL -websocket服务器URL(默认值:WS://localhost:3000)
  • MCP_TIMEOUT -MCP请求超时(秒)(默认值:30)

浏览器要求

  • Chrome 89+边缘89+ 对于WebSerial API是必需的
  • 需要HTTPS 生产中(使用ngrok进行测试)

🔧 发展

添加新的MCP工具

  1. 将工具定义添加到 _handle_tools_list() 在……里面 mcp_handler.py
  2. 在中实现处理程序 _handle_tools_call()
  3. 添加WebSocket通信逻辑
  4. 更新测试和文档

扩展Web界面

  • 编辑 templates/esp32_bridge.html
  • CSS中的VS代码样式组件
  • JavaScript中的WebSocket事件处理程序

模拟ESP32功能

  • 模拟MicroPython REPL
  • 文件系统操作
  • 带有历史记录的控制台输出
  • 程序执行模拟

🐛 故障排除

MCP配置

🔧 检查当前MCP配置

# List all configured MCP servers
claude mcp list

# Get details about the esp32-bridge server
claude mcp get esp32-bridge

🔧 更新MCP服务器端口 如果ESP32网桥配置了错误的端口:

# Remove the existing configuration
claude mcp remove esp32-bridge -s local

# Add with correct port (3000)
claude mcp add esp32-bridge /workspace/venv/bin/python /workspace/mcp_client.py http://localhost:3000

🔧 MCP服务器状态

  • ✅ 已连接:服务器正在运行且可访问
  • ✗ 连接失败:检查网桥服务器是否在正确的端口上运行
  • MCP配置位置: ~/.claude.json (当地项目范围)

常见问题

🔴 不支持WebSerial API

  • 使用Chrome 89+或Edge 89+
  • 确保生产中的HTTPS
  • 检查浏览器兼容性

🔴 未检测到ESP32

  • 安装ESP32 USB驱动程序(CP2102、CH340、FTDI)
  • 检查设备管理器/系统报告
  • 尝试不同的USB端口

🔴 WebSocket连接失败

  • 验证网桥服务器是否在端口3000上运行
  • 检查防火墙设置
  • 确保没有端口冲突

🔴 MCP客户端没有响应

  • 检查配置中的WebSocket URL
  • 验证已安装的Python依赖项
  • 检查克劳德代码日志

调试模式

# Enable debug logging
python mcp_client.py --debug ws://localhost:3000

# Check server health
curl http://localhost:3000/health

# View WebSocket connections
curl http://localhost:3000/api/connections

🤝 贡献

  1. 分叉存储库
  2. 创建特征分支: git checkout -b feature/awesome-feature
  3. 添加测试 对于新功能
  4. 运行测试套件: pytest tests/ -v
  5. 提交拉取请求

代码的风格

  • python:遵循PEP 8,使用类型提示
  • 脚本:ES6+,格式一致
  • 测试:覆盖率高,描述清晰

📜 许可证

MIT许可证

🙏 致谢

  • Anthropic -克劳德码与MCP协议
  • Espressif -ESP32和MicroPython支持
  • Web序列API -浏览器到设备通信
  • Flask SocketIO -实时WebSocket通信

______________________________________________________________________

由以下材料制成❤️ ESP32和AI开发社区

目录标签

目录标签

实时通信PythonClaudeESP32开发本地部署MicroPythonWebSerialAPIMCP协议

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP