Skip to main content
Glama

Everloot: WoW Forever data

Guild board its officers published

guild_board
Read-onlyIdempotent

Returns one guild's roster, bosses killed, loot awarded, raid attendance and average item level, as that guild's own officers chose to publish them, with its kills per instance and its rank. The officer board (roster, bosses, loot, attendance, item level) counts only uploads from officers holding a verified grant for the guild, and a figure is public after 2 of them agree. When Everloot's guild pages are connected, the public part follows: kills per instance (a kill counts once 2 members' installs report the same boss, or when the officers publish it), the guild's rank, and the characters players running the addon saw in the guild, with level, class and last seen. Names are in-game character names, never accounts or real-world identities. A character's owner can opt out, which leaves that character out of the roster, loot and attendance. A guild whose officers have not published gets an empty officer board and still shows the public part; a guild that asked to be hidden gets no answer. The average item level says how many roster members were measured; there is no combined score. Use it for one guild's own board; use guild_search to find a guild's exact name and realm, and guild_rankings to compare guilds in one instance. Reads Everloot's public player data when connected. Missing or unavailable data is reported explicitly.

Input Schema

NameRequiredDescriptionDefault
realmYesThe guild's realm, as guild_search gives it.
guildNameYesThe guild's in-game name, as guild_search gives it.

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. Changed2 schema fields changed
    • changedInput schema / properties / guildName / description
      Previous value: -"Guild name."New value: +"The guild's in-game name, as guild_search gives it."
    • changedInput schema / properties / realm / description
      Previous value: -"Realm name."New value: +"The guild's realm, as guild_search gives it."
  2. Changed4 schema fields changed
    • addedOutput schema / properties / page / properties / activity
      Added value: +{
      +  "description": "The agreed kills, newest first.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "encounterId": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "instanceMapId": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "killedAt": {
      +        "description": "The earliest agreeing report, ISO.",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "enum": [
      +          "members",
      +          "officers"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "encounterId",
      +      "name",
      +      "instanceMapId",
      +      "killedAt",
      +      "source"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / page / properties / ladderProgression
      Added value: +{
      +  "description": "Per instance, newest first: bosses killed out of the instance's bosses, each kill with its date and who reported it. Members' kills and the officers' board together; a boss both report is one line.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bosses": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "instanceMapId": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "killed": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "list": {
      +        "description": "Every boss of the instance in encounter order, killed or not.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "encounterId": {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            "killed": {
      +              "type": "boolean"
      +            },
      +            "killedAt": {
      +              "description": "The earliest agreeing report, ISO; null for an unkilled boss or one only the officers published.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "source": {
      +              "anyOf": [
      +                {
      +                  "enum": [
      +                    "members",
      +                    "officers"
      +                  ],
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Who reported the kill; null for an unkilled boss."
      +            }
      +          },
      +          "required": [
      +            "encounterId",
      +            "name",
      +            "killed",
      +            "killedAt",
      +            "source"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "instanceMapId",
      +      "name",
      +      "killed",
      +      "bosses",
      +      "list"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / page / properties / ranks
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "instanceMapId": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "instanceName": {
      +          "type": "string"
      +        },
      +        "overall": {
      +          "description": "Rank among every guild in that instance.",
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "realm": {
      +          "description": "Rank among the realm's guilds in that instance.",
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "instanceMapId",
      +        "instanceName",
      +        "realm",
      +        "overall"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Rank on the realm and overall in the newest instance with a kill; null without one."
      +}
    • addedOutput schema / properties / page / properties / seenRoster
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "members": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "class": {
      +                "type": "string"
      +              },
      +              "lastSeen": {
      +                "type": "string"
      +              },
      +              "level": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "name": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "name",
      +              "level",
      +              "class",
      +              "lastSeen"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "count",
      +        "members"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Characters the addon saw in this guild, newest first: sightings, not the game's roster. Null when the player pages are not connected, which is not an empty guild."
      +}
  3. 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"
      +}
  4. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantial context beyond them: a figure is public only after 2 verified officers agree, characters may opt out, hidden guilds produce no response, and missing data is reported explicitly rather than silently omitted. The one residual gap is that pagination or response size for large rosters is never mentioned, which is a moderate concern for a roster-returning tool.

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?

It is front-loaded with the payload and earns most of its length on caveats, but 'kills per instance and its rank' is introduced in sentence one and then re-explained at length in sentence three, and the officer-board definition is restated twice. Dense multi-clause sentences could be tightened without losing meaning.

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 an output schema present, return shape needn't be explained, and the description still covers provenance, privacy opt-outs, empty/hidden guild outcomes, and the caveat that average item level reports how many members were measured with no combined score. An agent has everything needed to call this correctly and interpret the result.

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 both parameters already document 'as guild_search gives it', so the description adds no syntax, format, or casing guidance beyond the schema. Baseline 3 applies since the schema does the heavy lifting.

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 first sentence names the resource (one guild's board) and enumerates the specific payload: roster, bosses killed, loot awarded, raid attendance, average item level, kills per instance and rank. It is immediately distinguishable from guild_search (name lookup) and guild_rankings (cross-guild comparison), which are named explicitly.

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 routing is given: 'Use it for one guild's own board; use guild_search to find a guild's exact name and realm, and guild_rankings to compare guilds in one instance.' It also states when-not conditions — hidden guilds return no answer, unpublished guilds return an empty officer board plus the public part.

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.