doom-mcp — Claude Code MCP server: what it does, how to install
Runs classic DOOM inside your AI assistant sessions. It lets you direct the character step by step or hand over full control to the model.
claude mcp add doom-mcp -- npx -y doom-mcpWhat doom-mcp does
The server connects to the doomgeneric C engine directly from Rust via FFI. There is no emulation layer. Each action returns health, ammo, visible demon locations, and a PNG frame thumbnail.
Control relies on three tools: doom_start, doom_action, and doom_screenshot. They restart episodes, advance ticks with movement commands, and write 320x200 images to the temp folder. The package bundles Freedoom by default. If you want official maps, set the DOOM_WAD_PATH environment variable in your client configuration.
What it helps with
- run classic DOOM directly inside an MCP-compatible environment
- direct character movement and combat through chat prompts
- evaluate vision and tactical decisions of an autonomous agent
- export 320x200 game screenshots to system storage
Example prompts for the agent
- Let's play DOOM on medium difficulty starting at E1M1
- Walk forward, turn towards the imp and fire the pistol
- Take a screenshot of the current room
How to install doom-mcp
Platform CLI
claude mcp add doom-mcp -- npx -y doom-mcpPlatform CLI
codex mcp add doom-mcp -- npx -y doom-mcpConfig file
{
"mcpServers": {
"doom-mcp": {
"command": "npx",
"args": [
"-y",
"doom-mcp"
]
}
}
}Config file
{
"servers": {
"doom-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"doom-mcp"
]
}
}
}Platform CLI
gemini mcp add doom-mcp npx -y doom-mcpStep by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about doom-mcp
How do I install doom-mcp in Claude Code?
Run claude mcp add doom-mcp -- npx -y doom-mcp in your terminal.
What does doom-mcp do?
It embeds a native DOOM engine and exposes game actions, player stats, and visual frames to the assistant via MCP tools.
Can I load original game files instead of Freedoom?
Point the DOOM_WAD_PATH environment variable to your DOOM.WAD, DOOM2.WAD, or shareware DOOM1.WAD file in your client config.