Skip to content
AboveColin edited this page Jul 26, 2026 · 1 revision

switchMCP

Drive a homebrew Nintendo Switch from an AI agent, over MCP.

[Atmosphère only] [tested on HOS 22.1.0] [emuMMC and sysMMC]

An Atmosphère sysmodule runs on the console and exposes a control protocol; a Python MCP server on your computer turns it into tools an LLM can call. The agent can see the screen, press buttons, move files, read save data, inspect running processes and search live game memory.

A fresh install is read-only and stays that way until you raise the tier.

Start here

Page
Installation Get it onto the SD card and connected
Configuration Tiers, tool groups, and every config option
Tools All 102 tools, grouped, with parameters
Examples Working recipes — navigate a menu, find a value, triage a crash
Troubleshooting When it will not connect, or the console goes quiet

What it is good at

  • Seeing and acting. Screenshots are scaled to ~20% of native size by default, and screen_changed returns an image only if something changed, so watching a UI does not burn tokens.
  • Finding things on the console. fs_find and fs_grep run on the device; list_saves enumerates every save without needing a title ID first.
  • Live memory. Read a running game without pausing it, and narrow a value search from tens of thousands of candidates to a handful.
  • Not breaking anything. Read-only default, dry_run on every mutating command, confirmation tokens for destructive ones, and an on-device audit journal.

What it cannot do

Stated plainly so you do not lose an evening to it:

  • Hardware watchpoints and breakpoints arm but never fire on HOS 22.1.0. Use the narrowing memory search instead.
  • USB transport is inert — device side only, no host client, never tested.
  • One client at a time. Not one command — one session.
  • Installing titles is out of scope and not implemented.

Full detail in the repo's Known limitations.

Clone this wiki locally