Nginx Proxy Manager MCP
Provides capabilities to list existing SSL certificates and request new Let's Encrypt certificates for configured domain names.
Allows for full management of Nginx Proxy Manager instances, including listing, creating, updating, and deleting proxy hosts and access lists.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Nginx Proxy Manager MCP Create a proxy host for dev.local pointing to 192.168.1.50:3000"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpRelated 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 all proxy hosts | — |
| Get proxy host by ID |
|
| Create a new proxy host |
|
| Update a proxy host |
|
| Delete a proxy host |
|
| Enable a proxy host |
|
| Disable a proxy host |
|
Optional create/update params: forward_scheme, certificate_id, ssl_forced, block_exploits, advanced_config
Redirection Hosts (7 tools)
Tool | Description | Required Params |
| List all redirection hosts | — |
| Get redirection host by ID |
|
| Create HTTP redirect |
|
| Update a redirection host |
|
| Delete a redirection host |
|
| Enable a redirection host |
|
| Disable a redirection host |
|
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 all TCP/UDP streams | — |
| Get stream by ID |
|
| Create a TCP/UDP stream proxy |
|
| Update a stream |
|
| Delete a stream |
|
| Enable a stream |
|
| Disable a stream |
|
Optional create/update params: tcp_forwarding, udp_forwarding, certificate_id
Dead Hosts / 404 Hosts (7 tools)
Tool | Description | Required Params |
| List all 404 dead hosts | — |
| Get dead host by ID |
|
| Create a 404 dead host |
|
| Update a dead host |
|
| Delete a dead host |
|
| Enable a dead host |
|
| Disable a dead host |
|
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 all SSL certificates | — |
| Get certificate by ID |
|
| Request a Let's Encrypt cert |
|
| Delete a certificate |
|
| Renew a Let's Encrypt cert |
|
| List supported DNS providers | — |
| Test HTTP-01 ACME reachability |
|
Access Lists (5 tools)
Tool | Description | Required Params |
| List all access lists | — |
| Get access list by ID |
|
| Create an access list |
|
| Update an access list |
|
| Delete an access list |
|
Optional create/update params: satisfy_any, pass_auth
Users (5 tools)
Tool | Description | Required Params |
| List all NPM users | — |
| Get user by ID |
|
| Create a new user |
|
| Update a user |
|
| Delete a user |
|
Optional create/update params: nickname, roles, is_disabled
Settings (3 tools)
Tool | Description | Required Params |
| List all NPM settings | — |
| Get a setting by ID |
|
| Update a setting |
|
Optional update params: value, meta
Audit Log (1 tool)
Tool | Description | Required Params |
| List recent audit log entries | — |
Reports (1 tool)
Tool | Description | Required Params |
| 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 pytestRequirements
Python 3.10+
Nginx Proxy Manager instance
Valid NPM credentials
License
MIT
Available Tools
50 toolscreate_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
Scored across 50 tools
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.
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.
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.
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
Related MCP Connectors
Manage Nitrozen.io changelog projects, entries and API tokens from any MCP client.
Official xCloud MCP: manage servers, sites, WordPress, SSL, backups and deploys from any MCP client.
Agent-first web hosting: deploy sites, apps, databases and domains over MCP.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Nginx Proxy Manager instances through natural language, covering 28 tools for proxy hosts, certificates, streams, and more.MIT
- AlicenseCqualityCmaintenanceMCP server that abstracts the Nginx Proxy Manager API, enabling management of proxy hosts, redirections, streams, certificates, access lists, and users through natural language.5413 npm1AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Nginx Proxy Manager, including proxy hosts, SSL certificates, streams, and more.6 npmISC
- AlicenseBqualityCmaintenanceEnables AI agents to manage Nginx Proxy Manager (reverse proxies, streams, redirects, and Let's Encrypt certificates) through natural language commands.3023 npmMIT