ryubing-mcp
Click on "Install 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., "@ryubing-mcptake a screenshot of the current game"
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.
ryubing-mcp
ryubing-mcp is a local Model Context Protocol server for automating the
Ryubing Nintendo Switch emulator.
This repository contains the MCP server, its versioned bridge protocol, tests,
and live smoke-test scripts. A companion opt-in Ryubing control-bridge patch is
implemented on the local feature/mcp-control-bridge upstream branch and must
be present in the Ryubing binary used by this server.
Tool surface
Tool | Purpose |
| Check connection, protocol version, and current title |
| Press one or more Switch controller buttons |
| Set analog stick values |
| Tap, long-press, or swipe the 1280x720 touch surface |
| Return the raw rendered frame as MCP image content |
| Read structured, cursor-based emulator logs |
| Launch a base file with an optional session-only update |
| Start an isolated Ryubing process and profile |
| List the default and managed sessions |
| Stop a managed process and optionally remove its profile |
Every emulator-control tool accepts an optional sessionId. Omit it to target
the externally started default bridge, or pass an ID returned by
ryubing_create_session to control one of several concurrent processes.
Only use game and update files you are legally entitled to use. This project does not provide games, firmware, title keys, or decryption keys.
Related MCP server: algorithmaide-mcp
Development
Prerequisites: Node.js 20 or newer.
npm install
npm run typecheck
npm test
npm run buildRun the server over stdio:
npm run devExample MCP client configuration after building:
{
"mcpServers": {
"ryubing": {
"command": "node",
"args": ["D:/workspace/____personal____/ryubing-mcp/dist/index.js"],
"env": {
"RYUBING_CONTROL_TOKEN": "replace-with-the-same-random-token-used-by-ryubing",
"RYUBING_ALLOWED_GAME_DIRS": "D:/Games/Switch"
}
}
}
}Configuration
Environment variable | Default | Meaning |
|
| Bridge host; loopback only |
|
| Bridge TCP port |
| unset | Shared bearer token sent with each bridge request |
|
| Per-request timeout |
| unrestricted | Platform-delimited allowlist for base/update paths |
| unset | Patched Ryubing |
| unset | Ready-to-use profile copied for every managed session |
| unset | Parent directory for isolated managed profiles |
|
| First port considered for managed bridges |
|
| Concurrent managed-process limit (maximum |
|
| Managed bridge readiness timeout |
All three managed-session paths are required before ryubing_create_session
is enabled. On Windows, the server uses a one-time token file inside the new
profile because GUI processes started by the interactive shell do not inherit
the MCP host environment; patched Ryubing deletes that file immediately after
reading it. Profiles are retained by default when a session stops.
Live verification
With a patched build already running on the configured default port:
npm run smoke:liveFor two fully managed processes, set the managed-session variables plus
RYUBING_LIVE_BASE_A, RYUBING_LIVE_UPDATE_A, and RYUBING_LIVE_BASE_B, then:
npm run smoke:parallelThe parallel smoke test starts two isolated profiles, boots both titles, captures both rendered frames, and stops/removes the temporary sessions.
For design status and upstream integration points, see PDCA iteration 01, the live PDCA iteration 02, and the bridge protocol.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for the mGBA Game Boy Advance emulator. Read and write GBA memory, inject button presses, take screenshots, save/load state, and step the emulator through a Lua bridge.Last updated18411MIT
- AlicenseCqualityDmaintenanceAn MCP server for real-device Android reversing workflows, wrapping AlgorithmAide config writes, AppSwitch/logList sync, LSPosed scope sync, Frida script injection, and runtime log queries into a stable MCP toolset.Last updated2313MIT
- Alicense-qualityBmaintenanceLocal MCP server for Android and iOS mobile automation and performance telemetry, enabling device control (screenshot, tap, swipe, input, app launch) and metric collection (CPU, memory, launch time) via ADB, simctl, and WebDriverAgent with SQLite session history.Last updated211MIT
- Alicense-qualityCmaintenanceMCP server for controlling Android devices over ADB, using direct commands and semantic accessibility selectors with a Kotlin helper APK.Last updated123MIT
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Official remote MCP server bridge for Muumuu Domain.
Official remote MCP server for SUZURI.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Leuconoe/ryubing-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server