PluginBench
MCP Server
Active
MIT

Proxmox VE MCP Server MCP Server

io.github.Samik081/mcp-pve

Manage Proxmox VE infrastructure through AI with 122 tools across VMs, containers, storage, and clusters.

What is the Proxmox VE MCP Server MCP server?

The Proxmox VE MCP Server is an MCP server that exposes 122 tools for managing Proxmox VE virtual environments through natural language in Claude, Cursor, and other AI assistants. It provides granular access control via three tiers (read-only, read-execute, full) and supports both local and remote HTTP deployment.

This server bridges Proxmox VE's REST API with AI assistants, enabling you to manage virtual machines, LXC containers, storage, networking, clustering, and access control through conversational commands. It's designed for infrastructure automation, monitoring, and administration with safety controls via access tiers and category filtering.

How to install Proxmox VE MCP Server

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • PVE_BASE_URL
    required

    URL of the Proxmox VE instance (e.g. https://pve.example.com:8006)

  • PVE_TOKEN_ID
    required
    secret

    Proxmox VE API token ID (e.g. user@pam!token-name)

  • PVE_TOKEN_SECRET
    required
    secret

    Proxmox VE API token secret

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-pve": {
      "command": "node",
      "args": [
        "-y",
        "@samik081/mcp-pve"
      ],
      "env": {
        "PVE_BASE_URL": "<YOUR_PVE_BASE_URL>",
        "PVE_TOKEN_ID": "<YOUR_PVE_TOKEN_ID>",
        "PVE_TOKEN_SECRET": "<YOUR_PVE_TOKEN_SECRET>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • pve_list_nodes — List all nodes in the cluster
  • pve_get_node_status — Get detailed node status (CPU, memory, uptime, load)
  • pve_get_node_rrddata — Get node RRD statistics over a time period
  • pve_get_node_version — Get PVE version info for a node
  • pve_get_node_dns — Get DNS settings for a node
  • pve_get_node_time — Get time and timezone info for a node
  • pve_get_node_syslog — Get system log entries from a node
  • pve_list_node_services — List all system services on a node
  • pve_manage_node_service — Start, stop, restart, or reload a node service
  • pve_list_qemu_vms — List all QEMU VMs on a node
  • pve_get_qemu_status — Get current VM status (CPU, memory, disk, network)
  • pve_get_qemu_config — Get VM configuration
  • pve_get_qemu_rrddata — Get RRD statistics over a time period for VMs
  • pve_list_qemu_snapshots — List all VM snapshots
  • pve_start_qemu_vm — Start a VM
  • pve_stop_qemu_vm — Stop a VM (immediate)
  • pve_shutdown_qemu_vm — Gracefully shut down a VM
  • pve_reboot_qemu_vm — Reboot a VM
  • pve_suspend_qemu_vm — Suspend a VM
  • pve_resume_qemu_vm — Resume a suspended VM

Use cases

  • Automate VM and container lifecycle management (create, start, stop, migrate) through natural language commands
  • Monitor cluster health, node status, and resource utilization in real-time
  • Manage storage backends and pull OCI container images for template caching
  • Administer users, roles, and access control policies across the Proxmox infrastructure
  • Perform bulk operations like cluster-wide VM startup, shutdown, and migration

Proxmox VE MCP Server MCP server FAQ

What is the Proxmox VE MCP Server?

It's an MCP server that exposes 122 tools for managing Proxmox VE through AI assistants like Claude and Cursor. You can control VMs, containers, storage, clustering, and access via natural language commands.

Is it free?

Yes, the server is open-source under the MIT license and available on npm and Docker.

How do I install it in Cursor or Claude?

Use the Claude Code CLI (`claude mcp add`) with npx or Docker, or add it to your `.cursor/mcp.json` or `claude_desktop_config.json` with the appropriate command and environment variables.

What authentication is required?

You need a Proxmox VE API token (ID and secret) created in the PVE UI under Datacenter > Permissions > API Tokens, plus the base URL of your PVE instance.

Can I limit what tools are available?

Yes, use the `PVE_ACCESS_TIER` environment variable to choose read-only (55 tools), read-execute (77 tools), or full (122 tools), and optionally filter by category with `PVE_CATEGORIES`.

Does it support self-signed certificates?

Yes, set `PVE_VERIFY_SSL=false` to disable SSL verification for self-signed certificates.

README (reference)

Source of truth, from the repository.

npm version Docker image License: MIT Node.js Version

MCP PVE

MCP server for Proxmox VE. Manage virtual machines, containers, storage, networking, and clusters through natural language in Cursor, Claude Code, and Claude Desktop.

Features

  • 122 tools across 12 categories covering the Proxmox VE REST API
  • Three access tiers (read-only, read-execute, full) for granular control
  • Category filtering via PVE_CATEGORIES to expose only the tools you need
  • Zero HTTP dependencies -- uses native fetch (Node 22+)
  • Self-signed cert support via PVE_VERIFY_SSL=false
  • Docker images for linux/amd64 and linux/arm64 on GHCR
  • Remote MCP via HTTP transport (MCP_TRANSPORT=http) using the Streamable HTTP protocol
  • TypeScript/ESM with full type safety

API Compatibility

Tested with Proxmox VE 9.2.4.

Quick Start

Run the server directly with npx:

PVE_BASE_URL="https://pve.example.com:8006" \
PVE_TOKEN_ID="root@pam!mcp" \
PVE_TOKEN_SECRET="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
npx -y @samik081/mcp-pve

The server validates your PVE connection on startup and fails immediately with a clear error if credentials are missing or invalid.

Docker

Run with Docker (stdio transport, same as npx):

docker run --rm -i \
  -e PVE_BASE_URL=https://pve.example.com:8006 \
  -e PVE_TOKEN_ID=root@pam!mcp \
  -e PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
  -e PVE_VERIFY_SSL=false \
  ghcr.io/samik081/mcp-pve

To run as a remote MCP server with HTTP transport:

docker run -d -p 3000:3000 \
  -e MCP_TRANSPORT=http \
  -e PVE_BASE_URL=https://pve.example.com:8006 \
  -e PVE_TOKEN_ID=root@pam!mcp \
  -e PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
  -e PVE_VERIFY_SSL=false \
  ghcr.io/samik081/mcp-pve

The MCP endpoint is available at http://localhost:3000 and a health check at http://localhost:3000/health.

Configuration

Claude Code CLI (recommended):

# Using npx
claude mcp add --transport stdio pve \
  --env PVE_BASE_URL=https://pve.example.com:8006 \
  --env PVE_TOKEN_ID=root@pam!mcp \
  --env PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
  --env PVE_VERIFY_SSL=false \
  -- npx -y @samik081/mcp-pve

# Using Docker
claude mcp add --transport stdio pve \
  --env PVE_BASE_URL=https://pve.example.com:8006 \
  --env PVE_TOKEN_ID=root@pam!mcp \
  --env PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
  --env PVE_VERIFY_SSL=false \
  -- docker run --rm -i ghcr.io/samik081/mcp-pve

# Using remote HTTP (connect to a running Docker container or HTTP server)
claude mcp add --transport http pve http://localhost:3000

JSON config (works with Claude Code .mcp.json, Claude Desktop claude_desktop_config.json, Cursor .cursor/mcp.json):

{
  "mcpServers": {
    "pve": {
      "command": "npx",
      "args": ["-y", "@samik081/mcp-pve"],
      "env": {
        "PVE_BASE_URL": "https://pve.example.com:8006",
        "PVE_TOKEN_ID": "root@pam!mcp",
        "PVE_TOKEN_SECRET": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "PVE_VERIFY_SSL": "false"
      }
    }
  }
}

Docker (stdio):

{
  "mcpServers": {
    "pve": {
      "command": "docker",
      "args": ["run", "--rm", "-i",
        "-e", "PVE_BASE_URL=https://pve.example.com:8006",
        "-e", "PVE_TOKEN_ID=root@pam!mcp",
        "-e", "PVE_TOKEN_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "-e", "PVE_VERIFY_SSL=false",
        "ghcr.io/samik081/mcp-pve"
      ]
    }
  }
}

Remote MCP (connect to a running Docker container or HTTP server):

{
  "mcpServers": {
    "pve": {
      "type": "streamable-http",
      "url": "http://localhost:3000"
    }
  }
}

Access Tiers

Control which tools are available using the PVE_ACCESS_TIER environment variable:

TierToolsDescription
full (default)122Read, execute, and write -- full control
read-execute77Read and execute -- no resource creation/deletion
read-only55Read only -- safe for exploration, no state changes

Tier details:

  • full: All 122 tools. Includes creating/deleting VMs, containers, storage, users, firewall rules, and more.
  • read-execute: 77 tools. All read tools plus power actions (start, stop, migrate), bulk guest actions, OCI image pull, backup execution, and task management.
  • read-only: 55 tools. List, get, status, and log tools only. No state changes.

Tools that are not available in your tier are not registered with the MCP server. They will not appear in your AI tool's tool list, keeping the context clean.

Environment Variables

VariableRequiredDefaultDescription
PVE_BASE_URLYes--URL of your PVE instance (e.g. https://pve:8006)
PVE_TOKEN_IDYes--API token ID (user@realm!tokenname)
PVE_TOKEN_SECRETYes--API token UUID secret
PVE_ACCESS_TIERNofullread-only, read-execute, or full
PVE_CATEGORIESNo(all)Comma-separated category allowlist
PVE_TOOL_BLACKLISTNo(none)Comma-separated list of tool names to exclude (e.g., pve_delete_qemu_vm)
PVE_TOOL_WHITELISTNo(none)Comma-separated list of tool names to force-include, bypassing access tier and category filters
PVE_VERIFY_SSLNotrueSet false for self-signed certs
DEBUGNofalseEnable debug logging to stderr
MCP_TRANSPORTNostdioTransport mode: stdio (default) or http
MCP_PORTNo3000HTTP server port (only used when MCP_TRANSPORT=http)
MCP_HOSTNo0.0.0.0HTTP server bind address (only used when MCP_TRANSPORT=http)
MCP_SESSION_IDLE_TIMEOUTNo1800Seconds of inactivity after which an HTTP session is closed and its memory released (sessions with a connected SSE stream are never closed). 0 disables. Only used when MCP_TRANSPORT=http
MCP_EXCLUDE_TOOL_TITLESNofalseSet true to omit tool titles from registration (saves tokens)

Create API tokens in the PVE UI under Datacenter > Permissions > API Tokens. Make sure to uncheck "Privilege Separation" if you want the token to inherit the user's full permissions.

Available Categories

nodes, qemu, lxc, storage, cluster, access, pools, network, firewall, backup, tasks, ha

Tools

mcp-pve provides 122 tools organized by category. Each tool's Access column shows the minimum tier required: read-only (available in all tiers), read-execute (requires read-execute or full), or full (requires full tier only). The Hints column shows tool behavior: read-only (no state changes), destructive (modifies existing state), idempotent (same result if called twice).

<details> <summary>Nodes (9 tools)</summary>
ToolDescriptionAccessHints
pve_list_nodesList all nodes in the clusterread-onlyread-only, idempotent
pve_get_node_statusGet detailed node status (CPU, memory, uptime, load)read-onlyread-only, idempotent
pve_get_node_rrddataGet node RRD statistics over a time period (CPU, IO wait, load, memory, network; same compact/bucketed output as guest rrddata)read-onlyread-only, idempotent
pve_get_node_versionGet PVE version info for a noderead-onlyread-only, idempotent
pve_get_node_dnsGet DNS settings for a noderead-onlyread-only, idempotent
pve_get_node_timeGet time and timezone info for a noderead-onlyread-only, idempotent
pve_get_node_syslogGet system log entries from a noderead-onlyread-only, idempotent
pve_list_node_servicesList all system services on a noderead-onlyread-only, idempotent
pve_manage_node_serviceStart, stop, restart, or reload a node serviceread-executedestructive
</details> <details> <summary>QEMU Virtual Machines (20 tools)</summary>
ToolDescriptionAccessHints
pve_list_qemu_vmsList all QEMU VMs on a noderead-onlyread-only, idempotent
pve_get_qemu_statusGet current VM status (CPU, memory, disk, network)read-onlyread-only, idempotent
pve_get_qemu_configGet VM configurationread-onlyread-only, idempotent
pve_get_qemu_rrddataGet RRD statistics over a time period (compact table, 60 buckets by default; fields, cf, buckets, format: raw)read-onlyread-only, idempotent
pve_list_qemu_snapshotsList all VM snapshotsread-onlyread-only, idempotent
pve_start_qemu_vmStart a VMread-executedestructive
pve_stop_qemu_vmStop a VM (immediate)read-executedestructive
pve_shutdown_qemu_vmGracefully shut down a VMread-executedestructive
pve_reboot_qemu_vmReboot a VMread-executedestructive
pve_suspend_qemu_vmSuspend a VMread-executedestructive
pve_resume_qemu_vmResume a suspended VMread-executedestructive
pve_reset_qemu_vmReset a VM (hard)read-executedestructive
pve_migrate_qemu_vmMigrate a VM to another noderead-executedestructive
pve_create_qemu_vmCreate a new VMfull—
pve_delete_qemu_vmDelete a VM and all its datafulldestructive
pve_update_qemu_configUpdate VM configurationfulldestructive, idempotent
pve_clone_qemu_vmClone a VMfull—
pve_create_qemu_snapshotCreate a VM snapshotfull—
pve_delete_qemu_snapshotDelete a VM snapshotfulldestructive
pve_rollback_qemu_snapshotRollback a VM to a snapshotfulldestructive, idempotent
</details> <details> <summary>LXC Containers (18 tools)</summary>
ToolDescriptionAccessHints
pve_list_lxc_containersList all LXC containers on a noderead-onlyread-only, idempotent
pve_get_lxc_statusGet current container statusread-onlyread-only, idempotent
pve_get_lxc_configGet container configurationread-onlyread-only, idempotent
pve_get_lxc_rrddataGet RRD statistics over a time period (compact table, 60 buckets by default; fields, cf, buckets, format: raw)read-onlyread-only, idempotent
pve_list_lxc_snapshotsList all container snapshotsread-onlyread-only, idempotent
pve_start_lxc_containerStart a containerread-executedestructive
pve_stop_lxc_containerStop a container (immediate)read-executedestructive
pve_shutdown_lxc_containerGracefully shut down a containerread-executedestructive
pve_reboot_lxc_containerReboot a containerread-executedestructive
pve_suspend_lxc_containerSuspend (freeze) a containerread-executedestructive
pve_resume_lxc_containerResume (unfreeze) a containerread-executedestructive
pve_create_lxc_containerCreate a new containerfull—
pve_delete_lxc_containerDelete a container and all its datafulldestructive
pve_update_lxc_configUpdate container configurationfulldestructive, idempotent
pve_clone_lxc_containerClone a containerfull—
pve_create_lxc_snapshotCreate a container snapshotfull—
pve_delete_lxc_snapshotDelete a container snapshotfulldestructive
pve_rollback_lxc_snapshotRollback a container to a snapshotfulldestructive, idempotent
</details> <details> <summary>Storage (9 tools)</summary>
ToolDescriptionAccessHints
pve_list_storageList all configured storage backendsread-onlyread-only, idempotent
pve_get_storage_configGet storage backend configurationread-onlyread-only, idempotent
pve_list_node_storageList available storage on a node with usage inforead-onlyread-only, idempotent
pve_get_storage_statusGet storage status and usage on a noderead-onlyread-only, idempotent
pve_list_storage_contentList storage content (images, ISOs, backups); filter by vmid, or mode latest / summary per guestread-onlyread-only, idempotent
pve_pull_oci_imagePull an OCI container image into a storage's template cache (PVE 9.1+)read-execute—
pve_create_storageCreate a new storage backendfull—
pve_update_storageUpdate storage configurationfulldestructive, idempotent
pve_delete_storageDelete a storage backendfulldestructive
</details> <details> <summary>Cluster (13 tools)</summary>
ToolDescriptionAccessHints
pve_get_cluster_statusGet cluster status (membership, quorum)read-onlyread-only, idempotent
pve_list_cluster_resourcesList all cluster resources with optional type filterread-onlyread-only, idempotent
pve_get_next_vmidGet the next available VMIDread-onlyread-only, idempotent
pve_get_cluster_logGet recent cluster log entriesread-onlyread-only, idempotent
pve_get_cluster_optionsGet datacenter optionsread-onlyread-only, idempotent
pve_list_cluster_backup_infoList guests not covered by backup jobsread-onlyread-only, idempotent
pve_get_cluster_ha_statusGet HA manager statusread-onlyread-only, idempotent
pve_list_cluster_replicationList all replication jobsread-onlyread-only, idempotent
pve_bulk_start_guestsBulk start VMs/containers cluster-wide (PVE 9.1+)read-executedestructive
pve_bulk_shutdown_guestsBulk shutdown VMs/containers cluster-wide (PVE 9.1+)read-executedestructive
pve_bulk_suspend_guestsBulk suspend VMs cluster-wide (PVE 9.1+)read-executedestructive
pve_bulk_migrate_guestsBulk migrate VMs/containers to a target node (PVE 9.1+)read-executedestructive
pve_update_cluster_optionsUpdate datacenter optionsfulldestructive, idempotent
</details> <details> <summary>Access Control (14 tools)</summary>
ToolDescriptionAccessHints
pve_list_usersList all usersread-onlyread-only, idempotent
pve_get_userGet user detailsread-onlyread-only, idempotent
pve_list_rolesList all roles and privilegesread-onlyread-only, idempotent
pve_list_groupsList all user groupsread-onlyread-only, idempotent
pve_list_aclsList all ACL entriesread-onlyread-only, idempotent
pve_list_domainsList authentication domains/realmsread-onlyread-only, idempotent
pve_list_user_tokensList the API tokens of a userread-onlyread-only, idempotent
pve_create_userCreate a new userfull—
pve_update_userUpdate user propertiesfulldestructive, idempotent
pve_delete_userDelete a userfulldestructive
pve_update_aclGrant or revoke ACL permissionsfulldestructive, idempotent
pve_create_user_tokenCreate an API token (secret shown once)full—
pve_update_user_tokenUpdate an API token's comment, expiration, or privsepfulldestructive, idempotent
pve_delete_user_tokenDelete an API token from a userfulldestructive
</details> <details> <summary>Pools (5 tools)</summary>
ToolDescriptionAccessHints
pve_list_poolsList all resource poolsread-onlyread-only, idempotent
pve_get_poolGet pool details and membersread-onlyread-only, idempotent
pve_create_poolCreate a resource poolfull—
pve_update_poolUpdate pool members and settingsfulldestructive, idempotent
pve_delete_poolDelete a resource poolfulldestructive
</details> <details> <summary>Network (5 tools)</summary>
ToolDescriptionAccessHints
pve_list_networksList all network interfaces on a noderead-onlyread-only, idempotent
pve_get_networkGet network interface configurationread-onlyread-only, idempotent
pve_create_networkCreate a network interfacefull—
pve_update_networkUpdate network interface configurationfulldestructive, idempotent
pve_delete_networkDelete a network interfacefulldestructive
</details> <details> <summary>Firewall (8 tools)</summary>
ToolDescriptionAccessHints
pve_get_firewall_optionsGet cluster firewall optionsread-onlyread-only, idempotent
pve_list_firewall_rulesList cluster firewall rulesread-onlyread-only, idempotent
pve_list_firewall_aliasesList firewall aliasesread-onlyread-only, idempotent
pve_list_firewall_ipsetsList firewall IP setsread-onlyread-only, idempotent
pve_update_firewall_optionsUpdate cluster firewall optionsfulldestructive, idempotent
pve_create_firewall_ruleCreate a firewall rulefull—
pve_update_firewall_ruleUpdate a firewall rulefulldestructive, idempotent
pve_delete_firewall_ruleDelete a firewall rulefulldestructive
</details> <details> <summary>Backup (5 tools)</summary>
ToolDescriptionAccessHints
pve_list_backup_jobsList all scheduled backup jobsread-onlyread-only, idempotent
pve_get_backup_jobGet backup job configurationread-onlyread-only, idempotent
pve_run_backupRun an immediate backup (vzdump)read-execute—
pve_create_backup_jobCreate a scheduled backup jobfull—
pve_delete_backup_jobDelete a scheduled backup jobfulldestructive
</details> <details> <summary>Tasks (4 tools)</summary>
ToolDescriptionAccessHints
pve_list_tasksList recent tasks on a noderead-onlyread-only, idempotent
pve_get_task_statusGet task status by UPIDread-onlyread-only, idempotent
pve_get_task_logGet task log output by UPIDread-onlyread-only, idempotent
pve_stop_taskStop a running taskread-executedestructive
</details> <details> <summary>High Availability (12 tools)</summary>
ToolDescriptionAccessHints
pve_list_ha_resourcesList all HA-managed resourcesread-onlyread-only, idempotent
pve_get_ha_resourceGet HA configuration for a resourceread-onlyread-only, idempotent
pve_list_ha_rulesList HA rules (node/resource affinity)read-onlyread-only, idempotent
pve_get_ha_ruleGet HA rule configurationread-onlyread-only, idempotent
pve_create_ha_resourceAdd a VM/container to HA managementfull—
pve_update_ha_resourceUpdate HA resource configurationfulldestructive, idempotent
pve_delete_ha_resourceRemove a resource from HA managementfulldestructive
pve_create_ha_ruleCreate an HA rulefull—
pve_update_ha_ruleUpdate an HA rulefulldestructive, idempotent
pve_delete_ha_ruleDelete an HA rulefulldestructive
pve_disarm_haDisarm the HA stack for maintenance (PVE 9.2+)fulldestructive, idempotent
pve_arm_haRe-arm the HA stack (PVE 9.2+)fulldestructive, idempotent

Note: HA groups are deprecated in PVE 9 in favor of HA rules. The per-service group field was removed from HA status output in PVE 9.1.

</details>

Verify It Works

After configuring your MCP client, ask your AI assistant:

"What nodes are in my Proxmox cluster?"

If the connection is working, the assistant will call pve_list_nodes and return your nodes with their current status.

Usage Examples

Once configured, ask your AI tool questions in natural language:

  • "List all VMs on node pve1" -- calls pve_list_qemu_vms to show VMs with their status, CPU, and memory usage.

  • "What's the status of VM 100?" -- calls pve_get_qemu_status to show real-time resource utilization.

  • "When did VM 100's CPU usage start rising today?" -- calls pve_get_qemu_rrddata with timeframe: "day" and fields: ["cpu"], which returns a compact 60-bucket table instead of ~1,400 raw samples.

  • "Start container 200 on pve1" -- calls pve_start_lxc_container to start the container and returns the task UPID.

  • "Create a snapshot of VM 100 called pre-upgrade" -- calls pve_create_qemu_snapshot to create a snapshot before changes.

  • "Show me the cluster resources" -- calls pve_list_cluster_resources to show all VMs, containers, storage, and nodes.

  • "When was the latest backup of VM 100 on PBS?" -- calls pve_list_storage_content with vmid: 100 and mode: "latest", instead of dumping every snapshot on the datastore.

  • "Migrate VM 100 to node pve2" -- calls pve_migrate_qemu_vm to live-migrate the VM to another node.

  • "Shut down VMs 103, 104 and 105 in parallel" -- calls pve_bulk_shutdown_guests to shut down multiple guests cluster-wide in a single request.

Troubleshooting

Connection refused / ECONNREFUSED

Check that PVE_BASE_URL is correct and includes the port (default: 8006). Ensure the PVE host is reachable from where the MCP server is running.

SSL certificate errors

If your PVE instance uses a self-signed certificate, set PVE_VERIFY_SSL=false. This disables TLS verification for all requests.

Tools not showing up

Check your access tier setting. In read-only mode, only 55 tools are registered. In read-execute mode, 77 tools are registered. Use full (or omit PVE_ACCESS_TIER) for all 122 tools. Check PVE_CATEGORIES -- only tools in listed categories are registered. Also verify the server started without errors by checking stderr output.

Development

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode (auto-reload)
npm run dev

# Open the MCP Inspector for interactive testing
npm run inspect

License

MIT

Related MCP servers

Manage AdGuard Home through AI assistants

1
TypeScript
MIT
View repository →

Manage Authentik through AI assistants

4
TypeScript
MIT
View repository →

Manage Komodo through AI assistants

5
TypeScript
MIT
View repository →

Quadruple consensus MCP server for code validation using Codex, Gemini, and Qwen

1
Rust
MIT
View repository →

Query 70+ ad tech protocols — OpenRTB, VAST, AdCP, AAMP, TCF, GPP — with citations.

View repository →

Drive your real, logged-in Chrome/Edge from AI agents over CDP. Faster. Sharper.