Skip to main content
Glama
DeepBlueCoding

MCP Dota 2 Match Analysis Server

get_hero_performance

Retrieve a hero's kills, deaths, assists, ability stats, and fight breakdowns for a Dota 2 match, with optional time or ability filters.

Instructions

Get comprehensive performance data for a hero.

Returns kills, deaths, assists, ability stats (casts, hit rate), and per-fight breakdowns. Use ability_filter for specific ability analysis.

Time filtering: Use start_time/end_time to analyze specific game phases. Common time ranges:

  • Early game: start_time=0, end_time=900 (0-15 min)

  • Mid game: start_time=900, end_time=1800 (15-30 min)

  • Late game: start_time=1800 (30+ min)

Args: match_id: The Dota 2 match ID hero: Hero name (e.g., "jakiro", "mars", "batrider") ability_filter: Filter to specific ability (e.g., "ice_path", "flaming_lasso") start_time: Filter fights starting after this game time (seconds) end_time: Filter fights starting before this game time (seconds)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
heroYes
end_timeNo
match_idYes
start_timeNo
ability_filterNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
heroYesHero analyzed
errorNo
fightsNoPer-fight breakdown of participation
successYes
match_idYes
positionNoHero position (1-5)
total_killsNoTotal kills across all fights
total_deathsNoTotal deaths across all fights
total_fightsNoTotal fights participated in
total_assistsNoTotal assists across all fights
ability_summaryNoOverall ability usage across all fights
total_teamfightsNoTeamfights (3+ deaths) participated in
coaching_analysisNoAI coaching analysis of hero performance (requires sampling-capable client)
avg_kill_level_advantageNoAverage level advantage when getting kills (positive = higher level than victim)
avg_death_level_disadvantageNoAverage level disadvantage when dying (positive = lower level than killer)
Behavior4/5

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

Despite lacking annotations, the description explains what the tool returns (kills, deaths, assists, ability stats, per-fight breakdowns) and how time filtering affects results. It discloses that start_time/end_time filter fights, which is a behavioral trait not apparent from the schema. While it doesn't mention performance implications or auth requirements, the given details provide a reasonable understanding of the tool's behavior.

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?

The description is well-structured: a main summary, a list of return values, then parameter-specific usage notes and examples. It is appropriately sized for five parameters, front-loaded with the core purpose, and each sentence adds value without 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?

Given the tool has an output schema (not shown) and this description covers all parameters, return content, and common usage scenarios, it is complete for the complexity involved. The combination of detailed parameter semantics and behavior descriptions leaves no major gaps for a user to start using the tool correctly.

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

Parameters5/5

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

The schema has 0% description coverage, so the description must compensate. It does so thoroughly with an Args section that explains each parameter (match_id, hero, ability_filter, start_time, end_time), including examples for hero and ability_filter and time range semantics. This fully bridges the gap left by the sparse schema.

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 starts with 'Get comprehensive performance data for a hero' which clearly identifies the action, resource, and scope. It goes on to enumerate specific metrics (kills, deaths, assists, ability stats, per-fight breakdowns), which distinguishes it from sibling tools like get_hero_deaths or get_fight by showing it aggregates multiple performance dimensions.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance for parameters: 'Use ability_filter for specific ability analysis' and 'Use start_time/end_time to analyze specific game phases' with concrete examples for common time ranges (early/mid/late game). It does not explicitly compare against sibling tools, but the context is clear enough to infer when this tool is appropriate.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DeepBlueCoding/mcp-replay-dota2'

If you have feedback or need assistance with the MCP directory API, please join our Discord server