Skip to main content
Glama

Game concepts

gripforge_game_concepts

Concept art for a whole game, reused before generated. Use it when a user asks for a game like a title they name: call stage=plan with the game as they wrote it. When the user describes specific items (heroes, weapons, props…), pass them in wishes: they are drawn exactly as asked. The plan lists concepts that already exist for that game (GripForge community catalog or the workspace) and theme assets already in the library: reuse them first. It then prices the missing concepts: one style bible, heroes and bosses one image each (MOBA and hero games: each hero with its ability kit and ability icons, see hero_kits), enemies, NPCs, weapons, vehicles, buildings, props and VFX in sheets of 6 cut automatically, textures in sheets of 2 turned into seamless 1024 px textures. Maps (counts.maps) are environment paintings, one image each: the level is then built and dressed to match them. Show the plan and price to the user; only call stage=build with a budget after they agree. Concepts are private review images; nothing is sent to 3D. The plan also returns ambient_kits: the kits of the theme's atmosphere (weather, lighting, snow tracks) with their config; install them in the game project next to the blueprint's gameplay kits.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "gripforge_game_concepts"
  }
}

Input Schema

NameRequiredDescriptionDefault
gameNoThe game the user named, exactly as they wrote it (a title, "like <title>", "a <title>"). Matched server side against the recognised titles and aliases.
stageNocatalog: blueprints (slot counts), theme packs and how many named games are recognised (their titles stay server side). plan (default, free): what already exists and is reused, what would be generated, and the price. build: generate the missing concepts, requires budget.
budgetNoRequired for build: maximum credits OR USD, at least the plan price.
countsNoConcepts to generate per slot (heroes up to 24, maps up to 6: the first is the whole playfield from above, the others are zones seen through the game camera). Default: what the blueprint needs minus what is already reusable.
customNoOnly when `game` is not in the catalog: describe the game with the closest blueprint and pack.
wishesNoWhat the user asked for, per slot, one short description per item (max 24 per slot, 200 chars each), e.g. {"heroes": ["old bald karate master in a worn gi", "masked luchador"], "weapons": ["pump shotgun", "hunting rifle"]}. Binding: the pack produces exactly these items, in this order (named and detailed, never replaced). The slot count defaults to the number of wishes; a larger count adds freely invented items. Always pass the characters, weapons or objects the user described here, not only in custom.build.
providerNoDefault openai (GPT Image 2.5 sunburst: final quality for style bible, heroes and bosses, medium-quality sheets of 6 for the rest).
hero_kitsNoEach hero comes with its ability kit — role, lane, basic attack, passive + Q/W/E/R (type, range, cooldown, cost, effect, VFX, cast animation) — and a sheet of 5 ability icons in its colours (1 more image per hero). Default from the blueprint: on for lane-arena (MOBA). Turn it on for any game whose heroes have abilities (hero shooter, ARPG).
workspace_idNo
idempotency_keyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / game / description
      Previous value: -"The game the user named, as written (\"God of War\", \"like Dark Souls\", \"a GTA\"). Matched against titles and aliases of the catalog."New value: +"The game the user named, exactly as they wrote it (a title, \"like <title>\", \"a <title>\"). Matched server side against the recognised titles and aliases."
    • changedInput schema / properties / stage / description
      Previous value: -"catalog: known games, blueprints (slot counts) and theme packs. plan (default, free): what already exists and is reused, what would be generated, and the price. build: generate the missing concepts, requires budget."New value: +"catalog: blueprints (slot counts), theme packs and how many named games are recognised (their titles stay server side). plan (default, free): what already exists and is reused, what would be generated, and the price. build: generate the missing concepts, requires budget."
  2. Changed1 schema field changed
    • addedInput schema / properties / wishes
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "What the user asked for, per slot, one short description per item (max 24 per slot, 200 chars each), e.g. {\"heroes\": [\"old bald karate master in a worn gi\", \"masked luchador\"], \"weapons\": [\"pump shotgun\", \"hunting rifle\"]}. Binding: the pack produces exactly these items, in this order (named and detailed, never replaced). The slot count defaults to the number of wishes; a larger count adds freely invented items. Always pass the characters, weapons or objects the user described here, not only in custom.build.",
      +  "properties": {
      +    "bosses": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "buildings": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "enemies": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "heroes": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "maps": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "npcs": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "props": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "textures": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "vehicles": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "vfx": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    },
      +    "weapons": {
      +      "items": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / counts / description
      Previous value: -"Concepts to generate per slot (heroes up to 24). Default: what the blueprint needs minus what is already reusable."New value: +"Concepts to generate per slot (heroes up to 24, maps up to 6: the first is the whole playfield from above, the others are zones seen through the game camera). Default: what the blueprint needs minus what is already reusable."
    • addedInput schema / properties / counts / properties / maps
      Added value: +{
      +  "maximum": 96,
      +  "minimum": 0,
      +  "type": "integer"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / counts / description
      Previous value: -"Concepts to generate per slot. Default: what the blueprint needs minus what is already reusable."New value: +"Concepts to generate per slot (heroes up to 24). Default: what the blueprint needs minus what is already reusable."
    • addedInput schema / properties / hero_kits
      Added value: +{
      +  "description": "Each hero comes with its ability kit — role, lane, basic attack, passive + Q/W/E/R (type, range, cooldown, cost, effect, VFX, cast animation) — and a sheet of 5 ability icons in its colours (1 more image per hero). Default from the blueprint: on for lane-arena (MOBA). Turn it on for any game whose heroes have abilities (hero shooter, ARPG).",
      +  "type": "boolean"
      +}
  5. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (readOnly=false, destructive=false, openWorld=true, idempotent=false); the description adds far more: reuse-first policy against the community catalog/workspace, per-slot pricing model, sheet sizes (6-pack VFX, 2-pack seamless 1024 textures), maps as environment paintings, privacy ("private review images; nothing is sent to 3D"), and the budget-gated build. This is behavioral context an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the plan/build workflow are front-loaded, and most sentences carry non-redundant information. However, the long run-on enumerating every slot type ("one style bible, heroes and bosses one image each… textures in sheets of 2") makes it a dense wall of text where tighter structure would help.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with nested objects and no output schema, the description does describe what plan returns (existing concepts to reuse, pricing, ambient_kits) and the build gate, which is the key completeness burden. Minor gaps remain around workspace_id/idempotency usage and error/failure behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80% (high), so the baseline is 3, but the description adds real meaning beyond it: stage=plan is free and build requires budget, wishes are "binding… named and detailed, never replaced," maps in counts are environment paintings one image each, and ambient_kits is returned for installation. It still doesn't illuminate workspace_id or idempotency_key, so not a full 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: "Concept art for a whole game, reused before generated." The "whole game" scope inherently distinguishes it from slot-level siblings like gripforge_character_concepts or gripforge_map_concept, and it references the hero_kits behavior. An agent can tell what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ("Use it when a user asks for a game like a title they name"), which stage to call first (stage=plan with the title as written), and an explicit gating rule ("Show the plan and price to the user; only call stage=build with a budget after they agree"). It also names the alternative path for uncatalogued games via custom/wishes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.