Skip to main content
Glama
hkaanengin

opendota-mcp-server

by hkaanengin

request_parse_match

Need detailed Dota 2 match analysis? Request parsing of a match by ID to extract teamfights, objectives, and gold/XP data from its replay.

Instructions

Submit a request to parse a specific match for detailed replay analysis.

Use this when users ask:

  • "Parse match [match_id]"

Parsing a match extracts detailed information from the replay including:

  • Teamfight breakdowns (who killed who, where, when)

  • Objectives timeline (tower kills, Roshan, etc.)

  • Gold/XP advantage graphs over time

  • Chat logs

  • Player movement and positioning data

Note: Parsing takes time (usually 1-5 minutes). After requesting parse, wait a bit before calling get_match_details() to retrieve the parsed data.

Not all matches can be parsed - very old matches or matches from private lobbies may not have replay data available.

Args: match_id: The match ID to parse (e.g., 8123456789)

Returns: Dictionary containing parse request status: - job: Information about the parse job (if queued) - status: Current status of the parse request - May include error information if parse cannot be queued

Common workflow: 1. Request parse: request_parse_match(8123456789) 2. Wait 1-5 minutes 3. Get parsed data: get_match_details(8123456789)

Example: request_parse_match(8123456789) -> { "job": { "jobId": "12345" } }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
match_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

With no annotations provided, the description fully carries the behavioral disclosure burden. It reveals that parsing is asynchronous ('takes time'), non-instant ('wait 1-5 minutes'), and conditional ('Not all matches can be parsed'). It also explains the return structure (status, job, error info) and warns against immediately calling get_match_details. This is exemplary transparency about latency, failure modes, and response semantics.

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?

Although the description is long, it is well-structured with clear sections (use case, extracted data, notes, Args, Returns, workflow, example). Every section earns its place: the time warning is critical, the return example clarifies the async behavior, and the workflow avoids misuse. No filler or redundancy; the length is proportionate to the tool's complexity.

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's async nature and the presence of an output schema, the description covers all necessary context: how to trigger, what to expect in the response, how long to wait, potential errors, and the next step in the workflow. It even provides a concrete example output. The description is complete enough for an AI agent to select and invoke the tool correctly without further clarification.

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 input schema only specifies match_id as an integer with no description (coverage 0%). The description compensates with 'match_id: The match ID to parse (e.g., 8123456789)', adding an example and the semantic concept of 'match ID'. This adds meaning beyond the raw schema, though the parameter is simple and the extra explanation is minimal.

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 opens with a clear, specific action: 'Submit a request to parse a specific match for detailed replay analysis.' It uses the verb 'submit' and the resource 'match', distinguishing this from the sibling get_match_details by positioning it as the request initiation step. The trigger phrase 'Parse match [match_id]' also directly maps to user intent.

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 when-to-use guidance: 'Use this when users ask: Parse match...'. It also details a common workflow (request, wait 1-5 minutes, then get_match_details), clearly indicating this tool is a prerequisite for the sibling tool. However, it does not explicitly state when NOT to use this tool (e.g., when match data is already parsed), though the workflow implicitly covers that.

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/hkaanengin/opendota-mcp-server'

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