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/sandraschi/pdf-mcp/agents-mdgit clone --depth 1 https://github.com/sandraschi/pdf-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/sandraschi/pdf-mcp/agents-md)<a href="https://agentmods.dev/instructions/sandraschi/pdf-mcp/agents-md"><img src="https://agentmods.dev/badge/instructions/sandraschi/pdf-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.00805 | $0.00805 |
| Opus 5 | $0.00402 | $0.00402 |
| Sonnet 5 | $0.00161 | $0.00161 |
| Haiku 4.5 | $0.00081 | $0.00081 |
Grade A, and why
pdf-mcp 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 3d 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 — 48 lines — stays where its author put it; the contents beside it link to each section on GitHub.
pdf-mcp — Agent Navigation
Reading order
SPEC.md— Full spec, architecture, and the Intelligence 2.0 feature setpdf_mcp/server.py— Entry point, FastMCP app, Starlette HTTP + REST APIpdf_mcp/tools/— Portmanteau tool modules (extract, manipulate, annotate, forms, convert, validate, rag, intel, agent, meta)pdf_mcp/services/— Core engines (Extractor, Manipulator, Converter, Chunker, RagStore, Intel, Llm)webapp/src/pages/— React pages (Dashboard, Workbench, Pipeline, Chat, Tools, Skills, Logs)
Key files
| File | Purpose |
|---|---|
run_server.py |
Dual-transport entry point (stdio / HTTP) |
pdf_mcp/server.py |
FastMCP app, Starlette HTTP app, REST endpoints, recipes, watch-folder, share links, stats |
pdf_mcp/config.py |
Env-based configuration |
pdf_mcp/tools/__init__.py |
Tool module registration |
pdf_mcp/tools/agent.py |
pdf_do agentic chaining tool |
pdf_mcp/tools/intel.py |
pdf_analyze, pdf_redact, pdf_classify, pdf_dedupe, pdf_export |
pdf_mcp/tools/meta.py |
pdf_help, pdf_status, pdf_shutdown |
pdf_mcp/services/intel.py |
Analyzer, Redactor, Classifier, Deduper, BriefBuilder |
pdf_mcp/services/llm.py |
Local LLM discovery + chat completions (Ollama / LM Studio) |
pdf_mcp/services/extractor.py |
PyMuPDF text/image/table/metadata extraction |
pdf_mcp/services/manipulator.py |
pypdf merge/split/rotate/compress/encrypt |
pdf_mcp/services/converter.py |
PDF to/from Markdown/HTML/images |
pdf_mcp/services/chunker.py |
Text chunking strategies (incl. table-aware) |
pdf_mcp/services/rag_store.py |
LanceDB vector store wrapper |
webapp/src/App.tsx |
React router + lazy-loaded pages |
webapp/src/pages/Dashboard.tsx |
KPI dashboard + usage stats panel |
webapp/src/pages/Workbench.tsx |
PDF.js viewer + tool palette + compare mode |
webapp/src/pages/Pipeline.tsx |
Batch jobs + recipes + share links |
webapp/src/pages/Chat.tsx |
LLM chat + PDF search / sources panel |
webapp/src/lib/api.ts |
Fetch layer (REST + RAG search + share + stats) |
webapp/src/lib/store.ts |
Zustand store (backend + LLM provider/model state) |
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.
- 3d ago First seen · 48 lines · 805 tokens per session scan A b3d5b0dbbfeb
pdf-mcp AGENTS.md is an instructions file published in the GitHub repository sandraschi/pdf-mcp (1 stars, last pushed 15d ago), licensed MIT. It adds 805 tokens to every session, about $0.0040 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
plexmcp AGENTS.md
AGENTS.md instructions for sandraschi/plexmcp, covering plexmcp — agent context, project overview, key commands, lint and test.
plexmcp CLAUDE.md
Claude Code instructions for sandraschi/plexmcp, covering plexmcp — claude code guide, entry points, standards and key files.
rlm-mcp CLAUDE.md
Claude Code instructions for adrianwedd/rlm-mcp, covering claude.md, project overview, common commands, development setup and install with uv (recommended).
RivalSearchMCP AGENTS.md
Instructions for damionrashford/RivalSearchMCP, covering agents.md, project overview, development commands, setup & running and install dependencies.
substack-gateway-oss CLAUDE.md
Claude Code instructions for jakub-k-slys/substack-gateway-oss, covering claude.md, commands, install dependencies (dev included, all workspace members), run the server (dev mode with reload) and lint.
ocr-mcp AGENTS.md
AGENTS.md instructions for sandraschi/ocr-mcp, covering ocr-mcp — agent guide, entry points, quick ref, standards and key files.