Token导航 LogoToken导航TokenDH.com
Easycon MCP Service logo
运维云端stdio官方级别未说明来源级核验

Easycon MCP Service

MCP Server

EasyCon MCP服务是一个通过串行(USB/UART)使用EasyCon协议控制Nintendo Switch的HTTP/JSON API服务,支持按钮、摇杆、宏命令等控制功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Python云端部署Docker

安装说明

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

作者 / 组织

easyworld

提供方

easyworld

最后核验

2026/5/17 20:21

快速接入

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

命令预览

pip install -r requirements.txt

详细介绍

EasyCon MCP服务

EasyCon MCP服务:用于Nintendo Switch通过串行(USB/UART)控制EasyCon协议的HTTP/JSON API。

此服务实现:

  • 串行生命周期:列出端口、连接/断开连接、状态
  • EasyCon握手:发送\[A5,A5,81\]并期待\[80\]
  • 开关控制:按钮、D-Pad(HAT)、摇杆和重置
  • :组合按钮、序列、宏、LED控制、控制器设置
  • :批处理操作、健康监测
  • 用于调试/扩展的原始发送/接收

需求

  • Python 3.9+
  • 一种使用EasyCon协议(115200 8N1)的串行设备

安装

pip install -r requirements.txt

uvicorn mcp_service.server:app --host 0.0.0.0 --port 8000

api参考

连接管理

  • 获取 /ports -列出可用串行端口
  • 发布 /connect -连接到串行端口
  • 发布 /disconnect -断开与串行端口的连接
  • 获取 /status -获取连接状态
  • 发布 /init -初始化设备(握手)

基本控制

  • 发布 /press/button -按下一个按钮
  • 发布 /press/hat -按D-Pad方向
  • 发布 /stick -控制模拟棒
  • 发布 /reset -发送重置命令

高级控制(新)

  • 发布 /press/combo -同时按下多个按钮
  • 发布 /sequence -重复执行一系列操作
  • 发布 /batch -批量执行多个命令

宏观系统(新)

  • 发布 /macro/save -保存宏
  • 获取 /macro/list -列出所有已保存的宏
  • 获取 /macro/{name} -获取宏详细信息
  • 删除 /macro/{name} -删除宏
  • 发布 /macro/execute -执行已保存的宏

设备控制(新)

  • 发布 /led -控制装置LED(开/关)
  • 获取 /version -获取固件版本
  • 发布 /controller/mode -更改控制器模式(Pro/JoyCon)
  • 发布 /controller/color -更改控制器颜色
  • 发布 /unpair -从控制台上拔下控制器

公用事业

  • 获取 /health -健康检查端点
  • 获取 /buttons -列出所有可用按钮
  • 获取 /directions -列出所有可用的HAT路线
  • 发布 /raw/send -发送原始字节

例子

基本用法

# 1) List ports
curl http://localhost:8000/ports

# 2) Connect
curl -X POST http://localhost:8000/connect -H "Content-Type: application/json" \
     -d '{"port":"/dev/ttyUSB0","baud":115200}'

# 3) Handshake
curl -X POST http://localhost:8000/init

# 4) Press A for 50ms
curl -X POST http://localhost:8000/press/button -H "Content-Type: application/json" \
     -d '{"button":"A","durationMs":50}'

# 5) Reset
curl -X POST http://localhost:8000/reset

# 6) Disconnect
curl -X POST http://localhost:8000/disconnect

组合按钮

# Press A+B simultaneously for 100ms
curl -X POST http://localhost:8000/press/combo -H "Content-Type: application/json" \
     -d '{"buttons":["A","B"],"durationMs":100}'

# Press L+R (screenshot combo)
curl -X POST http://localhost:8000/press/combo -H "Content-Type: application/json" \
     -d '{"buttons":["L","R"],"durationMs":50}'

序列

# Execute a sequence: press A, wait, press B, repeat 3 times
curl -X POST http://localhost:8000/sequence -H "Content-Type: application/json" \
     -d '{
  "steps": [
    {"type":"button","button":"A","durationMs":50},
    {"type":"wait","durationMs":100},
    {"type":"button","button":"B","durationMs":50}
  ],
  "repeatCount": 3
}'

# Save a macro
curl -X POST http://localhost:8000/macro/save -H "Content-Type: application/json" \
     -d '{
  "name": "farm_berries",
  "steps": [
    {"type":"button","button":"A","durationMs":50},
    {"type":"wait","durationMs":500},
    {"type":"button","button":"A","durationMs":50},
    {"type":"wait","durationMs":1000}
  ]
}'

# List macros
curl http://localhost:8000/macro/list

# Execute macro 10 times
curl -X POST http://localhost:8000/macro/execute -H "Content-Type: application/json" \
     -d '{"name":"farm_berries","repeatCount":10}'

# Delete macro
curl -X DELETE http://localhost:8000/macro/farm_berries

批量操作

# Execute multiple commands in one request
curl -X POST http://localhost:8000/batch -H "Content-Type: application/json" \
     -d '{
  "commands": [
    {"type":"button","button":"HOME","durationMs":100},
    {"type":"wait","durationMs":1000},
    {"type":"button","button":"A","durationMs":50},
    {"type":"combo","buttons":["A","B"],"durationMs":100}
  ]
}'

设备控制

# Turn LED on
curl -X POST http://localhost:8000/led -H "Content-Type: application/json" \
     -d '{"state":true}'

# Get firmware version
curl http://localhost:8000/version

# Change to Pro Controller mode
curl -X POST http://localhost:8000/controller/mode -H "Content-Type: application/json" \
     -d '{"mode":0}'

# Change controller color (red body, white buttons)
curl -X POST http://localhost:8000/controller/color -H "Content-Type: application/json" \
     -d '{"body_r":255,"body_g":0,"body_b":0,"button_r":255,"button_g":255,"button_b":255}'

公用事业

# Health check
curl http://localhost:8000/health

# List available buttons
curl http://localhost:8000/buttons

# List available directions
curl http://localhost:8000/directions

API文档

服务器运行后,请访问:

  • Swagger用户界面: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

动作步骤类型

使用时 /sequence, /macro/save,或批处理操作,支持以下操作类型:

类型必填字段可选字段描述
buttonbuttondurationMs按下一个按钮
combobuttonsdurationMs同时按下多个按钮
hatdirectiondurationMs按D-Pad方向
stick-lx, ly, rx, ry, durationMs控制模拟棒
wait-durationMs等待/延迟

按钮名称

A、 B、X、Y、L、R、ZL、ZR、加号、减号、LCLICK、RCLICK、HOME、CAPTURE

方向名称

顶部、右顶部、右侧、右底部、底部、左底部、左侧、左顶部、中央

控制器模式

  • 0:Pro控制器
  • 1:Joy Con(左)
  • 2:乔伊康(右)

备注

  • 串行设置固定为115200 8N1。
  • 每个媒体都会发出行动→ 等待 durationMs → 发送RESET。
  • 握手将在发送之前清除过时的字节。
  • 宏存储在内存中,将在服务器重新启动时丢失。
  • 对于持久宏,可以考虑将它们保存到文件或数据库中。

许可证

麻省理工学院

目录标签

目录标签

Python云端部署DockerNintendoSwitch控制本地部署串行通信游戏自动化宏命令API服务

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP