Borrowing it
Nothing to install: this file belongs to ameshkov/mcp-compress-router. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/ameshkov/mcp-compress-router/master/AGENTS.mdgit clone --depth 1 https://github.com/ameshkov/mcp-compress-routerWrote 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/ameshkov/mcp-compress-router/agents-md)<a href="https://agentmods.dev/instructions/ameshkov/mcp-compress-router/agents-md"><img src="https://agentmods.dev/badge/instructions/ameshkov/mcp-compress-router/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.1 | $0.05530 | $0.05530 |
| Opus 5 | $0.02765 | $0.02765 |
| Sonnet 5 | $0.01106 | $0.01106 |
| Haiku 4.5 | $0.00553 | $0.00553 |
Grade A, and why
mcp-compress-router 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 7d 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 — 463 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
MCP Compress Router — a single-router MCP server that compresses all
connected MCP servers into one, with just two tools: get_tool_schema and
invoke_tool. Saves up to 99% on token overhead by replacing verbose
tool listings with a compact routing layer.
Table of Contents
- Project Overview
- Technical Context
- Project Structure
- Build and Test Commands
- Contribution Instructions
- Code Guidelines
Project Overview
A single MCP (Model Context Protocol) server that acts as a router. Instead of sending all tool names and descriptions from every connected MCP to the LLM on every request, this server exposes only two tools:
get_tool_schema— returns the JSON parameter schema for one or more tools on a connected MCP server.invoke_tool— forwards a tool invocation to a connected MCP server and returns the result.
The LLM first calls get_tool_schema to learn the parameters, then calls
invoke_tool to execute. This reduces token overhead by ~96% for a typical
coding session with 3 MCP servers.
Technical Context
| Field | Value |
|---|---|
| Language | TypeScript 5.9, ES2022 target, strict mode |
| Runtime | Node.js 24+ |
| Package Manager | pnpm 10+ |
| Framework | MCP SDK (@modelcontextprotocol/sdk) |
| Linting | oxlint (category-based config) + Knip |
| Formatting | Prettier 3.x, Markdownlint (markdownlint-cli2) |
| Project Type | MCP server (stdio transport) |
Project Structure
mcp-compress-router/
├── src/ # Application source code
│ ├── index.ts # MCP server entry point (stdio transport) + CLI dispatch
│ ├── cli/ # Management CLI subcommands
│ │ ├── index.ts # Barrel exports (public API)
│ │ ├── config-io.ts # Raw mcp.json read/write with first-use creation
│ │ ├── add-command.ts # add subcommand handler
│ │ ├── disable-command.ts # disable subcommand handler
│ │ ├── enable-command.ts # enable subcommand handler
│ │ ├── remove-command.ts # remove subcommand handler
│ │ ├── get-command.ts # get subcommand handler
│ │ ├── list-command.ts # list subcommand handler
│ │ ├── tools-command.ts # tools subcommand handler (live inspection)
│ │ ├── login-command.ts # login subcommand handler (OAuth flow)
│ │ ├── logout-command.ts # logout subcommand handler (clear credentials)
│ │ ├── register-commands.ts # Wires all CLI subcommands onto a commander program
│ │ └── router-runner.ts # Router startup: connect servers, build catalog, serve, and shut down
│ ├── services/ # Core business logic
│ │ ├── index.ts # Barrel exports (public API)
│ │ ├── config.ts # Configuration loader
│ │ ├── discovery.ts # Downstream server discovery (single-server connect + tool listing)
│ │ ├── dedicated-fetch.ts # Dedicated per-server undici fetch (isolated connection pool)
│ │ ├── catalog.ts # Catalog Builder & Cache
│ │ ├── server-connection.ts # Per-server client lifecycle (connect, reconnect, invoke, close)
│ │ ├── invoke-with-recovery.ts # Self-recovery orchestration on invoke_tool
│ │ ├── guided-error.ts # Detailed guided error message builder
│ │ ├── auth-errors.ts # GuidedAuthError tagged error class
│ │ ├── tool-cache.ts # Disk cache for tool schemas (tools-cache.json)
│ │ ├── oauth.ts # OAuth credential storage (credentials.json) + proactive refresh & invalidation
│ │ ├── auth-status.ts # OAuth requirement probe & auth-status lookup
│ │ ├── oauth-discovery.ts # Spec-compliant two-step OAuth discovery (PRM -> AS)
│ │ ├── shutdown-coordinator.ts # Graceful shutdown orchestration (run cleanup hooks once)
│ │ └── shutdown-triggers.ts # Signal & stdin-EOF triggers that start a shutdown
│ ├── utils/ # Shared utilities
│ │ ├── index.ts # Barrel exports (public API)
│ │ ├── expand-env.ts # ${VAR} / ${VAR:-default} expansion
│ │ ├── argument-names.ts # Argument Name Extractor (inputSchema.properties keys)
│ │ ├── description-truncator.ts # Description Truncator (medium-level first-sentence snippet)
│ │ ├── compression-level.ts # CompressionLevel valid set + type guard
│ │ ├── parse-jsonc.ts # JSONC parser wrapper (comments + trailing commas)
│ │ ├── text-format.ts # Compact catalog text renderer
│ │ ├── tool-filter.ts # Tool Filter (allow/deny glob matching)
│ │ ├── types.ts # Shared type definitions
│ │ ├── validate-arguments.ts # JSON Schema argument validation
│ │ ├── validate-glob.ts # Glob pattern validator
│ │ ├── timeout.ts # Downstream/discovery timeout budgets + timeout fetch
│ │ ├── logger.ts # Level-aware structured logger
│ │ └── open-browser.ts # Platform-safe browser opener using spawn()
│ └── tools/ # Router tool handlers
│ ├── index.ts # Barrel exports (public API)
│ ├── get-tool-schema.ts
│ └── invoke-tool.ts
├── test/ # Shared test infrastructure
│ ├── fixture-server.ts # Reusable fixture stdio downstream MCP server
│ ├── fixture-http-server.ts # Reusable fixture HTTP downstream MCP server
│ └── e2e/ # End-to-end tests
│ ├── helpers.ts # Shared E2E utilities (fixture paths, spawn)
│ └── client.ts # JSON-RPC test client over stdio
├── docs/ # Documentation and assets
│ ├── configuration.md # Full configuration & env var reference
│ └── assets/ # Example JSON payloads
├── DEVELOPMENT.md # Local setup & manual testing guide
├── .env # Local environment (gitignored)
├── .env.example # Environment variable template (committed)
├── .github/ # GitHub Actions workflows
│ └── workflows/
└── ci.yml # Quality gate + npm publish on version tags
├── oxlint.config.ts # oxlint category-based config
├── knip.config.ts # Knip unused-export analysis config
├── mcp.example.jsonc # Example JSONC config template (committed)
├── tsconfig.json # TypeScript solution config (references app + test)
├── tsconfig.app.json # TypeScript configuration (production build)
├── tsconfig.test.json # TypeScript configuration (tests, noEmit)
├── vitest.config.ts # Vitest configuration
└── package.json # Project dependencies and scripts
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.
- 7d ago First seen · 463 lines · 5,530 tokens per session scan A ecfa2a71589d
mcp-compress-router AGENTS.md is an instructions file published in the GitHub repository ameshkov/mcp-compress-router (20 stars, last pushed 21d ago), licensed MIT. It adds 5,530 tokens to every session, about $0.0277 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
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
spec-kit AGENTS.md
AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.