Skip to main content
Glama
iRockyZhou

warcraftlogs-mcp

by iRockyZhou

Get bounded combat events

get_events
Read-onlyIdempotent

Retrieve bounded event windows from Warcraft Logs without overwhelming context, using pagination, filters, and byte budgets. Use nextPageTimestamp as cursor for subsequent pages.

Instructions

Get a bounded event window with WCL pagination. Enforces fight time bounds, max events/pages, and a byte budget. Continue using pagination.nextPageTimestamp as cursor.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cursorNonextPageTimestamp returned by an earlier call.
regionNoAPI region for a bare report code. Full URLs select their own region.
reportYesA 16-character report code or supported report URL.
endTimeNoRelative report timestamp in milliseconds.
fightIDNoFight ID, or "last". A selector in the report URL is used when omitted.
dataTypeNoAll
maxPagesNo
pageSizeNo
sourceIDNo
targetIDNo
abilityIDNo
maxEventsNo
startTimeNoRelative report timestamp in milliseconds.
translateNo
accessModeNoauto uses user authorization when available; user requires it; public never uses it.auto
maxPayloadBytesNo
includeResourcesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds meaningful behavioral details beyond those annotations: fight time bounds, max events/pages, a byte budget, and pagination cursor semantics. It is consistent with the annotations, and for a read-only paginated tool this is strong disclosure.

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 short sentences with the core purpose first, followed by constraints and the pagination instruction. There is no filler, no repetition of schema fields, and every sentence contributes meaning. It is appropriately sized for the tool's primary behavior.

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

Completeness2/5

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

Given 17 parameters, low schema coverage, no output schema, and a large sibling family, this description is too thin. It communicates the bounded pagination model and safety profile, but an agent cannot confidently determine how the filter parameters interact, how truncation by maxPages/pageSize/maxPayloadBytes is signaled, or when this tool should be chosen over get_fight_events. The complexity demands more guidance.

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

Parameters2/5

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

Schema description coverage is only about 41%, so the description needed to compensate for many undocumented parameters. It does map a few concepts to parameter groups: fight time bounds to startTime/endTime, max events/pages to maxEvents/maxPages, byte budget to maxPayloadBytes, and cursor to nextPageTimestamp. But it says nothing about dataType, sourceID/targetID/abilityID filters, translate, includeResources, or accessMode, leaving major parts of the parameter surface unexplained.

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?

Names a specific operation: retrieving a bounded event window with WCL pagination, and states concrete constraints such as fight time bounds, max events/pages, and a byte budget. It is clearly about fetching bounded combat events, but it does not explicitly differentiate itself from the similarly named get_fight_events sibling or explain how bounded pagination differs from that alternative.

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?

Gives one actionable usage instruction: continue using pagination.nextPageTimestamp as a cursor, which is useful for callers making repeated paginated requests. However, it never says when to prefer this tool over get_fight_events, get_casts, or the other event-specific siblings, nor does it state when not to use it.

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