yt-analytics-mcp AGENTS.md

yt-analytics-mcp AGENTS.md is an instructions file for Codex, OpenCode from conorbronsdon/yt-analytics-mcp. It costs 785 tokens per session, scanned A, original, MIT.

Repository instructions for yt-analytics-mcp, a tool server that reads YouTube channel analytics.

In plain words
What is it for?
Use them when editing or reviewing this repository, especially its analytics tools, API client, permissions, and automated tests.
Why use it?
They give coding agents the rules and tests needed to keep the server read-only and limited to the authenticated channel.

Instructions file for CodexOpenCode

Install

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.

agentmods
npx agentmods add instructions/conorbronsdon/yt-analytics-mcp/agents-md
Clone the repo
git clone --depth 1 https://github.com/conorbronsdon/yt-analytics-mcp

Made for: Codex, OpenCode.

Wrote 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.

agentmods badge for yt-analytics-mcp AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/conorbronsdon/yt-analytics-mcp/agents-md.svg)](https://agentmods.dev/instructions/conorbronsdon/yt-analytics-mcp/agents-md)
Your own site
<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>
Per session 785 This file is loaded in full into every session.
When invoked 785 The same file — it is already loaded in full.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 5d ago against content hash 13b9da81a65a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

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
AGENTS.md · 45 lines

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.

Read the full file on GitHub · 45 lines

Changes

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.

  1. 5d ago First seen · 45 lines · 785 tokens per session scan A 13b9da81a65a

Subscribe to this mod's changes

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.