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.5 | $0.00011 | $0.01361 |
| Sonnet 5.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 2mo 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.
- 2mo 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 25d ago), licensed MIT. It adds 27 tokens to every session and 3,402 once invoked, about $0.0001 per session on Opus 5.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.
l4d2-workshop-mirror compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| l4d2-workshop-mirrorFlameTN7/L4D2-Map-AutoDownloader-MCP | Skill | 0 | 25d ago | MIT | A | 27 | Claude Code, Codex |
| pokemon-playerNousResearch/hermes-agent | Skill | 261k | yesterday | MIT | A | 13 | Claude Code, Codex |
| minecraft-modpack-serverNousResearch/hermes-agent | Skill | 261k | yesterday | MIT | B | 19 | Claude Code, Codex |
| gaming-expertpersonamanagmentlayer/pcl | Skill | 44 | 12d ago | Apache-2.0 | A | 51 | Claude Code |
| rider-battleBankrBot/skills | Skill | 1.2k | 2d ago | none | A | 90 | Claude Code, Codex |
| minecraft-modpack-servertaracodlabs/aiden | Skill | 873 | 18d ago | AGPL-3.0 | A | 18 | Claude Code, Codex |
| pokemon-playertaracodlabs/aiden | Skill | 873 | 18d ago | AGPL-3.0 | A | 15 | Claude Code, Codex |