Compatible with GABP v1.1 on wire major gabp/1.
GABS lets MCP-capable AI tools start games, check status, and call tools exposed by GABP-compatible game mods.
If you are installing GABS from a release archive, start with Quick Start below. If you want the full copy-paste setup guide, read the AI Client Setup Guide.
GABS is aimed at developers who want a practical way to connect local AI tools to real games.
- Configure games once with
gabs games add - Keep everything local by default
- Work with Claude Desktop, Codex CLI, and other MCP clients
- Support direct executables, Steam App IDs, Epic App IDs, and custom commands
- Mirror game-specific mod tools into MCP when the mod connects
Download the latest release bundle for your system from GitHub Releases.
Available archives are named like:
- Windows x64:
gabs-<version>-windows-amd64.zip - macOS Apple Silicon:
gabs-<version>-darwin-arm64.zip - macOS Intel:
gabs-<version>-darwin-amd64.zip - Linux x64:
gabs-<version>-linux-amd64.zip - Linux ARM64:
gabs-<version>-linux-arm64.zip
Each archive contains:
- the
gabsbinary (gabs.exeon Windows) README.md- the full
docs/folder example-config.jsonLICENSE
After unzipping:
Windows
.\gabs.exe versionmacOS / Linux
chmod +x gabs
./gabs version# Interactive setup
gabs games add minecraft
# See saved game IDs
gabs games list
# Show one game's saved config
gabs games show minecraftThe setup is interactive. In most cases you only need to answer:
- Game name: a label you recognize
- Launch mode: direct path, Steam App ID, Epic App ID, or custom command
- Target: the executable path or store App ID
- Stop process name: the real game process name used by
games.stopandgames.kill
For Steam and Epic games, stopProcessName is required. Example values:
RimWorldWin64.exe, RimWorld, or java.
Paste one of these into your AI client's MCP config.
Claude Desktop:
{
"mcpServers": {
"gabs": {
"command": "/path/to/gabs",
"args": ["server"]
}
}
}Codex CLI:
[mcp_servers.gabs]
command = "/absolute/path/to/gabs"
args = ["server"]Generic MCP client:
{
"command": "/absolute/path/to/gabs",
"args": ["server"]
}If your client uses strict OpenAI-style tool naming, enable
toolNormalization in ~/.gabs/config.json. See
OpenAI Tool Normalization.
- "List my games"
- "Start RimWorld"
- "Show the status of all games"
- "Stop Minecraft"
If you want a download-to-working walkthrough, use the AI Client Setup Guide.
- Steam/Epic stopping: use the real game process name, not the launcher name.
- More than one AI session: that is fine. GABS coordinates ownership per game so two live sessions do not both launch or attach to the same game by accident.
- Game mod cannot find bridge config: the mod should first read
GABP_SERVER_PORT,GABP_TOKEN, andGABS_GAME_ID, and only fall back toGABS_BRIDGE_PATHor~/.gabs/<gameId>/bridge.json.
Most users only need this mental model:
- Your AI client starts
gabs server - GABS starts or attaches to your game
- If the game mod speaks GABP, GABS mirrors that mod's tools into MCP
Architecture details matter mainly if you are writing a mod or debugging a bridge issue.
AI Agent ← MCP → GABS ← GABP Client → GABP Server (Game Mod) ← Game API → Game
In the GABP layer, your mod is the server and GABS is the client.
Most users only need a few tools at first:
games.list- List configured game IDsgames.show- Show one saved game configgames.start- Start a gamegames.stop- Stop a game gracefullygames.kill- Force stop a gamegames.status- Check if a game is runninggames.connect- Reconnect to a running game's mod bridgegames.tool_names- List mirrored game-specific tools after a mod connectsgames.tool_detail- Show the schema for one mirrored toolgames.call_tool- Call a mirrored tool through the stable core surface
For the full MCP surface and advanced behavior, see the AI Integration Guide.
When a GABP-compatible mod connects, GABS mirrors the mod's canonical tool
names into MCP-friendly names such as minecraft.inventory.get or
rimworld.crafting.build.
The usual discovery flow is:
AI: "Reconnect to RimWorld and show me its mod tools"
GABS: games.connect {"gameId": "rimworld"}
GABS: games.tool_names {"gameId": "rimworld", "brief": true}
GABS: games.tool_detail {"tool": "rimworld.crafting.build"}
Most users can ignore attention gating, resource mirroring, and protocol details until they need them. Those topics are covered in the dedicated docs.
- AI Client Setup Guide - Install a release bundle and connect Claude Desktop, Codex CLI, or generic MCP clients
- Configuration Guide - Detailed setup for different game types and tool normalization
- AI Integration Guide - Connect GABS to different AI tools and deployment scenarios
- Mod Development Guide - Add GABP support to your game mods
- Advanced Usage Guide - Multiple instances, HTTP mode, scripting, and more
- Deployment Guide - Production deployments and cloud setups
- OpenAI Tool Normalization - Configure tool name compatibility for OpenAI API
- Dynamic Tools Guide - How AI agents handle expanding tool sets
- AI Dynamic Tools FAQ - Common questions about dynamic tool discovery
Want your game to work with GABS? Add GABP support to your mod:
- Read GABP configuration from environment variables when your game starts:
GABS_GAME_ID- Your game's identifierGABP_SERVER_PORT- Port your mod should listen onGABP_TOKEN- Authentication token for GABS connectionsGABS_BRIDGE_PATH- Optionalbridge.jsonfallback/debug path
- Start a local GABP server to listen for GABS connections (your mod = server, GABS = client)
- Implement the current GABP runtime methods (
session/hello,tools/list,tools/call) or use the officialgabp-runtimelibrary so your schemas match what GABS expects- For GABP v1.1 bridges, advertise optional attention support through capabilities before exposing
attention/current,attention/ack, and the attention lifecycle channels
- For GABP v1.1 bridges, advertise optional attention support through capabilities before exposing
- Expose game features as tools, resources, and events using canonical GABP tool names such as
inventory/getorcore/ping
See the Mod Development Guide for complete examples in C#, Java, and Python.
Requirements: Go 1.22+
# Simple build
go build ./cmd/gabs
# Build with version information (recommended)
make build
# Build with custom version
go build -ldflags "-X github.com/pardeike/gabs/internal/version.Version=vX.Y.Z" ./cmd/gabs- Issues & Ideas: GitHub Issues
- GABP Protocol: GABP Repository
- Example Configuration: See
example-config.jsonfor sample configurations
MIT License - see LICENSE for details.
GABS makes AI-game interaction simple. Configure once, control naturally.