npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

nginx-proxy-manager-mcp

v1.1.3

Published

MCP server for Nginx Proxy Manager API

Readme

Nginx Proxy Manager MCP Server

An MCP (Model Context Protocol) server that provides tools for interacting with the Nginx Proxy Manager API.

Features

  • Full API coverage for Nginx Proxy Manager v2.12.3
  • Proxy host management (create, update, delete, enable/disable)
  • SSL certificate management (Let's Encrypt and custom certificates)
  • Access list management
  • User management
  • Stream management
  • Settings and reports

Installation

npm install nginx-proxy-manager-mcp

Configuration

Set the following environment variables:

  • NPM_BASE_URL: The base URL of your Nginx Proxy Manager API (default: http://localhost:81/api)

Usage with Claude Desktop

Add to your Claude Desktop configuration (claude_desktop_config.json):

{
  "mcpServers": {
    "nginx-proxy-manager": {
      "command": "npx",
      "args": ["nginx-proxy-manager-mcp"],
      "env": {
        "NPM_BASE_URL": "http://192.168.2.4:81/api"
      }
    }
  }
}

Quick Start

  1. Authenticate with NPM:

    Use npm_authenticate with your NPM credentials:
    - identity: [email protected]
    - secret: your-password
  2. List existing proxy hosts:

    Use npm_list_proxy_hosts to see all configured hosts
  3. Create a test proxy:

    Use npm_create_proxy_host with:
    - domain_names: ["test.example.com"]
    - forward_scheme: "http"
    - forward_host: "127.0.0.1"
    - forward_port: 80
    - block_exploits: true

Testing the MCP Server

To test the nginx-proxy-manager-mcp server:

  1. Enable stdout logging (already configured in the latest version)
  2. Authenticate: The server will log the authentication token and status
  3. Create a test proxy: Use a test domain pointing to localhost
  4. Verify: Check the proxy responds with curl or browser

Example test command:

curl -I http://test.example.com

Available Tools

Authentication

  • npm_authenticate - Authenticate with NPM using username/email and password

Proxy Hosts

  • npm_list_proxy_hosts - List all proxy hosts
  • npm_get_proxy_host - Get a specific proxy host
  • npm_create_proxy_host - Create a new proxy host
  • npm_update_proxy_host - Update an existing proxy host
  • npm_delete_proxy_host - Delete a proxy host
  • npm_enable_proxy_host - Enable a proxy host
  • npm_disable_proxy_host - Disable a proxy host

Certificates

  • npm_list_certificates - List all certificates
  • npm_create_certificate - Create a new certificate (Let's Encrypt or custom)
  • npm_renew_certificate - Renew a Let's Encrypt certificate
  • npm_delete_certificate - Delete a certificate

Access Lists

  • npm_list_access_lists - List all access lists
  • npm_create_access_list - Create a new access list
  • npm_update_access_list - Update an access list
  • npm_delete_access_list - Delete an access list

Reports

  • npm_get_hosts_report - Get statistics on all host types

Redirection Hosts

  • npm_list_redirection_hosts - List all redirection hosts
  • npm_get_redirection_host - Get a specific redirection host
  • npm_create_redirection_host - Create a new redirection host
  • npm_update_redirection_host - Update an existing redirection host
  • npm_delete_redirection_host - Delete a redirection host
  • npm_enable_redirection_host - Enable a redirection host
  • npm_disable_redirection_host - Disable a redirection host

404 Hosts

  • npm_list_dead_hosts - List all 404 hosts
  • npm_get_dead_host - Get a specific 404 host
  • npm_create_dead_host - Create a new 404 host
  • npm_update_dead_host - Update an existing 404 host
  • npm_delete_dead_host - Delete a 404 host
  • npm_enable_dead_host - Enable a 404 host
  • npm_disable_dead_host - Disable a 404 host

Audit Log

  • npm_get_audit_log - Get the audit log

Example Usage

Create a Proxy Host

// Tool: npm_create_proxy_host
{
  "domain_names": ["app.example.com"],
  "forward_scheme": "http",
  "forward_host": "192.168.1.100",
  "forward_port": 8080,
  "ssl_forced": true,
  "certificate_id": "new",
  "http2_support": true,
  "block_exploits": true
}

Create a Let's Encrypt Certificate

// Tool: npm_create_certificate
{
  "provider": "letsencrypt",
  "domain_names": ["app.example.com"],
  "meta": {
    "letsencrypt_email": "[email protected]",
    "letsencrypt_agree": true
  }
}

Create an Access List

// Tool: npm_create_access_list
{
  "name": "Admin Access",
  "satisfy_any": false,
  "pass_auth": true,
  "items": [
    {
      "username": "admin",
      "password": "securepassword"
    }
  ],
  "clients": [
    {
      "address": "192.168.1.0/24",
      "directive": "allow"
    }
  ]
}

Create a Redirection Host

// Tool: npm_create_redirection_host
{
  "domain_names": ["old.example.com"],
  "forward_http_code": 301,
  "forward_scheme": "https",
  "forward_domain_name": "new.example.com",
  "preserve_path": true,
  "ssl_forced": true,
  "block_exploits": true
}

Create a 404 Host

// Tool: npm_create_dead_host
{
  "domain_names": ["*.example.com"],
  "ssl_forced": false,
  "certificate_id": 0
}

Development

# Clone the repository
git clone <repository-url>
cd nginx-proxy-manager-mcp

# Install dependencies
npm install

# Build
npm run build

# Run in development mode
npm run dev

# Run tests
npm test

# Run integration tests with Docker
npm run test:integration

Debugging

The server includes stdout logging that shows:

  • Initialization with base URL
  • Authentication attempts and tokens
  • Tool calls and API requests
  • Response counts and status

This helps debug connection issues and verify the MCP server is working correctly.

API Coverage

This MCP server covers the following Nginx Proxy Manager API endpoints:

  • ✅ Proxy Hosts - Full CRUD operations plus enable/disable
  • ✅ SSL Certificates - Create, renew, and delete (Let's Encrypt and custom)
  • ✅ Access Lists - Full CRUD operations
  • ✅ Redirection Hosts - Full CRUD operations plus enable/disable
  • ✅ 404 Hosts - Full CRUD operations plus enable/disable
  • ✅ Audit Log - Read audit log entries
  • ✅ Reports - Host statistics
  • ✅ Users (partial - main operations)
  • ✅ Streams (partial - main operations)

Security Notes

  • Always use HTTPS for your NPM API endpoint in production
  • Store credentials securely
  • The MCP server requires authentication before performing any operations
  • API tokens expire and need to be refreshed

License

MIT