Skip to main content
Glama

Weapon attachments: what each gun accepts and what each attachment does

weapon_attachments
Read-onlyIdempotent

Weapon attachments: what each gun accepts and what each attachment does. From the game's own attachment data (as Skin Lab uses it). Each attachment has shortname, name, slot (muzzle, sight, underbarrel, magazine, internal, targeting - one attachment per slot), description, effects (readable: damage x0.75 = 25% less damage, aimcone_hip +2 = wider hip-fire spread) and the raw stats multipliers (scalar) and additions (offset). With weapon: that gun's slots and accepts (the attachments that fit it). Without: every gun's accepted list plus every attachment. Which attachments a Rust gun takes and what each does (damage, recoil, zoom...).

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": "weapon_attachments"
  }
}

Input Schema

NameRequiredDescriptionDefault
weaponNoGun shortname or name; left out = every gun and every attachment.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare a safe, idempotent, closed-world read, so the description's job is to add context — and it does: it cites the data source ('the game's own attachment data, as Skin Lab uses it'), explains the slot model (one attachment per slot, with the six slot names), and decodes the effect notation (`damage x0.75` = 25% less damage). It does not warn that the no-argument mode returns a large corpus, which is the one behavioral gap.

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

Conciseness3/5

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

The key mode distinction is front-loaded and the effect-decoding examples are genuinely useful, but the opening sentence and the closing sentence ('Which attachments a Rust gun takes and what each does...') restate the same thing twice. The dense inline enumeration of field names and slot values also reads as a schema dump rather than prose.

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?

There is no output schema, so the description carries the return-value burden and largely meets it: it lists the per-attachment fields (`shortname`, `name`, `slot`, `description`, `effects`, `stats` with `scalar`/`offset`) and both response shapes. The remaining gap is scale — it never indicates how large the all-guns response is or how it is ordered.

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 100%, so the baseline is 3; the description earns more by explaining what the `weapon` value unlocks in each mode and by clarifying that it accepts either a shortname or a name. It does not add format hints beyond the schema's example (`rifle.ak`) or say what happens on an unrecognized weapon.

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?

The definition names a specific resource (weapon attachments) and states both facets it answers: what each gun accepts (`slots`, `accepts`) and what each attachment does (`effects`, `stats`). It implicitly separates itself from stat/calculation siblings like get_weapon_stats and calculate_damage by scoping to attachment compatibility, but never names an alternative, so it falls short of a 5.

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

Usage Guidelines3/5

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

It explains the two calling modes clearly — with `weapon` you get that gun's slots and accepted attachments, without it you get every gun's list plus every attachment. That is usage of the parameter, not guidance on when to pick this tool over get_weapon_stats or calculate_damage, and there are no exclusions or cost warnings for the broad no-argument call.

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.

Resources