Skills/PyPI/mcp-replay-dota2

mcp-replay-dota2@1.2.0

VERIFIED· not started

Publisher claims: "Model Context Protocol server for Dota 2 match analysis using replay files" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry PyPI (MCP server)Publisher deepbluecoding · publishing for 338 daysInstalls 26Last detonated 6d ago
$claude mcp add mcp-replay-dota2 -- uvx mcp-replay-dota2
WatchReport an issue

Coverage

Not started: dependency install failed; the server itself was not observed.
Tested
the dependency install step · every file read, file written and host contacted by what ran
Not tested
server startup · the tool list · tool behavior

What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.

Before you give it your token

It will ask for
MAX_CONTEXT_TOKENSMAX_MESSAGE_TOKENSTRIM_THRESHOLD_TOKENSConfiguration, not credentials: DOTA_REPLAY_CACHE, ENABLE_MEMORY_SUMMARIZATION, ENABLE_MEMORY_TRIMMING, SLIDING_WINDOW_SIZE, SUMMARIZATION_MODEL
Where it talks to
no vendor host named in the codeAlso opendota.com, githubusercontent.com — not the publisher's domain; check what for before connecting.
What the honeypot saw
no credential files read · no network
What we could not test
server startup · the tool list · tool behavior

Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names opendota.com, githubusercontent.com as well as its own vendor. The guard injects MAX_CONTEXT_TOKENS, MAX_MESSAGE_TOKENS, TRIM_THRESHOLD_TOKENS only into requests to the host you bind (and its subdomains) and refuses the rest.

$vet-skills run --net declared -- uvx mcp-replay-dota2

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-08 and scored it 90/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 0 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
0.2sprocessdependency install exit 1 ·
0.2sclaimednot started: dependency install failed (exit 1); the server itself was not observed
0.2sprocessscript backend runs setup only
0.2sprocessno install scripts to re-run

Static findings

MEDIUM
Process kill commandsrc/models/combat_log.py:151 · Process kill command — agent can terminate processes"""A kill streak (double kill, rampage, etc.)."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/coaching/prompts.py:63 · Process kill command — agent can terminate processesDo NOT criticize low kill participation before item timing. Judge only: CS, deaths, item timing.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/farming/farming_service.py:219 · Process kill command — agent can terminate processes# Get hero position at kill timeFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/models/combat_log.py:153 · Process kill command — agent can terminate processesgame_time: float = Field(description="Game time of final kill in streak")Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/combat/combat_service.py:496 · Process kill command — agent can terminate processeskill = ObjectiveKill(Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/analyzers/fight_analyzer.py:453 · Process kill command — agent can terminate processesDetect kill streaks (double kill, rampage, etc.).Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/models/combat_log.py:204 · Process kill command — agent can terminate processesdescription="Key moments: multi-hero abilities, kill streaks, team wipes"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/farming/farming_service.py:107 · Process kill command — agent can terminate processes- Creep kill classification (lane vs neutral)Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/analyzers/fight_analyzer.py:266 · Process kill command — agent can terminate processes# Detect kill streaksFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/combat/combat_service.py:527 · Process kill command — agent can terminate processeskill = ObjectiveKill(Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/combat/combat_service.py:446 · Process kill command — agent can terminate processes"""Get Roshan kill events."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/combat/combat_service.py:477 · Process kill command — agent can terminate processes"""Get Tormentor kill events."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/models/combat_log.py:254 · Process kill command — agent can terminate processes"""A Roshan kill event."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/models/combat_log.py:231 · Process kill command — agent can terminate processes"""A courier kill event."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/analyzers/fight_detector.py:274 · Process kill command — agent can terminate processes# Death within window or shortly after (grace period for kill attribution)Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/combat/combat_service.py:462 · Process kill command — agent can terminate processeskill = ObjectiveKill(Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/analyzers/fight_analyzer.py:502 · Process kill command — agent can terminate processes"""Add streak if it's double kill or better."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/analyzers/fight_analyzer.py:477 · Process kill command — agent can terminate processes# Check if this kill is within 18s of streak startFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/farming/farming_service.py:333 · Process kill command — agent can terminate processes# Find first jungle killFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/combat_data.py:102 · Process kill command — agent can terminate processes"""A courier kill event."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/rotation/rotation_service.py:54 · Process kill command — agent can terminate processesROTATION_CORRELATION_WINDOW = 60.0 # seconds to look for rune/kill correlationFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/farming_data.py:30 · Process kill command — agent can terminate processesdefault=None, description="X coordinate where the kill occurred"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/rotation_data.py:144 · Process kill command — agent can terminate processesdefault=0, description="Rotations resulting in kill but also died"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/farming_data.py:138 · Process kill command — agent can terminate processesdefault=None, description="Game time of first neutral creep kill (seconds)"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/farming_data.py:33 · Process kill command — agent can terminate processesdefault=None, description="Y coordinate where the kill occurred"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/combat_data.py:130 · Process kill command — agent can terminate processes"""A kill streak (double kill, rampage, etc.)."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/tools/combat_tools.py:202 · Process kill command — agent can terminate processesCourierKillsResponse with list of courier kill eventsFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/combat_data.py:88 · Process kill command — agent can terminate processes"""An objective kill (Roshan, tower, barracks, etc.)."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/rotation_data.py:26 · Process kill command — agent can terminate processes"""Outcome of a rotation - links to fight/kill data."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/tools/combat_tools.py:241 · Process kill command — agent can terminate processesObjectiveKillsResponse with all objective kill eventsFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/farming_data.py:15 · Process kill command — agent can terminate processes"""A single creep kill event."""Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/farming/farming_service.py:340 · Process kill command — agent can terminate processes# Find first large/ancient camp killFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/farming/farming_service.py:334 · Process kill command — agent can terminate processesfor kill in creep_kills:Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/rotation_data.py:157 · Process kill command — agent can terminate processesdefault=0, description="Rune pickups followed by kill within 60s"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/farming_data.py:37 · Process kill command — agent can terminate processesdescription="Map area where kill occurred (e.g., 'dire_jungle', 'radiant_jungle', 'radiant_safelane')"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/services/models/rotation_data.py:138 · Process kill command — agent can terminate processesdefault=0, description="Rotations resulting in kill without dying"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/tools/combat_tools.py:191 · Process kill command — agent can terminate processesReturns a list of courier kill events with:Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05

Cost to the agent

Instructions loaded
≈57 tok
1 file · 81 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for mcp-replay-dota2@1.2.0 as of 6d ago. This is the package itself, not its dependencies.