- Home
- MCP servers
- Scenic
Scenic
- elixir
6
GitHub Stars
elixir
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
You are building interactive automated workflows for Scenic GUI applications. This MCP server lets you send keyboard input, control the mouse, inspect the viewport, and capture visuals from Scenic apps, enabling AI assistants and automated testing to drive your UI workflows efficiently.
How to use
You will connect an MCP client to the server and issue actions that simulate user input and retrieve viewport information. Use the client to send keyboard input, move and click the mouse, inspect the viewport structure, and take screenshots. The server works with standard MCP clients like Claude Desktop or Claude Code, enabling seamless integration into testing pipelines and AI-assisted development.
How to install
Prerequisites: Node.js (v18+), npm, and Elixir with Mix installed on your system. You will also need a Scenic application already wired to an MCP server or ready to run alongside the MCP package.
Step 1: Clone and prepare the MCP package locally.
# 1) Clone the Scenic MCP package locally
# (the package is not published to a public registry yet)
# Replace with your actual clone URL
git clone https://example.com/scenic_mcp.git
cd scenic_mcp
# 2) Install dependencies for the MCP server
npm install
# 3) Build the TypeScript assets
npm run build
Additional configuration and setup steps
HTTP MCP server for Tidewave provides runtime introspection for Elixir/Phoenix apps. If you also include Tidewave, you can expose an additional MCP endpoint over HTTP.
Configure Tidewave to point to the MCP endpoint in your project config and environment. You can enable Tidewave MCP with the provided HTTP URL and port substitution as shown.
Available tools
send_keys
Send keyboard input including text, special keys, and modifiers (Ctrl, Shift, Alt, Cmd) to the Scenic viewport.
send_mouse_move
Move the mouse cursor to specific (x, y) coordinates within the viewport.
send_mouse_click
Click at (x, y) coordinates using a specified mouse button (left, right, middle).
inspect_viewport
Retrieve a textual description of the viewport's component structure.
take_screenshot
Capture a screenshot in path or base64 format for visual verification.