Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add FlameTN7/L4D2-Map-AutoDownloader-MCP --skill l4d2-workshop-mirrorgit clone --depth 1 https://github.com/FlameTN7/L4D2-Map-AutoDownloader-MCPWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/flametn7/l4d2-map-autodownloader-mcp/l4d2-workshop-mirror)<a href="https://agentmods.dev/skills/flametn7/l4d2-map-autodownloader-mcp/l4d2-workshop-mirror"><img src="https://agentmods.dev/badge/skills/flametn7/l4d2-map-autodownloader-mcp/l4d2-workshop-mirror/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/flametn7/l4d2-map-autodownloader-mcp/l4d2-workshop-mirror"><img src="https://agentmods.dev/badge/skills/flametn7/l4d2-map-autodownloader-mcp/l4d2-workshop-mirror.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00027 | $0.03402 |
| Opus 5 | $0.00014 | $0.01701 |
| Sonnet 5 | $0.00005 | $0.00680 |
| Haiku 4.5 | $0.00003 | $0.00340 |
Grade A, and why
l4d2-workshop-mirror scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 222 lines — stays where its author put it; the contents beside it link to each section on GitHub.
L4D2 Workshop Mirror MCP — 使用说明书
面向使用者的操作手册:怎么用 11 个工具、每个返回字段什么意思、遇到各种情况怎么处理。 系统设计与实现原理见
ARCHITECTURE.md,部署与运维见DEPLOYMENT.md。
本 MCP 负责 L4D2 工坊战役地图的搜索、识别、依赖解析、下载。 所有脏活(网络请求、黑名单/去重/死图判定、Part 系列识别、依赖解析、文件校验)都在 MCP 内部完成, 你只需调用工具,不需要也不应该写 Python 脚本或调 HTTP 接口。
1. 快速开始(3 个最常用操作)
| 用户需求 | 你的动作 |
|---|---|
| "下 X"(有 id/链接) | install_campaign(workshop_id="id 或链接") |
| "下 X"(只有标题) | install_campaign(title="X") |
| "X 有没有 / id 是多少" | resolve_map(query="X") |
大图(几百 MB)用 install_campaign(..., async_mode=True) + get_download_job 轮询,避免长阻塞。
2. 工具速查(11 个)
下载类
install_campaign — 一站式下载(识别 → 解析依赖 → 下载 → 落盘 → 更新去重)
- 参数:
workshop_id(纯数字 id 或 steam 链接)/title(二选一)、force(默认 False,忽略去重)、auto_parts(默认 True)、strict(默认 True)、async_mode(默认 False) - 返回必看:
eligibility、preview_only、suggested_action、main(含saved_path/size_mb/title_zh)、parts、dependencies、candidates、job_id - 何时用:用户要下载、要给特定 id/链接/标题落地
get_download_job — 查询异步下载进度
- 参数:
job_id - 返回:
status(queued/running/done/error/not_found)、elapsed_s、result(完成后是 install 完整结果) - 何时用:
install_campaign(async_mode=True)之后轮询(隔 10-20 秒)
查询类
resolve_map — 标题解析为候选(不下载)
- 参数:
query、limit(默认 5) - 返回:
items[](workshop_id/title/title_zh/size_mb/is_campaign_score/match_ratio/in_curated_list) - 何时用:"XXX 有没有"、定位标题对应的 id;
install_campaign(title=...)内部也用它
search_campaigns — 搜索工坊战役(自动过滤 mod/黑名单/去重/死图)
- 参数:
keyword、days、sort、limit(≤30)、include_ambiguous - 返回:
items[]+summary(high_confidence/ambiguous/filtered_out/dead 计数) - 何时用:按关键词找图、"最近新图"的底层
get_map_detail — 单图详情 + 判定结果
- 参数:
workshop_id、include_description(默认 False,True 时截断 500 字符) - 返回:title/title_zh/size_mb/subscriptions、
is_campaign/score/reasons/ambiguous/definitely_mod、series_info、eligibility、dead/dead_reason、in_curated_list - 何时用:"X 怎么样"、下载前查判定
check_eligibility — 下载前预检(零网络)
- 参数:
workshop_id/title(至少一个) - 返回:
state(见 §3 状态字典)、days_remaining、source - 何时用:预检一张图能不能下;批量过滤
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 222 lines · 27 tokens per session scan A df6da3d41b15
l4d2-workshop-mirror is a skill published in the GitHub repository FlameTN7/L4D2-Map-AutoDownloader-MCP (0 stars, last pushed 1mo ago), licensed MIT. It adds 27 tokens to every session and 3,402 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
pokemon-player
Play Pokemon via headless emulator + RAM reads.
minecraft-modpack-server
Host modded Minecraft servers (CurseForge, Modrinth).
gaming-expert
Build comprehensive game systems including gameplay mechanics, multiplayer infrastructure, analytics tracking, and monetization features. Use when the user mentions game development, Unity or Unreal, gameplay mechanics, multiplayer netcode, game analytics, or in-game monetization.
rider-battle
Create and accept $RIDER wager battles in the Bankr CryptoRider game on Base, claim winnings or refunds, see open challenges, and view monthly & all-time leaderboards — all from a tweet. Use when a user wants to create a challenge with a wager, accept an open challenge (optionally the first one, or filtered by max/min…
minecraft-modpack-server
Set up a modded Minecraft server (NeoForge or Forge).
pokemon-player
Automate Pokémon games via headless emulation + RAM reading.