Switch 2 Emulator Diagnostics MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Switch 2 Emulator Diagnostics MCP Server diagnose why my game is stuttering and check FPS"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Switch 2 Emulator Diagnostics MCP Server
A community-ready Model Context Protocol (MCP) server providing real-time telemetry, automated diagnostics, Vulkan rendering inspection, and deep Shader Cache v2 analysis for Switch 2 emulators (Eglantine, Lichii, Fritchii, and Eden).
Allows AI coding assistants (Claude Code, Cursor, Codex, Antigravity) to inspect live gameplay, monitor pipeline compilation, detect bottlenecks, and capture viewport frames without manual log copying.
Conforms to standard MCP Protocol 2024-11-05 over stdio.
Features
Deep Shader Cache v2 Parser (PR #1036): Inspects
lichii-cache.v2.binandlichii-cache.v2.driver.bindirectly using memory mapping (mmap). Reports graphics vs. compute pipelines, legacy v50–v54 migrations, tombstones, and dead bytes with CRC-32 verification and optional XXH3-64 checks.Cross-Platform: Works on Windows and Linux (including SteamOS / Steam Deck). Automatically discovers portable
user/folders, global%APPDATA%\eden, or standard XDG paths (~/.cache/eden,~/.local/share/eden,~/.config/eden).Zero Mandatory Dependencies: Runs entirely on the Python 3.9+ standard library. Gracefully enhances with
psutil,pywin32,pillow, orxxhashif installed.Live Performance & Telemetry: Reads FPS, frametime (ms), and CPU/RAM usage in real-time.
Vulkan Defect Tracking: Identifies zero-stutter skipped draws, validation warnings, and shader stage compilation faults.
Automated Game Diagnosis: Pinpoints whether a frame drop is caused by GPU compute overload, JIT CPU saturation, or background shader building.
Viewport Capture: Exports live game frames to PNG for vision-capable AI models with strict path traversal prevention.
Related MCP server: renderdoc-mcp
Installation & Quick Start
Standalone Setup
git clone https://github.com/JayceeB1/switch2-emulator-mcp.git
cd switch2-emulator-mcp
# Optional: install enhanced introspection dependencies
pip install -r requirements.txt
# Run unit tests
python emulator_mcp_server.py --testCLI Mode
You can run diagnostics directly from the command line:
# Query live status
python emulator_mcp_server.py --status
# Inspect Shader Cache v2 statistics
python emulator_mcp_server.py --shaders
# Live performance & FPS
python emulator_mcp_server.py --perf
# Run automated bottleneck diagnosis
python emulator_mcp_server.py --diagnoseAI Assistant Configuration
1. Claude Desktop & Claude Code
Add the following to %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"switch2-emulator": {
"command": "python",
"args": [
"path/to/switch2-emulator-mcp/emulator_mcp_server.py"
]
}
}
}Or for Claude Code CLI:
claude mcp add switch2-emulator python /path/to/switch2-emulator-mcp/emulator_mcp_server.py2. OpenAI Codex
In ~/.codex/config.toml (Windows: %USERPROFILE%\.codex\config.toml):
[mcp_servers.switch2_emulator]
command = "python"
args = ["/path/to/switch2-emulator-mcp/emulator_mcp_server.py"]Or register it directly via the Codex CLI:
codex mcp add switch2-emulator -- python /path/to/switch2-emulator-mcp/emulator_mcp_server.py3. Cursor (.cursor/mcp.json)
{
"mcpServers": {
"switch2-emulator": {
"command": "python",
"args": ["/path/to/switch2-emulator-mcp/emulator_mcp_server.py"]
}
}
}4. Antigravity / Gemini
In your workspace or settings configuration:
{
"mcp": {
"servers": {
"emulator": {
"command": "python",
"args": ["/path/to/switch2-emulator-mcp/emulator_mcp_server.py"]
}
}
}
}Available Tools
Tool Name | Description |
| Returns emulator state, active Title ID, game name, uptime, and detected Vulkan physical device. |
| Returns real-time FPS, frametime (ms), CPU load, and RAM usage. |
| Inspects |
| Filters skipped draw events (zero-stutter bypass) and Vulkan validation errors. |
| Extracts recent logs filtered by subsystem ( |
| Analyzes bottlenecks (CPU bound, GPU compute bound, shader stall) and provides recommendations. |
| Saves emulator window frame to PNG for multimodal visual inspection. |
(Note: eglantine_* aliases are supported internally for backward compatibility).
Privacy & Security
Local Execution: All introspection and log parsing occur strictly on the local machine.
Privacy Protection: Viewport capture requires a confirmed, visible emulator window handle. Desktop-wide full screen captures are rejected.
Path Confinement: Screenshots are constrained within a dedicated output directory and cannot escape through path traversal.
Telemetry Boundaries: Log excerpts sent to AI assistants reflect emulator runtime state (subsystem errors, GPU device name). Avoid sharing logs containing personal directories if privacy is required.
Optional Dependencies
pip install -r tools/mcp/requirements.txtpsutil: Precise CPU core percentage and thread counts.pillow: Framebuffer PNG export for visual inspection.pywin32: Win32 window handle and coordinates acquisition on Windows.xxhash: Fast native XXH3-64 verification of shader record payloads.
License
GPL-3.0-or-later. Compatible with Eden, Lichii, Fritchii, and Eglantine.
Available Tools
7 toolsemulator_capture_screenshotB
Capture screenshot of the emulator viewport for multimodal AI visual inspection.
Inputs: save_name, emulator_dir.
emulator_diagnose_gameC
Perform comprehensive automated diagnosis of bottlenecks (CPU bound, GPU compute, Shader stall).
Inputs: emulator_dir.
emulator_get_live_logsB
Filter and extract emulator logs by subsystem (e.g. Render.Vulkan, Core.ARM) and severity.
Inputs: severity, max_lines, subsystem, emulator_dir.
emulator_get_performanceB
Measure real-time FPS, frametimes (ms), and CPU utilization.
Inputs: emulator_dir, sample_duration_sec.
emulator_get_rendering_defectsC
Inspect skipped draws (zero-stutter indicator) and Vulkan validation or compilation errors.
Inputs: tail_events, emulator_dir.
emulator_get_shader_statsC
Inspect Shader Cache v2 (lichii-cache.v2.bin) records, compute/graphics pipelines, and legacy migration.
Inputs: emulator_dir.
emulator_get_statusB
Get current emulator runtime status, active title, uptime, CPU/RAM, and Vulkan GPU backend.
Inputs: emulator_dir.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool targets a fairly distinct data source: runtime status, performance metrics, shader cache records, rendering defects, logs, and screenshots. There is mild overlap between emulator_get_status (CPU/RAM, GPU backend) and emulator_get_performance (FPS, CPU utilization), and emulator_diagnose_game aggregates the same signals, but an agent can still pick correctly from the descriptions.
All tools share the emulator_ prefix and a predictable verb_noun structure (get_status, get_performance, get_shader_stats, diagnose_game, capture_screenshot). The single non-get verb pair (diagnose/capture) maps cleanly to actions that are genuinely not simple reads.
Seven tools is well within the ideal 3-15 range and each covers a distinct diagnostic surface (status, perf, shaders, defects, logs, aggregate diagnosis, visual capture). No tool feels redundant padding given the stated read-only diagnostic purpose.
The read-only diagnostic lifecycle is covered end to end: raw metrics, cache inspection, defect detection, logs, and an aggregated diagnosis plus visual evidence. Gaps exist for remediation or export actions (clear/rebuild shader cache, change GPU backend or log level, export a diagnostic bundle), which agents may want after diagnosing a bottleneck.
Maintenance
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
Voice-powered bug reporting with 13 MCP tools. Record bugs by talking; let AI find and fix them.
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceEnables AI assistants to analyze and inspect RenderDoc capture files, providing tools to examine draw calls, textures, buffers, and shader information. It allows developers to perform graphics debugging and resource analysis through natural language interactions.12MIT
- FlicenseBqualityCmaintenanceMCP server for RenderDoc that enables AI assistants to analyze GPU frame captures (.rdc files) for graphics debugging and performance analysis, with 42 tools covering the full RenderDoc workflow.6-

Mengine MCPofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to launch, inspect, control, debug, and hot-reload live Mengine game builds through Visual Studio Code or standard MCP clients.MIT- FlicenseNot gradedqualityDmaintenanceMCP server for RenderDoc that lets AI assistants analyze GPU frame captures, inspect draw calls, shaders, and render passes for graphics debugging and performance analysis.-