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 agentmods add instructions/conorbronsdon/yt-analytics-mcp/agents-mdgit clone --depth 1 https://github.com/conorbronsdon/yt-analytics-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/instructions/conorbronsdon/yt-analytics-mcp/agents-md)<a href="https://agentmods.dev/instructions/conorbronsdon/yt-analytics-mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/conorbronsdon/yt-analytics-mcp/agents-md.svg" alt="Measured on agentmods" 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 | $0.00785 | $0.00785 |
| Opus 5 | $0.00392 | $0.00392 |
| Sonnet 5 | $0.00157 | $0.00157 |
| Haiku 4.5 | $0.00078 | $0.00078 |
Grade A, and why
yt-analytics-mcp AGENTS.md scanned grade A with 1 finding 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 5d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
Enforced by construction: `src/client.ts` issues only `fetch(url, { headers })` with no `method`, so every request is a GET. Unenforced by a test — if you add a `method` option, nothing currently fails. Treat the class c How it starts
The opening of the file, as written. The whole thing — 45 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
Working notes for agents (and humans) editing this repo. Every rule below either names the check that enforces it or is marked unenforced.
What this is
An MCP server wrapping the YouTube Analytics API v2. Nine tools, all reads, all scoped to the channel the OAuth credential owns.
The invariants
Every tool stays read-only.
Enforced: src/__tests__/annotations.e2e.test.ts:131 filters a real tools/list for anything without readOnlyHint: true and asserts the list is empty. Line 146 injects a fake yt_delete_everything tool as a negative control, proving the filter can go red. Adding a write tool fails CI.
The server can only read channel==MINE.
Enforced: src/client.ts:145 writes ids=channel==MINE unconditionally, and ReportQuery (src/client.ts:34) has no ids field, so an override is not expressible. src/__tests__/client.test.ts:103 passes a hostile ids past the type and asserts the built URL is still MINE. Do not reintroduce q.ids ?? "channel==MINE" — a default is not an invariant.
No write path in the HTTP client.
Enforced by construction: src/client.ts issues only fetch(url, { headers }) with no method, so every request is a GET. Unenforced by a test — if you add a method option, nothing currently fails. Treat the class comment at src/client.ts:52 as the contract.
stdout stays clean JSON-RPC.
Enforced by review, not by CI: there are zero console.log calls in src/ (verify with grep -rn "console\.log" src/ | grep -v __tests__, which must print nothing). All diagnostics use console.error.
Computed values are labelled.
Any response field the server calculated is listed under computedFields alongside the API's own numbers — see src/server.ts:489, :770, :1024. Required by YouTube's Developer Policies §III.E.4.h, which prohibits passing derived metrics off as API data. Unenforced by any test; it is a review gate.
Testing
npm test runs vitest with fetch stubbed (vi.stubGlobal, e.g. src/__tests__/auth.test.ts:111). No network calls.
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.
- 5d ago First seen · 45 lines · 785 tokens per session scan A 13b9da81a65a
yt-analytics-mcp AGENTS.md is an instructions file published in the GitHub repository conorbronsdon/yt-analytics-mcp (1 stars, last pushed today), licensed MIT. It adds 785 tokens to every session, about $0.0039 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
apple-podcasts-mcp CLAUDE.md
Claude Code instructions for conorbronsdon/apple-podcasts-mcp, covering apple-podcasts-mcp, architecture, key constraints, development and agent workflow.
openrouter-mcp-multimodal AGENTS.md
AGENTS.md instructions for stabgan/openrouter-mcp-multimodal, covering agent instructions, before you ship, releasing (read this before publishing), short version and version files (must all match package.json).
llm-context.py CLAUDE.md
Instructions for cyberchitta/llm-context.py, covering claude.md, working notes (gitignored) and draining the field notes.
seekstone CLAUDE.md
Claude Code instructions for shaqmughal/seekstone, covering claude.md, what this repo is, commands, the harness itself (run after npm install) and architecture.
Plonk AGENTS.md
AGENTS.md instructions for ostapondo/Plonk, covering agent rules, layout, adding a module, build & verify and code style.
cyxj-groksearch CLAUDE.md
Claude Code instructions for chenyuxiaojin/cyxj-groksearch, covering claude.md, 常用命令 and 结构与坑.