mcp
MCP server from FitzQ/mcp-server
claude mcp add --transport stdio fitzq-mcp-server node path/to/server.js \ --env DEVKITPRO="Path to devkitPro root (e.g., /opt/devkitpro)" \ --env SWITCH_IP="IP address of your Switch (for network-based operations)"
How to use
This MCP server is designed for the Nintendo Switch and provides tools to inject inputs and capture the current screen. It includes a set of MCP Server tools under the tools directory, such as button and axis injection (for buttons, sticks, and motion) and a facility to fetch the current NS UI screen. The resources and prompts directories contain additional assets and guidance for generating and handling prompts used by the server. To use it, first build the project to produce the runtime artifacts, then deploy the resulting contents to your Switch as described in the installation steps. The server exposes an HTTP endpoint (mcp) that can be consumed by a client configured to point at your Switch’ IP address and port, enabling remote control and data retrieval.
How to install
Prerequisites:
- A Nintendo Switch with homebrew capabilities and a supported environment (libnx/devkitPro) installed on your development machine.
- Access to a terminal/command prompt with required tools (make, a C/C++ toolchain, and devkitPro).
Step-by-step:
- Install devkitPro and libnx from https://devkitpro.org/ and ensure the DEVKITPRO environment variable is set
- Configure DEVKITPRO in your environment (export DEVKITPRO=/path/to/devkitpro)
- In the project root, compile the server:
- Run: make
- After successful build, the compiled artifacts will be placed under the out/ directory
- Copy the produced contents from out/ into your Switch SD card at the path: /atmosphere/contents/010000000000B1C0 (or the appropriate title ID directory for your build)
- On the Switch, enable the service via Hekate Toolbox -> Background Services -> mcp-server
- Configure the MCP client to connect to the Switch: use a JSON config like the following on your client: { "servers": { "switch-mcp-server": { "type": "streamableHttp", "url": "http://{your-switch-ip}:12345/mcp" } } }
Notes:
- Ensure the network path and firewall settings allow HTTP access to the Switch from your controlling machine.
- If you rebuild, re-copy the contents to the SD card to reflect changes.
Additional notes
Tips and known issues:
- If the service occasionally fails to start, a switch reboot often resolves the issue due to a 2MB heap memory allocation constraint at startup.
- The 2MB heap constraint is a known limitation; if you require more features (e.g., grabbing the NS screen reliably), avoid reducing the allocated memory below the threshold.
- When updating, remember to re-run the build and re-copy the updated out/ contents to the SD card path used by the Switch.
- The MCP configuration expects the server to be reachable at the provided IP and port; ensure your network route is correctly configured.
- This server includes tools under source/tools/ for input injection and screen capture; you may customize prompts and resources under the resources and prompts directories as needed.
Related MCP Servers
MCPSpy
MCP Monitoring with eBPF
paiml -agent-toolkit
Pragmatic AI Labs MCP Agent Toolkit - An MCP Server designed to make code with agents more deterministic
schedcp
MCP Server for Linux Scheduler Management and Auto optimization
neurondb
PostgreSQL extension for vector search, embeddings, and ML, plus NeuronAgent runtime and NeuronMCP server.
mcp_server_pcileech
A simple MCP server for using pcileech to read or write another pc's memory
esp_mcp_server
An ESP32 component that implements the Model Context Protocol (MCP) server, providing a standardized way for AI applications to integrate with ESP32 devices.