This guide shows you how to connect GABS to different AI assistants and tools.
See also: Configuration Guide for setting up games, OpenAI Tool Normalization for OpenAI API compatibility, and Deployment Guide for production setups.
If you are starting from a downloaded release archive, read AI Client Setup Guide first. It covers unzip/install steps, config locations, and ready-to-paste client snippets.
GABS works as an MCP (Model Context Protocol) server. This means AI assistants can control your games through standard MCP tools.
Once GABS is running, AI can use these tools:
games.list- Show configured game IDsgames.show- Show configuration and validation details for one gamegames.start- Start a game:{"gameId": "minecraft"}games.stop- Stop a game gracefully:{"gameId": "minecraft"}games.kill- Force quit a game:{"gameId": "minecraft"}games.status- Check if games are running:{"gameId": "minecraft"}or all gamesgames.tool_names- Discover compact mirrored tool namesgames.tool_detail- Inspect one mirrored tool's schemagames.tools- Fetch the richer compatibility listing of mirrored toolsgames.connect- Attach to a running game's GABP server after the mod loads or after a GABS restartgames.get_attention- Inspect a game's current blocking attention itemgames.ack_attention- Acknowledge the current blocking attention item and resume normal callsgames.call_tool- Call a mirrored game tool through the stable core surface
Pro tip: You can use either the game ID ("rimworld") or the launch target ("294100" for Steam) in any tool.
GABS coordinates live sessions per game. If one GABS session already owns a running or starting game:
games.startreturns quickly instead of launching a duplicate copygames.connectreturns quickly instead of waiting on a competing bridge connectiongames.statusmay report that another GABS session owns the process
If you intentionally want the current GABS session to take ownership of a running game, call:
{
"gameId": "rimworld",
"forceTakeover": true
}with games.connect. This defaults to false.
GABS is compatible with the additive attention surface introduced in GABP
v1.1 while staying on wire major gabp/1.
When a connected bridge advertises attention/current and attention/ack,
GABS can gate normal game-bound tool calls until the current attention item is
reviewed and acknowledged. The recovery flow is:
- Call
games.get_attention - Inspect the returned diagnostics or follow-up tooling
- Call
games.ack_attentionwith the returnedattentionId - Retry the original game call
For OpenAI API compatibility, you may need to enable tool name normalization. Add this to your configuration:
{
"toolNormalization": {
"enableOpenAINormalization": true,
"maxToolNameLength": 64,
"preserveOriginalName": true
}
}This converts tool names like minecraft.inventory.get to minecraft_inventory_get for OpenAI compatibility. See OpenAI Tool Normalization Guide for complete details.
Add this to your Claude Desktop MCP settings:
{
"mcpServers": {
"gabs": {
"command": "/path/to/gabs",
"args": ["server"]
}
}
}Then you can ask Claude:
- "List all my configured games"
- "Start minecraft and check its status"
- "Stop all running games"
Add this to your configuration:
[mcp_servers.gabs]
command = "/path/to/gabs"
args = ["server"]Each live Codex session runs its own stdio GABS process. Cross-session coordination happens only when those sessions interact with the same configured game.
Here's a Python example using an MCP client:
import mcp_client
# Connect to GABS
client = mcp_client.connect_stdio(["/path/to/gabs", "server"])
# List all games
games = client.call_tool("games.list", {})
print("Available games:", games)
# Start a specific game
result = client.call_tool("games.start", {"gameId": "minecraft"})
print("Start result:", result)
# Check status
status = client.call_tool("games.status", {"gameId": "minecraft"})
print("Game status:", status)Perfect when your AI and games run on the same computer:
# 1. Configure your games
gabs games add minecraft
gabs games add rimworld
# 2. Start GABS MCP server
gabs server
# 3. Configure your AI to connect (see examples above)
# 4. Ask AI to control your games!For AI tooling that reaches GABS over HTTP while the games still run on your local machine:
On the machine running GABS and the games:
# 1. Add games normally
gabs games add minecraft
# 2. Start GABS in HTTP mode
gabs server --http :8080GABP itself remains local-only. Your game mod still listens on
127.0.0.1:GABP_SERVER_PORT; only the MCP HTTP surface is exposed remotely.
Configure your remote AI client:
{
"mcpServers": {
"remote-gabs": {
"command": "curl",
"args": ["-X", "POST", "http://your-computer-ip:8080/mcp",
"-H", "Content-Type: application/json",
"-d", "@-"]
}
}
}Use firewall rules, reverse proxy authentication, or a VPN before exposing the HTTP endpoint outside your machine or LAN.
Let AI manage multiple game servers:
# Configure multiple servers
gabs games add minecraft-survival
gabs games add minecraft-creative
gabs games add rimworld-colony1
gabs games add rimworld-colony2
# Start GABS
gabs server
# AI can now control all servers through MCP toolsGABS can also run as an HTTP server for web-based AI tools:
# Start HTTP mode
gabs server --http localhost:8080Then use standard HTTP requests:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "games.list",
"arguments": {}
}
}'Here are some examples of what you can ask your AI once GABS is set up:
Starting games:
- "Start my Minecraft server"
- "Launch RimWorld and check if it started correctly"
- "Start all my configured games"
Managing games:
- "Stop the Minecraft server gracefully"
- "Kill any frozen games"
- "Show me the status of all my games"
Advanced usage:
- "Start the survival server, wait 30 seconds, then check if players can connect"
- "Restart the creative server if it's using too much memory"
- "Start a backup world while keeping the main server running"
- Make sure GABS server is running:
gabs server - Check your AI's MCP configuration file
- Restart your AI assistant after changing configuration
- Verify GABS is running on the expected port
- Check firewall settings for HTTP mode
- Make sure the path to GABS binary is correct
- Test the game manually first:
gabs games start minecraft - Check that your game configuration is working:
gabs games show minecraft - Make sure your game mod supports GABP
- Check if the port is already in use
- Try a different port:
gabs server --http :8081 - Verify your HTTP client is sending proper JSON-RPC requests