Technitium MCP Secure
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Technitium MCP Securelist the DNS records for the home.lab zone"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
technitium-mcp-secure
A security-hardened Model Context Protocol (MCP) server for managing Technitium DNS Server via its HTTP API.
Built for use with Claude Code and other MCP-compatible clients.
Features
39 tools covering DNS zones, records, blocking, cache, settings, apps, DNSSEC, logs, and diagnostics
Input validation on all parameters (RFC 1035 domain checks, IP validation, enum allowlists)
HTTPS enforcement with explicit HTTP opt-in for local networks
Read-only mode to expose only safe query tools
Confirmation required for destructive operations (delete zone, delete record, flush cache/allow/block, uninstall app)
Rate limiting with stricter limits on destructive operations
Audit logging as structured JSONL to stderr
Response sanitization to strip tokens, passwords, stack traces, and sensitive paths
Error sanitization to prevent credential/path leakage in error messages
Token file support for secure credential storage
Auth mutex to prevent concurrent authentication races
POST-only API calls for all mutating operations; zone export uses GET (required by Technitium API) with short-lived session tokens
Related MCP server: adguard-mcp
Quick Start
# Clone and build
git clone https://github.com/rosschurchill/technitium-mcp-secure.git
cd technitium-mcp-secure
npm install
npm run build
# Register with Claude Code (see "Generating an API Token" below first)
claude mcp add technitium-dns \
--env TECHNITIUM_URL=https://your-server-ip:5380 \
--env TECHNITIUM_TOKEN=your-api-token \
-- node /path/to/technitium-mcp-secure/dist/index.jsConfiguration
All configuration is via environment variables:
Variable | Required | Description |
| Yes | Server URL (e.g. |
| One of token/password | API token (preferred) |
| One of token/password | Path to file containing token (must be mode 0600) |
| One of token/password | Admin password (token is preferred) |
| No | Username (default: |
| No | Set |
| No | Set |
Authentication priority: TECHNITIUM_TOKEN > TECHNITIUM_TOKEN_FILE > TECHNITIUM_PASSWORD
Sensitive environment variables are cleared from process.env after being read.
Tools
Read-only (18 tools)
Tool | Description |
| Server version, uptime, forwarder config, failure rate |
| Query statistics with top clients/domains/blocked |
| Check if a newer server version is available |
| Test DNS resolution via the server |
| List all configured zones |
| Zone DNSSEC, transfer, and notify settings |
| Export a zone file in BIND format |
| List records in a zone |
| List blocked domains (hierarchical, supports drill-down) |
| List allowed domains (hierarchical, supports drill-down) |
| List cached zones (hierarchical, supports drill-down) |
| Full server settings |
| Query DNS logs with filters |
| List installed DNS apps |
| List available apps from the Technitium app store |
| Get configuration for an installed app |
| DNSSEC properties for a zone |
| DS records for a DNSSEC-signed zone |
Write (21 tools)
Tool | Description |
| Create a new DNS zone |
| Delete a zone (requires |
| Enable a disabled zone |
| Disable a zone (preserves records) |
| Update zone configuration (notify, transfer ACLs) |
| Add a DNS record |
| Update an existing record |
| Delete a record (requires |
| Block a domain |
| Remove a domain from the block list |
| Flush entire custom block list (requires |
| Allow a domain (bypass block lists) |
| Remove a domain from the allow list |
| Flush entire allow list (requires |
| Flush DNS cache (requires |
| Delete a specific domain from cache |
| Update server settings (forwarders, blocking, etc.) |
| Force immediate block list update |
| Temporarily disable blocking (auto re-enables) |
| Install a DNS app from the app store |
| Uninstall an app (requires |
Security
Generating an API Token
An API token is the recommended way to authenticate. Tokens avoid sending your admin password on every request and can be revoked independently.
Option A: Web Admin UI
Open the Technitium web admin (e.g.
http://your-server-ip:5380)Log in with your admin credentials
Go to Administration (gear icon, top right)
Scroll down to Sessions
Under Create API Token, enter a name (e.g.
mcp-server)Click Create
Copy the token value shown - this is the only time it will be displayed
Option B: API (curl)
# Login first to get a session token
curl -s -X POST 'http://your-server-ip:5380/api/user/login' \
-d 'user=admin&pass=yourpassword' | jq -r '.response.token'
# Then create a non-expiring API token using the session token
curl -s -X POST 'http://your-server-ip:5380/api/user/createToken' \
-d 'user=admin&pass=yourpassword&tokenName=mcp-server' | jq -r '.response.token'Storing the token securely:
# Option 1: Pass directly as env var (simplest)
claude mcp add technitium-dns \
--env TECHNITIUM_TOKEN=your-token-here ...
# Option 2: Use a token file (more secure - keeps token out of shell history)
echo "your-token-here" > ~/.technitium-token
chmod 600 ~/.technitium-token
claude mcp add technitium-dns \
--env TECHNITIUM_TOKEN_FILE=~/.technitium-token ...Local Network (HTTP)
If your Technitium server doesn't have TLS configured (common for LAN-only setups), you need to explicitly allow HTTP:
claude mcp add technitium-dns \
--env TECHNITIUM_URL=http://your-server-ip:5380 \
--env TECHNITIUM_TOKEN=your-token \
--env TECHNITIUM_ALLOW_HTTP=true \
-- node /path/to/technitium-mcp-secure/dist/index.jsA warning will be logged to stderr reminding you that credentials are sent in plaintext.
Read-only Mode
For monitoring-only use cases, hide all write tools:
claude mcp add technitium-dns-readonly \
--env TECHNITIUM_URL=http://your-server-ip:5380 \
--env TECHNITIUM_TOKEN=your-token \
--env TECHNITIUM_READONLY=true \
--env TECHNITIUM_ALLOW_HTTP=true \
-- node /path/to/dist/index.jsRate Limits
Global: 100 requests/minute
Create/mutate operations: 10/minute
Delete/flush operations: 5/minute
Audit Log
All tool calls are logged as JSONL to stderr with timestamps, tool name, sanitized arguments, result status, and duration. Sensitive values (tokens, passwords) are redacted before logging.
Not Yet Implemented
The Technitium API has ~173 endpoints. This MCP server covers the most useful 36. The following categories are available in the API but not yet exposed:
DHCP management — scopes, leases, reservations (~12 endpoints)
User & group administration — create/delete users, manage groups, permissions (~15 endpoints)
Cluster management — multi-server clustering, health, failover (~15 endpoints)
Zone import/clone/convert — import from file, clone from another server, convert zone types
DNSSEC signing & key management — sign/unsign zones, rotate keys, algorithm config
Allowed/blocked zone import/export — bulk import/export from files
Settings backup/restore — full server config backup and restore
Log management — log file deletion, log settings changes
If you need any of these, contributions are welcome or open an issue.
Compatibility
Tested against Technitium DNS Server v14.3 on Alpine Linux. All 36 API endpoints verified against the live v14 API.
Note: Technitium's API paths changed between versions. If you see 404 errors, check that your server version is v14+. Earlier versions used different paths (e.g. /api/allowedZones/list instead of /api/allowed/list).
Requirements
Node.js >= 18
Technitium DNS Server v14+
Changelog
v1.2.0
Add 19 new tools (39 total): remove/flush allowed & blocked, delete cached, enable/disable/configure/export zones, server settings management, temporary blocking disable, block list updates, app store/install/uninstall/config, DNSSEC info, update check
All 36 API endpoints verified returning 200 against live Technitium v14.3
Add "Not Yet Implemented" section documenting available API categories
v1.1.1
Fix
dns_resolvemissing requiredserverparameter (now defaults tothis-server)Fix
dns_query_logsmissingnameandclassPathparams for Query Logs (Sqlite) appFix
dns_list_allowed,dns_allow_domainusing wrong API path (/api/allowedZones/*->/api/allowed/*)Fix
dns_list_blocked,dns_block_domainusing wrong API path (/api/blockedZones/*->/api/blocked/*)Fix
dns_list_cacheusing wrong API path (/api/cache/zones/list->/api/cache/list)Fix
dns_allow_domain,dns_block_domainusing wrong param name (zone->domain)All 17 API endpoints verified returning 200 against live Technitium v14.3
v1.1.0
Security hardening: input validation, audit logging, rate limiting, response sanitization
HTTPS enforcement with HTTP opt-in, read-only mode, confirmation for destructive ops
Token file support, auth mutex, POST-only API calls, env var clearing
v1.0.0
Initial release with 20 tools for DNS management
License
MIT
Available Tools
39 toolsdns_add_recordB
Add a DNS record to a zone. Creates the zone automatically if it doesn't exist for Primary type.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name | |
| domain | Yes | Full domain name for the record | |
| type | Yes | Record type | |
| value | Yes | Record value (IP for A/AAAA, hostname for CNAME/MX/NS, text for TXT) | |
| ttl | No | TTL in seconds (default: 3600) | |
| overwrite | No | Overwrite existing records of the same type (default: false) | |
| priority | No | Priority for MX records |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses automatic zone creation for Primary type, but omits details on overwrite behavior, error conditions, or permission requirements. Partial disclosure is present but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core action and a key behavioral nuance with zero wasted words. Highly efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (7 parameters, zone creation behavior) and no output schema or annotations, the description covers the primary function but lacks usage examples, error scenarios, and guidance on choosing among siblings. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so parameters are well-documented there. The description adds no additional semantics beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a DNS record to a zone and mentions automatic zone creation for Primary type. It differentiates from sibling tools like dns_list_records but could more explicitly contrast with dns_create_zone or dns_update_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., dns_create_zone, dns_update_record). The description does not specify prerequisites or contexts where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_allow_domainA
Allow a domain name, bypassing any block lists. Useful for whitelisting false positives.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to allow (e.g. plex.direct) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description conveys the key behavior: allowing a domain and bypassing block lists. It is honest and direct, though it could mention persistence or permissions, but given simplicity it's sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The action is front-loaded: 'Allow a domain name'. Perfectly concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description covers purpose, usage, and behavior adequately. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is already clear in the schema. The tool description adds no extra meaning beyond 'bypassing block lists', which is context rather than parameter detail. Baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Allow' and resource 'domain name', and explains it bypasses block lists. It distinguishes itself from sibling tools like dns_block_domain and dns_remove_allowed by focusing on whitelisting false positives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'useful for whitelisting false positives', providing usage context. However, it lacks explicit when-not-to-use guidance or direct comparison with siblings, though the context is clear enough for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_block_domainB
Block a domain name. Queries to this domain will be denied by the DNS server.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to block (e.g. ads.example.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions denial of queries but omits persistence, reversibility, or subdomain impact. For a blocking action, key behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences with no redundant words. Every piece of information is purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple single-parameter tool without output schema, but lacks context about the persistence and scope of blocking, especially given the large set of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add any meaning beyond what the schema already provides for the 'domain' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Block') and the resource ('domain name'), and specifies the effect ('Queries ... denied'). This distinguishes it from sibling tools like dns_allow_domain or dns_remove_blocked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as dns_temp_disable_blocking or dns_flush_blocked. The description assumes the agent knows the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_check_updateA
Check if a newer version of Technitium DNS Server is available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description lacks behavioral traits such as whether the tool makes network calls, modifies state, or returns specific outputs. The agent cannot infer side effects or requirements from the description alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence of 10 words conveys the entire purpose without any extraneous information. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple check tool with no parameters and no output schema, the description is adequate but leaves ambiguity about what 'available' means (e.g., boolean, version string) and whether it requires internet connectivity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, the baseline is 4. The description adds no parameter info but is not needed since there are no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks for a newer version of Technitium DNS Server, using a specific verb ('Check') and resource ('newer version'). This distinguishes it from sibling tools that manage records, zones, or caches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, frequency, or context for checking updates, leaving the agent without explicit usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_create_zoneA
Create a new DNS zone. Use 'Primary' for hosting records locally, 'Forwarder' for conditional forwarding.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name (e.g. example.com) | |
| type | No | Zone type (default: Primary) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Create a new DNS zone,' implying mutation but giving no details on side effects, permissions, rate limits, or reversibility. This is insufficient for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are front-loaded: first states purpose, second adds parameter guidance. No redundant or wasted words. Achieves high density of useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, no nested objects), the description covers core functionality and provides type guidance. However, it omits edge cases (e.g., Secondary, Stub types) and does not explain return values or prerequisites, leaving some incompleteness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the meaning of the 'type' parameter (Primary vs Forwarder usage), which goes beyond schema enum labels. The 'zone' parameter is not further enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a new DNS zone' as verb+resource, and distinguishes itself from sibling tools like dns_delete_zone and dns_list_zones. The mention of specific types (Primary, Forwarder) adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use each zone type ('Primary for hosting records locally, Forwarder for conditional forwarding'). However, it does not advise on when not to use this tool or mention alternatives, leaving a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_delete_cachedA
Delete a specific domain from the DNS cache. Unlike flush, this only removes the specified domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to delete from cache (e.g. example.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the destructive nature (delete) and scoping (specific domain), but does not mention error handling, authentication needs, or side effects. Adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, directly stating the action and the key difference from a sibling. Every word is necessary and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter and no output schema, the description is mostly complete. It explains the core functionality and differentiation. A minor gap is not specifying behavior if the domain does not exist in the cache.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has full coverage (100%) for the single 'domain' parameter with a clear example. The description does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Delete a specific domain from the DNS cache' and distinguishes from 'flush' by specifying it removes only the given domain. This provides a specific verb and resource, and the distinction from a sibling tool is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Unlike flush, this only removes the specified domain,' which gives clear context for when to use this tool over the flush alternative. However, it does not explicitly state when not to use it or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_delete_recordC
Delete a specific DNS record from a zone. Requires confirm=true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name | |
| domain | Yes | Domain name of the record | |
| type | Yes | Record type | |
| value | Yes | Record value to delete (IP for A/AAAA, etc) | |
| confirm | No | Must be true to confirm deletion. Without this, returns a warning instead of deleting. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions the confirm flag but fails to address irreversibility, required permissions, side effects, or the response format. For a destructive operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loaded with the core action. It avoids fluff, but its brevity leaves out important details for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deletion tool with no output schema or annotations, the description lacks information on return values, success indicators, and consequences. It does not address how this tool fits among many similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are already described in the input schema. The description adds no additional meaning or examples beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and target (specific DNS record from a zone). It distinguishes from siblings like add or update, though it could be more explicit about the irreversible nature of deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes the critical requirement 'confirm=true to execute', but provides no guidance on when to use this tool versus alternatives like update_record or delete_cached. No exclusions or context for selection among many related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_delete_zoneA
Delete a DNS zone and all its records. Requires confirm=true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name to delete | |
| confirm | No | Must be true to confirm deletion. Without this, returns a warning instead of deleting. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states that deletion requires confirmation, but does not mention irreversibility, permission requirements, or side effects (e.g., all records permanently removed). For a destructive tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action and critical condition. No unnecessary words or repetition. Efficient for the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it's a simple two-parameter tool without output schema, the description covers the basics. However, it could be more complete by noting the permanent nature of the deletion or any prerequisites (e.g., zone must exist). The tool's destructive nature warrants a bit more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds meaning by explaining that confirm=true is required to execute, which goes beyond the schema's note that it 'must be true to confirm deletion.' This provides clear operational context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: delete a DNS zone and all its records. It uses a specific verb and resource, distinguishing it from sibling tools like dns_delete_record or dns_disable_zone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions the confirm requirement but does not provide guidance on when to use this tool versus alternatives (e.g., dns_disable_zone for deactivation, or dns_create_zone for creation). No explicit 'when not to use' or reference to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_disable_zoneA
Disable a DNS zone. The zone will stop responding to queries but its records are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name to disable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that queries stop but records are preserved, which is the key behavioral trait. Could mention reversibility via dns_enable_zone or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and effect. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is mostly complete. It explains what happens to the zone. Could add a note about being reversible or response behavior, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the single parameter 'zone' as 'Zone domain name to disable', and the description adds no further meaning. With 100% schema coverage, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (disable a DNS zone) and its effect (stops responding to queries but records preserved). It effectively distinguishes from siblings like dns_delete_zone, which would remove the zone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to temporarily disable a zone), but does not explicitly state when to use versus alternatives like dns_enable_zone or dns_delete_zone. No direct guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_dnssec_infoB
Get DNSSEC properties for a zone including signing status, key details, and algorithm info.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose read-only nature, permissions, or side effects. Burdens description, which fails to add transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence covering purpose and key details with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter; description adequately covers returned info (signing status, keys, algorithm). Lacks output format details but sufficient for low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% with zone description 'Zone domain name'. Description adds no extra meaning beyond schema, earning baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'DNSSEC properties for a zone', with specifics like signing status, key details, and algorithm info. It distinguishes from sibling tools like dns_list_zones or dns_get_ds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Given many sibling tools, explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_enable_zoneA
Enable a disabled DNS zone.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name to enable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool enables a disabled zone, implying a state change. However, it does not detail any side effects, required permissions, or behavior when the zone is already enabled. Without annotations, the description offers minimal but adequate transparency for a simple enable operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every word is essential, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, no output schema, and no annotations, the description is minimally adequate. However, it could be improved by noting that the zone must exist and be disabled, or by mentioning related tools like dns_disable_zone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with one parameter described as 'Zone domain name to enable'. The description adds no additional meaning beyond the schema, which already clearly documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Enable' and the resource 'disabled DNS zone', directly indicating the tool's action. It distinguishes itself from sibling tools like dns_disable_zone by specifying the opposite operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as citing prerequisites or contrasting with dns_disable_zone or dns_create_zone. It lacks any contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_export_zoneA
Export a DNS zone file in standard BIND format. Returns the zone file as text.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name to export |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It does not state whether this is read-only, destructive, or requires authentication. Minimal disclosure beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action, no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with one parameter and no output schema. Minor gaps: no mention of file size, encoding, or any limitations. Could briefly note that the zone must exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the parameter 'zone' is described as 'Zone domain name to export'. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (export), resource (DNS zone file), format (standard BIND), and output (text). Distinguishes from sibling tools like dns_list_zones which list but do not export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: export an existing zone. No explicit guidance on when to use vs alternatives (e.g., dns_list_zones for listing), no prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_flush_allowedA
Flush the entire allow list. All allowed domains will be removed. Requires confirm=true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to confirm flush. Without this, returns a warning instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses the destructive action (removes all allowed domains) and the required confirmation (confirm=true). It is transparent about the behavior, though it could mention irreversibility more explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the main purpose and add the required confirmation condition. Every sentence earns its place with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one boolean parameter and no output schema, the description covers the core action and the required confirmation. It differentiates from siblings by specifying 'allow list'. It could mention any side effects (e.g., no undo), but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds minimal meaning beyond the schema's parameter description. The schema already explains that confirm must be true and that without it a warning is returned, so the description provides no additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Flush') and the resource ('the entire allow list'), with 'all allowed domains will be removed' reinforcing the scope. It distinguishes from siblings like dns_flush_blocked and dns_flush_cache by specifying 'allow list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to clear all allowed domains) but does not explicitly state when to use this tool versus alternatives such as dns_remove_allowed for selective removal or dns_flush_blocked for blocked list. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_flush_blockedA
Flush the entire custom block list. All manually blocked domains will be removed. Requires confirm=true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to confirm flush. Without this, returns a warning instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey all behavioral traits. It discloses the destructive action (removing all manually blocked domains) and the confirm parameter, but does not mention permissions, reversibility, or effects on other blocked entries from blocklists. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence immediately states the action, and the second clarifies the confirmation requirement. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter tool and the absence of an output schema, the description adequately covers the essential aspects: action, effect, and prerequisite. It could mention the impact on non-manual block entries, but the tool is sufficiently described for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (confirm). The description adds value beyond the schema by explaining that confirm=true is required for execution and that omitting it returns a warning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool flushes the entire custom block list and removes all manually blocked domains, clearly distinguishing it from sibling tools like dns_remove_blocked which targets individual domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the confirm parameter requirement but does not provide explicit when-to-use or when-not-to-use guidance. It implies usage for bulk removal but lacks comparison with alternatives like dns_remove_blocked or dns_temp_disable_blocking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_flush_cacheA
Flush the entire DNS cache. Forces all subsequent queries to be resolved fresh from upstream. Requires confirm=true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true to confirm cache flush. Without this, returns a warning instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains that the tool flushes the entire cache and requires confirm, and mentions the warning behavior without confirm. However, it does not disclose potential side effects or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with the core action. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-param tool with no output schema, the description covers purpose and the key usage requirement. Missing return value info but not critical for this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for confirm. The tool description repeats the requirement but adds little extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Flush the entire DNS cache' with a specific verb and resource. It distinguishes from siblings like dns_flush_allowed and dns_flush_blocked by indicating this flushes the entire cache.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the requirement for confirm=true but lacks explicit guidance on when to use this tool versus alternatives like dns_flush_allowed or dns_flush_blocked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_get_app_configC
Get the configuration for an installed DNS app.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the installed app |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only states 'Get the configuration' without disclosing potential errors, permissions required, or what happens if the app is not found. Minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a single sentence. While efficient, it misses important details like return value or error conditions. Still, it's appropriately sized for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a single parameter, the description should at least hint at the structure of the configuration returned. It fails to do so, leaving the agent with incomplete information for proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the 'name' parameter. The tool description adds no additional meaning beyond what the schema already provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the configuration for an installed DNS app, with a specific verb and resource. It distinguishes from sibling tools like dns_install_app and dns_uninstall_app. However, it lacks detail on scope and prerequisites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not mention that the app must be installed or that this is for a specific installed app. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_get_dsB
Get the DS (Delegation Signer) records for a DNSSEC-signed zone. These are needed by the parent zone registrar.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavioral traits. It states 'Get DS records' implying read-only, but lacks details on prerequisites, side effects, auth needs, or error conditions (e.g., if zone is not DNSSEC-signed).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Information is front-loaded and efficiently stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple retrieval tool, but lacks details on return format or behavior for non-DNSSEC zones. Without an output schema, more context on what is returned would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description 'Zone domain name'. The tool description adds meaningful context by specifying the zone must be DNSSEC-signed, which goes beyond the schema and aids correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool retrieves DS records for a DNSSEC-signed zone. It specifies the verb and resource, but does not explicitly differentiate from sibling tools like dns_dnssec_info, which might also involve DS records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description implies use for DNSSEC-signed zones needed by parent registrars, but no explicit when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_get_settingsA
Get the current DNS server settings including forwarders, blocking configuration, protocols, logging, cache settings, and proxy configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description indicates a read operation, but beyond that, no behavioral traits (e.g., authentication, rate limits, side effects) are disclosed. For a simple getter, it is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core purpose, and no redundant words. Every part of the description earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description lists the categories of settings retrieved, which is sufficient for understanding the tool's scope. Could mention response structure, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters with 100% schema description coverage (none). The description adds no parameter information, which is acceptable as no parameters exist. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the noun 'DNS server settings', listing specific components (forwarders, blocking, protocols, logging, cache, proxy). This distinguishes it from sibling tools like dns_get_stats or dns_get_app_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading settings, contrasting with dns_set_settings, but lacks explicit when-to-use or when-not-to-use guidance. No mention of prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_get_statsB
Get DNS query statistics for a time period. Returns total queries, cached, blocked, failure counts, plus top clients, top domains, and top blocked domains.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period for stats (default: LastDay) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description lists returned data fields but does not disclose whether the tool is read-only, requires permissions, or has any side effects. Since no annotations are provided, the description carries full burden, and it only partially addresses behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with clear front-loading: first sentence states purpose, second enumerates return values. No extraneous information, each sentence is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes what the tool returns and mentions the time period parameter. Missing default value (LastDay) and read-only indicator, but given no output schema and simple single-parameter tool, coverage is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already documents the 'period' parameter with enum values and description (100% coverage). The tool description merely repeats 'time period' without adding new usage constraints, examples, or clarification beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves DNS query statistics for a time period and lists returned data elements. However, it does not differentiate from siblings like dns_query_logs or dns_list_cache, leaving ambiguity about which tool to use for raw logs vs aggregated stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., dns_query_logs for raw logs). No mention of prerequisites, typical use cases, or conditions that would make another tool more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_health_checkA
Quick health check of the DNS server. Returns version, uptime, forwarder config, blocking status, and last hour failure rate.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists the returned data (version, uptime, etc.) but does not explicitly state read-only behavior or potential side effects, though a health check is implicitly non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, front-loading the purpose and listing the returned fields efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description fully covers its purpose and output, making it complete for an agent to select and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema coverage (empty schema). The description does not need to add parameter details; the baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Quick health check') and clearly lists what it returns (version, uptime, etc.), differentiating it from sibling tools that focus on DNS management tasks like adding records or zones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'quick health check', signaling when to use this tool. While it does not mention when not to use it or provide alternatives, the context among sibling tools makes its purpose clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_install_appA
Download and install a DNS app from the Technitium app store. Use dns_list_app_store to see available apps.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | App name exactly as shown in the app store (e.g. 'Query Logs (Sqlite)') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'Download and install' indicates a write operation, but lacks details on permissions, reversibility, or side effects. Adequate for basic understanding but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single parameter, no output schema), the description is nearly complete. Could mention that installation is a write operation requiring permissions, but overall provides sufficient context for usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already describes the 'name' parameter with example. Description adds value by referencing dns_list_app_store to find correct app names, supplementing the schema's guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Download and install a DNS app' and specifies the source 'Technitium app store'. The hint to use dns_list_app_store distinguishes it from siblings and clarifies the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use sibling tool 'dns_list_app_store' to see available apps, providing clear context for when to use this tool. However, it does not mention when not to use or alternatives, but for a simple install tool this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_list_allowedA
List allowed DNS zones (domains that bypass block lists). Returns a hierarchical tree — call with no domain to see top-level zones, then pass a domain (e.g. 'com') to drill into subdomains.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Optional parent domain to list children of (e.g. 'com' to see all allowed .com domains). Omit to see top-level zones. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description reveals read-only behavior, hierarchical tree return, and domain parameter usage. Lacks details on error cases or permissions, but adequate for a listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose, no unnecessary words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Single optional parameter, no output schema; description covers usage fully with hierarchical tree behavior. No gaps for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds value beyond schema by explaining the hierarchical drilling pattern and giving a concrete example, though schema already covers parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List allowed DNS zones' with a specific verb and resource, distinguishing it from siblings like dns_list_blocked and dns_list_zones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains hierarchical usage with examples (call with no domain for top-level, pass domain for subdomains), but does not explicitly mention when to use alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_list_appsA
List installed DNS apps on the server and their current status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states a read-only operation but lacks additional behavioral details such as authentication requirements or side effects. However, for a simple list, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no unnecessary words. Front-loaded with the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description is sufficiently complete. It covers what the tool does and what it returns (list and status). Minor gap: 'status' is not elaborated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the schema provides full coverage. The description adds no parameter info, which is acceptable given the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists installed DNS apps and their current status, using a specific verb and resource. It distinguishes from siblings like dns_install_app and dns_list_app_store.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While the purpose is implied, there is no guidance on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_list_app_storeA
List all available apps from the Technitium DNS app store with versions and descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it correctly states the action (listing) and output content, it offers no additional behavioral context such as side effects, authentication requirements, or rate limits. For a straightforward read-only operation, this minimal disclosure is acceptable but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly communicates the tool's purpose. It is front-loaded with the primary action and resource, containing no extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters, no output schema, and a simple job, the description is complete. It specifies what the tool lists (available apps from the app store) and what details are included (versions and descriptions). No additional context is necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds no parameter-specific information, which is appropriate given the absence of parameters. According to guidelines, a baseline of 4 is set for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (list), resource (available apps from Technitium DNS app store), and the information provided (versions and descriptions). It effectively distinguishes itself from sibling tools like 'dns_list_apps' by clarifying the source (app store) and the status of apps (available, not installed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool: to browse available apps before installation. However, it does not explicitly specify when not to use it or mention alternatives like 'dns_list_apps' for installed apps. For such a simple tool, the implicit guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_list_blockedA
List blocked DNS zones (domains that are denied). Returns a hierarchical tree — call with no domain to see top-level zones, then pass a domain (e.g. 'com') to drill into subdomains.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Optional parent domain to list children of (e.g. 'com' to see all blocked .com domains). Omit to see top-level zones. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Explains the hierarchical tree behavior and optional parameter, but does not disclose that it is read-only or mention potential limitations like large responses. Adequate but could be more transparent about being a safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the key purpose, no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description provides enough context to use it correctly: hierarchical return and drill-down. Could mention that it is read-only, but not critical for usability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter. Description adds value by explaining the optional nature and providing an example ('e.g. com'), clarifying the drill-down behavior beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists blocked DNS zones/domains with a hierarchical tree. Differentiates from siblings like dns_list_allowed and dns_block_domain by specifying 'blocked' and the drill-down behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instructions: 'call with no domain to see top-level zones, then pass a domain to drill into subdomains' with an example ('com'). While not explicitly stating when not to use it, the context of sibling tools makes it clear this is for reading blocked domains only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_list_cacheA
List zones in the DNS cache. Returns a hierarchical tree — call with no domain to see top-level zones, then pass a domain (e.g. 'com') to drill into cached subdomains.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Optional parent domain to list children of (e.g. 'com' to see cached .com domains). Omit to see top-level zones. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the hierarchical tree return structure and the behavior of parameter omission vs. inclusion. While no annotations exist, it adds meaningful behavioral context beyond a simple 'list' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The key information is front-loaded: the action and resource are immediately clear, followed by essential usage details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, the description explains the hierarchical output and parameter usage sufficiently. It could mention what the tree contains (e.g., zone names), but overall it's adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds value by explaining the domain parameter's purpose (optional, for drilling) and contrasting behavior when omitted vs. provided, exceeding schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists zones in the DNS cache, uses a specific verb ('List zones'), and explains the hierarchical drill-down behavior, distinguishing it from sibling tools like dns_list_zones by focusing on cached zones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage instructions: call without domain for top-level zones, or with a domain to drill into subdomains. It does not mention when not to use or alternatives, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_list_recordsA
List DNS records in a zone. Optionally filter by a specific domain name within the zone. When no domain is specified, returns all records across all zones matching the zone name (including subzones like app.example.com when zone=example.com). When domain is specified, returns records for that exact domain only.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name (e.g. example.com). Can be a parent domain to list all subzones. | |
| domain | No | Optional specific domain to filter (e.g. www.example.com). Defaults to the zone name if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses key behavioral traits: it returns records across all zones matching the zone name when no domain is specified, and for exact domain when specified. It also mentions subzone inclusion. This provides sufficient transparency for a read-only list operation, though it could elaborate on response format or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the main purpose front-loaded. Every sentence adds value: the first states the core action, the second explains the filtering behavior. No wasted words, appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers behavior adequately for a simple list tool, it does not describe the output format or fields returned. Since there is no output schema, this information would be helpful for context completeness. The tool's complexity is low, so the gap is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both 'zone' and 'domain' have descriptions in the input schema (100% coverage). The tool description adds context beyond the schema by explaining how omitting vs. specifying 'domain' affects the result set, including subzone behavior. This adds meaningful guidance for parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('list'), resource ('DNS records'), and scope ('in a zone'). It distinguishes itself from siblings by specifying it returns records within zones, not the zones themselves. The optional filtering by domain further clarifies its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the domain parameter versus omitting it, explaining that omitting returns all records across matching zones (including subzones) and specifying filters to exact domain. This helps the agent decide which parameter combination to use. However, it does not explicitly mention when not to use this tool versus alternatives like dns_resolve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_list_zonesA
List all DNS zones configured on the server. Returns zone name, type (Primary/Secondary/Stub/Forwarder), status, and record count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It correctly identifies the operation as a read (list), but does not disclose potential side effects, authentication requirements, rate limits, or pagination behavior. Given the simplicity, it is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, front-loaded with key information. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description adequately states what is returned. It could mention pagination or inclusion of system zones, but overall it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema coverage is 100%. The description does not add parameter details because none are needed. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List' and the resource 'all DNS zones', and specifies the returned fields: name, type, status, record count. It distinguishes from sibling tools like dns_list_records or dns_get_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is a read-only listing, but does not explicitly provide when to use this tool versus alternatives like dns_zone_options or dns_get_settings. No exclusions or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_query_logsB
Query DNS server logs with optional filters. Returns recent DNS queries and their responses. Requires the Query Logs app to be installed.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNumber | No | Page number (default: 1) | |
| entriesPerPage | No | Entries per page (default: 25, max: 100) | |
| domain | No | Filter by domain name (exact match, e.g. github.com) | |
| clientIp | No | Filter by client IP address | |
| queryType | No | Filter by DNS query type | |
| responseCode | No | Filter by response code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions the prerequisite ('Requires the Query Logs app to be installed') but omits details on pagination behavior, time range, rate limits, or what 'recent' means. This is insufficient for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The first sentence states the action and filters, the second adds output and prerequisite. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters and no output schema. The description hints at output ('recent DNS queries and responses') but lacks specifics on return structure, default time range, or pagination limits. It is incomplete for a tool with moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 6 parameters, so the description adds no new meaning beyond what is already documented. A baseline of 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Query DNS server logs with optional filters' and specifies the output: 'Returns recent DNS queries and their responses.' This is a specific verb-resource combination that distinguishes it from sibling tools like dns_resolve or dns_list_cache.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like dns_list_cache or dns_resolve. It mentions optional filters but does not clarify the intended use case or distinguish it from other query tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_remove_allowedA
Remove a domain from the allow list. The domain will no longer bypass block lists.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to remove from allow list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should fully disclose behavioral traits. It only states the effect but omits details like irreversibility, error handling if domain not found, authentication requirements, or whether the tool is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys both the action and consequence with no wasted words. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description adequately covers the core purpose and effect. However, it could improve by mentioning sibling tools or providing usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with a description. The tool's description adds minimal contextual meaning beyond the schema, as the schema already says 'Domain name to remove from allow list.' Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Remove a domain from the allow list' and explains the effect 'The domain will no longer bypass block lists.' This distinguishes it from siblings like dns_allow_domain (adds) and dns_flush_allowed (removes all).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when removing a single domain from the allow list, but does not explicitly state when to use this tool versus alternatives like dns_flush_allowed for bulk removal or dns_remove_blocked for blocked list. No guidelines on prerequisites or restrictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_remove_blockedB
Remove a domain from the block list. The domain will no longer be denied.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to remove from block list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fails to disclose behavioral traits such as whether the operation is reversible, requires specific permissions, or triggers side effects (e.g., cache invalidation). It only states the obvious effect ('no longer denied'), leaving the agent unaware of potential constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted words. Essential information is front-loaded. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the core function. Minor gaps: it does not mention that the domain must be currently blocked to have an effect, or the broader DNS context (e.g., impact on other lists). Still, it is sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already describes the single parameter. The description adds no additional meaning beyond the schema (e.g., format, validation, or case sensitivity). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove a domain from the block list') and the result ('The domain will no longer be denied'). It uses specific verb-resource pairing and distinguishes from siblings like dns_block_domain (which does the opposite) and dns_remove_allowed (which targets a different list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like dns_block_domain, dns_remove_allowed, or dns_list_blocked. The description does not mention prerequisites (e.g., domain must be currently blocked) or provide context for proper selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_resolveA
Test DNS resolution for a domain name. Resolves using the Technitium server itself or a specified external server.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to resolve (e.g. google.com) | |
| type | No | DNS record type (default: A) | |
| server | No | Optional DNS server to query (default: this server). Can be IP or DoH URL. | |
| protocol | No | DNS protocol to use (default: Udp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Specifies it resolves using Technitium or external server, but lacks details on side effects, caching behavior, or read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or description of return format; missing info on what the tool returns (e.g., resolved IPs, errors) and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters fully; description adds no extra meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it tests DNS resolution for a domain name, distinguishing it from sibling tools that modify or list records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for testing resolution but does not explicitly state when to use this over siblings like dns_list_cache or dns_query_logs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_set_settingsA
Update DNS server settings. Pass key/value pairs for any settings to change (e.g. forwarders, blocking, recursion, cache). Use dns_get_settings first to see current values and available keys.
| Name | Required | Description | Default |
|---|---|---|---|
| enableBlocking | No | Enable or disable domain blocking | |
| forwarders | No | Comma-separated list of forwarder addresses (IP, hostname, or DoH URL) | |
| forwarderProtocol | No | Protocol for upstream forwarders | |
| dnssecValidation | No | Enable or disable DNSSEC validation | |
| preferIPv6 | No | Prefer IPv6 for DNS resolution | |
| logQueries | No | Enable or disable query logging | |
| blockListUrls | No | Comma-separated list of block list URLs to use for domain blocking | |
| reverseProxyNetworkACL | No | Comma-separated list of IP addresses trusted as reverse proxies (for X-Real-IP header processing) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Update DNS server settings' without disclosing side effects, permissions needed, immediacy of changes, or whether it is destructive. The description is insufficient for behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place: first states purpose, second gives usage hint. No fluff or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 optional parameters, no output schema, and no annotations, the description is incomplete. It fails to explain return values, validation, error handling, or persistence of changes. The examples include 'recursion' and 'cache' which are not in the schema, potentially causing confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that only settings to change should be passed (key/value pairs), implying partial updates. It uses examples like forwarders, blocking, recursion, cache, though some examples don't directly match schema parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update DNS server settings' and lists examples of settings (forwarders, blocking, recursion, cache). It distinguishes itself from sibling tools by mentioning 'Use dns_get_settings first', implying it is the write counterpart to the read tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'Use dns_get_settings first to see current values and available keys,' providing explicit guidance on when to use this tool. However, it lacks mention of when not to use it or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_set_zone_optionsA
Set configuration options for a zone. Pass the zone name plus any option key/value pairs to update (e.g. notify settings, zone transfer ACLs).
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name | |
| disabled | No | Set zone disabled state | |
| zoneTransferAllowedNetworks | No | Comma-separated list of IP/CIDR allowed for zone transfers | |
| notifyNameServers | No | Comma-separated list of name server IPs to notify on changes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'update' implying mutation and 'key/value pairs' suggesting partial updates. However, it does not specify behavior on missing parameters, idempotency, zone existence requirements, or return value, leaving moderate gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no superfluous words. It front-loads the purpose and adds a brief usage hint. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 parameters and no output schema, the description covers the action and usage pattern but omits output details (e.g., what is returned) and any validation behavior. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the bar is baseline 3. The description adds 'plus any option key/value pairs' and examples, reinforcing the schema meaning but not providing new semantic value beyond what the parameter descriptions already convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and resource 'configuration options for a zone'. It gives concrete examples (notify settings, zone transfer ACLs) which distinguishes it from sibling tools like dns_create_zone or dns_zone_options, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: to modify existing zone settings. It does not explicitly contrast with alternatives (e.g., dns_zone_options for reading, dns_set_settings for server settings), but the phrase 'Set configuration options for a zone' combined with sibling names provides sufficient guidance. Missing explicit 'when not to use' prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_temp_disable_blockingA
Temporarily disable domain blocking for a specified number of minutes. Blocking re-enables automatically after the timer expires.
| Name | Required | Description | Default |
|---|---|---|---|
| minutes | No | Number of minutes to disable blocking (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions the temporary nature and automatic re-enable, but does not explain if this affects all blocked domains or if it can be canceled early.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no superfluous information. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description covers the essential behavior: temporary disable and auto-return. Minor improvement: could mention the scope of blocking affected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'minutes' is fully described in the schema (100% coverage). The description adds the default value, but the schema already indicates it's optional and default is 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: temporarily disable domain blocking for a specified duration. It includes the automatic re-enable behavior, distinguishing it from permanent blocking or flushing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for temporary unblocking but lacks explicit guidance on when to use this tool versus alternatives like dns_block_domain or dns_remove_blocked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_uninstall_appA
Uninstall a DNS app from the server. Requires confirm=true to execute.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the app to uninstall | |
| confirm | No | Must be true to confirm uninstall. Without this, returns a warning instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description mentions uninstall and confirm guard but lacks details on side effects, reversibility, or auth needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essential for a simple tool but omits return value and error handling; adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description confirms the confirm parameter's role but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (uninstall) and the resource (DNS app), distinguishing it from siblings like install and config tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It highlights the confirm parameter requirement, guiding usage, but does not explicitly mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_update_blocklistsA
Force an immediate update of all configured block lists. Normally block lists update every 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says 'Force an immediate update' but does not disclose potential side effects (e.g., downtime, resetting timers) or how the update affects ongoing blocking. The description is too thin for a command that triggers a process.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, no wasted words, and the key action is front-loaded. Every sentence earns its place by stating the purpose and providing context about normal update frequency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are no parameters, no output schema, and the tool is simple, the description covers the essential purpose and one behavioral trait (update interval). It is mostly complete for a straightforward action, though it could mention whether the update is synchronous or if there are any side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so according to the rubric, the baseline is 4. The description adds no parameter-specific information, which is acceptable since there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool forces an immediate update of all configured block lists. It uses a specific verb and resource, and the many sibling tools (e.g., dns_block_domain, dns_flush_cache) are distinct, so no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage is when you want an update before the normal 24-hour cycle, but it does not explicitly state when not to use it or provide alternative tools. Usage context is suggested but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_update_recordC
Update an existing DNS record.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name | |
| domain | Yes | Current domain name | |
| type | Yes | Record type | |
| value | Yes | Current record value | |
| newValue | Yes | New record value | |
| newDomain | No | New domain name (to rename) | |
| ttl | No | New TTL in seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'update' without mentioning destructiveness, permissions, validation, or idempotency. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with four words, which is concise but arguably too brief given the tool's complexity. It is front-loaded but fails to add meaningful information beyond the name, earning a passable score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and no annotations, the description is incomplete. It lacks information on return values, side effects, prerequisites, and error conditions, making it inadequate for proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds no additional meaning beyond what the schema already provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (update) and resource (existing DNS record), distinguishing it from add and delete tools. However, it does not differentiate from dns_check_update, and lacks specificity about what aspects can be updated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like dns_check_update, or any prerequisites. No context on when an update is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_zone_optionsA
Get the configuration options for a specific zone including DNSSEC, transfer, and notify settings.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | Zone domain name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'Get' implies read-only and non-destructive, but no additional behavioral context (e.g., rate limits, permissions, or whether zone must exist). Barely adequate for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loaded with verb and resource, includes specific examples, no wasted words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description adequately hints at return content (configuration options including DNSSEC, transfer, notify). For a one-parameter read tool, this is nearly complete. Minor omission: format of options not specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter 'zone' with 100% coverage. Description adds value by listing example settings returned, but does not deepen understanding of the parameter itself. Baseline score given schema sufficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and resource 'configuration options for a specific zone', with explicit examples (DNSSEC, transfer, notify). Distinguishes from sibling tools like dns_set_zone_options (write) and dns_dnssec_info (more specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., dns_dnssec_info for detailed DNSSEC settings, or dns_get_settings for general settings). No when-not or trigger conditions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
24 tool updates
v1.2.0- Added
dns_check_update - Added
dns_delete_cached - Added
dns_disable_zone - Added
dns_dnssec_info - Added
dns_enable_zone - Added
dns_export_zone - Added
dns_flush_allowed - Added
dns_flush_blocked - Added
dns_get_app_config - Added
dns_get_ds - Added
dns_install_app - Changed
dns_list_allowed1 field changed- added
Input schema / properties / domainAdded value: +{ + "description": "Optional parent domain to list children of (e.g. 'com' to see all allowed .com domains). Omit to see top-level zones.", + "type": "string" +}
- Added
dns_list_app_store - Changed
dns_list_blocked1 field changed- added
Input schema / properties / domainAdded value: +{ + "description": "Optional parent domain to list children of (e.g. 'com' to see all blocked .com domains). Omit to see top-level zones.", + "type": "string" +}
- Changed
dns_list_cache1 field changed- added
Input schema / properties / domainAdded value: +{ + "description": "Optional parent domain to list children of (e.g. 'com' to see cached .com domains). Omit to see top-level zones.", + "type": "string" +}
- Changed
dns_list_records2 fields changed- changed
Input schema / properties / domain / descriptionPrevious value: -"Optional specific domain to filter (e.g. www.theshellnet.com)"New value: +"Optional specific domain to filter (e.g. www.example.com). Defaults to the zone name if omitted." - changed
Input schema / properties / zone / descriptionPrevious value: -"Zone domain name (e.g. theshellnet.com)"New value: +"Zone domain name (e.g. example.com). Can be a parent domain to list all subzones."
- Changed
dns_query_logs1 field changed- changed
Input schema / properties / domain / descriptionPrevious value: -"Filter by domain name (partial match)"New value: +"Filter by domain name (exact match, e.g. github.com)"
- Added
dns_remove_allowed - Added
dns_remove_blocked - Added
dns_set_settings - Added
dns_set_zone_options - Added
dns_temp_disable_blocking - Added
dns_uninstall_app - Added
dns_update_blocklists
20 tool updates
v1.1.0- First observed
dns_add_record - First observed
dns_allow_domain - First observed
dns_block_domain - First observed
dns_create_zone - First observed
dns_delete_record - First observed
dns_delete_zone - First observed
dns_flush_cache - First observed
dns_get_settings - First observed
dns_get_stats - First observed
dns_health_check - First observed
dns_list_allowed - First observed
dns_list_apps - First observed
dns_list_blocked - First observed
dns_list_cache - First observed
dns_list_records - First observed
dns_list_zones - First observed
dns_query_logs - First observed
dns_resolve - First observed
dns_update_record - First observed
dns_zone_options
TDQS
All tools have distinct purposes, clearly differentiated by verb and noun. Even related tools like dns_flush_cache vs dns_delete_cached are scoped differently (entire cache vs specific domain). No ambiguity.
All 39 tools follow the dns_verb_noun pattern in snake_case. Verbs are imperative and descriptive, and the pattern is rigidly applied. Only very minor variations exist (e.g., dns_health_check vs dns_check_update), but they are still consistent overall.
39 tools is large but justified given the broad scope of DNS server management (zones, records, blocking, caching, apps, settings, stats, DNSSEC). Some tools could be consolidated (e.g., dns_allow_domain and dns_remove_allowed are separate, but that's acceptable). Slightly over the typical range but not chaotic.
The tool set covers virtually all common DNS operations: CRUD for zones and records, block/allow management, caching, apps lifecycle, settings, stats, DNSSEC, logging, and health checks. No obvious gaps for the intended purpose of managing a Technitium DNS server.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Remote MCP server: 19 domain-hygiene and email-auth tools (DNS, SPF, DMARC, DKIM, TLS).
MCP server for DNSimple — domains, DNS zone records, availability, pricing and contacts.
Read-only MCP server for turva.dev, an agent-readiness audit and advisory service.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for managing Cloudflare DNS across multiple zones from a single API token, enabling bulk operations like toggling proxy, listing records, and batch updates.16MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for managing AdGuard Home instances and AdGuardHome Sync with 33 tools across read, safe-write, and destructive operations, featuring three-tier write gating.172MIT
- AlicenseAqualityDmaintenanceA security-hardened MCP server for managing Technitium DNS Server via its HTTP API, offering tools for DNS zones, records, blocking, cache, settings, and diagnostics.39MIT
- FlicenseNot gradedqualityDmaintenanceSafety-focused MCP server for querying and managing Technitium DNS Server through its HTTP API, with strict input validation and audit logging.12-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rosschurchill/technitium-mcp-secure'
If you have feedback or need assistance with the MCP directory API, please join our Discord server