基础设施管理MCP服务器集合

一个用于AI助手与家庭实验室和Steamroller Studios基础设施集成的MCP服务器集合,提供Proxmox、UniFi、Zabbix、Bacula等系统的管理、监控和自动化能力。

  • by dwpdkp
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dwpdkp/MCP-Servers

使用说明

MCP-Servers

A collection of Model Context Protocol (MCP) server implementations (some authored in-house, some vendored third-party frameworks/packages), used for AI-assistant integration with home lab and Steamroller Studios infrastructure.

Overview

Server Description Origin Security model
proxmox-mcp Proxmox VE management: nodes, VMs/LXCs, storage, snapshots, cloud-init, exec In-house Safety tiers (safe/restricted/critical); critical tools need PROXMOX_ALLOW_DANGER=true + confirmation; TLS fail-closed (PROXMOX_ALLOW_INSECURE_TLS)
unifi-mcp UniFi local controller: clients, devices, firewall policies, port forwards, WLANs, VLANs In-house Per-tool confirm=true gates; extra gates for WiFi security downgrade and internet-facing port forwards; RFC1918/port-range input validation
zabbix-mcp Zabbix monitoring: hosts, templates, triggers, items, users, scripts, config import/export Fork of mhajder/zabbix-mcp READ_ONLY_MODE toggle (upstream) plus fork-specific confirm=true gates on destructive/privilege-changing tools, incl. dual-flag gate for granting super-admin
altaro-mcp Read-only Altaro VM Backup on STEAMHV1/STEAMHV2: per-VM results and failure streaks (event log), live job progress mapped to VMs and per-VM last/next/offsite status (Altaro REST API), service state; all over SSH In-house No mutating tools; dedicated AD account svc-altaro-api (enigma svc-altaro-api, 22304; was svc-altaro-mcp until 2026-10-15) for the API, password passed over SSH stdin, never on a command line; VM name filter validated by regex
bconsole-mcp Real-time Bacula Director access via bconsole over SSH (accurate live job byte counts) In-house confirm=true gates on job/catalog mutations; console() restricted to a read-only verb allowlist; stdin command-injection protection
bacularis-mcp Read-only Bacula/Bareos backup reporting via the Bacularis REST API In-house Genuinely read-only, no gating needed
unraid-mcp Unraid GraphQL API: system, array, docker, VMs, plugins, notifications, live telemetry Third-party (jmagar/unraid-mcp) Confirm-gated destructive subactions built in upstream; not modified here
mcp_youtube_dlp YouTube video/audio download via yt-dlp In-house Personal download tool; no destructive/shared-infrastructure operations
weather Public NWS weather alerts and forecasts In-house Public, unauthenticated, read-only API wrapper
fastmcp Vendored reference copy of the FastMCP framework (kept for reading/example purposes when building future in-house servers — not imported by anything in this repo) Third-party (jlowin/fastmcp) Framework, not a running server. Refreshed to upstream v3.4.4 on 2026-07-23 (was a stale pre-2.x dev build, source of 8 open Dependabot alerts). No auto-update — re-clone the latest tagged release periodically (pip index versions fastmcp for the current version) so it doesn't drift stale and re-trigger alerts.
MCP-Builder-Stuff Vendored MCP Python SDK reference Third-party (modelcontextprotocol/python-sdk) Framework, not a running server

Security posture

Several of the in-house servers (proxmox-mcp, unifi-mcp, zabbix-mcp, bconsole-mcp) went through a security-hardening pass driven by a CISSP-agent review. The consistent principle applied: make mutating/destructive tools safe by default in code, not by disabling them. Rather than shipping a global read-only toggle as the only safeguard, every destructive or high-impact tool call now requires the caller to pass an explicit confirm=true (or, for the highest-risk actions, two independent flags; see each server's README for its exact gate names). A tool call without confirmation raises an error before any request reaches the underlying API/SSH/subprocess layer. Nothing is silently blocked, but nothing destructive runs by accident either.

Where relevant, additional hardening was layered on top of confirmation gates:

  • Input validation: RFC1918/port-range checks on unifi-mcp port forwards; strict ObjectID pattern checks on all UniFi _id params; VMID/identifier sanitization in proxmox-mcp
  • Fail-closed TLS: proxmox-mcp requires a second explicit opt-in (PROXMOX_ALLOW_INSECURE_TLS) to actually disable certificate verification, rather than silently downgrading on PROXMOX_VERIFY_SSL=false
  • Command-injection protection: bconsole-mcp rejects any caller-controlled value containing a newline before it can reach bconsole's SSH-piped stdin REPL
  • Escape-hatch allowlisting: bconsole-mcp's raw console() passthrough is restricted to read-only verbs, closing the loophole where it could otherwise bypass every other tool's confirm gate
  • Privilege-escalation dual-gating: zabbix-mcp's user_update and proxmox-mcp's delete_instance require a second, distinct flag beyond confirm=true for their highest-risk case (granting Zabbix super-admin; deleting a VM/container)

See each server's README for its full tool list and exact gate names/parameters.

What is MCP?

The Model Context Protocol (MCP) is an open standard created by Anthropic that provides a universal way to connect AI assistants to external data sources and tools. It uses JSON-RPC 2.0 for communication and supports multiple transport protocols (stdio, HTTP, SSE).

For detailed technical background, see MCP-web-research.md.

Repository

git clone git@github.com:dwpdkp/mcp-servers.git
cd mcp-servers

Each in-house server directory has its own README with setup, environment variables, .mcp.json client config, and a full tool reference. Start there for any given server. fastmcp/ and MCP-Builder-Stuff/ are vendored third-party dependencies, not standalone servers to run directly.

Development

Most servers use uv as the package manager.

cd <server-dir>
uv sync
uv run pytest    # where a test suite exists (proxmox-mcp, unifi-mcp, zabbix-mcp)

See CLAUDE.md for repo-wide development guidelines.

Documentation

  • CLAUDE.md: development guidelines for Claude Code working in this repo
  • MCP-web-research.md: comprehensive MCP technical reference
  • Per-server README.md: setup, tools, and security model for each server

License

  • proxmox-mcp, unifi-mcp, bconsole-mcp, bacularis-mcp, weather: MIT
  • zabbix-mcp: MIT (fork of mhajder/zabbix-mcp, also MIT)
  • unraid-mcp: see upstream project
  • mcp_youtube_dlp: GPL-2.0
  • fastmcp, MCP-Builder-Stuff: see vendored project license

Resources


Document History

Date Author Changes
2026-07-14 Doug Pearson Full rewrite: added proxmox-mcp, zabbix-mcp, bconsole-mcp, unraid-mcp to the overview (previously missing); replaced placeholder clone URL with actual origin; added Security posture section summarizing the confirm-gate hardening pass across proxmox-mcp/unifi-mcp/zabbix-mcp/bconsole-mcp
2026-09-24 Doug Pearson Added altaro-mcp; tool-search descriptions and instructions= for bacularis-mcp and proxmox-mcp