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/grinv/anilist-mcp-server/agents-mdgit clone --depth 1 https://github.com/Grinv/anilist-mcp-serverWrote 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/grinv/anilist-mcp-server/agents-md)<a href="https://agentmods.dev/instructions/grinv/anilist-mcp-server/agents-md"><img src="https://agentmods.dev/badge/instructions/grinv/anilist-mcp-server/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.03631 | $0.03631 |
| Opus 5 | $0.01816 | $0.01816 |
| Sonnet 5 | $0.00726 | $0.00726 |
| Haiku 4.5 | $0.00363 | $0.00363 |
Grade A, and why
anilist-mcp-server AGENTS.md 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 4d 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 — 238 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
Single source of truth for working on this repository — for any model or
agent. CLAUDE.md only links here (@AGENTS.md); keep all shared guidance in
this file, not in CLAUDE.md. (For end-user/runtime docs, see README.md.)
Project shape
A TypeScript MCP server for the AniList GraphQL API.
Reads (search/details/genres/tags/recommendations/threads/activity/public user
data) call the public GraphQL endpoint directly and need no credentials.
Personal-list and social tools (add/update/remove list entries, favourites,
follow, posting/deleting activity or threads, update_user, get_notifications)
act on the authenticated user's own AniList account and require a user access token —
see docs/auth.md for the OAuth model and docs/api-references.md
for AniList's API specifics (rate limits, mutation semantics, considerations)
before changing the client.
src/
index.ts # bin entry — calls start()
server.ts # buildServer() + start(); registers everything
config.ts # env → validated Config (zod)
version.ts # VERSION constant, kept in sync with package.json (checked by a test)
lib/ # http, rateLimit, cache, tokenStore, oauthLogin, errors, logger,
# result, graphql (the GraphQL request/error-mapping layer)
clients/ # anilist.ts — thin AniListClient facade (auth/config/login,
# exposes ctx(): AniListContext); anilist/*.ts — one file per
# domain (activity, context, favourites, fields, list, media,
# misc, notification, people, recommendation, search, thread,
# user), matching src/tools/*. Tool handlers call these
# domain functions directly (e.g. `media.getMedia(client.ctx(), ...)`)
# rather than through a same-named method on AniListClient.
# anilist/ids.ts — branded numeric-ID type aliases (MediaId,
# ListEntryId, etc.), one per domain concept; every domain
# file's exported functions take these instead of plain
# `number` so e.g. a MediaId can't compile where a
# ListEntryId is expected. Compile-time only — see the
# file's own comment for why it has no zod runtime import.
# anilist/enums.ts — single source for the AniList enums
# re-typed on both sides of the boundary (MediaType,
# MediaListStatus, FavouriteKind, birthday kinds): one
# `as const` array per enum, feeding z.enum() in tools/ and
# the derived `(typeof X)[number]` type in these domain
# signatures, so runtime validation and the compile-time
# types can't drift. Lives here (not tools/) because
# clients/ can't import from tools/.
tools/ # misc.ts, activity.ts, list.ts, media.ts, notification.ts,
# people.ts, recommendation.ts, search.ts, thread.ts, user.ts,
# login.ts, guard.ts (never-throw wrapper), outputSchemas.ts
# (shared output-schema fragments, incl. anilistId and its
# per-domain branded variants — mediaId, listEntryId, etc.)
prompts.ts # MCP Prompts: multi-step plans that orchestrate the read tools
__tests__/ # node:test (*.test.ts) + helpers.ts
scripts/ # build-tests.mjs, run-tests.mjs, check-api.mjs, sync-version.mjs
# (+ its sync-version.d.mts type-declaration companion),
# preversion-check.mjs (npm `preversion` gate — see the `release` skill)
.agents/skills/ # reusable agent workflows for this repo (e.g. live-audit/) —
# plain Markdown with a YAML frontmatter name/description,
# not tied to any one tool's orchestration features, per
# this file's agent-agnostic policy; same skill name/layout
# as this project's sibling MCP servers (tmdb-mcp, mal-mcp,
# steam-games-mcp) — sync improvements both ways rather
# than letting them drift. `.claude/skills` is a symlink
# here (Codex CLI/Gemini CLI read `.agents/skills`
# directly, Claude Code the symlink), so no skill content
# is duplicated per client path.
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.
- 4d ago First seen · 238 lines · 3,631 tokens per session scan A 8d467fb5699a
anilist-mcp-server AGENTS.md is an instructions file published in the GitHub repository Grinv/anilist-mcp-server (1 stars, last pushed 11d ago), licensed MIT. It adds 3,631 tokens to every session, about $0.0182 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 instructions, from other repositories
mal-mcp AGENTS.md
Instructions for Grinv/mal-mcp, covering agents.md, project shape, commands, conventions and testing the live/published server.
mal-mcp CLAUDE.md
Instructions for Grinv/mal-mcp, a project described as: MyAnimeList MCP server — Tenrai-powered reads plus official MAL personal-list management. Works with any MCP client.
anime-mcp-server AGENTS.md
AGENTS.md instructions for cyanheads/anime-mcp-server, covering developer protocol, what's next?, core rules, patterns and tool.
anime-mcp-server CLAUDE.md
Claude Code instructions for cyanheads/anime-mcp-server, covering developer protocol, what's next?, core rules, patterns and tool.
promptscript typescript.instructions.md
Instructions for mrwogu/promptscript, a project described as: Prompt-as-Code for Enterprise AI. Standardize, audit, and deploy instructions across any AI coding assistant.
markitdown-mcp AGENTS.md
Instructions for trsdn/markitdown-mcp, covering ai agents integration guide, 🤖 quick reference for ai agents, primary use cases, available tools and 🛠️ tool usage guide.