Skip to main content
Glama
euisuh

Nginx Proxy Manager MCP

Create Proxy Host With Letsencrypt

create_proxy_host_with_letsencrypt

Request a Let's Encrypt certificate, then create a proxy host with HTTPS forced for new TLS-enabled hosts; use when no certificate exists yet.

Instructions

Request a Let's Encrypt certificate, then create a proxy host using that certificate with HTTPS forced. Use this for a new TLS-enabled proxy; use create_proxy_host when a certificate already exists or HTTPS forcing is not wanted. This triggers a certificate request before creating the host; failures report failed_step and any created certificate. Returns ok plus certificate and proxy_host objects on success. Set dry_run=True to preview the exact request without changing NPM.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address supplied to Let's Encrypt for certificate requests.
dry_runNoWhen True, return the exact request preview without changing NPM.
domain_namesYesDomain names routed by this host or certificate.
forward_hostYesUpstream hostname or IP address.
forward_portYesUpstream TCP port number.
access_list_idNoNPM access-list ID to attach; omit for no access list.
block_exploitsNoWhether NPM enables its exploit-blocking option.
forward_schemeYesUpstream scheme: http or https.
caching_enabledNoWhether NPM enables proxy caching.
allow_websocket_upgradeNoWhether NPM allows WebSocket upgrades.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv0.5.2
    • addedInput schema / properties / access_list_id / description
      Added value: +"NPM access-list ID to attach; omit for no access list."
    • addedInput schema / properties / allow_websocket_upgrade / description
      Added value: +"Whether NPM allows WebSocket upgrades."
    • addedInput schema / properties / block_exploits / description
      Added value: +"Whether NPM enables its exploit-blocking option."
    • addedInput schema / properties / caching_enabled / description
      Added value: +"Whether NPM enables proxy caching."
    • addedInput schema / properties / domain_names / description
      Added value: +"Domain names routed by this host or certificate."
    • addedInput schema / properties / dry_run / description
      Added value: +"When True, return the exact request preview without changing NPM."
    • addedInput schema / properties / email / description
      Added value: +"Email address supplied to Let's Encrypt for certificate requests."
    • addedInput schema / properties / forward_host / description
      Added value: +"Upstream hostname or IP address."
    • addedInput schema / properties / forward_port / description
      Added value: +"Upstream TCP port number."
    • addedInput schema / properties / forward_scheme / description
      Added value: +"Upstream scheme: http or https."
  2. First observedv0.5.1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: it discloses the certificate request side effect, failure reporting via failed_step and created certificate, the success return shape, and dry_run preview behavior. It omits auth/rate-limit context, which would matter for a Let's Encrypt operation, but the core behavioral traits are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the composite purpose, then usage, then behavioral details in a tight set of sentences. Every sentence earns its place and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation with a certificate side effect, no annotations, and an existing output schema, the description covers purpose, alternative selection, failure behavior, return summary, and dry_run. Missing auth and Let's Encrypt rate-limit notes are minor gaps given the output schema handles return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly. The description mentions dry_run semantics but adds no parameter meaning beyond what the schema provides, consistent with the baseline of 3 when structured data does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and composite resource: request a Let's Encrypt certificate then create a proxy host with HTTPS forced. It explicitly distinguishes itself from create_proxy_host, so an agent can select it without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance and names the alternative create_proxy_host with the exact conditions that favor it: a certificate already exists or HTTPS forcing is not wanted. No inference is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.