MCP App Store
by KeenEthics

Overview

Find Dota 2 matches, review replays and analyse your gameplay.

Tools

compare_replay_windows

ChatGPT
Compare explicit artifact-pinned gameplay windows using caller-supplied context and an optional intended role. Returns observed differences and coverage limits. Does not infer an unplayed outcome or independently determine a player's role. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

create_replay_view

ChatGPT
Create an expiring read capability pinned to one prepared artifact and a fixed scope.horizon. Use for an outcome-blind investigation. Persists a new scoped view; does not modify the recording or existing views. TTL is 1..86400 seconds, default 3600. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

estimate_replay_query_cost

ChatGPT
Estimate the work of a replay query before scanning game data. The nested query describes the work to estimate; it is not executed. Does not prepare replays or create scoped views. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_dataset

ChatGPT
Inspect a dataset's exact selection and preparation manifest, including omitted or failed games. Do not silently replace failed games.

get_job

ChatGPT
Wait for replay preparation, returning when it finishes or wait_seconds elapses. Defaults to 20 seconds, maximum 25; 0 checks immediately. While terminal:false, call this tool again in the current turn and share progress. Once terminal:true, inspect get_dataset for per-match outcomes, then get_match and the named replay tools for prepared game data. A queued or preparing job is unfinished work.

get_match

ChatGPT
Get prepared match participants, artifact identity and evidence coverage. Optional horizon and observer_team restrict evidence; view_id uses a fixed scoped view instead of match_id. If unprepared, use prepare_replays first.

get_query_status

ChatGPT
Check service and retained artifact availability without downloading replay evidence or acquiring a query-reader slot. Provide a match_id or view_id. Remote object availability remains unprobed.

get_replay_activity

ChatGPT
Group a player's observed interactions with targets in a bounded interval. Returns attributional bookkeeping, not proof of intent, causality or actions that were not recorded. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_context

ChatGPT
Read gameplay data around an event or time for an explicit player. An event_id-only request retains its existing event context. before, after, include and fields bound returned observations; respect pagination and coverage gaps. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_economy

ChatGPT
Inspect sampled gold, experience and farming progression for a bounded interval and optional player. Reports definitions and coverage gaps. Use game-clock samples to investigate lane economy; a farm plateau alone does not establish its cause. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_interval

ChatGPT
Inspect one player's bounded gameplay interval with observed actions, resources and surrounding context. Use to reconstruct a play before making a coaching judgment; absent data remains unknown. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_items

ChatGPT
Inspect recorded item observations for a bounded interval and optional player. Distinguish purchases, inventory observations and item availability; a purchase alone does not establish delivery or usability. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_manifest

ChatGPT
Get full prepared artifact manifests and dataset preparation details, including missing or failed selections. Use output.compact:false. Does not download or prepare a missing replay. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_map

ChatGPT
Inspect static map landmarks, camp and zone boundaries, lane paths and nearby reference terrain cells. Check map-build compatibility. Static locations do not establish live availability, walking access or safety. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_metrics

ChatGPT
Calculate named gameplay metrics for an optional player and time interval. Inspect metric definitions and coverage; missing required inputs make a metric unknown unless an explicitly partial result is requested. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_nearby

ChatGPT
Inspect nearby recorded units and map context at one time around a player or exact entity. Supports controlled-unit membership and independent origin/neighbor pagination. Nearby positions do not establish visibility, safety or intent. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_overview

ChatGPT
Get a sampled gameplay overview for a bounded interval, optionally focused on one player. Use player-specific interval summaries to choose plays for closer investigation. A death cluster or farm plateau is an observation, not a diagnosis. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_positions

ChatGPT
Read recorded positions for an optional player or entity in a bounded interval, with optional sampling. Preserve discontinuities and coverage gaps. Omniscient coordinates do not establish player vision or attention. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_resources

ChatGPT
Inspect a player's observed resource changes and bookkeeping in a bounded gameplay interval. Preserves definitions, attribution and coverage gaps; partial observed subtotals are not complete totals. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_route

ChatGPT
Calculate reference-grid walking distance and estimated travel time to a map location or landmark. Inspect map-build compatibility and stated tree assumptions. A reference route does not establish live access or safety. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_scene

ChatGPT
Inspect recorded trajectories and interactions around a player in a bounded interval. Returns independently paged streams and map context. Omniscient replay positions do not establish what a player saw. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_sequence

ChatGPT
Reconstruct observed orders, actions and linked events around a player in a bounded interval. Links are observations or candidates, not proof of execution, causality or complete input history. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_situation

ChatGPT
Inspect a player's observed situation at one game time, including nearby units and local map facts. Reports missing values and last-seen positions. Static projections do not establish live availability or safety. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_state

ChatGPT
Inspect recorded game state at one game time for a player or entity and optional state kinds. player and entity are mutually exclusive. A returned value describes the available observation, not unrecorded state. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_status

ChatGPT
Check prepared artifact availability for the selected scope without downloading replay data. Remote object availability remains unprobed. Does not prepare missing matches. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_visibility

ChatGPT
Get validated unit visibility intervals, last-seen positions and coverage gaps for observing team 2 Radiant or 3 Dire. player selects targets, not the observer; omitted player selects primary heroes. Does not establish complete vision. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_replay_window

ChatGPT
Read selected game-data fields and streams around a player in a bounded interval. include and fields limit returned data; summary requests a condensed view. Inspect independent pagination and missing-data coverage. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

get_schema

ChatGPT
Discover query field names, event kinds, metric definitions, clocks, selectors and coverage conventions. Call when unsure how to interpret or query evidence.

get_scoreboard

ChatGPT
Get a match scoreboard and postgame progression data before replay preparation. Use hero_display_name and hero_name for hero identity, not guesses from numeric IDs. Valve kill records include resolved victim and killers alongside original slots and game-clock time; unknown identities remain null. Inspect postgame.graph_inventory for available gold/XP/net-worth/damage series and their exact paths and time-axis coverage. Also includes kill/objective timings, purchases, inventory snapshots and levels when supplied. Set refresh:true to check providers again, especially for a just-finished match; fresh match metadata otherwise has a 60-second cache. Optional retrieval failures preserve the scoreboard. Valve graph samples have an unverified time axis; use sample indices or obtain timed replay evidence. Purchases do not establish delivery or usability. For coaching, also prepare and query the replay.

get_server_info

ChatGPT
Identify this running server build, embedded coaching prompt revision and current extractor revision. Stored artifact manifests report the versions that produced evidence. Preparation can reuse evidence; a new job or dataset does not prove fresh extraction.

list_matches

ChatGPT
Find a player's provider-visible match history. account_id is a Steam32 account ID. Unknown party sizes cannot establish solo queue. Use returned match IDs with prepare_replays. Does not download replays.

list_replay_entities

ChatGPT
Find recorded game entities within a bounded interval using kind, name or player filters. Distinguishes primary heroes, controlled units and individual entity identities. Paginate with bounds.limit and bounds.offset. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

list_replay_events

ChatGPT
List recorded gameplay events in a bounded interval, filtered by types, actor, target or involvement. Paginate with bounds.limit and bounds.offset. Events do not establish unrecorded intent or complete player inputs. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

prepare_replays

ChatGPT
Queue preparation of 1 to 10 explicit match IDs for replay coaching. extraction_policy defaults to reuse. Choose fresh to rerun the parser even when prepared evidence exists; cached downloads can still be used. Fresh creates new artifacts, preserves old evidence and never falls back to it on failure. Returns job_id promptly. Continue calling get_job with wait_seconds:20 until terminal:true, then inspect get_dataset and query prepared replay evidence. Fresh replay publication failures retry automatically every 60 seconds up to 5 times. Preparation takes minutes and may fail. Everyone shares this store.

query_replay_sql

ChatGPT
Run a bounded read-only SQL statement over the selected scope's SQLite views. Prepared Parquet data requires the structured replay tools. Enforces scope restrictions and row/time limits; cannot write data or administer storage. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

search_replay_intervals

ChatGPT
Find bounded gameplay intervals matching a stated search condition for a player. Uses explicit duration and sample step. A matching interval identifies recorded conditions, not a mistake or its cause. Prepared scope only. Times are game-clock seconds, with negative pregame times. Selectors are account:STEAM32, slot:N or entity:ID. scope.horizon and scope.observer_team restrict observations. Supply operation parameters in query, without a view selector.

Capabilities

Writes

Similar Apps