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/nickytonline/mcp-typescript-template/agents-mdgit clone --depth 1 https://github.com/nickytonline/mcp-typescript-templateWhat 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.01741 | $0.01741 |
| Opus 5 | $0.00870 | $0.00870 |
| Sonnet 5 | $0.00348 | $0.00348 |
| Haiku 4.5 | $0.00174 | $0.00174 |
Grade A, and why
mcp-typescript-template 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 2d 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 — 141 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Repository Guidelines
TypeScript template for building Model Context Protocol (MCP) servers over HTTP.
Key Commands
# Development (hot reload via native Node.js type stripping)
npm run dev
# Build (Vite → ES modules in dist/)
npm run build
# Production
npm start
# Lint & format
npm run lint
npm run lint:fix
npm run format
npm run format:check
# Tests
npm run test # interactive Vitest
npm run test:ci # outputs test-results.json
Before Submitting
Always run these and fix any failures before opening a PR:
npm run lint && npm run format:check && npm run build && npm run test:ci
Project Structure
src/
index.ts # HTTP routing via createMcpHandler + toNodeHandler (stateless, per-request); calls registerTools() in getServer()
tools.ts # registerTools() wiring + per-tool logic functions
tools.test.ts # colocated integration tests (in-memory client/server)
config.ts # Env var validation via Zod
logger.ts # Pino structured logging (OpenTelemetry compatible)
lib/
utils.ts # MCP response helpers (createTextResult, createErrorResult)
utils.test.ts # colocated unit tests
dist/ # compiled output (ES modules)
Config files (vite.config.ts, tsconfig.json, eslint.config.js, Dockerfile) live at the repo root.
Architecture
- HTTP transport via Express on
PORT(default 3000) — not stdio - Tools registered via
registerTools(server)insrc/tools.ts, the single source of truth for tool wiring — called fromgetServer()insrc/index.tsand reused by the tests - Tool responses use
createTextResult/createErrorResultfromsrc/lib/utils.ts: a textcontentblock plusstructuredContent(for clients that declare anoutputSchema) - Genuine execution failures return
isError: true(viacreateErrorResult), not thrown; valid outcomes (e.g. a user declining an elicitation) are normal results - Stateless per the MCP 2026-07-28 spec: no
initialize/initializedhandshake, noMcp-Session-Id—createMcpHandler's factory runsgetServer()fresh for every HTTP request. It also serves older (2025-era) clients automatically via a stateless fallback, so no separate legacy transport is needed. GET /healthis a plain liveness endpoint (used by the Docker healthcheck) —GET /mcpitself is routed to the MCP handler and no longer doubles as one- If a tool needs state across calls, mint an explicit handle and have the model pass it back as an argument on the next call — there is no transport-level session to hang state off anymore
- Graceful shutdown on
SIGTERM/SIGINT(closes the handler, then exits)
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.
- 2d ago First seen · 141 lines · 1,741 tokens per session scan A 5bb8a7e146cd
mcp-typescript-template AGENTS.md is an instructions file published in the GitHub repository nickytonline/mcp-typescript-template (54 stars, last pushed 23d ago), licensed MIT. It adds 1,741 tokens to every session, about $0.0087 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-30.
Other instructions, from other repositories
tevm CLAUDE.md
Claude Code instructions for evmts/tevm, covering tevm monorepo commands and style guide, project overview, forking implementation, json-rpc support and commands.
moss AGENTS.md
Instructions for D-Robotics/moss, covering agents.md, 仓库身份, 文档所有权与阅读顺序, 代码规范执行摘要(必须遵守) and 第一次进入仓库.
platform AGENTS.md
Instructions for dashpay/platform, covering repository guidelines, project structure & module organization, architecture, technology stack and key components.
agnix typescript.instructions.md
Instructions for agent-sh/agnix, covering typescript instructions and guidelines.
copperhead CLAUDE.md
Instructions for copperheadhq/copperhead, covering claude.md, what this repo is, sources of truth, workflow (openspec) and architecture (per spec.md §2).
openbridge-webcomponents docgen.instructions.md
Instructions for Ocean-Industries-Concept-Lab/openbridge-webcomponents, covering doc generator cli, it never edits the original and keep the prompt aligned with the rules.