Skip to main content
Glama

Everloot: WoW Forever data

Item page for a drop

item_page
Read-onlyIdempotent

Returns one Forever item's page by item id: the agreed name, drop frequency from observed loot windows, agreed map pins, and player-reported armor, block, damage per second, stats and resistances. A number is public when one value has 3 agreeing installs in the newest build that 3 installs reported, and no competing value has 3; contested numbers are withheld. Each number states its agreeing installs, build and last seen, with the corpus date and method. Missing numbers are [?] with a reason. No baseline rows or player names. Use it when you have an item id; use market_value for its price, entity_relations for what drops or sells it, and item_categories for its class and slot. Reads Everloot's public player data when connected. Missing or unavailable data is reported explicitly.

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": {
      "itemId": "<itemId>"
    },
    "name": "item_page"
  }
}

Input Schema

NameRequiredDescriptionDefault
itemIdYesThe game's item id, from a drop row, entity_relations or the extId of a search_knowledge hit of kind item.

Output Schema

NameRequiredDescriptionDefault
urlNoThe everloot.app page that shows this answer, absolute. Absent when there is no such page or it would be empty.
pageNo
reasonNoWhy nothing was read, when connected is false.
dataAsOfYesThe corpus snapshot time, or null when unrecorded.
connectedYesFalse when no corpus was read; the page is then absent, which is not a measured zero.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / itemId / description
      Previous value: -"Item id from a drop row."New value: +"The game's item id, from a drop row, entity_relations or the extId of a search_knowledge hit of kind item."
  2. Changed1 schema field changed
    • addedOutput schema / properties / page / properties / reported
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Player-reported item numbers, decided per line in the newest build with 3 reporting installs. Missing lines are unknown, never zero.",
      +  "properties": {
      +    "contested": {
      +      "description": "No unique value has 3 agreeing installs; no value is disclosed.",
      +      "items": {
      +        "enum": [
      +          "armor",
      +          "block",
      +          "damage_per_second",
      +          "health",
      +          "mana",
      +          "agility",
      +          "strength",
      +          "intellect",
      +          "spirit",
      +          "stamina",
      +          "defense_rating",
      +          "dodge_rating",
      +          "parry_rating",
      +          "block_rating",
      +          "hit_rating",
      +          "crit_rating",
      +          "haste_rating",
      +          "expertise_rating",
      +          "resilience_rating",
      +          "attack_power",
      +          "mana_regeneration",
      +          "spell_power",
      +          "holy_resistance",
      +          "fire_resistance",
      +          "nature_resistance",
      +          "frost_resistance",
      +          "shadow_resistance",
      +          "arcane_resistance"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "shown": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "build": {
      +            "type": "string"
      +          },
      +          "fact": {
      +            "enum": [
      +              "armor",
      +              "block",
      +              "damage_per_second",
      +              "health",
      +              "mana",
      +              "agility",
      +              "strength",
      +              "intellect",
      +              "spirit",
      +              "stamina",
      +              "defense_rating",
      +              "dodge_rating",
      +              "parry_rating",
      +              "block_rating",
      +              "hit_rating",
      +              "crit_rating",
      +              "haste_rating",
      +              "expertise_rating",
      +              "resilience_rating",
      +              "attack_power",
      +              "mana_regeneration",
      +              "spell_power",
      +              "holy_resistance",
      +              "fire_resistance",
      +              "nature_resistance",
      +              "frost_resistance",
      +              "shadow_resistance",
      +              "arcane_resistance"
      +            ],
      +            "type": "string"
      +          },
      +          "lastSeen": {
      +            "description": "Latest agreeing report not after the corpus date; null means [?].",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "reporters": {
      +            "maximum": 9007199254740991,
      +            "minimum": 3,
      +            "type": "integer"
      +          },
      +          "value": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "fact",
      +          "value",
      +          "reporters",
      +          "build",
      +          "lastSeen"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "shown",
      +    "contested"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / page / properties / pendingLoot
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Loot windows reported but not yet in the rates. Absent when there are none.",
      +  "properties": {
      +    "reporters": {
      +      "description": "Distinct reporters behind those windows.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "windows": {
      +      "description": "Reported loot windows not yet in the rates.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "windows",
      +    "reporters"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / url
      Added value: +{
      +  "description": "The everloot.app page that shows this answer, absolute. Absent when there is no such page or it would be empty.",
      +  "type": "string"
      +}
  5. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the read-only, idempotent, closed-world safety profile, but the description adds substantial behavior the annotations cannot convey: the 3-agreeing-installs consensus rule, withholding of contested values, per-number provenance (installs, build, last seen, corpus date, method), [?] markers with reasons, and exclusion of baseline rows and player names. It also notes it reads Everloot public player data when connected, which is real operational context.

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?

Front-loaded with the purpose before the data-quality rules and sibling routing, and every sentence carries distinct information. Some phrasing is dense and hard to parse on first read ('the newest build that 3 installs reported'), which trims a point but not for redundancy.

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?

An output schema exists, so return values need not be spelled out, yet the description still covers what an agent must know to interpret results: consensus rules, contested-value withholding, provenance fields, and missing-data markers. For a one-parameter read tool this is complete.

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

Parameters3/5

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

Schema coverage is 100% and the single itemId parameter is fully documented in the schema, including where to source it (drop row, entity_relations, search_knowledge extId). The description only restates 'by item id' and adds no format, range, or resolution guidance beyond the schema, so the baseline 3 applies.

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 and resource (returns one Forever item's page by item id) and then enumerates the payload: agreed name, drop frequency, map pins, and player-reported armor/block/DPS/stats/resistances. That specificity makes it immediately distinguishable from siblings like entity_relations or item_categories.

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?

Explicitly says 'Use it when you have an item id' and then routes three adjacent needs to named alternatives: market_value for price, entity_relations for drop/sale relationships, item_categories for class and slot. Both the trigger condition and the alternative set are stated, not inferred.

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.