Skip to main content
Glama

Get nature effect

get_nature
Read-onlyIdempotent

Get a nature's stat modifier: the 10% raised and lowered stats, or neutral for the five no-effect natures, to use in stat, damage, speed, and EV calculations.

Instructions

Get one nature's stat effect: the stat it raises 10% and the stat it lowers 10%, or a neutral effect for the five natures that change nothing (Hardy, Docile, Serious, Bashful, Quirky). Use it when assembling a set, since calculate_stats, calculate_damage, check_speed, and optimize_evs all take a nature name rather than a numeric modifier. Accepts nature names case-insensitively; unknown natures return an isError. Read-only and offline.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
natureYesNature name, e.g. "Jolly", "Timid", "Impish".

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
genYesGeneration the nature system was introduced in.
nameYesNature name, e.g. "Jolly".
plusNoStat raised 10%, as a stat id such as "spe"; absent for the five neutral natures that change nothing.
minusNoStat lowered 10%, as a stat id such as "spa"; absent for the five neutral natures that change nothing.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.2.0
    • removedInput schema / properties / generation
      Removed value: -{
      -  "default": 9,
      -  "description": "Generation whose data to use, 1-9 (default 9). Earlier generations omit moves, items, abilities, and forms that did not exist yet.",
      -  "maximum": 9,
      -  "minimum": 1,
      -  "type": "integer"
      -}
  2. Changed3 schema fields changedv1.1.1
    • addedInput schema / properties / generation / description
      Added value: +"Generation whose data to use, 1-9 (default 9). Earlier generations omit moves, items, abilities, and forms that did not exist yet."
    • addedInput schema / properties / nature / description
      Added value: +"Nature name, e.g. \"Jolly\", \"Timid\", \"Impish\"."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "gen": {
      +      "description": "Generation the nature system was introduced in.",
      +      "type": "number"
      +    },
      +    "minus": {
      +      "description": "Stat lowered 10%, as a stat id such as \"spa\"; absent for the five neutral natures that change nothing.",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "Nature name, e.g. \"Jolly\".",
      +      "type": "string"
      +    },
      +    "plus": {
      +      "description": "Stat raised 10%, as a stat id such as \"spe\"; absent for the five neutral natures that change nothing.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "gen"
      +  ],
      +  "type": "object"
      +}
  3. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses case-insensitive matching, error returns for unknown natures, offline behavior, and the exact neutral-nature list. No statement contradicts the annotations.

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

Conciseness5/5

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

Three sentences front-load the core mechanic, then provide usage context, then input behavior. Every sentence earns its place with no redundancy or filler.

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?

With one parameter, a rich output schema, and detailed annotations, the description fully equips an agent to call the tool correctly. It covers the tool's scope, relevant sibling context, input handling, and the distinct neutral cases.

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?

The schema already covers the single parameter with 100% documentation. The description adds behavioral semantics beyond the schema: nature names are accepted case-insensitively and unknown natures produce an error flag, which is useful for an agent constructing valid calls.

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?

The description states a specific verb and resource: 'Get one nature's stat effect,' with clear details on the 10% raise/lower and the five neutral natures. It also distinguishes this tool from calculation siblings by explaining it returns nature effects rather than numeric modifiers.

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?

The description explicitly says to use it 'when assembling a set' and names calculate_stats, calculate_damage, check_speed, and optimize_evs as tools that consume nature names, making the integration context clear. It also notes case-insensitivity and error behavior, which helps an agent decide when calling is appropriate.

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