Skip to main content
Glama
julcap

nginx-certbot-mcp

restore_site

Destructive

Restore a domain's nginx config from its archived backup and enable it. Validates the configuration before activation and automatically rolls back if validation fails.

Instructions

Restore a domain's nginx config from its most recent archive (created by delete_site) and enable it. Destructive to any current config for that domain (which is backed up first, see rollback_site) - requires confirm:true. Test-renders before enabling and rolls back automatically if that fails. Does NOT reload nginx - call reload_nginx afterward.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to restore
confirmNoMust be true to actually act; false (default) is a dry run
archive_filenameNoA filename from list_archived_sites; defaults to the newest archive for this domain

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYes
successYes
reload_requiredYesTrue on success - nginx has not actually been reloaded yet

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.1

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description discloses key behavior: it backs up the current config first, test-renders before enabling, auto-rolls back on failure, and does NOT reload nginx. It also makes the confirm requirement explicit. This is substantial behavioral context not available from annotations alone.

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?

Three tightly packed sentences: purpose first, then destructive warning/confirm requirement, then the critical non-reload follow-up. Every sentence earns its place with no filler.

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

Completeness5/5

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

For a destructive tool with annotations and an output schema, the description covers the full workflow: source archive, backup behavior, confirmation, safety testing, rollback, and the required nginx reload afterward. No critical operational information is missing.

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 coverage is 100% and the schema already documents domain, confirm, and archive_filename well. The description reinforces that confirm:true is required and that the default archive is the most recent, but it does not add new parameter-level meaning beyond the schema. Baseline 3 is appropriate.

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?

The description states a specific verb and resource: 'Restore a domain's nginx config from its most recent archive... and enable it.' It clearly identifies where the archive comes from (delete_site) and what the tool does. This differentiates it from related tools like rollback_site and reload_nginx.

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

Usage Guidelines4/5

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

The description gives clear usage context: it is the restoration counterpart to delete_site, requires confirm:true, and must be followed by reload_nginx. It points to rollback_site for the backup aspect and list_archived_sites via archive_filename. It does not explicitly spell out when-not-to-use alternatives, but the context is strong.

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