pardeike/gabs/gabs-mcp
Claude Code and agent skill by pardeike/gabs
- community
Checking that the SKILL.md file is still in the repository.
Use when working with the GABS MCP server to inspect configured games, start or reconnect game bridges, discover mirrored GABP tools through the stable core surface, call game-specific tools, or debug game-development loops through GABS.
Install
npx vskill@latest install pardeike/gabs/gabs-mcpSKILL.md
GABS MCP
Use GABS as the stable control surface for a local game-development loop. GABS starts configured games, connects to GABP-compatible bridges, mirrors bridge tools into MCP, and keeps game-specific discovery/calls on the stable core path through games_tool_names and games_call_tool.
The Edit Contract
Edit GABS config only when (a) the failure's causeClass is config, (b) you are setting up a game that has never launched successfully, or (c) the user explicitly asked for a config change. A failure with class environment, game, or state on a context with a positive track record is never a config problem: follow the result's nextActions, retry within reason, then report to the user. Treat a result's "this context has started N×" line as authoritative history — do not second-guess a proven config because of one bad run.
Default Workflow
- Check configured games with
games_list. - Inspect current state with
games_status; passgameIdwhen you know it. - Start a stopped game with
games_start, or attach to an already running game withgames_connect. - Discover connected bridge tools with
games_tool_namesusingbrief: true. - Inspect one candidate with
games_tool_detail. - Call the tool through
games_call_toolunless a direct mirrored MCP tool is clearly available and already discovered. - After start, connect, stop, reconnect, or an error, call
games_statusorgames_tool_namesagain instead of relying on cached tool lists.
Profiles and Launch Inputs
- Check
games_showbefore choosing a profile or supplying a launch input: it lists the declared profiles, the declared inputs (with types), and the per-context track record. Choose from what is declared; never invent a profile name or an input. - Prefer a profile over duplicating a game under a second ID only when the target and launchMode are the same — profiles parameterize one game; separate IDs are for genuinely different games and keep independent concurrency.
- Pass a launch input only when the user explicitly asked for that variation. Inputs parameterize the launch (a seed, a world name); they are never a substitute for calling a GABP tool to act inside a running game.
- Config edits apply automatically (hot reload) — after editing, verify with
games_showrather than restarting GABS or the client. games_stopandgames_killnever take a profile: they act on whatever launch is currently claimed.
Outcomes That Are Not Failures
started_bridge_pending(the workload verified but the bridge has not connected yet) andunobserved(nothing observable within the start budget) are not failures. Follow the returnednextActions— pollgames_status, thengames_connect— and never relaunch or switch profiles in response.started_attachment_deferredmeans a CLIgabs games startverified the workload and left the claim active without attaching; pick it up withgames_connect.- On
operation_in_progress, re-checkgames_statusafter the reported deadline; do not start a duplicate. - On
unknownliveness, follow the returned next action (inspect evidence;repair --forget-runtimeonly if provably stale) — never start a duplicate.
Tool Rules
- Prefer strict-safe names such as
games_status,games_tool_names, andgames_call_tool. - Dotted names such as
games.statusmay work as aliases, but do not use them as the first choice. - Use
gameIdvalues fromgames_list; do not guess from display names. - Use
games_showwhen a game fails to start or stop, especially for Steam/EpicstopProcessNamevalidation. - Use
games_connectafter a game is already open, after a GABS restart, or whengames_startsays the process is running but GABP was not ready. - Use normal
games_connectto continue from a different live session after the previous session goes idle; GABS runtime ownership is a short active-use lease, not a permanent session lock. - Use
games_connectwithforceTakeover: trueonly when intentionally moving ownership away from another active GABS session before its lease expires. - For games with slow bridge startup, pass a larger
timeouttogames_startor configuretimeouts.startup.gabpConnectSecondsto increase the total background connection budget.games_startstill returns after a bounded initial wait; usegames_statusorgames_connectwhile GABS keeps trying. - On macOS, the same
games_start.timeoutindependently caps the pre-spawnSteamManagedreadiness wait.store_client_not_readymeans the game was not spawned: repeat the original call with the same profile and launch inputs after Steam settles. Increasetimeoutonly forreason: readiness_timeout;reason: probe_unavailableneeds the Steam client library/helper problem resolved first. Never change a proven game config for this environment-class result. - Do not inspect, edit, or base recovery on
bridge.json; it is GABS' endpoint cache/debug artifact. Game-side bridge runtime configuration should come fromGABP_SERVER_PORT,GABP_TOKEN, andGABS_GAME_ID. - If
games_startreportsendpoint_cache_in_use, usegames_connectto attach to the already-listening endpoint. Usegames_startwithresetEndpoint: trueonly after confirming the cached endpoint should be rotated for a new process. - If
games_statusreportsprocess-bridge-environment-missing, the running
process is visible but lacks an attachable GABP environment. Do not keep retrying games_connect; inspect the config with games_show or gabs games doctor <gameId>. For Steam launcher URL configs, run gabs games repair <gameId> first. If managed Steam launch still loses the environment, use DirectPath or CustomCommand.
Discovery
- Use
games_tool_namesbefore attempting game-specific actions. - Pass
brief: truefor compact summaries. - Pass each entry's
nameunchanged togames_tool_detailorgames_call_tool.
Discovery omits name aliases; inspect tool detail when those are needed. Single-game results carry gameId at the top level; results across games include it per entry. Do not infer game IDs by parsing tool names.
- Pass
queryorprefixwhen looking for a likely capability. - Use
games_tool_detailfor the exact schema of one tool before supplying arguments. - If
games_tool_detailorgames_call_toolsays a tool is missing, inspect the structured candidates or callgames_tool_namesagain.
Calling Game Tools
- Prefer
games_call_toolwith: gameIdwhen the tool name is local or ambiguous;toolfromgames_tool_namesorgames_tool_detail;argumentsmatchinggames_tool_detail.inputSchema;timeoutfor long-running game actions.- Fully qualified slash or dotted GABP names can be sent through
games_call_toolbefore direct mirrored MCP tools appear. - If a call is blocked by attention, use
games_get_attention, decide what to do, then acknowledge withgames_ack_attentionwhen appropriate. - While attention is open, diagnostic and lifecycle observation tools may still be callable through
games_call_tool; use them to inspect bridge status, operations, logs, game-loaded state, or long-event idle state before acknowledging. - If a call is blocked by
blocked_by_active_runtime_owner, usegames_statusto inspect the owner lease and retrygames_connectafter the active session goes idle. UseforceTakeoveronly for deliberate immediate handoff. - Bridge authors should mark such tools with generic tags like
diagnostic,read-only,status,health,lifecycle, orattention-bypass; do not rely on bridge-specific tool names.
Recovery
- For
store_client_not_ready, do not usegames_connector edit the config — no game process or runtime claim exists. On macOSSteamManaged, GABS has already waited for Steam's configured-app subscription/install state and a successful process-local Steamworks API initialization, not merely its process or global-user connection. Reissue the originalgames_startrequest unchanged after Steam settles, preserving launch-input values from the original call rather than reconstructing them from diagnostics (GABS intentionally returns input names only). - If no bridge tools are listed, call
games_statusfirst, thengames_connectif the game is running. - If GABP disconnected, call
games_statusto inspect the last disconnect note, thengames_connectafter the bridge is ready. - If a client rejected
tools/list, check whetherstripOutputSchemais enabled in GABS config. - If stop or kill fails for launcher games, use
games_showand fixstopProcessName.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/gabs-mcp/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/pardeike/gabs/gabs-mcp)