Scenic MCP - Input Control for Scenic Applications
@scenic-contrib
an EXPERIMENTAL implementation of an MCP server for Scenic apps.
Overview
What is Scenic MCP - Input Control for Scenic Applications?
It is an MCP server that enables external keyboard and mouse input injection into Scenic GUI applications, allowing remote control via any MCP-compatible client.
How to use Scenic MCP - Input Control for Scenic Applications?
Add the dependency to your Scenic application's mix.exs and install Node.js dependencies. Start the Elixir server and run the MCP server. Invoke MCP tools like send_keys, send_mouse_move, and send_mouse_click from an MCP client.
Key features of Scenic MCP - Input Control for Scenic Applications
- Send text and special keys to Scenic applications
- Move mouse cursor and click at specific coordinates
- Works with any MCP-compatible client (Claude Desktop, etc.)
- TCP-based connection for low-latency input
- Uses proper Scenic ViewPort input routing
Use cases of Scenic MCP - Input Control for Scenic Applications
- Automating GUI testing in Scenic applications
- Remote control of Scenic interfaces from AI assistants
- Integrating Scenic apps with external automation workflows
FAQ from Scenic MCP - Input Control for Scenic Applications
What are the runtime requirements?
Elixir/OTP 24+, Node.js 18+, and Scenic 0.11+ are required.
How does it communicate with Scenic?
It uses a TCP-based connection (port 9999) to an Elixir GenServer bridge that sends inputs via Scenic.ViewPort.Input.send/2.
Can I send keyboard modifiers?
Yes, the send_keys tool supports modifiers like ctrl, shift, alt, cmd, and meta.
Is this server compatible with any MCP client?
Yes, it works with any MCP-compatible client such as Claude Desktop.
What transport protocol does it use?
The MCP server uses TCP for real-time communication.