Free developer subdomains, DNS, disposable email, webhook capture, and MCP tools for Claude and Cursor
PNTR MCP Server has 17 well-defined tools with consistent naming, comprehensive input schemas, and good parameter descriptions. Tool names follow verb_noun convention (list_*, register_*, update_*, delete_*, toggle_*, check_*, get_*, wait_for_*). All tools have descriptions (10-200 chars, within baseline 10-1024). Input schemas are present and properly typed for all tools. However, OUTPUT schemas are not documented in the source code, no response field definitions provided. Tool descriptions are functional but brief (average ~80 chars), below the 194-char baseline for A+ tools. Security posture is good: untrusted content is properly scrubbed and sandboxed with delimiter markers. Error handling is implicit (not shown in source) but parameter validation hints exist. Composition is excellent: each tool has a single responsibility, parameters chain correctly (e.g., subdomain identifier accepted across multiple tools), and idempotent operations are annotated. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present for all 17 tools, exceeds minimum expectations. Main gap: lack of visible output schema documentation and error recovery guidance in descriptions.
Check if a subdomain name is available for registration
Permanently delete a subdomain
Get the full details of a single received email
Get the full details of a single captured HTTP request
List all available domains for subdomain registration
List received emails
List captured HTTP requests
Output schemas not documented. Source code shows input schemas for all 17 tools, but no response field definitions, types, or examples are provided in the visible source. LLMs cannot plan downstream calls or extract needed fields without documented output structure.
Tool descriptions are brief (average ~75 chars) and lack actionable context. Most descriptions state WHAT the tool does but omit WHEN to use it or dependency hints. E.g., 'Check if a subdomain name is available for registration' doesn't explain the typical workflow (check → then register) or what to do if unavailable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 74 | 2026-07-28+ | v2 |
List all your registered subdomains with their DNS records
Register a new subdomain, optionally with an initial DNS record
Customize the HTTP response returned by a capture-enabled subdomain
Enable or disable HTTP request capture for a subdomain
Enable or disable the email inbox for a subdomain. When enabled, any address @subdomain receives mail (kept 48 hours, 90 days on premium).
Enable or disable a subdomain. Disabling removes its DNS records so it stops resolving (config is kept); enabling re-creates them. Only enabled subdomains count toward your tier limit.
Enable or disable wildcard DNS for a subdomain (premium feature)
Set a DNS record on an existing subdomain (replaces an existing record of the same type) or update its description
Wait for an email matching optional filters, with long-poll support
Wait for an HTTP request matching optional filters, with long-poll support
Error handling and recovery guidance not visible in source. Tool descriptions do not include guidance on retryability, user-fixable errors, or next steps on failure. E.g., 'register_subdomain' should state what happens if the subdomain is taken or if quota is exceeded.
Long-poll timeout parameter (timeout_seconds) documented as '1 to 25 seconds' in schema but no guidance on retryability or server-side behavior after timeout. LLM won't know if it should retry, backoff, or fail.
Untrusted content scrubbing is implemented (formatUntrustedEmail, formatUntrustedRequest, scrubUntrustedDelimiters) but not documented in tool descriptions. Users and LLMs should know that email/request bodies are sandboxed to prevent prompt injection.