mcp-server-vyos: Instructions file for Claude Code

CLAUDE.md

mcp-server-vyos CLAUDE.md is an instructions file for Claude Code from cacack/mcp-server-vyos. It costs 1,006 tokens per session, scanned A, original, MIT.

A set of project instructions for an MCP server that manages VyOS routers through their HTTPS API. VyOS is router software used to configure networks and related system services.

In plain words
What is it for?
It helps develop or maintain router-management tools, run tests and checks, fetch VyOS documentation, and safely change router settings.
Why use it?
It records API details and safety decisions that are easy to get wrong, including request formats, authentication, and automatic rollback for configuration changes.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions CLAUDE.md.

This is cacack/mcp-server-vyos's own configuration. It tells Claude Code how to work on mcp-server-vyos itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything mcp-server-vyos configures →

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/cacack/mcp-server-vyos/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/cacack/mcp-server-vyos

Made for: Claude Code.

Wrote 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.

agentmods badge for mcp-server-vyos CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/cacack/mcp-server-vyos/claude-md/github.svg)](https://agentmods.dev/instructions/cacack/mcp-server-vyos/claude-md)
Your own site
<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.

agentmods 80×15 button for mcp-server-vyos CLAUDE.md

Your own site · 80×15
<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>
Per session 1,006 This file is loaded in full into every session.
When invoked 1,006 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 1mo ago against content hash 6c33ce463475, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.

CLAUDE.md · 55 lines

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-confirm is the default for config changes (auto-rollback safety)
  • VyOS API uses form-encoded POST with data (JSON) and key fields, NOT JSON body
  • Self-signed TLS certs common on VyOS — skip verification by default
  • API key via VYOS_API_KEY, router URL via VYOS_URL env vars
  • Docs fetched live from vyos/vyos-documentation GitHub repo (branch: current)
  • MCPServer shows the model only "Error executing tool " for exceptions that aren't ToolError. Register tools with @_tool() (server.py), which converts TimeoutError/RuntimeError/ValueError to ToolError so their text reaches the model

VyOS API Quirks (validated against real router)

  • All POST endpoints use application/x-www-form-urlencoded with data and key fields
  • Configure operations are slow (10-20s) — client uses 30s timeout
  • confirm requires {"op": "confirm", "path": []} — path field is mandatory, even empty
  • commit-confirm uses confirm_time as a top-level field alongside commands, not per-command (per-command is silently ignored → permanent commit). An armed response data contains "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/poweroff require "path": ["now"]
  • /retrieve supports three ops: showConfig, returnValues, exists
  • Config diffs: /show rejects configuration compare (config-mode), and system commit diff N returns empty data for any N. system commit file N works (unknown N → success: true with a traceback in data), so config_diff diffs revision files client-side. The API has no running-vs-saved comparison
  • ping/traceroute are NOT show subcommands — /show rejects them. /traceroute is a dedicated endpoint taking {"op": "traceroute", "host": ..., "vrf"?} and returns an mtr report in data (vrf is 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 as error on a nonzero exit — for ping, any run with no reply

Read the full file on GitHub · 55 lines

Changes

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.

  1. 1mo ago Changed · +2 lines · +250 tokens per session 6c33ce463475
  2. 1mo ago Changed · +1 lines · +59 tokens per session c06ad960555d
  3. 1mo ago Changed · +3 lines · +52 tokens per session b93a0d4bbcf5
  4. 2mo ago First seen · 49 lines · 645 tokens per session scan A 25b09a2718e1

Subscribe to this mod's changes

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.

Related

mcp-server-vyos CLAUDE.md compared with instructions from other repositories

mcp-server-vyos CLAUDE.md next to 6 instructions from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
mcp-server-vyos CLAUDE.mdcacack/mcp-server-vyosInstructions file54d agoMITA1,006Claude Code
vscode buildNext.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA9,719GitHub Copilot
next.js AGENTS.mdvercel/next.jsInstructions file143kyesterdayMITA7,461Codex, OpenCode
langchain AGENTS.mdlangchain-ai/langchainInstructions file149kyesterdayMITA4,680Codex, OpenCode
vscode oss-third-party-notices.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA5,516GitHub Copilot
vscode copilot-instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA3,093GitHub Copilot
deepseek-harness AGENTS.mddeepseek-ai/deepseek-harnessInstructions file274k2d agoMITA4,313Codex, OpenCode