Skip to main content
Glama

mcp-server-vyos

CI codecov PyPI Python License: MIT

HTTPS REST API経由でVyOSルーターを管理するためのMCPサーバーです。ルーター管理ツールとVyOSドキュメント検索機能の両方を提供します。

インストール

pip install mcp-server-vyos

Related MCP server: OPNsense MCP Server

設定

環境変数を設定します:

  • VYOS_URL — ルーターのAPIエンドポイント(例:https://vyos.example.com

  • VYOS_API_KEY — 認証用のAPIキー

  • VYOS_READ_ONLY — すべての変更系ツール(設定変更、再起動、電源オフなど)を無効にする場合は true に設定

VyOSルーターのセットアップ

VyOSルーターでHTTPS APIを有効にします:

configure
set service https api keys id my-mcp-key key <your-api-key>
set service https api rest
commit
save

Claude Code

MCPクライアントの設定に追加します:

{
  "mcpServers": {
    "vyos": {
      "command": "mcp-server-vyos",
      "env": {
        "VYOS_URL": "https://vyos.example.com",
        "VYOS_API_KEY": "your-api-key"
      }
    }
  }
}

読み取り専用モード

安全なクエリ専用アクセス(監視、調査、ドキュメント検索)を行うには、読み取り専用モードを有効にします:

{
  "mcpServers": {
    "vyos": {
      "command": "mcp-server-vyos",
      "env": {
        "VYOS_URL": "https://vyos.example.com",
        "VYOS_API_KEY": "your-api-key",
        "VYOS_READ_ONLY": "true"
      }
    }
  }
}

これにより、変更を伴わないツールのみが登録されます:vyos_infovyos_retrievevyos_return_valuesvyos_existsvyos_config_diffvyos_showvyos_docs_searchvyos_docs_read

ツール

ルーター管理

ツール

説明

vyos_info

システム情報(認証不要)

vyos_retrieve

指定パスの設定を読み取る

vyos_return_values

複数値の設定ノードの値を取得する

vyos_exists

設定パスが存在するか確認する

vyos_config_diff

設定の差分を表示(保存済み vs 実行中、またはリビジョン指定)

vyos_show

運用コマンド(show)を実行する

vyos_validate

設定構文を検証する(自動ロールバック付きの一時適用)

vyos_configure

commit-confirmを使用して設定を適用する(安全なデフォルト)

vyos_confirm

保留中のcommit-confirmを確定する

vyos_save

実行中の設定をディスクに保存する

vyos_load

設定ファイルを読み込む

vyos_merge

設定ファイルまたは文字列を実行中の設定にマージする

vyos_generate

キーや証明書などを生成する

vyos_reset

リセット操作

vyos_reboot

ルーターを再起動する

vyos_poweroff

ルーターの電源を切る

vyos_image_add

URLからシステムイメージを追加する

vyos_image_delete

システムイメージを削除する

ドキュメント

ツール

説明

vyos_docs_search

トピック別にVyOSドキュメントを検索する

vyos_docs_read

特定のドキュメントページを読み取る

ドキュメントは vyos-documentation リポジトリからライブで取得されるため、最新のVyOSリリースと同期されます。結果は1時間キャッシュされます。

安全性

  • 設定変更はデフォルトで commit-confirm を使用します。vyos_confirm で確定されない限り、5分後に自動的に元に戻ります。

  • 破壊的な操作(vyos_rebootvyos_poweroffvyos_image_delete)には警告説明が含まれています。

  • APIキーがログに記録されたり、ツールの出力に含まれたりすることはありません。

  • 自己署名TLS証明書はデフォルトで受け入れられます(VyOSでは一般的です)。

開発

uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest
ruff check .

ライセンス

MIT

Available Tools

27 tools
vyos_bgp_summaryA

Show the BGP neighbor summary (show bgp summary).

Neighbor state, uptime, and prefixes received per peer across all
address families. Most useful on routers running BGP; if BGP is not
running, the router returns an error response ("success": false).
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool is read-only (command 'show bgp summary'), specifies the output contents, and explicitly describes the error response when BGP is not running. This provides good behavioral transparency beyond a simple command name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that front-load the command and purpose, followed by output details and error behavior. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there are no parameters, no output schema, and no annotations, the description covers the essential aspects: purpose, output content, and error condition. It is fairly complete, though it could briefly mention that it shows all BGP peers, but 'per peer' already implies that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and the schema coverage is 100% trivially. The description does not need to add parameter information, but it adds value by explaining the tool's purpose and output. Baseline 3 is elevated to 4 because the description effectively compensates for the absence of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it shows BGP neighbor summary with the explicit command equivalent, specifies the output fields (neighbor state, uptime, prefixes received), and distinguishes by noting it covers all address families. It is distinct from sibling tools due to the BGP-specific focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context that it is most useful on routers running BGP and warns that if BGP is not running, an error is returned. However, it does not explicitly state when not to use this tool or compare it to sibling tools like vyos_show or vyos_interface_stats, nor does it offer alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_config_diffA

Show configuration differences.

Compares running config against saved config by default,
or against a specific revision number. Useful for previewing
changes before committing or reviewing what has drifted.

Args:
    rev: Optional revision number to compare against
ParametersJSON Schema
NameRequiredDescriptionDefault
revNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. Clearly states it compares configs (read-only), default and optional revision behavior. Does not mention output format, but no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences plus Arg line: front-loaded summary, then expansion, no fluff. Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given single optional parameter, no output schema, and no nested complexity, description is complete: explains default and optional usage, provides use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no parameter descriptions (0% coverage), but description adds: 'Optional revision number to compare against' and implies default behavior. Adds meaningful context beyond bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states 'Show configuration differences' and describes comparing running vs saved config, optionally against a revision. Differentiates from siblings like vyos_show by focusing on diff functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear use cases: 'previewing changes before committing or reviewing what has drifted.' Does not mention alternatives or when not to use, but context is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_config_historyA

List configuration revision history.

Returns the numbered config revisions VyOS retains, newest first,
each with its timestamp, the user who committed it, the method
(e.g. cli, vyos-http-api), and an optional comment. Pair with
vyos_config_diff(rev) to inspect what changed in a given revision.

Note: VyOS exposes no rollback endpoint over the HTTP API, so this
server can report revision history but cannot revert to a revision.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description fully discloses behavior: returns newest-first, lists fields, and importantly states no rollback capability via HTTP API, a critical behavioral trait beyond the basic list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences, front-loaded with purpose, no redundancy, every sentence adds value (intent, return details, companion tool, limitation).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with output schema, description fully covers what the tool does and returns, including the critical limitation about rollback, making it complete for an agent to use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so baseline of 4 applies. Description adds no param info as none needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists configuration revision history, specifies returned fields (number, timestamp, user, method, comment), and distinguishes from sibling vyos_config_diff by mentioning pairing for inspecting changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context for listing history and suggests pairing with vyos_config_diff. Explicitly notes the inability to roll back due to API limitation. Lacks explicit when-not-to-use scenarios but still effective.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_configureA

Apply a list of VyOS config changes atomically with commit-confirm.

Every operation in `commands` is applied in a single commit-confirm
window — the whole batch commits or rolls back together, never
partially. Prefer batching all related set/delete changes into one
call rather than making several sequential calls; this is faster and
keeps related changes atomic.

This is the safe default — changes auto-revert after 5 minutes unless
confirmed with vyos_confirm.

Args:
    commands: List of config operations, each with 'op'
        ('set'/'delete') and 'path' (list of strings). Pass as many
        as belong together. Example:
        [{"op": "set", "path": ["firewall", "group",
          "network-group", "MY_GROUP", "network", "10.0.0.0/8"]},
         {"op": "set", "path": ["firewall", "group",
          "network-group", "MY_GROUP", "network", "192.168.0.0/16"]}]
ParametersJSON Schema
NameRequiredDescriptionDefault
commandsYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the atomic commit-confirm window, automatic rollback after 5 minutes, and the need for confirmation. It explicitly states changes never partially apply, providing clear behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough but slightly long. However, each sentence adds value: main purpose, atomic behavior, batching advice, and parameter details. It is front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, lack of output schema, and no annotations, the description covers usage, behavior, and parameter format well. It does not discuss error handling or return values, but the tool context (atomic config) makes this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'commands' is explained in detail with structure (op, path) and a concrete example. Since schema coverage is 0%, the description compensates fully, adding meaning beyond the vague schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Apply a list of VyOS config changes atomically with commit-confirm.' It specifies the specific verb (apply) and resource (VyOS config changes) and distinguishes from siblings like vyos_confirm and vyos_load by highlighting atomic batch behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises batching related changes for atomicity and speed, contrasting with sequential calls. It also mentions the need for vyos_confirm to persist changes, but does not explicitly state when to avoid this tool (e.g., for single changes where confirm is unnecessary).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_confirmA

Confirm a pending commit-confirm, making changes permanent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry full burden. It states 'making changes permanent' but does not explain what happens if there is no pending commit-confirm or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded and efficient, containing no superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description provides adequate functional context, but lacks information about prerequisites or return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the input schema already reflects that. The description adds no parameter info, but none is needed. Baseline is 4 for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'confirm' and the resource 'pending commit-confirm', distinguishing it from other sys admin tools like vyos_configure or vyos_load.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like vyos_configure or vyos_save. The implied use after a commit-confirm is not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_docs_readA

Read a VyOS documentation page.

Fetches the raw RST content from the VyOS docs repository.
Use vyos_docs_search to find the path for a topic.

Args:
    path: Doc path, e.g. "docs/configuration/firewall/groups.rst"
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool fetches raw RST content and is a read-only operation. However, it lacks details on error handling (e.g., if path is invalid), network dependencies, or any potential side effects. The description is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of three short sentences plus an 'Args:' line. Every sentence adds value: purpose, action, usage recommendation, and parameter clarification. There is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, output schema exists), the description covers the essential aspects. It mentions the sibling search tool and the expected path format. It does not describe the output format, but since an output schema exists, that is not a critical omission. A note on error scenarios would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no description for the 'path' parameter (0% coverage). The description adds meaning by stating it is a 'Doc path' and provides an example ('docs/configuration/firewall/groups.rst'). This compensates for the schema gap, but more clarity on allowed path formats or constraints would be beneficial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a VyOS documentation page by fetching raw RST content. It explicitly distinguishes from the sibling vyos_docs_search by directing users to use that tool for path discovery. The verb 'Read' and resource 'VyOS documentation page' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to use vyos_docs_search to find the path first, establishing a clear workflow. It does not explicitly list when not to use this tool, but the context of sibling tools makes the usage scenario clear. A slight improvement would be to mention scenarios where reading is not appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_existsA

Check if a VyOS configuration path exists.

Returns true/false in the data field.

Args:
    path: Configuration path to check,
        e.g. ["service", "https", "api"]
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Returns true/false in data field, but no details on error handling, permission requirements, or side effects. With no annotations, description should provide more behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: one line for purpose, one line for return value, one line with args format and example. No extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, return value is explained. However, missing details on what happens for malformed paths or non-existent paths (e.g., returns false). Adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description adds crucial meaning: explains path is a configuration path as an array of string segments, with example. Clear enough for agent to provide valid input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Check', resource 'VyOS configuration path', and action 'exists'. Example provided. Distinguishes from siblings like vyos_show which likely returns actual config values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explanation of when to use this tool versus alternatives such as vyos_show or vyos_validate. No context on prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_firewall_statsA

Show firewall and NAT rule hit counters.

Returns a dict keyed by 'firewall', 'nat_source', and
'nat_destination', each holding the corresponding `show` output. On
partial failure the affected key holds an error dict with
"success": false and "error" set — check "success" before using
"data"; the commands that succeeded are still returned. Most useful
on routers with complex rulesets.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: return dict structure, partial failure handling with error dict and 'success' field, and advice to check 'success' before using 'data'. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose, followed by necessary detail on return structure and error handling. No superfluous sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description is fairly complete. It explains return format and error handling adequately. Could add an example but is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100%. The description does not need to add parameter semantics; baseline 4 is appropriate for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool shows firewall and NAT rule hit counters, specifying the verb 'Show' and the resource. It differentiates from the generic vyos_show sibling by being specific to firewall stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is most useful on routers with complex rulesets, implying context, but does not explicitly state when not to use or compare with alternatives like vyos_show or other stats tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_generateC

Run a VyOS generate command (keys, certificates, etc.).

Args:
    path: Command path, e.g. ["pki", "wireguard", "key-pair"]
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only says 'run a generate command'. It does not disclose whether it modifies state, what side effects occur, or required permissions. For a generation tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear sentences with an example. No wasted words, but could be more structured (e.g., explicit parameter list).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and minimal annotations, the description is insufficient. It does not explain return values, error handling, or the effect of running a generate command. A more complete description would cover these aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no descriptions (0% coverage), but the description provides an example path (e.g., ['pki', 'wireguard', 'key-pair']), adding meaning beyond the schema. However, it does not explain the expected format or constraints of the path array.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it runs generate commands for keys, certificates, etc., with an example path. It distinguishes from other VyOS tools like show or configure, but does not explicitly differentiate from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not specify prerequisites, typical use cases, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_image_addA

Add a VyOS system image from a URL.

Downloads and installs a new system image. This does not
reboot — the new image will be used on next boot.

Args:
    url: URL to the VyOS ISO image
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the tool downloads, installs, and does not reboot. It omits details on authentication, error handling, or whether the operation is destructive (though 'add' implies creation).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a one-line title, a brief paragraph, and an arg description. Every sentence adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the essential aspects: action, source (URL), and post-install behavior. Missing details like permissions or failure modes are minor given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'url' has no description in the input schema (0% coverage). The description compensates by stating 'URL to the VyOS ISO image' in the Args block, adding clarity beyond the schema's bare title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Add a VyOS system image from a URL.' It specifies the action (download and install), the resource (system image), and the absence of reboot, distinguishing it from sibling tools like vyos_image_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that the new image will be used on next boot and does not reboot, providing some context. However, it does not explicitly state when to use this tool versus alternatives (e.g., vyos_reboot) or mention prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_image_deleteA

Delete a VyOS system image.

WARNING: Cannot delete the currently running image.

Args:
    name: Image name, e.g. "1.4-rolling-202102280559"
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It discloses that deletion of the currently running image is prevented, which is a key behavioral constraint. However, it does not elaborate on other aspects such as whether deletion requires confirmation or is irreversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, consisting of a main statement, a warning, and an Args section. It front-loads the purpose and is free of unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple deletion tool with one parameter and no output schema, the description covers the essential aspects: the action, a critical constraint, and parameter details. It could be more complete by mentioning the irreversible nature of deletion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds an 'Args' section with an example ('1.4-rolling-202102280559') that clarifies the expected format of the 'name' parameter, adding value beyond the schema's minimal type information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Delete' and the resource 'VyOS system image'. It distinguishes from the sibling 'vyos_image_add' and includes a warning about the currently running image, which adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like vyos_image_add or other operations. However, the warning 'Cannot delete the currently running image' provides implicit guidance on when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_infoA

Get VyOS system info (no authentication required).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the key behavioral trait of authentication transparency, but does not detail other aspects like read-only nature or exact output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and simple purpose, the description is complete and sufficient for the agent to understand and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so baseline 4 per instructions. No additional semantics needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Get' and resource 'VyOS system info', with a notable behavioral note 'no authentication required', distinguishing it from siblings that likely require auth or perform other actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies safe, quick usage due to 'no authentication required', but does not explicitly state when to use vs. alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_interface_statsA

Show interface statistics: RX/TX counters, errors, link state.

With no argument, returns the summary table for all interfaces.
Pass an interface spec as path elements (e.g. ["ethernet", "eth0"])
to get detailed byte/packet/error counters for a single interface.

Args:
    interface: Optional interface path elements, e.g. ["ethernet", "eth0"]
ParametersJSON Schema
NameRequiredDescriptionDefault
interfaceNo

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It implies a read-only operation by saying 'Show', but does not explicitly state it is non-destructive or describe any other behavioral traits like rate limits or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the core purpose, and uses minimal words. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description sufficiently explains input expectations and output behavior (summary table vs. detailed counters). It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 0%, but the description clearly explains the single parameter 'interface', including its format (array of strings) and the effect of providing it vs. default null. This adds meaningful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool shows interface statistics including RX/TX counters, errors, and link state. It distinguishes itself from sibling tools like vyos_show and vyos_firewall_stats by being specific to interface statistics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool without arguments (summary for all interfaces) and with arguments (detailed for a single interface). However, it does not explicitly mention when not to use this tool or suggest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_loadC

Load a VyOS configuration file.

Args:
    file: Path to config file on the router,
        e.g. "/config/test.config"
ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description lacks information on side effects (e.g., whether loading replaces or merges config), required permissions, or error behavior. The verb 'load' is vague without further context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the core purpose. The parameter explanation is separated clearly. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema and no annotations, the description provides minimal but sufficient context. However, it lacks completeness about the loading process and expected outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds a description and example for the only parameter 'file', which is not present in the input schema. However, with 0% schema coverage, more detail (e.g., file format, specific paths) would improve clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'load' and the resource 'VyOS configuration file', providing a clear purpose. However, it does not differentiate from similar sibling tools like vyos_configure or vyos_merge, which could be ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The example file path is helpful but does not indicate prerequisites or context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_mergeA

Merge a configuration into the running config.

Provide either a file path on the router or an inline
config string (VyOS curly-brace format).

Args:
    file: Path to config file on the router
    string: Inline config in VyOS format, e.g.
        'interfaces { ethernet eth1 { description "test" } }'
ParametersJSON Schema
NameRequiredDescriptionDefault
fileNo
stringNo

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only says 'merge into running config' without clarifying if it replaces, appends, or requires privileges, or what happens on failure. This lacks sufficient behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose, then explains parameters. It avoids redundancy but could be slightly more structured. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, no output schema, and only 2 parameters with low schema coverage, the description covers basic usage but omits return values, error handling, and behavioral nuances. It is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds significant value by explaining that 'file' is a path on the router and 'string' is inline config in VyOS format, including an example format. This compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Merge a configuration into the running config') and distinguishes from sibling tools like vyos_configure or vyos_load by specifying 'merge' and providing input methods (file path or inline string).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions providing either a file path or inline string, implying when to use the tool, but it does not explicitly state when not to use it or compare it to alternatives like vyos_configure or vyos_load.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_poweroffA

Power off the VyOS router immediately.

WARNING: This will shut down the router. The router will
need physical or out-of-band access to power back on.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Clearly states 'shut down the router' and the irreversible nature of the action (needs physical access to restart). No annotations provided, but description fully discloses the destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the action, second provides critical warning. No unnecessary words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with zero parameters and no output schema, the description covers what the tool does and the essential safety warning. Complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline 4 applies. Description does not need to add parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states 'Power off the VyOS router immediately' with a clear verb and resource. Distinguishes from related tools like vyos_reboot (restart) and vyos_reset (reset).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes a warning that physical or out-of-band access is needed to power back on, implicitly guiding when to use (only with such access). Could explicitly mention not to use if remote recovery is required, but the warning effectively sets usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_rebootA

Reboot the VyOS router immediately.

WARNING: This will reboot the router. All active sessions
and traffic will be interrupted.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description warns that the reboot is immediate and will interrupt all active sessions and traffic, which is critical behavioral information. With no annotations, this warning provides adequate transparency about the destructive nature, though it does not discuss return behavior or confirmation requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise--two sentences plus a warning--with no unnecessary words. Every part earns its place, and the warning is properly emphasized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the action and key warning, it lacks information about what the tool returns (e.g., success message, status code) and whether it blocks until reboot completes. Given no output schema, this is a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description does not need to add parameter meaning. Per guidelines, baseline is 4. The description does not introduce confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reboots the VyOS router, using a specific verb and resource. However, it does not differentiate from the sibling tool vyos_poweroff, which might perform a similar action but potentially with different semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs. alternatives like vyos_poweroff or vyos_reset. There is no context about prerequisites or situations where reboot is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_resetC

Run a VyOS reset command.

Args:
    path: Command path, e.g. ["ip", "bgp", "192.0.2.11"]
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior, but it only says 'reset command' without explaining potential destructiveness, side effects, or required permissions. This is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the action, containing no fluff. It could be slightly more structured, but it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a command with potential destructive impact and no output schema, the description is too sparse. It lacks information about return values, confirmation steps, or effects on the system, making it incomplete for safe usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds an example path (['ip', 'bgp', '192.0.2.11']), providing meaning beyond the schema's array type. However, it does not explain the structure or valid values for the path, so the added value is moderate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it runs a VyOS reset command and provides an example. However, it does not distinguish this from sibling tools like vyos_reboot or vyos_configure, which reduces clarity for selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. The description lacks context about which scenarios are appropriate for a reset command, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_retrieveB

Read VyOS configuration at a given path.

Args:
    path: Configuration path as list of strings, e.g. ["firewall", "group"]
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It implies a read-only operation but does not disclose error behavior (e.g., missing path) or any side effects. Minimal additional context beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the purpose. It uses a docstring format. However, it is slightly too brief, missing return value or error mention, but no extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should cover what the tool returns and error cases. It only explains the input parameter, leaving return format and behavior unspecified, which is inadequate for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description compensates well. It explains the 'path' parameter as a list of strings with a clear example, adding meaning beyond the schema's type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and resource 'VyOS configuration' with scope 'at a given path'. It distinguishes from sibling tools like vyos_show and vyos_config_diff, but lacks explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description only states what the tool does, not when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_return_valuesA

Get values of a multi-valued VyOS config node as a list.

Use this instead of vyos_retrieve when a node has multiple
values (e.g. addresses on an interface).

Args:
    path: Configuration path, e.g.
        ["interfaces", "dummy", "dum0", "address"]
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, description only notes it returns a list. Does not disclose read-only nature, error conditions, or permission requirements. Insufficient transparency for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus an args section, no wasted words. Front-loaded with main purpose and usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage, and parameter meaning. Lacks output format details beyond 'as a list', but sufficient for a simple getter with one parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Path parameter is explained with an example, adding meaning beyond schema's type-only definition. Compensates for 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states verb 'Get' and resource 'values of a multi-valued VyOS config node as a list', clearly distinguishing from sibling vyos_retrieve by specifying when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this instead of vyos_retrieve when a node has multiple values', providing clear usage context. Lacks mention of when not to use other siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_route_tableA

Show the routing table / RIB (show ip route / show ipv6 route).

Raises ValueError (propagated to the caller) if family or protocol is
not one of the documented values.

Args:
    family: Address family — "ip" (IPv4, default) or "ipv6".
    protocol: Optional source filter — one of bgp, ospf, ospfv3,
        static, connected, kernel, rip, isis. Omit for all routes.
ParametersJSON Schema
NameRequiredDescriptionDefault
familyNoip
protocolNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that ValueError is raised for invalid family or protocol, and notes default values. This goes beyond the bare input schema, especially given no annotations. Minor omission of return format or pagination prevents a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (5 lines), front-loaded with the purpose, and every sentence adds value without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description covers input parameters, error behavior, and defaults adequately. The only omission is a description of the output format, which for a show command is somewhat expected but not specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully explains both parameters: family (with defaults and options) and protocol (optional filter with explicit list including the ability to omit). This provides critical context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Show the routing table / RIB' with specific CLI commands, clearly differentiating from sibling tools like vyos_bgp_summary or vyos_traceroute.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives like vyos_show or vyos_bgp_summary, nor does it mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_saveA

Save running VyOS configuration to disk.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description implies a non-destructive save operation but does not detail side effects (e.g., overwriting disk config) or required permissions. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Perfectly concise for a simple operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete enough for a parameterless tool with no output schema. It could mention saving to startup-config or immediate impact, but the core functionality is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist in the schema, so the description adds no parameter-specific meaning. Baseline for 0 parameters is 4, and the description is sufficient given the tool's simplicity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Save') and the resource ('running VyOS configuration to disk'), establishing a distinct purpose from sibling tools like vyos_configure or vyos_load.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., vyos_configure, vyos_load). No context on prerequisites or situations where saving is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_showB

Run a VyOS operational show command.

Args:
    path: Command path as list of strings, e.g. ["interfaces", "ethernet"]
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only states it runs a show command (implying read-only) but does not disclose side effects, auth needs, or output behavior. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Purpose stated first, then argument explanation. Excellent front-loading and efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter and no output schema, the description explains input sufficiently but omits any information about return values or output format. An agent may need to infer the result structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% coverage for the 'path' parameter description. The tool's description adds value by explaining it as a command path list and providing an example, compensating for the schema deficiency.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it runs a VyOS operational show command, specifying the verb and resource. It distinguishes from siblings like vyos_configure (configuration) and vyos_exists (checking), but does not emphasize differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for show commands ('operational show command') but provides no explicit guidance on when not to use or alternatives. The agent must infer context from the sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_system_resourcesA

Get router system resources: CPU, memory, storage, and uptime.

Returns a dict keyed by resource (cpu, memory, storage, uptime),
each holding the corresponding `show system ...` output. Handy for
a quick health snapshot of the router.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a dict with output from 'show system' commands, implying it is a read-only operation. However, it does not mention any safety or authorization requirements, rate limits, or potential performance impacts. While the description is honest, it lacks some transparency typical for a well-documented tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: two sentences, each earning its place. It is front-loaded with the purpose and immediately provides detail about return structure. No redundant or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no annotations, and no output schema, the description is remarkably complete. It conveys what the tool does, what it returns (a dict with keys cpu, memory, storage, uptime), and its typical use case (quick health snapshot). No significant gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema is trivial. According to the guidelines, 0 parameters earns a baseline of 4. The description does not need to add parameter meaning because there are none, and the description's purpose is already covered by the overall tool description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get router system resources: CPU, memory, storage, and uptime.' It uses a specific verb ('Get') and resource ('system resources'), and the context of sibling tools shows this is distinct from other VyOS tools like vyos_bgp_summary or vyos_show.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a 'quick health snapshot of the router,' which provides clear context. However, it does not explicitly state when not to use this tool or mention alternatives, though the purpose is sufficiently clear for an agent to understand its context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_tracerouteA

Traceroute to a host from the router.

Returns the API response with an mtr report (per-hop loss and
latency) in its data field. Useful for diagnosing reachability and
path issues from the router's perspective. The host must be a valid
hostname or IP address.

Args:
    host: Destination hostname or IP, e.g. "8.8.8.8"
ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden. It explains the output (mtr report with per-hop loss and latency) and that the host must be valid. However, it does not explicitly state side effects (none expected for traceroute) or authentication requirements, leaving some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise: two sentences plus an args section. It front-loads the core purpose and follows with output details, avoiding any filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description sufficiently covers purpose, output format, and parameter requirements. An agent can confidently use this tool without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds full meaning for the single parameter 'host' with an example ('8.8.8.8') and clarifies it can be a hostname or IP address, which is essential for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a traceroute to a host from the router, specifying verb and resource. It distinguishes from sibling tools by focusing on network path diagnostics rather than configuration or status retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is useful for diagnosing reachability and path issues, providing context for when to use it. It does not explicitly mention when not to use or list alternative tools, but the intended use is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vyos_validateA

Validate VyOS configuration syntax without persisting changes.

Applies commands with a 1-minute commit-confirm window and does NOT
confirm, so the router automatically rolls back. This is not a true
dry-run — the configuration is temporarily applied for up to 1 minute.

A successful response means the syntax is valid. An error means the
commands contain invalid syntax or paths.

Args:
    commands: List of config operations, each with 'op'
        ('set'/'delete') and 'path' (list of strings).
        Example: [{"op": "set", "path": ["firewall",
        "group", "network-group", "MY_GROUP"]}]
ParametersJSON Schema
NameRequiredDescriptionDefault
commandsYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the temporary application of configuration, auto-rollback after 1 minute, and the meaning of success/error responses. This provides essential behavioral context beyond the bare input schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using few sentences to convey the purpose, behavior, and parameter format. It includes a clear Args section and example, making it easy to parse without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description covers all necessary aspects: validation goal, temporary application, error interpretation, and parameter specification. It is fully sufficient for an agent to understand and use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only defines the 'commands' parameter as an array of objects with additionalProperties true, providing minimal semantic meaning. The description compensates by specifying the required structure (op and path fields) and giving a concrete example, which is critical for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool validates VyOS configuration syntax without persisting changes, and distinguishes itself from a true dry-run by noting temporary application and auto-rollback. This specificity helps differentiate it from sibling tools like vyos_configure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the validation context and the behavior (1-minute commit-confirm window, auto-rollback), which guides when to use the tool. It does not explicitly list when not to use or compare to alternatives, but the purpose is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.3.0
    • Addedvyos_bgp_summary
    • Addedvyos_config_history
    • Addedvyos_firewall_stats
    • Addedvyos_interface_stats
    • Addedvyos_route_table
    • Addedvyos_system_resources
    • Addedvyos_traceroute
  2. 20 tool updatesv0.2.0
    • First observedvyos_config_diff
    • First observedvyos_configure
    • First observedvyos_confirm
    • First observedvyos_docs_read
    • First observedvyos_docs_search
    • First observedvyos_exists
    • First observedvyos_generate
    • First observedvyos_image_add
    • First observedvyos_image_delete
    • First observedvyos_info
    • First observedvyos_load
    • First observedvyos_merge
    • First observedvyos_poweroff
    • First observedvyos_reboot
    • First observedvyos_reset
    • First observedvyos_retrieve
    • First observedvyos_return_values
    • First observedvyos_save
    • First observedvyos_show
    • First observedvyos_validate

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: operational commands (vyos_bgp_summary, vyos_show, vyos_traceroute) are separate from config operations (vyos_configure, vyos_validate), and monitoring tools (vyos_firewall_stats, vyos_interface_stats) are distinct from system management (vyos_reboot, vyos_image_add). There is no ambiguity between tools.

Naming Consistency5/5

All tools follow the pattern 'vyos_<descriptive_name>' using snake_case exclusively. Examples: vyos_config_diff, vyos_configure, vyos_docs_search. No mixing of conventions or inconsistent verb usage.

Tool Count4/5

With 27 tools, the set is comprehensive for a VyOS network router management server, covering configuration, monitoring, system operations, and documentation. While this is on the higher side, each tool serves a specific need in a complex domain, so the count is appropriate.

Completeness4/5

The tool surface covers core CRUD operations for configuration (vyos_retrieve, vyos_configure, vyos_validate), monitoring (vyos_interface_stats, vyos_firewall_stats, vyos_route_table), and system management (vyos_reboot, vyos_image_add). Minor omissions like log monitoring or VPN status exist but do not hinder typical use cases.

Maintenance

ActivityActive
ResponsivenessSlow

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    A secure MCP server for managing OPNsense firewalls through AI assistants. Provides 81 tools across system, firewall, network, DNS, DHCP, VPN, HAProxy, services, diagnostics, and security domains.
    81
    15
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A comprehensive MCP server for network device management via SSH/Telnet. Supports multiple vendors such as Cisco IOS and BDCOM, enabling AI assistants to execute commands and manage routers, switches, and firewalls.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables managing VyOS appliances through their HTTP API, providing tools for configuration, operational commands, and interactive troubleshooting.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cacack/mcp-server-vyos'

If you have feedback or need assistance with the MCP directory API, please join our Discord server