Skip to main content
Glama

Add an app domain

nerdit_add_domain
DestructiveIdempotent

Serve one app at a subdomain the owner controls, such as app.example.com. Needs the Pro plan; at most 3 domains per account; a bare domain such as example.com is refused (the owner can redirect it to the subdomain at their registrar). Then tell the owner to create exactly the record returned: CNAME <record.name> -> <record.target> (the target is this account's own; when their DNS is on Cloudflare, set it DNS only, not proxied). Nothing is served until that CNAME is seen: the status stays awaiting_dns, and a name not verified by expires_at (24 hours) is removed. Once the record exists, call nerdit_check_domain. Adding the same name to the same app again returns it.

Input Schema

NameRequiredDescriptionDefault
hostYesThe domain name, a subdomain such as app.example.com.
node_idYesIdentifier of the machine, from nerdit_list_nodes.
service_nameYesName of the app on that machine.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses plan/limit constraints, the exact CNAME record to have the owner create, the Cloudflare DNS-only caveat, the pending state (awaiting_dns) that persists until the CNAME is observed, the 24-hour expires_at cleanup, and idempotent re-add behavior. Nothing here is recoverable from readOnlyHint/openWorldHint/destructiveHint alone.

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

Conciseness4/5

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

Front-loaded with purpose before constraints, and every clause carries operational weight (plan, limit, record format, TTL). It is dense and somewhat run-on across multiple clauses, but there is no filler sentence to cut.

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?

With no output schema, the description correctly carries the return semantics itself (record.name and record.target, the CNAME shape) and the lifecycle states (awaiting_dns, expiry). An agent has everything needed to call it and interpret the result.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds real constraint semantics for 'host' (must be a subdomain; bare domains are rejected) and clarifies that the record fields are returned for the caller to act on. It does not restate node_id/service_name, which the schema already covers.

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 resource ('Add an app domain', 'Serve one app at a subdomain') and immediately disambiguates the artifact the agent deals with, including a concrete example (app.example.com). It also names the sibling it hands off to (nerdit_check_domain), so it is distinguishable from the other domain tools.

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 prerequisites (needs the Pro plan, max 3 domains per account) and exclusions (bare domain such as example.com is refused), plus the required next step ('Once the record exists, call nerdit_check_domain'). The agent knows both when this tool applies and what to do after invoking it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources