Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLogging level.INFO
SENTRY_DSNNoSentry DSN to enable error tracking and performance monitoring.
OXIDIZED_URLYesBase URL of oxidized-web (include the url_prefix if one is configured). Required for the server to connect to Oxidized.
MCP_HTTP_HOSTNoHost to bind the HTTP server when using sse or http transport.127.0.0.1
MCP_HTTP_PORTNoPort to bind the HTTP server when using sse or http transport.8000
MCP_TRANSPORTNoTransport type: stdio, sse, or http.stdio
READ_ONLY_MODENoSet to true to disable operations (trigger_node_backup, reload_nodes).false
SENTRY_RELEASENoSentry release version (auto-detected from package if not set).
OXIDIZED_TIMEOUTNoRequest timeout in seconds.30
OXIDIZED_PASSWORDNoOptional HTTP Basic auth password for oxidized-web behind a reverse proxy.
OXIDIZED_USERNAMENoOptional HTTP Basic auth username for oxidized-web behind a reverse proxy.
RATE_LIMIT_ENABLEDNoSet to true to enable rate limiting.false
SENTRY_ENABLE_LOGSNoEnable Sentry log capture as breadcrumbs and events.true
SENTRY_ENVIRONMENTNoSentry environment name (e.g. production, staging).
OXIDIZED_VERIFY_SSLNoWhether to enable SSL certificate verification.true
TOOL_SEARCH_ENABLEDNoSet to true to replace full tool listings with search_tools + call_tool.false
TOOL_SEARCH_STRATEGYNoSearch strategy: bm25 (natural language) or regex (pattern match).bm25
MCP_HTTP_BEARER_TOKENNoOptional bearer token for HTTP transport authentication.
OXIDIZED_DISABLED_TAGSNoComma-separated list of tags to disable tools for.
OXIDIZED_SEARCH_TIMEOUTNoTimeout for search_configs (oxidized-web reads every configuration).300
RATE_LIMIT_MAX_REQUESTSNoMaximum requests allowed per rate limit window.60
SENTRY_SEND_DEFAULT_PIINoInclude personally identifiable information in Sentry.false
TOOL_SEARCH_MAX_RESULTSNoMaximum number of tools returned by search_tools.5
SENTRY_PROFILE_LIFECYCLENoSentry profiling lifecycle mode: all, continuation, or trace.trace
OXIDIZED_REDACT_NODE_VARSNoRedact node vars (often device credentials) in tool output.true
RATE_LIMIT_WINDOW_MINUTESNoRate limit window size in minutes.1
SENTRY_TRACES_SAMPLE_RATENoSentry performance monitoring sample rate (0.0-1.0).1.0
SENTRY_PROFILE_SESSION_SAMPLE_RATENoSentry continuous profiling sample rate (0.0-1.0).1.0

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_nodesA

List nodes (network devices) managed by Oxidized.

Returns each node's name, full name (group/name), IP, group, model, last run status and time, and last run details. Node vars are redacted unless redaction is disabled in the server configuration. Pass a group or model on large installations: they are filtered by Oxidized itself, so only matching nodes are transferred. The group must match exactly; use find_nodes when unsure of the name.

get_nodeA

Get details of a single Oxidized node.

Returns the node's name, full name, IP, group, model, vars and details of its last backup run (start, end, status, duration).

find_nodesA

Find nodes by partial name, full name or IP address.

Useful to resolve an ambiguous device name before calling other tools. Exact matches are listed first, then prefix matches, then other substring matches (all case-insensitive).

get_backup_statsA

Summarise backup health across Oxidized nodes.

Computed from the node list (oxidized-web's own stats JSON is not usable): counts per last-run status, per group and per model, the success rate, and lists of failed nodes, nodes never backed up and stale nodes. Optionally limited to one group or model, filtered by Oxidized itself.

"Stale" means Oxidized has not attempted a backup within the threshold (e.g. it is not polling the node); nodes that are attempted but keep failing are listed under failed_nodes instead. Oxidized does not expose the time of the last successful backup, and its run history is kept in memory only (reset on restart). Right after trigger_node_backup a node briefly shows as never backed up, because Oxidized clears its last run while it is queued.

get_node_configA

Get the latest backed-up configuration of a node.

Large configurations are paged by lines: when 'truncated' is true, call again with offset set to 'next_offset' to read the rest.

search_configsA

Search the latest configurations of all nodes for a pattern.

oxidized-web first finds the nodes whose configuration matches, then those configurations are fetched to return the matching lines with line numbers. Use this to answer questions such as "which devices still have telnet enabled" or "where is VLAN 42 configured".

The pattern must be valid in both Ruby (oxidized-web) and Python regular expressions - stick to common syntax. Lines are matched one at a time, so patterns spanning several lines find nodes but no lines.

list_node_versionsA

List the stored configuration versions of a node, newest first.

Each version has its git oid, date, author and commit message. Requires the Oxidized 'git' (or 'gitcrypt') output.

get_node_versionA

Get the configuration of a node as it was at a specific version.

Large configurations are paged by lines: when 'truncated' is true, call again with offset set to 'next_offset' to read the rest.

diff_node_versionsA

Show what changed in a node's configuration between two versions.

Returns a unified diff from 'base_oid' (older) to 'oid' (newer). With no arguments besides the node it shows the most recent change.

trigger_node_backupA

Queue an immediate configuration backup of a node.

Oxidized moves the node to the head of its queue; the backup itself runs asynchronously. Check get_node afterwards for the run result, and list_node_versions for a new version if the configuration changed. Oxidized picks the node by name or IP only (no group), so node names must be unique - otherwise the first node with that name is queued.

reload_nodesA

Reload the Oxidized node list from its source (router.db, SQL, HTTP, ...).

Use after devices were added, removed or changed in the source so Oxidized picks up the change without waiting for its next refresh. Always reloads every node: oxidized-web's per-node reload (/reload?node=X) replaces the whole in-memory node list with just the matching nodes, so it is deliberately not offered.

Returns: Dictionary with Oxidized's response message

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing vs searching nodes, fetching node metadata vs configuration, viewing versions vs diffs, and explicit actions like triggering backups and reloading. Even overlapping tools like get_node and get_node_config are separated by their outputs (device details vs configuration content).

Naming Consistency5/5

All 11 tools follow a consistent verb_noun snake_case pattern (e.g., list_nodes, get_node_config, diff_node_versions). Verbs are descriptive and uniform, with no style mixing or vague generic names.

Tool Count5/5

11 tools is well-scoped for an Oxidized MCP server. Each tool serves a distinct function in the backup management workflow—discovery, inspection, search, versioning, and operational triggers—without redundancy or excessive granularity.

Completeness5/5

The surface covers the full lifecycle of Oxidized operations: discovering nodes (list/find), checking backup health (stats), retrieving configs (current and historical), comparing versions, triggering backups, and refreshing the node list. No obvious dead ends or missing operations for the stated purpose.

Maintenance

ActivityNo data
ResponsivenessNo issues