Skip to main content
Glama

Generate a weapon (Meshy)

gripforge_generate_weapon

CREATE a game-ready weapon GLB (knife, gun, sword…) and save it to Library as kind=weapon. Default provider Meshy, no T-pose, no biped rig. polycount defaults to 4000. style=melee|gun is written to meta.style for gripforge_attach. 10 credits. Returns a persistent job_id; poll gripforge_generation_read. Do NOT write one-off Meshy scripts.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "prompt": "<prompt>"
    },
    "name": "gripforge_generate_weapon"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoLibrary name (default: prompt)
styleNoGrip style for attach (inferred if omitted)
engineNoGPU engine, only with provider gpu: hunyuan (Hunyuan3D 2.1, shape then paint) or trellis2 (TRELLIS.2). Server default GRIPFORGE_GPU_ENGINE, else hunyuan.
promptYese.g. "tactical combat knife, silver blade, black grip". Up to 2000 characters: the on-demand GPU (provider gpu) always takes them; another provider refuses a text over its own limit with the error prompt_too_long_for_provider.
providerNoDefault meshy (or the server default). gpu = our rented GPU: Hunyuan3D 2.1 (default engine) or TRELLIS.2 image-to-3D, then the game-ready chain (shape gate, normalisation, decimation, normal + AO bake from the high-poly, collider for props/weapons, meta.gameReady verdict); text-only first makes a concept image; no Tripo/Meshy spend. The server default can be gpu (GRIPFORGE_FORGE_DEFAULT=gpu|meshy).
polycountNoTarget triangles (default 4000)
idempotency_keyNoStable key per asset role. Reuse after an uncertain response to avoid duplicate paid jobs.

Output Schema

NameRequiredDescriptionDefault
jobNo
itemNo
notesNo
stageNo
job_idNo
statusNo
providerNo
status_urlNo
studio_urlNo
library_urlNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / prompt / description
      Previous value: -"e.g. \"CS2 default CT combat knife, silver blade, black grip\". Up to 2000 characters: the on-demand GPU (provider gpu) always takes them; another provider refuses a text over its own limit with the error prompt_too_long_for_provider."New value: +"e.g. \"tactical combat knife, silver blade, black grip\". Up to 2000 characters: the on-demand GPU (provider gpu) always takes them; another provider refuses a text over its own limit with the error prompt_too_long_for_provider."
  2. Changed1 schema field changed
    • changedInput schema / properties / prompt / description
      Previous value: -"e.g. \"CS2 default CT combat knife, silver blade, black grip\""New value: +"e.g. \"CS2 default CT combat knife, silver blade, black grip\". Up to 2000 characters: the on-demand GPU (provider gpu) always takes them; another provider refuses a text over its own limit with the error prompt_too_long_for_provider."
  3. Changed1 schema field changed
    • changedInput schema / properties / prompt / maxLength
      Previous value: -600New value: +2000
  4. Changed3 schema fields changed
    • addedInput schema / properties / engine
      Added value: +{
      +  "description": "GPU engine, only with provider gpu: hunyuan (Hunyuan3D 2.1, shape then paint) or trellis2 (TRELLIS.2). Server default GRIPFORGE_GPU_ENGINE, else hunyuan.",
      +  "enum": [
      +    "hunyuan",
      +    "trellis2"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / provider / description
      Previous value: -"Default meshy"New value: +"Default meshy (or the server default). gpu = our rented GPU: Hunyuan3D 2.1 (default engine) or TRELLIS.2 image-to-3D, then the game-ready chain (shape gate, normalisation, decimation, normal + AO bake from the high-poly, collider for props/weapons, meta.gameReady verdict); text-only first makes a concept image; no Tripo/Meshy spend. The server default can be gpu (GRIPFORGE_FORGE_DEFAULT=gpu|meshy)."
    • changedInput schema / properties / provider / enum
      Previous value: -[
      -  "meshy",
      -  "tripo"
      -]New value: +[
      +  "meshy",
      +  "tripo",
      +  "gpu"
      +]
  5. Changed9 schema fields changed
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "description": "Stable key per asset role. Reuse after an uncertain response to avoid duplicate paid jobs.",
      +  "pattern": "^[a-zA-Z0-9_.:-]{8,160}$",
      +  "type": "string"
      +}
    • changedOutput schema / additionalProperties
      Previous value: -falseNew value: +{}
    • addedOutput schema / properties / job
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / job_id
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / library_url
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / stage
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / status_url
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / studio_url
      Added value: +{
      +  "type": "string"
      +}
  6. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly=false, openWorld=true, destructive=false) by disclosing the 10-credit cost, the Library write side effect (kind=weapon), that style is persisted to meta.style for gripforge_attach, that the call is asynchronous returning a persistent job_id, and the correct polling follow-up. These are exactly the traits an agent cannot infer from the 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?

Terse, fact-dense and front-loaded with the imperative CREATE and the artifact it produces; the cost, return contract and polling instruction all appear before the closing guardrail. It reads as a run of fragments rather than prose, but effectively every clause carries load.

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

Completeness5/5

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

Covers everything needed to invoke and follow through: what is produced, where it lands, provider default and alternatives, rig exclusions, polycount default, cost, async return plus the specific polling tool, and the script anti-pattern. With an output schema present it correctly does not waste space describing return payload shapes, and the annotations cover the safety profile.

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 already 100%, so the baseline is 3, but the description adds meaning the schema does not: polycount default of 4000, and that style is not just an enum value but a grip style written to meta.style and consumed by gripforge_attach. It omits two of the four style enum values (shield, staff), which keeps it short of a 5.

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

Purpose4/5

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

States a precise verb (CREATE) plus resource and artifact format (game-ready weapon GLB, saved to Library as kind=weapon), with concrete examples (knife, gun, sword). It clearly separates itself from generic generators by declaring it is a static weapon asset (no T-pose, no biped rig), but never names the nearest siblings (gripforge_generate_flexible_weapon, gripforge_generate_prop) so the differentiation is left implicit.

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

Usage Guidelines4/5

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

Gives real operational context: default provider Meshy, poll with gripforge_generation_read, and an explicit anti-pattern ('Do NOT write one-off Meshy scripts'). What is missing is when to prefer this over the sibling weapon generators (flexible weapon vs. catalog vs. plain gripforge_generate), so it is clear context without exclusions.

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.