crogers2287/npm-mcp
If you are the rightful owner of npm-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
An MCP server for managing Nginx Proxy Manager through Claude and other MCP-compatible AI assistants.
NPM MCP - Nginx Proxy Manager MCP Server
An MCP (Model Context Protocol) server for managing Nginx Proxy Manager through Claude and other MCP-compatible AI assistants.
Features
- Proxy Hosts: Create, update, delete, enable/disable proxy hosts
- SSL Certificates: Manage Let's Encrypt certificates with DNS challenge support
- Streams: Configure TCP/UDP port forwarding
- Access Lists: Set up authentication with basic auth and IP rules
- Redirection Hosts: Configure URL redirections
- Dead Hosts (404): Set up custom 404 pages
- Users: Manage NPM user accounts
- System: View audit logs, settings, and host reports
Quick Install (Recommended)
The easiest way to get started is with the automated installer:
# Clone the repository
git clone https://github.com/crogers2287/npm-mcp.git
cd npm-mcp
# Run the installer
./install.sh
The installer will:
- Check prerequisites (Node.js 18+, npm, jq)
- Install dependencies and build the project
- Prompt for your NPM connection details
- Test the connection to your NPM instance
- Automatically configure Claude Code
Installer Options
./install.sh # Run interactive installation
./install.sh --help # Show help
./install.sh --uninstall # Remove NPM MCP configuration
Manual Installation
If you prefer to configure manually:
# Clone the repository
git clone https://github.com/crogers2287/npm-mcp.git
cd npm-mcp
# Install dependencies
npm install
# Build
npm run build
Configuration
Set the following environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
NPM_HOST | Yes | - | NPM server hostname (e.g., npm.example.com) |
NPM_PORT | No | - | NPM API port (omit for standard 80/443) |
NPM_EMAIL | Yes | - | Admin email for authentication |
NPM_PASSWORD | Yes | - | Admin password |
NPM_HTTPS | No | false | Set to true for HTTPS connections |
Claude Desktop Configuration
Add to your Claude Desktop config (~/.config/claude/claude_desktop_config.json on Linux or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"npm": {
"command": "node",
"args": ["/path/to/npm-mcp/dist/index.js"],
"env": {
"NPM_HOST": "npm.example.com",
"NPM_HTTPS": "true",
"NPM_EMAIL": "admin@example.com",
"NPM_PASSWORD": "your-password"
}
}
}
}
Claude Code Configuration
Add to your MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"npm": {
"command": "node",
"args": ["/path/to/npm-mcp/dist/index.js"],
"env": {
"NPM_HOST": "npm.example.com",
"NPM_HTTPS": "true",
"NPM_EMAIL": "admin@example.com",
"NPM_PASSWORD": "your-password"
}
}
}
}
Available Tools
Proxy Hosts
npm_list_proxy_hosts- List all proxy hostsnpm_get_proxy_host- Get proxy host detailsnpm_create_proxy_host- Create a new proxy hostnpm_update_proxy_host- Update a proxy hostnpm_delete_proxy_host- Delete a proxy hostnpm_enable_proxy_host- Enable a proxy hostnpm_disable_proxy_host- Disable a proxy host
SSL Certificates
npm_list_certificates- List all certificatesnpm_get_certificate- Get certificate detailsnpm_create_certificate- Create a Let's Encrypt certificatenpm_delete_certificate- Delete a certificatenpm_renew_certificate- Renew a certificate
Streams (TCP/UDP)
npm_list_streams- List all streamsnpm_get_stream- Get stream detailsnpm_create_stream- Create a new streamnpm_update_stream- Update a streamnpm_delete_stream- Delete a streamnpm_enable_stream- Enable a streamnpm_disable_stream- Disable a stream
Access Lists
npm_list_access_lists- List all access listsnpm_get_access_list- Get access list detailsnpm_create_access_list- Create an access listnpm_update_access_list- Update an access listnpm_delete_access_list- Delete an access list
Redirection Hosts
npm_list_redirection_hosts- List all redirectionsnpm_get_redirection_host- Get redirection detailsnpm_create_redirection_host- Create a redirectionnpm_update_redirection_host- Update a redirectionnpm_delete_redirection_host- Delete a redirectionnpm_enable_redirection_host- Enable a redirectionnpm_disable_redirection_host- Disable a redirection
Dead Hosts (404)
npm_list_dead_hosts- List all 404 hostsnpm_get_dead_host- Get 404 host detailsnpm_create_dead_host- Create a 404 hostnpm_delete_dead_host- Delete a 404 host
Users
npm_list_users- List all usersnpm_get_user- Get user detailsnpm_create_user- Create a usernpm_delete_user- Delete a user
System
npm_list_audit_log- View audit lognpm_list_settings- List settingsnpm_get_setting- Get a setting valuenpm_update_setting- Update a settingnpm_get_hosts_report- Get hosts summary
Resources
The MCP server also exposes these resources:
npm://hosts/summary- Summary of all configured hostsnpm://certificates/summary- Summary of SSL certificates
Usage Examples
Create a Proxy Host
Create a proxy host for app.example.com that forwards to 192.168.1.100:8080
Request SSL Certificate
Create a Let's Encrypt certificate for app.example.com
Set Up Stream Forwarding
Create a TCP stream to forward port 25565 to minecraft-server:25565
Create Access List with Basic Auth
Create an access list called "admin-only" with username "admin" and password "secret123"
API Reference
This MCP server wraps the Nginx Proxy Manager API. For detailed API documentation, see:
License
MIT
Contributing
Contributions welcome! Please open an issue or pull request.