Skip to main content
Glama
Nginx Proxy Manager MCP

Nginx Proxy Manager MCP

by VeryBigSad

npm-mcp

MCP server for managing Nginx Proxy Manager (NPM) instances via Claude/AI assistants. 50 tools covering the full NPM API.

Version tracks NPM releases — v2.14.0 targets Nginx Proxy Manager v2.14.0.

Installation

# Install via uvx (recommended)
uvx nginx-proxy-manager-mcp

# Or install from source
uv sync
uv run nginx-proxy-manager-mcp

Related MCP server: @kognar/nginx-manager-mcp-server

Configuration

Add to your Claude Desktop config (~/.config/claude/config.json):

{
  "mcpServers": {
    "nginx-proxy-manager": {
      "command": "uvx",
      "args": ["nginx-proxy-manager-mcp"],
      "env": {
        "NPM_URL": "http://your-npm-instance:81",
        "NPM_EMAIL": "admin@example.com",
        "NPM_PASSWORD": "your-password"
      }
    }
  }
}

Available Tools (50)

Proxy Hosts (7 tools)

Tool

Description

Required Params

list_proxy_hosts

List all proxy hosts

—

get_proxy_host

Get proxy host by ID

host_id

create_proxy_host

Create a new proxy host

domain_names, forward_host, forward_port

update_proxy_host

Update a proxy host

host_id + any fields to change

delete_proxy_host

Delete a proxy host

host_id

enable_proxy_host

Enable a proxy host

host_id

disable_proxy_host

Disable a proxy host

host_id

Optional create/update params: forward_scheme, certificate_id, ssl_forced, block_exploits, advanced_config

Redirection Hosts (7 tools)

Tool

Description

Required Params

list_redirection_hosts

List all redirection hosts

—

get_redirection_host

Get redirection host by ID

host_id

create_redirection_host

Create HTTP redirect

domain_names, forward_http_code, forward_domain_name

update_redirection_host

Update a redirection host

host_id + any fields to change

delete_redirection_host

Delete a redirection host

host_id

enable_redirection_host

Enable a redirection host

host_id

disable_redirection_host

Disable a redirection host

host_id

Optional create/update params: forward_scheme (auto/http/https), preserve_path, certificate_id, ssl_forced, block_exploits, advanced_config

Streams (7 tools)

Tool

Description

Required Params

list_streams

List all TCP/UDP streams

—

get_stream

Get stream by ID

stream_id

create_stream

Create a TCP/UDP stream proxy

incoming_port, forwarding_host, forwarding_port

update_stream

Update a stream

stream_id + any fields to change

delete_stream

Delete a stream

stream_id

enable_stream

Enable a stream

stream_id

disable_stream

Disable a stream

stream_id

Optional create/update params: tcp_forwarding, udp_forwarding, certificate_id

Dead Hosts / 404 Hosts (7 tools)

Tool

Description

Required Params

list_dead_hosts

List all 404 dead hosts

—

get_dead_host

Get dead host by ID

host_id

create_dead_host

Create a 404 dead host

domain_names

update_dead_host

Update a dead host

host_id + any fields to change

delete_dead_host

Delete a dead host

host_id

enable_dead_host

Enable a dead host

host_id

disable_dead_host

Disable a dead host

host_id

Optional create/update params: certificate_id, ssl_forced, hsts_enabled, hsts_subdomains, http2_support, advanced_config

SSL Certificates (7 tools)

Tool

Description

Required Params

list_certificates

List all SSL certificates

—

get_certificate

Get certificate by ID

certificate_id

request_certificate

Request a Let's Encrypt cert

domain_names, nice_name

delete_certificate

Delete a certificate

certificate_id

renew_certificate

Renew a Let's Encrypt cert

certificate_id

list_dns_providers

List supported DNS providers

—

test_http_challenge

Test HTTP-01 ACME reachability

domains

Access Lists (5 tools)

Tool

Description

Required Params

list_access_lists

List all access lists

—

get_access_list

Get access list by ID

access_list_id

create_access_list

Create an access list

name

update_access_list

Update an access list

access_list_id + any fields to change

delete_access_list

Delete an access list

access_list_id

Optional create/update params: satisfy_any, pass_auth

Users (5 tools)

Tool

Description

Required Params

list_users

List all NPM users

—

get_user

Get user by ID

user_id

create_user

Create a new user

name, email

update_user

Update a user

user_id + any fields to change

delete_user

Delete a user

user_id

Optional create/update params: nickname, roles, is_disabled

Settings (3 tools)

Tool

Description

Required Params

list_settings

List all NPM settings

—

get_setting

Get a setting by ID

setting_id

update_setting

Update a setting

setting_id

Optional update params: value, meta

Audit Log (1 tool)

Tool

Description

Required Params

list_audit_log

List recent audit log entries

—

Reports (1 tool)

Tool

Description

Required Params

get_host_report

Get host count report

—

Usage Examples

Once configured, use natural language:

  • "List all my proxy hosts"

  • "Create a proxy host for example.com pointing to 192.168.1.100:8080"

  • "Set up a 301 redirect from old.example.com to new.example.com"

  • "Create a TCP stream forwarding port 3306 to my database server"

  • "Request a Let's Encrypt certificate for api.example.com"

  • "Enable the proxy host with ID 5"

  • "Show me the audit log"

Development

uv sync --dev
uv run pytest

Requirements

  • Python 3.10+

  • Nginx Proxy Manager instance

  • Valid NPM credentials

License

MIT

Available Tools

50 tools
create_access_listC

Create a new access list

Inputs: name (required), satisfy_any, pass_auth.

create_dead_hostD

Create a new 404 dead host

Inputs: domain_names (required), certificate_id, ssl_forced, hsts_enabled, +3 more.

create_proxy_hostC

Create a new proxy host

Inputs: domain_names (required), forward_host (required), forward_port (required), forward_scheme, +4 more.

create_redirection_hostC

Create a new redirection host (HTTP redirect)

Inputs: domain_names (required), forward_http_code (required), forward_domain_name (required), forward_scheme, +5 more.

create_streamC

Create a new TCP/UDP stream proxy

Inputs: incoming_port (required), forwarding_host (required), forwarding_port (required), tcp_forwarding, +2 more.

create_userC

Create a new NPM user

Inputs: name (required), email (required), nickname, roles, +1 more.

delete_access_listB

Delete an access list by ID

Inputs: access_list_id (required).

delete_certificateA

Delete an SSL certificate by ID

Inputs: certificate_id (required).

delete_dead_hostB

Delete a dead host by ID

Inputs: host_id (required).

delete_proxy_hostB

Delete a proxy host by ID

Inputs: host_id (required).

delete_redirection_hostB

Delete a redirection host by ID

Inputs: host_id (required).

delete_streamB

Delete a stream by ID

Inputs: stream_id (required).

delete_userB

Delete a user by ID

Inputs: user_id (required).

disable_dead_hostC

Disable a dead host

Inputs: host_id (required).

disable_proxy_hostD

Disable a proxy host

Inputs: host_id (required).

disable_redirection_hostB

Disable a redirection host

Inputs: host_id (required).

disable_streamC

Disable a stream

Inputs: stream_id (required).

enable_dead_hostC

Enable a dead host

Inputs: host_id (required).

enable_proxy_hostC

Enable a proxy host

Inputs: host_id (required).

enable_redirection_hostC

Enable a redirection host

Inputs: host_id (required).

enable_streamC

Enable a stream

Inputs: stream_id (required).

get_access_listB

Get a specific access list by ID

Inputs: access_list_id (required).

get_certificateA

Get a specific SSL certificate by ID

Inputs: certificate_id (required).

get_dead_hostB

Get a specific dead host by ID

Inputs: host_id (required).

get_host_reportA

Get host count report (proxy, redirection, stream, dead)

Inputs: no named parameters.

get_proxy_hostA

Get details of a specific proxy host by ID

Inputs: host_id (required).

get_redirection_hostA

Get a specific redirection host by ID

Inputs: host_id (required).

get_settingA

Get a specific setting by ID

Inputs: setting_id (required).

get_streamB

Get a specific stream by ID

Inputs: stream_id (required).

get_userB

Get a specific user by ID

Inputs: user_id (required).

list_access_listsA

List all access lists (basic auth, IP restrictions)

Inputs: no named parameters.

list_audit_logC

List recent audit log entries

Inputs: no named parameters.

list_certificatesB

List all SSL certificates in NPM

Inputs: no named parameters.

list_dead_hostsA

List all 404 dead hosts

Inputs: no named parameters.

list_dns_providersA

List supported DNS providers for DNS challenge certificates

Inputs: no named parameters.

list_proxy_hostsA

List all proxy hosts configured in NPM

Inputs: no named parameters.

list_redirection_hostsA

List all redirection hosts

Inputs: no named parameters.

list_settingsA

List all NPM settings

Inputs: no named parameters.

list_streamsB

List all TCP/UDP stream proxies

Inputs: no named parameters.

list_usersC

List all NPM users

Inputs: no named parameters.

renew_certificateB

Renew a Let's Encrypt certificate

Inputs: certificate_id (required).

request_certificateB

Request a new Let's Encrypt SSL certificate

Inputs: domain_names (required), nice_name (required).

test_http_challengeA

Test if domains are reachable for HTTP-01 ACME challenge

Inputs: domains (required).

update_access_listC

Update an existing access list

Inputs: access_list_id (required), name, satisfy_any, pass_auth.

update_dead_hostC

Update an existing dead host

Inputs: host_id (required), domain_names, certificate_id, ssl_forced, +4 more.

update_proxy_hostC

Update an existing proxy host

Inputs: host_id (required), domain_names, forward_scheme, forward_host, +5 more.

update_redirection_hostC

Update an existing redirection host

Inputs: host_id (required), domain_names, forward_scheme, forward_http_code, +6 more.

update_settingC

Update a setting

Inputs: setting_id (required), value, meta.

update_streamC

Update an existing stream

Inputs: stream_id (required), incoming_port, forwarding_host, forwarding_port, +3 more.

update_userC

Update an existing NPM user

Inputs: user_id (required), name, nickname, email, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 50 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action (e.g., create_proxy_host vs. create_redirection_host), with no overlap in purpose. All actions (create, read, update, delete, enable, disable) are clearly separated per resource.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_proxy_hosts, update_stream). There are no deviations or mixed conventions, making the naming highly predictable.

    Tool Count3/5

    50 tools is on the higher side for a single MCP server, even for a complex domain like Nginx Proxy Manager. While each tool earns its place given the multiple resource types and operations, the count feels slightly excessive and could be trimmed.

    Completeness4/5

    The tool surface covers all major CRUD and lifecycle operations for proxy hosts, streams, redirections, dead hosts, access lists, certificates, users, and settings. Minor gaps exist (e.g., no test/verify for proxies), but the core domain is thoroughly addressed.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers