Borrowing it
Nothing to install: this file belongs to cacack/mcp-server-vyos. 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/cacack/mcp-server-vyos/main/CLAUDE.mdgit clone --depth 1 https://github.com/cacack/mcp-server-vyosWrote 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/cacack/mcp-server-vyos/claude-md)<a href="https://agentmods.dev/instructions/cacack/mcp-server-vyos/claude-md"><img src="https://agentmods.dev/badge/instructions/cacack/mcp-server-vyos/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/cacack/mcp-server-vyos/claude-md"><img src="https://agentmods.dev/badge/instructions/cacack/mcp-server-vyos/claude-md.svg" alt="Reviewed on agentmods" width="80" 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.01006 | $0.01006 |
| Opus 5.5 | $0.00402 | $0.00402 |
| Sonnet 5.5 | $0.00201 | $0.00201 |
| Haiku 4.5 | $0.00101 | $0.00101 |
Grade A, and why
mcp-server-vyos CLAUDE.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 1mo 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 — 55 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
Project Overview
Python MCP server wrapping the VyOS HTTPS REST API. Exposes VyOS router management (config, operational commands, system management) and VyOS documentation as MCP tools.
Commands
uv sync --extra dev # add --locked to match CI (fails on a stale uv.lock)
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run python -m vyos_mcp # run server (stdio transport)
uv.lock is committed; CI installs with uv sync --locked. After changing
dependencies in pyproject.toml, run uv lock and commit the result.
Architecture
src/vyos_mcp/server.py— MCP server, tool registration (MCPServer)src/vyos_mcp/client.py— VyOS REST API client (auth, TLS, form-encoded)src/vyos_mcp/docs.py— VyOS docs client (GitHub API, TTL cache)
Key Design Decisions
commit-confirmis the default for config changes (auto-rollback safety)- VyOS API uses form-encoded POST with
data(JSON) andkeyfields, NOT JSON body - Self-signed TLS certs common on VyOS — skip verification by default
- API key via
VYOS_API_KEY, router URL viaVYOS_URLenv vars - Docs fetched live from
vyos/vyos-documentationGitHub repo (branch:current) - MCPServer shows the model only "Error executing tool " for exceptions that aren't
ToolError. Register tools with@_tool()(server.py), which convertsTimeoutError/RuntimeError/ValueErrortoToolErrorso their text reaches the model
VyOS API Quirks (validated against real router)
- All POST endpoints use
application/x-www-form-urlencodedwithdataandkeyfields - Configure operations are slow (10-20s) — client uses 30s timeout
confirmrequires{"op": "confirm", "path": []}— path field is mandatory, even emptycommit-confirmusesconfirm_timeas a top-level field alongsidecommands, not per-command (per-command is silently ignored → permanent commit). An armed responsedatacontains "Initialized commit-confirm; N minutes to confirm before reload"- A commit-confirm while one is pending still commits, then returns HTTP 400 "Another confirm is pending"; the pending timer reverts both on expiry
reboot/poweroffrequire"path": ["now"]/retrievesupports three ops:showConfig,returnValues,exists- Config diffs:
/showrejectsconfiguration compare(config-mode), andsystem commit diff Nreturns emptydatafor any N.system commit file Nworks (unknown N →success: truewith a traceback indata), soconfig_diffdiffs revision files client-side. The API has no running-vs-saved comparison ping/tracerouteare NOTshowsubcommands —/showrejects them./tracerouteis a dedicated endpoint taking{"op": "traceroute", "host": ..., "vrf"?}and returns an mtr report indata(vrfis T9223, rolling ≥ 2026-08-24; older routers silently ignore unknown fields)./ping(vyos-1x T9224, rolling ≥ 2026.08.18) takes{"op": "ping", "host": ..., "count": 1–10 (default 5), "vrf"?}; older routers return 404 with an nginx HTML body. Both run the command as argv and return HTTP 400 with its output aserroron a nonzero exit — for ping, any run with no reply
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.
- 1mo ago Changed · +2 lines · +250 tokens per session 6c33ce463475
- 1mo ago Changed · +1 lines · +59 tokens per session c06ad960555d
- 1mo ago Changed · +3 lines · +52 tokens per session b93a0d4bbcf5
- 2mo ago First seen · 49 lines · 645 tokens per session scan A 25b09a2718e1
mcp-server-vyos CLAUDE.md is an instructions file published in the GitHub repository cacack/mcp-server-vyos (5 stars, last pushed 4d ago), licensed MIT. It adds 1,006 tokens to every session, about $0.0040 per session on Opus 5.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.
mcp-server-vyos CLAUDE.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| mcp-server-vyos CLAUDE.mdcacack/mcp-server-vyos | Instructions file | 5 | 4d ago | MIT | A | 1,006 | Claude Code |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | yesterday | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |