Eden MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| eden_start_gameB | Start Eden and open a base game file. Optionally install/apply a separate update before booting when the Eden control endpoint is available. |
| eden_wait_for_stateA | Continue waiting for a previously started Eden process to expose control or produce its first frame. Use this after a retryable eden_start_game timeout; no second process is started and a separate update load request is never duplicated. |
| eden_validate_launchB | Perform a bounded read-only preflight for base/update paths, sampled fingerprints, normalized title-ID compatibility, version hints, and optional LayeredFS patch layout. |
| eden_stopB | Stop the Eden process started by this MCP server. |
| eden_create_sessionA | Create an idle Eden session with a cloned portable profile and independent executable. Pass the returned session_id to all normal control tools. |
| eden_list_sessionsA | List the default and managed Eden sessions with state, PID, and profile path. |
| eden_check_environmentA | Check standalone executable, profile, keys/NAND hints, allowed paths, session storage, and optionally launch a short authenticated endpoint probe. |
| eden_stop_sessionA | Stop and forget one managed Eden session. Its isolated files are retained unless remove_profile is true. |
| eden_get_session_storageA | Inventory managed-session disk usage and classify active, reclaimable, protected, unconfirmed, and legacy directories. This tool never deletes files. |
| eden_cleanup_sessionsA | Apply retention only to valid, stopped, unprotected Eden MCP session profiles. Defaults to dry-run and never removes active, protected, unconfirmed, or legacy paths. |
| eden_stage_patchA | Atomically copy an unpacked RomFS/ExeFS/cheat patch into a stopped managed session's isolated user/load directory. The default profile cannot be targeted; links and key, firmware, NAND, or save-like roots are rejected. |
| eden_statusC | Get the managed Eden process, backend, screen, game paths, and capabilities. |
| eden_get_capabilitiesA | Return emulator-mcp-capabilities contract 1.0 for the selected session, including available, conditional, and unavailable launch/input/capture/diagnostic operations. |
| eden_get_screen_sizeA | Get the current Eden render coordinate space in pixels. Use these dimensions for touch coordinates when no screenshot has just been taken. |
| eden_press_keyA | Send a host keyboard key to Eden. The key is resolved through Eden's active input profile. Supported names include A-Z, 0-9, F1-F24, arrows, Enter, Escape, Space, Tab, Backspace, Delete, Home, End, PageUp/PageDown, Shift, Ctrl, Alt, and Meta. |
| eden_press_buttonA | Send a Nintendo Switch button directly to a player through Eden's virtual gamepad. Supported buttons are A/B/X/Y, L/R/ZL/ZR, Plus/Minus, D-pad directions, LStick/RStick, SL/SR, Home, and Capture. Requires the Eden control endpoint. |
| eden_run_input_scriptA | Run a validated sequence of waits, key/button actions, Switch button chords, touches, and visual-change checkpoints. Held inputs are released after failures and by default at normal completion. Analog steps are rejected until the control protocol supports them. |
| eden_touch_screenA | Touch Eden at screenshot pixel coordinates. Supports tap, long_press, swipe, down, move, and up. For swipe, provide end_x and end_y. source_width/source_height should match the screenshot used to choose coordinates; if omitted, the current render size is used. |
| eden_take_screenshotA | Capture the current Eden render surface and return it as a PNG image. Optionally save a copy to an absolute or relative .png path. Use the returned image's pixel dimensions for subsequent touch coordinates. Do not cache screenshots. |
| eden_capture_sequenceA | Capture 2-12 native frames over time and report perceptual differences, sampled frame hashes, and frozen/periodic/moving classification for visual loop evidence. |
| eden_get_logsA | Read the tail of Eden's eden_log.txt. Optionally return only lines containing a case-insensitive substring. This also works after Eden exits. |
| eden_diagnose_game_issueA | Collect a bounded, shareable gameplay failure report with process context, detailed logs, repeated-message analysis, surrounding event context, and heuristic hints for game load, patch loop, video loop, or missing patch/localization output. Partial results are returned when status or log flushing fails. |
| eden_export_diagnosticsA | Export a bounded, path-redacted ZIP containing a diagnostic report, structured log entries, manifest hashes, and an optional screenshot. Keys, firmware, game content, patches, saves, configuration, environment variables, and tokens are excluded. |
| eden_get_runtime_metricsB | Sample control status and summarize bounded FPS, frame-time, shader, and video signals from current runtime evidence. Unavailable counters are returned as null. |
| eden_advise_compatibilityA | Return ranked, reversible compatibility experiments from current diagnostics and metrics. This tool never changes emulator settings. |
| eden_list_artifactsA | List only diagnostic artifacts generated by Eden MCP and their bounded sizes. |
| eden_cleanup_artifactsA | Apply retention only to Eden MCP diagnostic bundle names. Defaults to dry-run; game, profile, patch, save, key, firmware, and arbitrary user files are outside scope. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| eden-capabilities | Default-session emulator-mcp-capabilities contract 1.0 |
TDQS
Scored across 27 tools
Most tools have distinct purposes, but the cluster of diagnostics tools (eden_get_logs, eden_diagnose_game_issue, eden_export_diagnostics, eden_get_runtime_metrics, eden_capture_sequence) overlaps in intent and could confuse agents choosing between log reading, issue diagnosis, and metrics sampling.
All tool names follow a consistent eden_<verb>_<noun> pattern with snake_case, and verbs are chosen to reflect the action (get, list, start, stop, press, take, etc.). The few short forms like eden_stop and eden_status are clear exceptions that don't break the overall convention.
At 27 tools, the surface is too large for the apparent scope. Many diagnostic and cleanup tools (e.g., eden_export_diagnostics, eden_list_artifacts, eden_cleanup_artifacts) are highly specialized and could be consolidated, making the set feel bloated.
The toolset covers the main emulator lifecycle: sessions, launching, input, capture, diagnostics, and compatibility advice. Minor gaps exist, such as no direct configuration mutation or save management, but agents can work around these.