Add MCP server so Claude (or any MCP client) can reprogram VersaPad directly
Wraps the existing protocol/serial/combined-config layers as MCP tools (set_button_key, set_encoder_consumer, set_macro, load_from_board, write_to_board, ...) instead of requiring hand-written JSON + manual GUI import. Registered at user scope via `claude mcp add`.
This commit is contained in:
parent
50658107d5
commit
e456af7c19
3 changed files with 378 additions and 0 deletions
14
AGENTS.md
14
AGENTS.md
|
|
@ -18,6 +18,20 @@ faktisch ein schlankes Python-Pendant zu VersaGUI. Der Browser-Server
|
|||
Profil-Wechsel über `?profile=0|1|2`, Auto-Reload alle 4s. Rein lesend,
|
||||
kein Programmiermodus (bewusst einfach gehalten).
|
||||
|
||||
**MCP-Server (Config per KI-Tool-Aufruf statt Hand-JSON):**
|
||||
- `versapad_mcp_server.py` — registriert als User-Scope-MCP-Server "versapad"
|
||||
(`claude mcp add -s user versapad -- <Python313> versapad_mcp_server.py`,
|
||||
landet in `~/.claude.json`). Tools: `list_profiles`/`get_profile`/
|
||||
`get_macro`/`get_board_status` (lesen), `set_button_key`/`_consumer`/
|
||||
`_macro`/`_profile_switch`/`_none`/`_led`, dieselben `set_encoder_*`,
|
||||
`set_macro`, `rename_profile` (mutieren nur In-Memory-State), `save_local`/
|
||||
`load_local` (↔ `versapad_config_all.json`), `load_from_board`/
|
||||
`write_to_board` (↔ echtes Board per Serial). Nutzt das MCP-SDK v2 (Paket
|
||||
`mcp`, Klasse `mcp.server.mcpserver.MCPServer` — **nicht** `FastMCP` aus
|
||||
`mcp.server.fastmcp`, das gibt's in dieser SDK-Version nicht mehr, wurde
|
||||
umbenannt). `@mcp.tool()`-dekorierte Funktionen bleiben direkt aufrufbar
|
||||
(kein `.fn`-Unterschied wie bei alten FastMCP-Versionen).
|
||||
|
||||
**Binaer-/Serial-Schicht (fuer den Programmiermodus):**
|
||||
- `versapad_protocol.py` — pack/unpack fuer `SDeviceConfig`(740B, alle 3
|
||||
Profile) und `SMacroTable`(512B, 32 Slots) + CRC16 (Poly 0x1021, Init
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue