Nginx代理管理器MCP服务器

一个通过AI助手(如Claude)管理Nginx Proxy Manager的MCP服务器,提供代理主机、流、重定向主机、SSL证书等的管理功能。

  • by thangho98
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 thangho98/npm-mcp-server

使用说明

Nginx代理管理器MCP服务器

MCP(模型上下文协议)服务器,用于通过Claude等人工智能助手管理Nginx代理管理器。

特性

此服务器提供管理工具:

代理主机

  • list_proxy_hosts -列出所有代理主机
  • get_proxy_host -获取特定代理主机的详细信息
  • create_proxy_host -创建新的代理主机
  • update_proxy_host -更新现有代理主机
  • delete_proxy_host -删除代理主机
  • enable_proxy_host / disable_proxy_host -启用/禁用代理主机

流(TCP/UDP)

  • list_streams -列出所有流
  • create_stream -创建新流
  • delete_stream -删除流
  • enable_stream / disable_stream -启用/禁用流

重定向主机

  • list_redirection_hosts -列出所有重定向
  • create_redirection_host -创建新的重定向
  • delete_redirection_host -删除重定向

SSL证书

  • list_certificates -列出所有证书
  • get_certificate -获取证书详细信息
  • renew_certificate -续订证书
  • delete_certificate -删除证书

访问列表

  • list_access_lists -列出所有访问列表
  • create_access_list -创建新的访问列表
  • delete_access_list -删除访问列表

404主机

  • list_dead_hosts -列出所有404台主机
  • create_dead_host -新建404主机
  • delete_dead_host -删除404主机

用户和状态

  • list_users -列出所有用户
  • get_status -获取NPM状态和MCP服务器模式

安装

cd npm-mcp-server
npm install
npm run build

配置

环境变量

变量 描述 默认值
NPM_URL Nginx代理管理器URL http://localhost:81
NPM_EMAIL 登录电子邮件(必填) -
NPM_PASSWORD 登录密码(必填) -
NPM_READONLY 只读模式(块创建/更新/删除) false

只读模式

当 NPM_READONLY=true,服务器只允许读取操作:

  • ✅ list_* -列出资源
  • ✅ get_* -获取资源详细信息
  • ❌ create_* -创建(已阻止)
  • ❌ update_* -更新(已阻止)
  • ❌ delete_* -删除(已阻止)
  • ❌ enable_* / disable_* -启用/禁用(阻止)
  • ❌ renew_certificate -续订证书(已阻止)

当您只想让AI查看信息而不修改配置时,请使用只读模式。

克劳德桌面版

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "nginx-proxy-manager": {
      "command": "node",
      "args": ["/path/to/npm-mcp-server/dist/index.js"],
      "env": {
        "NPM_URL": "http://your-npm-host:81",
        "NPM_EMAIL": "admin@example.com",
        "NPM_PASSWORD": "your-password",
        "NPM_READONLY": "false"
      }
    }
  }
}

克劳德代码(VSCode)

添加到 .claude/settings.json:

{
  "mcpServers": {
    "nginx-proxy-manager": {
      "command": "node",
      "args": ["/path/to/npm-mcp-server/dist/index.js"],
      "env": {
        "NPM_URL": "http://your-npm-host:81",
        "NPM_EMAIL": "admin@example.com",
        "NPM_PASSWORD": "your-password",
        "NPM_READONLY": "false"
      }
    }
  }
}

只读模式配置示例

{
  "mcpServers": {
    "nginx-proxy-manager": {
      "command": "node",
      "args": ["/path/to/npm-mcp-server/dist/index.js"],
      "env": {
        "NPM_URL": "http://your-npm-host:81",
        "NPM_EMAIL": "admin@example.com",
        "NPM_PASSWORD": "your-password",
        "NPM_READONLY": "true"
      }
    }
  }
}

用法示例

创建代理主机

Create a proxy host for domain app.example.com, forward to 192.168.1.100:8080

列出所有代理主机

Show me all proxy hosts

创建TCP流

Create a TCP stream from port 3306 forwarding to mysql-server:3306

管理证书

List all SSL certificates and tell me which ones are expiring soon

CLI工具

独立的CLI工具也可用于直接命令行使用或与OpenClaw技能集成。

CLI使用情况

# Set environment variables
export NPM_URL="http://your-npm-host:81"
export NPM_EMAIL="admin@example.com"
export NPM_PASSWORD="your-password"

# Get status
node dist/cli.js status

# List proxy hosts
node dist/cli.js proxy-hosts list

# Create a proxy host
node dist/cli.js proxy-hosts create --domains "app.example.com" --forward-host "192.168.1.100" --forward-port 8080

# Delete a proxy host
node dist/cli.js proxy-hosts delete 15

# List certificates
node dist/cli.js certificates list

# List streams
node dist/cli.js streams list

开放式法律技能

对于OpenClaw用户,请复制 skills/nginx-proxy-manager 文件夹到 ~/.openclaw/skills/:

cp -r skills/nginx-proxy-manager ~/.openclaw/skills/

然后设置所需的环境变量,并使用OpenClaw中的技能。

发展

# Build
npm run build

# Watch mode
npm run dev

许可证

麻省理工学院