Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server for Oxidized network device configuration backups
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
OXIDIZED_URL, OXIDIZED_USERNAME, OXIDIZED_PASSWORD, OXIDIZED_VERIFY_SSL, OXIDIZED_TIMEOUT, OXIDIZED_SEARCH_TIMEOUT, OXIDIZED_REDACT_NODE_VARS, READ_ONLY_MODE, OXIDIZED_DISABLED_TAGS, LOG_LEVEL, RATE_LIMIT_ENABLED, RATE_LIMIT_MAX_REQUESTS, RATE_LIMIT_WINDOW_MINUTES, TOOL_SEARCH_ENABLED, TOOL_SEARCH_STRATEGY, TOOL_SEARCH_MAX_RESULTSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"oxidized": {
"command": "uvx",
"args": [
"oxidized-mcp"
],
"env": {
"OXIDIZED_URL": "your-value",
"OXIDIZED_USERNAME": "your-value",
"OXIDIZED_PASSWORD": "your-value",
"OXIDIZED_VERIFY_SSL": "your-value",
"OXIDIZED_TIMEOUT": "your-value",
"OXIDIZED_SEARCH_TIMEOUT": "your-value",
"OXIDIZED_REDACT_NODE_VARS": "your-value",
"READ_ONLY_MODE": "your-value",
"OXIDIZED_DISABLED_TAGS": "your-value",
"LOG_LEVEL": "your-value",
"RATE_LIMIT_ENABLED": "your-value",
"RATE_LIMIT_MAX_REQUESTS": "your-value",
"RATE_LIMIT_WINDOW_MINUTES": "your-value",
"TOOL_SEARCH_ENABLED": "your-value",
"TOOL_SEARCH_STRATEGY": "your-value",
"TOOL_SEARCH_MAX_RESULTS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add oxidized --env OXIDIZED_URL=your-value --env OXIDIZED_USERNAME=your-value --env OXIDIZED_PASSWORD=your-value --env OXIDIZED_VERIFY_SSL=your-value --env OXIDIZED_TIMEOUT=your-value --env OXIDIZED_SEARCH_TIMEOUT=your-value --env OXIDIZED_REDACT_NODE_VARS=your-value --env READ_ONLY_MODE=your-value --env OXIDIZED_DISABLED_TAGS=your-value --env LOG_LEVEL=your-value --env RATE_LIMIT_ENABLED=your-value --env RATE_LIMIT_MAX_REQUESTS=your-value --env RATE_LIMIT_WINDOW_MINUTES=your-value --env TOOL_SEARCH_ENABLED=your-value --env TOOL_SEARCH_STRATEGY=your-value --env TOOL_SEARCH_MAX_RESULTS=your-value -- uvx oxidized-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"oxidized": {
"command": "uvx",
"args": [
"oxidized-mcp"
],
"env": {
"OXIDIZED_URL": "your-value",
"OXIDIZED_USERNAME": "your-value",
"OXIDIZED_PASSWORD": "your-value",
"OXIDIZED_VERIFY_SSL": "your-value",
"OXIDIZED_TIMEOUT": "your-value",
"OXIDIZED_SEARCH_TIMEOUT": "your-value",
"OXIDIZED_REDACT_NODE_VARS": "your-value",
"READ_ONLY_MODE": "your-value",
"OXIDIZED_DISABLED_TAGS": "your-value",
"LOG_LEVEL": "your-value",
"RATE_LIMIT_ENABLED": "your-value",
"RATE_LIMIT_MAX_REQUESTS": "your-value",
"RATE_LIMIT_WINDOW_MINUTES": "your-value",
"TOOL_SEARCH_ENABLED": "your-value",
"TOOL_SEARCH_STRATEGY": "your-value",
"TOOL_SEARCH_MAX_RESULTS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"oxidized": {
"type": "stdio",
"command": "uvx",
"args": [
"oxidized-mcp"
],
"env": {
"OXIDIZED_URL": "your-value",
"OXIDIZED_USERNAME": "your-value",
"OXIDIZED_PASSWORD": "your-value",
"OXIDIZED_VERIFY_SSL": "your-value",
"OXIDIZED_TIMEOUT": "your-value",
"OXIDIZED_SEARCH_TIMEOUT": "your-value",
"OXIDIZED_REDACT_NODE_VARS": "your-value",
"READ_ONLY_MODE": "your-value",
"OXIDIZED_DISABLED_TAGS": "your-value",
"LOG_LEVEL": "your-value",
"RATE_LIMIT_ENABLED": "your-value",
"RATE_LIMIT_MAX_REQUESTS": "your-value",
"RATE_LIMIT_WINDOW_MINUTES": "your-value",
"TOOL_SEARCH_ENABLED": "your-value",
"TOOL_SEARCH_STRATEGY": "your-value",
"TOOL_SEARCH_MAX_RESULTS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
OXIDIZED_USERNAME envOXIDIZED_VERIFY_SSL envOXIDIZED_TIMEOUT envOXIDIZED_SEARCH_TIMEOUT envOXIDIZED_REDACT_NODE_VARS envREAD_ONLY_MODE envOXIDIZED_DISABLED_TAGS envLOG_LEVEL envRATE_LIMIT_ENABLED envRATE_LIMIT_MAX_REQUESTS envRATE_LIMIT_WINDOW_MINUTES envTOOL_SEARCH_ENABLED envTOOL_SEARCH_STRATEGY envTOOL_SEARCH_MAX_RESULTS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account mhajder, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: OXIDIZED_URL, OXIDIZED_PASSWORD
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.2) reached the registry yesterday.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv), Docker on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Tethered Trust
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Let AI agents search, compare and back up network device configs stored in Oxidized
Installation · Tools · Configuration · Security
Oxidized MCP Server is a Python-based Model Context Protocol (MCP) server that gives AI assistants access to Oxidized, the network device configuration backup tool. It talks to the oxidized-web REST API to list devices, check backup health, read and search device configurations, browse and diff configuration history, and queue backups. It supports read-only mode, tag-based tool filtering, and bearer token authentication for HTTP transports.
group/name) or IP addressgit (or gitcrypt) outputThe easiest way to get started is to install from PyPI:
# Using UV (recommended)
uvx oxidized-mcp
pip install oxidized-mcp
Remember to configure the environment variables for your Oxidized instance before running the server:
# Create environment configuration
export OXIDIZED_URL=http://localhost:8888
For more details, visit: https://pypi.org/project/oxidized-mcp/
git clone https://github.com/mhajder/oxidized-mcp.git
cd oxidized-mcp
# Using UV (recommended)
uv sync
pip install -e .
cp .env.example .env
# Using UV (recommended)
uv run oxidized-mcp
oxidized-mcp
For development with additional tools:
# Clone and install with development dependencies
git clone https://github.com/mhajder/oxidized-mcp.git cd oxidized-mcp uv sync --group dev
uv run pytest
uv run pytest --cov=src/
uv run ruff check . uv run ruff format .
uv run ty check .
uv run prek install
# Oxidized Connection Details
OXIDIZED_URL=http://localhost:8888
OXIDIZED_VERIFY_SSL=true OXIDIZED_TIMEOUT=30
OXIDIZED_SEARCH_TIMEOUT=300
OXIDIZED_REDACT_NODE_VARS=true
READ_ONLY_MODE=false
OXIDIZED_DISABLED_TAGS=
LOG_LEVEL=INFO
RATE_LIMIT_ENABLED=false RATE_LIMIT_MAX_REQUESTS=60 RATE_LIMIT_WINDOW_MINUTES=1
TOOL_SEARCH_ENABLED=false
TOOL_SEARCH_STRATEGY=bm25
TOOL_SEARCH_MAX_RESULTS=5
The server optionally supports Sentry for error tracking, performance monitoring, and debugging. Sentry integration is completely optional and only initialized if configured.
To enable Sentry monitoring, install the optional dependency:
# Using UV (recommended)
uv sync --extra sentry
Enable Sentry by setting the SENTRY_DSN environment variable in your .env file:
# Required: Sentry DSN for your project
SENTRY_DSN=https://your-key@o12345.ingest.us.sentry.io/6789
SENTRY_TRACES_SAMPLE_RATE=1.0
SENTRY_SEND_DEFAULT_PII=false
SENTRY_ENVIRONMENT=production
SENTRY_RELEASE=1.2.2
SENTRY_PROFILE_SESSION_SAMPLE_RATE=1.0
SENTRY_PROFILE_LIFECYCLE=trace
SENTRY_ENABLE_LOGS=true
When enabled, Sentry automatically captures:
.env fileSentry is completely optional. If you don't set SENTRY_DSN, the server will run normally without any Sentry integration, and no monitoring data will be collected.
list_nodes: List devices with optional filters (group, model, last run status, name/IP substring) and paging; group/model are filtered by Oxidized itself (/nodes/ / .json), so large inventories are not transferred in fullget_node: Get a single device's details and last backup run (accepts name or IP)find_nodes: Find devices by partial name, full name or IP, exact matches firstget_backup_stats: Backup health summary - counts per status, group and model, success rate, failed / never backed up / stale devices; optionally for a single group or modelget_node_config: Get the latest backed-up configuration of a device (by name or IP), paged by lines (offset / max_lines)search_configs: Search all configurations for a regex or literal text; returns matching lines with line numbers and optional contextRequire the Oxidized git or gitcrypt output.
list_node_versions: List stored configuration versions (oid, date, author, message), newest firstget_node_version: Get the configuration at a given version (full oid or unique prefix), paged by linesdiff_node_versions: Unified diff between two versions; defaults to the most recent changeHidden when READ_ONLY_MODE=true.
trigger_node_backup: Queue an immediate backup of a device, optionally recording a commit message and authorreload_nodes: Reload the whole node list from its source (a per-node reload is deliberately not offered: oxidized-web's /reload?node=X replaces the entire in-memory node list with the matching nodes)The server supports a read-only mode that disables all write operations for safe monitoring:
READ_ONLY_MODE=true
When enabled, only tools tagged read-only are exposed: trigger_node_backup and reload_nodes are hidden, while every node, configuration and history tool stays available.
You can disable specific categories of tools by setting disabled tags:
OXIDIZED_DISABLED_TAGS=search,diff
Available tags include:
node - Node listing and lookup toolsOnly the beginning is shown; read the rest in the repo