Skip to main content
Glama

Server Details

Nssnap is a technical community for hosting, domains, servers and AI, and this MCP server puts the whole platform in front of your agent: publish and search community posts, boards and comments, plus full control of free second-level domains on is-a.si and five more suffixes, including DNS zones, records, DNSSEC, transfers and renewals. Bearer token for the full toolset, or a keyless public search endpoint for anonymous queries.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.1/5.0

Scored across 139 tools

Disambiguation3/5

Many tools are distinct by resource and action, but overlap exists in report handling (admin_resolve_report, mod_resolve_report, admin_report_action), search (search_posts vs search_public_posts), and listing (admin_list_reports vs mod_list_queue). Descriptions clarify role and scope, but the sheer number of similar admin tools increases misselection risk.

Naming Consistency3/5

All names use snake_case, and prefixes like admin_, mod_, dns_, and domain_ group related tools. However, conventions vary: domain_register vs domains_check, dns_zone_create vs dns_zones, and admin_verb_noun vs dns_noun_verb create mixed patterns that reduce predictability.

Tool Count1/5

With 139 tools, the surface far exceeds any reasonable scope for a single MCP server. This is an extreme mismatch according to the rubric, where 50+ tools score a 1.

Completeness3/5

The surface covers extensive admin, moderation, DNS, domain, and some content operations. However, notable gaps exist for a community platform: no comment creation, media upload, profile editing, follow/notification tools, or user authentication flows, leaving dead ends for common user actions.

Available Tools

139 tools
admin_add_keywordAInspect

Add one keyword to the moderation blacklist. word: 1-120 chars (trimmed); severity: 'block' | 'warn'; category: optional, up to 40 chars (default 'general'). A duplicate word returns 409. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
wordYes
categoryNoDefault 'general'
severityYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden and does disclose real behavior: input is trimmed, a duplicate word yields a 409 conflict, and admin rights are required. It stops short of explaining matching semantics (case sensitivity, exact vs substring) or the success response.

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

Conciseness5/5

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

Four tight clauses, purpose front-loaded, then constraints, error case, and permission — zero filler. Every sentence earns its place.

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

Completeness4/5

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

With no output schema and no annotations, the description does a good job covering constraints, the duplicate-error case, and the admin precondition. It is slightly incomplete on matching semantics and the success payload, but nothing critical for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is only 33% (only 'category' documented), so the description compensates by restating word length bounds, the severity enum values, and 'trimmed' behavior which is genuinely new information not in the schema. It does not explain what 'block' vs 'warn' actually do, but the compensation is reasonable.

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

Purpose5/5

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

States a specific verb ('Add') and resource ('keyword to the moderation blacklist'), and the singular 'one' immediately distinguishes it from the sibling admin_bulk_add_keywords. An agent can tell it apart from admin_delete_keyword and admin_list_keywords without opening a schema.

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

Usage Guidelines3/5

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

The singular scope implies bulk additions belong elsewhere and 'Requires admin' gives a precondition, but no alternative is named explicitly (e.g. 'use admin_bulk_add_keywords for multiple'). Usage is implied rather than stated.

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

admin_approve_postAInspect

Approve a post pending review (pending_review → published; author notified). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden — and it does disclose the source and target state, the side effect (author notified), and an authorization requirement. Less strong is the absence of failure behavior (e.g., what happens if the post is not in pending_review) or whether the action is reversible.

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

Conciseness5/5

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

One dense sentence with the action and state transition front-loaded, then parenthetical side effects and auth requirement. Every clause earns its place; nothing is padded.

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

Completeness4/5

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

For a one-parameter, no-output-schema mutation tool, the description covers the essential mechanics: what changes, who is affected, and what privilege is needed. It lacks error/edge-case behavior, but for a tool this simple it is close to sufficient.

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

Parameters2/5

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

The single postId parameter has 0% schema description coverage, and the description never mentions it — no guidance on which post ID is expected, whether it must reference a pending-review post, or what a bad ID yields. Only the schema's type/format/required flags carry any meaning.

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

Purpose5/5

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

States a specific verb (approve), the resource (post), and the exact state transition (pending_review → published). It is immediately distinguishable from the sibling admin_reject_post, which is the natural opposite action.

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

Usage Guidelines4/5

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

The precondition 'post pending review' tells the agent when this tool applies, and 'Requires admin' signals the privilege needed. It stops short of explicitly naming admin_reject_post as the alternative outcome, so routing is implied rather than spelled out.

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

admin_assign_domain_preallocationAInspect

Manually assign one pending pre-reserved domain to a local user by username. Manual re-allocation that bypasses the retired email-match auto-claim (fixes early-registered users who never received their claim). Free of charge and exempt from GitHub verification and per-user quota (migration semantics). The target must be a locally registered account (federated shadow accounts cannot receive domains). Optionally suppress the one-time welcome TGC bonus with awardWelcome=false. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYeslocal username to assign the domain to
preallocIdYes
awardWelcomeNogrant the one-time welcome TGC bonus (default true)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it states the admin authorization requirement, that the action is free of charge and exempt from GitHub verification and per-user quota, that it overrides the normal auto-claim path, and that it grants a welcome bonus unless awardWelcome=false. It still omits reversibility, idempotency if the preallocId was already claimed, and failure behavior for an invalid or federated target.

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

Conciseness4/5

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

The critical facts are front-loaded in the first sentence (verb, resource, target), with rationale and caveats following. It is dense and slightly overstuffed with stacked parentheticals, but every clause carries operational information rather than filler.

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

Completeness4/5

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

For a 3-parameter mutation tool with no annotations and no output schema, the description covers authorization, side effects, quota exemptions, and eligibility constraints well. The remaining gap is the result of a successful call (e.g., what is returned or what state the domain ends in), which matters when no output schema exists.

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

Parameters4/5

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

Schema coverage is only 67% because preallocId has no schema description; the prose compensates by clarifying it identifies a 'pending pre-reserved domain'. It also constrains username (must be a locally registered account) and explains awardWelcome's effect beyond the schema's 'grant the one-time welcome TGC bonus'.

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

Purpose5/5

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

States a specific verb ('assign'), resource ('pending pre-reserved domain'), target ('local user by username') and cardinality ('one'), which cleanly separates it from admin_assign_domain_preallocations_batch. An agent can identify the operation without opening the schema.

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

Usage Guidelines4/5

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

Explicitly frames the use case: manual re-allocation that bypasses the retired email-match auto-claim, for early-registered users who never received their claim, and names the exclusion (federated shadow accounts cannot receive domains). It does not explicitly name the batch sibling as the alternative for multiple assignments, so it falls just short of full when/when-not routing.

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

admin_assign_domain_preallocations_batchAInspect

Batch-backfill pending pre-reserved domains to local accounts matched by email (lower(email) equality with the legacy whois email). ONLY verified accounts receive domains (users.email_verified_at set); unverified matches, federated shadow accounts and unmatched entries are skipped and reported per row. Each assignment is free, exempt from GitHub verification and per-user quota, 1-year term, and wires in-site DNS hosting (nameservers always point to the platform's DNS nodes, never the legacy external NS). dryRun=true (default) only scans and reports without writing. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNomax pending rows scanned per call (remaining rows: run again)
dryRunNotrue = scan and report only (no writes); false = assign all verified matches
suffixIdNolimit to one suffix (default: all suffixes)
awardWelcomeNogrant the one-time welcome TGC bonus per recipient (default true)

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: only verified accounts receive domains, unverified/federated-shadow/unmatched entries are skipped and reported per row, assignments are free and exempt from verification and quota, 1-year term, and in-site DNS hosting replaces legacy external NS. dryRun default is disclosed.

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

Conciseness4/5

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

Front-loaded with the core action, then packs eligibility, cost/term, DNS behavior, dryRun, and auth into dense clauses. Information-dense with little waste, though the single long paragraph is heavy.

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

Completeness4/5

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

No output schema exists, so the description must convey behavior and it does: skips are reported per row, dryRun scans only, admin required. It stops short of describing the actual report shape or pagination beyond the schema's limit note, leaving a small gap.

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

Parameters4/5

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

Schema coverage is 100% (baseline 3), but the description adds real meaning beyond it: the email-matching rule (lower(email) equality against legacy whois email), the default dryRun semantics, and the per-row skip/report behavior tied to the parameters.

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

Purpose4/5

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

States a specific verb+resource ('Batch-backfill pending pre-reserved domains to local accounts matched by email') with clear scope. The 'batch' framing implicitly distinguishes it from the singular sibling admin_assign_domain_preallocation, but the description never names that sibling explicitly.

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

Usage Guidelines4/5

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

Provides clear context: backfill of pending pre-reservations, requires admin, dryRun=true is the default scan-only mode. It does not explicitly state when to use this batch variant versus the singular admin_assign_domain_preallocation, so an agent must infer the routing.

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

admin_ban_userAInspect

Ban a user for N days (clears their sessions; login rejected until expiry). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYes
reasonYes
userIdYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful side effects: session clearing and login rejection until expiry. It stops short of reversibility/undo, audit logging, or whether the ban can be shortened, but the core behavioral consequence is explicit.

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

Conciseness5/5

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

A single compact sentence with the action, scope, and effect front-loaded, followed by the prerequisite. Zero filler.

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

Completeness3/5

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

For a 3-required-param mutation tool with no annotations and no output schema, the description covers the effect well but omits the reason parameter's purpose and says nothing about return values or failure modes (invalid user, non-admin caller). Minimum viable, not complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. 'N days' maps the days parameter and 'a user' implies userId, but the required 'reason' parameter (maxLength 300) gets no explanation anywhere, leaving one of three required params semantically empty.

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

Purpose5/5

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

States a specific verb+resource ('Ban a user') and adds the temporal scope ('for N days'), making it immediately distinguishable from siblings like admin_unban_user and admin_warn_user. No ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The prerequisite 'Requires admin' gives real context for who may call it, but there is no guidance on when to ban versus warn (admin_warn_user) or how this relates to admin_unban_user. Usage is implied rather than directed.

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

admin_broadcastAInspect

Broadcast a system announcement to EVERY active user: each user gets an in-app notification plus an email. Use with EXTREME care. One call reaches the entire user base. Delivery is fanned out through the persistent queue (users already delivered are never re-sent on retry). title (max 120) and body (max 2000) are required; url is an optional in-site path (e.g. /hot) attached to the notification. Rate-limited per admin, same bucket as the web console. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNooptional in-site path to attach, e.g. /hot
bodyYesannouncement body (max 2000)
titleYesannouncement title (max 120)

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations at all, the description carries the full burden and does so well: it discloses the delivery mechanism (fan-out through the persistent queue), idempotency on retry ('users already delivered are never re-sent'), per-admin rate limiting sharing a bucket with the web console, and the admin requirement. These are exactly the traits an agent needs before invoking an irreversible mass-send.

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

Conciseness5/5

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

Four sentences, each carrying new information, with the highest-stakes facts (scope + extreme care) front-loaded before mechanism and parameter details. No filler or hedging.

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

Completeness5/5

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

For a three-parameter mutation with no output schema and no annotations, the description supplies everything: blast radius, auth requirement, rate limits, retry/idempotency behavior, and parameter constraints. Nothing an agent needs to decide whether and how to call it is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description goes further by clarifying what url actually does (an optional in-site path attached to the notification, with a /hot example) and by foregrounding that title and body are the required pair. It does restate the max lengths the schema already enforces, which caps it below 5.

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

Purpose5/5

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

States a specific verb (broadcast) and resource (system announcement), plus the exact scope (EVERY active user) and the two delivery channels (in-app notification + email). No sibling tool does anything comparable, and an agent can distinguish it immediately from per-user tools like admin_warn_user or admin_ban_user.

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

Usage Guidelines4/5

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

Gives clear operational context: 'Use with EXTREME care. One call reaches the entire user base,' and states the auth prerequisite ('Requires admin'). It does not name an alternative or a when-not condition (e.g., targeted notification vs. keyword-level messaging), so it stops short of a full 5.

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

admin_bulk_add_keywordsAInspect

Import many keywords at once (duplicates within the payload and rows already in the blacklist are skipped, not an error). words: array of 1-500 strings, each 1-120 chars after trim; severity: 'block' | 'warn'; category: optional (default 'general'). Returns inserted/skipped counts. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
wordsYes
categoryNoDefault 'general'
severityYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden well: it discloses skip-not-error semantics for duplicates and blacklist hits, implied idempotency, the admin requirement, and that counts are returned. It does not say whether insertion is atomic/partial on validation failure or mention rate/concurrency limits, leaving some mutation behavior unspecified.

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

Conciseness4/5

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

One dense, front-loaded block: cap sentence, then parameter semantics, then return/auth notes. It is efficient with no filler, though cramming constraints into a single run-on sentence hurts scannability slightly.

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

Completeness4/5

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

No output schema exists, so it correctly states the return shape (inserted/skipped counts), and with no annotations it supplies the auth requirement and dedup rules. It omits failure-mode behavior (partial vs all-or-nothing inserts), which is the main remaining gap for a mutation tool.

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

Parameters4/5

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

Schema coverage is only 33% (just the category default), so the description must compensate and largely does: it explains words cardinality/length 'after trim', the severity values, and the category default. Much of this restates schema constraints (1-500, 1-120), so it adds only marginal meaning beyond the structured fields.

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

Purpose5/5

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

States a specific verb and resource with scale ('Import many keywords at once'), which cleanly separates it from the single-item sibling admin_add_keyword. An agent can select this over the singular tool without opening either schema.

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

Usage Guidelines4/5

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

Gives clear operating context: bulk import, dedup/blacklist rows silently skipped, and 'Requires admin' as a precondition. It never explicitly names admin_add_keyword or states when a single insert is preferable, so the alternative routing is inferred rather than spelled out.

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

admin_decide_pro_applicationAInspect

Decide one professional-account application. action=approve: flip the pending application to approved. The applicant becomes a professional account in the same transaction (the submitted website URL is carried over unverified, the pro compliance profile is reset to full score) and the user is notified. action=reject: close the pending application with a reason. Note is required (1-300 chars, shown to the user); the account type is untouched and the user may reapply. Every action is audit-logged. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoreject only: required reason (1-300 chars) shown to the user
actionYes
applicationIdYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: changes happen in the same transaction, the submitted website URL is carried over unverified, the pro compliance profile is reset to full score, the user is notified, the account type is untouched on reject, the applicant may reapply, and every action is audit-logged. That is well beyond what the schema or absence of annotations conveys.

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

Conciseness5/5

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

Front-loaded with the purpose, then structured by action branch and closed with the cross-cutting facts (audit log, admin requirement). Every sentence adds new information; nothing is repeated from the schema.

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

Completeness5/5

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

For a mutation tool with no annotations, no output schema and partial schema coverage, the description supplies the missing pieces: post-action state, side effects, notification behavior, permission requirement, and audit trail. An agent has enough to invoke it correctly.

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

Parameters4/5

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

Schema coverage is only 33% (just the note field), so the description must compensate. It does: it explains that note is required only for reject, is 1-300 chars, and is shown to the user, and it gives semantic meaning to both enum values of action. applicationId remains implied only, which keeps it from a 5.

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

Purpose5/5

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

States a specific verb+resource ("Decide one professional-account application") and immediately enumerates the two action modes with their distinct effects. It is clearly separable from siblings like admin_list_pro_applications (read side) and admin_decide_verification (different resource), so an agent can route without opening the schema.

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

Usage Guidelines4/5

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

The description gives concrete conditions for each action branch (approve = admit as pro; reject = close with reason, applicant may reapply) and states the precondition "Requires admin." It does not explicitly name the listing/alternative tool to consult first, so it stops just short of full when/when-not routing guidance.

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

admin_decide_verificationAInspect

Decide one verification request. action=approve: flip the pending request to approved and grant the badge (users.verified is written in the same transaction; the user is notified). action=reject: close the pending request with a reason. Note is required (1-300 chars, stored as the reject reason and shown to the user); an existing badge is untouched. action=revoke: HIGH IMPACT. Strip an already-approved verification: clears the user's verified badge immediately, keeps the request row as the audit anchor and notifies the user; only approved verifications can be revoked, and a revoked user loses the badge everywhere it is displayed. Every action is audit-logged. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoreject only: required reason (1-300 chars) shown to the user
actionYes
requestIdYes

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so: transactional badge write on approve, immediate badge clearing plus retained audit row on revoke, notification on every path, audit logging, and the HIGH-IMPACT irreversibility warning. An agent learns the destructive consequences and permission needs it would otherwise have to guess.

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

Conciseness4/5

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

Dense but front-loaded with the core verb, then organized by 'action=X:' labels so each sentence maps to a decision branch. The paragraph is long for a 3-parameter tool and could be split, but no sentence is redundant.

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

Completeness4/5

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

Given no output schema and no annotations, the description covers outcomes, side effects, auth, and audit trail well for a 3-param mutation tool. It omits error/edge behavior (already-handled or nonexistent requestId) and does not explain requestId's origin, which admin_list_verifications presumably supplies.

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

Parameters4/5

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

Schema coverage is only 33%, so the description must compensate, and it does by defining each `action` enum value's semantics and explaining the `note` value (reason text shown to the user, 1-300 chars). Minor friction: the description frames the note as generally 'required' while the schema marks it optional and scoped to reject only, leaving `requestId` entirely unexplained.

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

Purpose5/5

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

States a specific verb ('Decide') and resource ('one verification request'), then enumerates the three mutually exclusive outcomes. It is clearly distinguishable from siblings like admin_list_verifications, admin_grant_badge, and admin_revoke_badge without opening any schema.

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

Usage Guidelines4/5

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

The action branches effectively tell the agent when each mode applies (approve/reject a pending request, revoke an already-approved one), and 'Requires admin' sets the precondition. It never names alternative tools (e.g., admin_grant_badge / admin_revoke_badge) as the path for directly manipulating badges, so routing is inferred rather than explicit.

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

admin_delete_commentBInspect

Soft-delete a comment (status=deleted). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
commentIdYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose the two most important traits: the operation is a soft delete (status=deleted, implying reversibility rather than destruction) and it requires admin privileges. It omits whether the comment is hidden from regular users, whether there is a restore path, and what the call returns.

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

Conciseness5/5

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

Two short clauses, front-loaded with the action and its safety-relevant nature. No filler whatsoever.

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

Completeness3/5

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

For a two-parameter mutation with no annotations and no output schema, the description covers purpose, soft-delete semantics, and auth requirement, but leaves the 'note' parameter and the result of the call unspecified. Adequate but with clear gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, yet it says nothing about either parameter. 'commentId' is self-evident from its uuid format, but 'note' (a 300-char string) is entirely unexplained — an agent must guess whether it is a deletion reason, an internal memo, or something else.

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

Purpose4/5

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

Names a specific verb and resource ('Soft-delete a comment') and clarifies the semantics with 'status=deleted', which distinguishes it from a hard delete. It does not, however, differentiate itself from the many other admin_delete_* siblings (media, pin, keyword, feature card) beyond the resource name.

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

Usage Guidelines2/5

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

'Requires admin' states a prerequisite but is not usage guidance — it says nothing about when to use this instead of a hard delete, a moderation action like mod_decide_delete_request, or a list/search comment tool. No alternatives or exclusions are given.

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

admin_delete_feature_cardAInspect

Delete one feature intro card by id (its per-locale translations and user confirmation records are cascade-deleted; confirmation audit points are removed with the card). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardIdYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does useful work: it discloses that per-locale translations and user confirmation records are cascade-deleted and that confirmation audit points are removed with the card, plus the admin auth requirement. It omits irreversibility/reversibility and rate-limit context, keeping it short of a 5.

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

Conciseness4/5

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

A single front-loaded sentence with a parenthetical that adds cascade detail rather than filler. Efficient, though the parenthetical is dense and could be split for readability.

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

Completeness4/5

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

For a destructive one-param tool with no annotations and no output schema, the description covers the essential facts an agent needs: target identification, auth requirement, and destructive blast radius. Only irreversibility confirmation is missing.

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

Parameters3/5

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

One non-required-field parameter with 0% schema description coverage means the description should compensate. 'By id' minimally clarifies that cardId identifies the target card, but adds no format or semantic detail beyond what the schema's uuid type already conveys.

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

Purpose5/5

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

States a specific verb (delete) and resource (feature intro card), scoped to a single item by id. This clearly distinguishes it from the sibling admin_upsert_feature_card and admin_list_feature_cards without needing to open any schema.

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

Usage Guidelines3/5

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

The description implies usage via 'by id' and the 'Requires admin' precondition, but never states when to reach for this over alternatives (e.g. upsert to modify, list to inspect). Usage is implied rather than explicitly routed.

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

admin_delete_keywordAInspect

Remove one keyword from the moderation blacklist by id. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordIdYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose the admin authorization requirement, which is meaningful behavioral context. It does not, however, state that the removal is irreversible, what happens if the id does not exist, or what the caller receives back - omissions that matter for a destructive mutation.

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

Conciseness5/5

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

Two short sentences, purpose first, prerequisite second, with no filler. Nothing redundant and nothing buried.

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

Completeness4/5

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

For a single-parameter destructive admin tool with no output schema, the description covers purpose, scope, and authorization, which is most of what an agent needs. The remaining gap - irreversibility and not-found behavior - is minor but real for a delete operation.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for the single keywordId parameter. 'By id' confirms the identifier's role and that exactly one is expected, but adds no detail on the UUID format already declared in the schema or where the id is obtained.

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

Purpose5/5

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

States a specific verb and resource - 'Remove one keyword from the moderation blacklist by id' - which is unambiguous and self-contained. The 'one keyword' scoping also implicitly distinguishes it from admin_bulk_add_keywords and admin_list_keywords among the siblings.

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

Usage Guidelines3/5

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

The description states the precondition 'Requires admin', which is useful routing context, but gives no explicit when-to-use guidance or naming of alternatives (e.g., use admin_list_keywords to find the id first). Usage is implied by the operation name rather than spelled out.

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

admin_delete_mediaAInspect

Permanently delete one media file site-wide: removes the library row, detaches display references (user avatars/covers and post covers pointing at the file) and deletes the underlying object from storage (a cleanup queue retries if storage is temporarily unavailable). The deletion is audit-logged. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdYes

TDQS

A4.2/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it enumerates what is destroyed (library row, user avatars/covers and post covers referencing the file, the storage object), notes a retry mechanism via a cleanup queue when storage is unavailable, and states the action is audit-logged. That is unusually complete destructive-behavior disclosure.

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

Conciseness5/5

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

Front-loads the destructive action and scope in the first clause, then layers side effects, retry semantics, audit logging and the auth requirement as short trailing sentences. Nothing is padded or repeated.

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

Completeness4/5

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

For a one-parameter destructive admin tool with no annotations and no output schema, the description covers effects, retry behavior, audit trail and authorization. It stops short of describing return/error behavior or confirming irreversibility guarantees, which is a minor gap rather than a blocking one.

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

Parameters3/5

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

Schema coverage is 0% and mediaId's UUID format is undocumented, but the description conveys the key semantic that exactly one media file is targeted ('one media file', singular). It adds marginal meaning but does not explain the identifier's origin or expected failures for unknown IDs.

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

Purpose5/5

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

States a specific verb and resource plus the scope: 'Permanently delete one media file site-wide.' The phrase 'site-wide' and 'Requires admin' implicitly separate it from the sibling delete_media (user-scoped) and from admin_list_media, so an agent can route correctly without opening a schema.

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

Usage Guidelines3/5

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

It gives one clear precondition ('Requires admin') but never states when to choose this over delete_media or list_my_media, nor when deletion is inappropriate. Usage is implied by the site-wide/admin framing rather than explained.

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

admin_delete_pinAInspect

Remove one site-wide pin immediately (hard delete; expired pins already drop out of queries on their own). 404 if the pin does not exist. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinIdYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the operation is a hard (irreversible) delete, that it takes effect immediately, that a missing pin returns 404, and that admin rights are required. It does not mention any audit/idempotency or response behavior, but the key destructive and auth characteristics are covered.

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

Conciseness5/5

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

One front-loaded sentence with the verb first, a parenthetical that earns its place by preventing unnecessary deletions, plus compact error and auth clauses. No waste.

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

Completeness4/5

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

For a single-parameter delete with no output schema or annotations, the description covers action, irreversibility, auth requirement, and error semantics. Only the return behavior (does it return the deleted pin or just success?) is unaddressed, which is a minor gap.

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

Parameters3/5

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

The single pinId parameter has 0% schema description coverage, so the description must compensate. 'Remove one site-wide pin' implies the ID identifies a pin, but no format, source of the ID, or lookup guidance (e.g., from admin_list_pins) is given. Adequate but minimal.

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

Purpose4/5

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

States a specific verb (Remove) and resource (site-wide pin) with scope qualifier (immediately, hard delete). The 'site-wide' qualifier implicitly distinguishes it from post-level pin siblings like mod_pin_post/mod_unpin_post, but no sibling is named explicitly, so it falls short of a 5.

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

Usage Guidelines4/5

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

Provides clear context for use and a useful when-not hint: 'expired pins already drop out of queries on their own' tells the agent it need not delete expired pins. It does not explicitly name admin_set_pin as the alternative for replacing/re-pinning, so it stops short of full routing guidance.

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

admin_delete_queue_jobAInspect

Delete one pg-boss job permanently. Irreversible: the record cannot be recovered and pending retries of it will never run again. Requires the job's queue name and id. Audit-logged. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYespg-boss job id (uuid)
queueYesqueue (job) name the id lives in

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it declares the operation irreversible, that the record cannot be recovered, that pending retries are cancelled, that the action is audit-logged, and that admin privileges are required. These are exactly the traits an agent needs before invoking a destructive tool.

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

Conciseness5/5

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

Four short sentences with the destructive scope front-loaded and zero filler; the irreversibility warning, parameter requirements, audit note, and auth note each earn their place.

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

Completeness5/5

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

For a two-parameter destructive tool with no annotations and no output schema, the description covers reversibility, side effects on retries, auth requirements, and audit trail — everything needed to call it safely and correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (id, queue) documented in the schema itself, so the baseline is 3. The description adds only the relational note that the queue name is where the id lives, and provides no format, examples, or lookup guidance beyond that.

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

Purpose5/5

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

States a specific verb (delete) plus resource (one pg-boss job) and scope (single, permanently), which cleanly separates it from admin_list_queue_jobs and admin_retry_queue_job in the sibling list. An agent can classify this as an irreversible single-record mutation without opening the schema.

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

Usage Guidelines4/5

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

Gives clear preconditions (requires queue name and id, requires admin) and the consequence 'pending retries will never run again' implicitly contrasts with admin_retry_queue_job. It never explicitly names the retry alternative or states when not to delete, so it falls short of full routing guidance.

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

admin_domain_abuse_transitionAInspect

Transition an abuse report to a new status: to = reviewing | resolved | rejected (moving back to pending is not allowed). The state machine is enforced by the service layer; terminal statuses (resolved/rejected) require a note of 1-500 characters. The reporter's result email language defaults to English (MCP calls carry no Accept-Language header). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
noteNorequired for terminal statuses
reportIdYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses service-layer enforcement of the state machine, the 1-500 character note requirement for terminal statuses, the admin requirement, and the notable side effect that a result email goes to the reporter with an English default. It omits error behavior, idempotency, and reversibility of a transition.

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

Conciseness5/5

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

Every sentence earns its place: allowed values and the forbidden transition come first, then enforcement and note rules, then the email side effect and the admin gate. No filler or restatement of the tool name.

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

Completeness4/5

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

For a 3-parameter mutation tool with no annotations and no output schema, the description covers purpose, constraints, permissions, and a side effect. The remaining gap is what the call returns and whether repeated transitions are idempotent, which the absent output schema leaves unexplained.

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

Parameters4/5

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

Schema description coverage is only 33%, so the description must compensate, and it does for the two parameters that matter: the allowed values of `to` and the note's requirement and 1-500 character length. Only `reportId` is left to the schema's uuid format, which is self-evident from the name.

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

Purpose5/5

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

States a specific verb (transition) and resource (abuse report) plus the exact set of legal target values (reviewing | resolved | rejected), which distinguishes it from read-only siblings like admin_list_domain_abuse and from the more general admin_domain_moderate. The state-machine constraint further pins down what the tool is for.

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

Usage Guidelines4/5

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

Gives clear operating conditions: which transitions are permitted (no return to pending), that terminal statuses demand a note, and that admin privileges are required. It stops short of naming an alternative tool (e.g. where to list reports first) or explicitly stating when not to call it.

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

admin_domain_moderateAInspect

Moderate one domain registration. action=suspend: withdraw the DNS delegation but keep the desired NS/DS config (only active domains; 409 otherwise; the owner is notified). action=activate: lift a suspension and re-sync the delegation from the preserved config (only suspended domains). action=release: force-release the domain so its label can be registered again (409 if already released); enforce=true switches to immediate-delete semantics (delegation removed now, owner notified of deletion). action=refund: credit points back to the owner. Amount is required (positive integer); the ledger refund is idempotent per call. action=resync: re-enqueue the delegation sync job matching the domain's status (409 for released domains). note (max 300) rides along with suspend/activate/release; every action is audit-logged. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNosuspend/activate/release only
actionYes
amountNorefund only: positive integer amount of points to refund
enforceNorelease only: true = immediate delete (delegation removed now, label freed)
domainIdYes

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: per-action preconditions and 409 failures, owner notification on suspend/release, preserved NS/DS config, immediate-delete semantics for enforce=true, idempotent ledger refund, and audit logging. An agent knows the blast radius and side effects before calling.

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

Conciseness4/5

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

A single dense block, but every sentence earns its place and it is front-loaded as action=... clauses that an agent can scan. Bulleted per-action formatting would be marginally clearer than the run-on prose, but there is no filler.

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

Completeness5/5

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

For a 5-action fan-out tool with no annotations and no output schema, the description covers preconditions, failure codes, side effects, idempotency, authorization, and audit behavior. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 60% and the description supplements it: note is scoped to suspend/activate/release, amount is required as a positive integer for refund, and enforce=true is explained as immediate delete with the label freed. Only domainId is left implicit (self-evident as a UUID).

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

Purpose5/5

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

States a specific verb (moderate) and resource (one domain registration), then enumerates all five action modes with their individual semantics. An agent can distinguish this from siblings like admin_domain_abuse_transition, domain_update_ns, or admin_get_domain_registration without opening any schema.

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

Usage Guidelines4/5

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

Gives explicit when/when-not per action (suspend only active domains else 409; activate only suspended; release 409 if already released; resync 409 for released) and states the admin prerequisite. It does not route the agent to alternative tools for adjacent tasks, which is the only missing piece for a 5.

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

admin_federation_actor_actionAInspect

Suspend or restore one remote fediverse actor. action=suspend flips the remote actor and its shadow account to suspended in a single transaction: the account becomes invisible site-wide (feed, interactions and every session-bound surface, with the same semantics as a local user ban) until restored. action=restore lifts the suspension. note (optional, max 300) is appended to the audit trail. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNooptional operator note for the audit trail
actionYes
actorIdYesap_actors row id (from admin_get_federation_snapshot)

TDQS

A4.5/5.0
Behavior5/5

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

No annotations are present, so the description carries the full burden and does so well: it discloses the single-transaction nature, the exact blast radius ('invisible site-wide, feed, interactions and every session-bound surface'), reversibility via restore, audit-trail side effect of the note, and the admin prerequisite. These are precisely the traits an agent needs for a destructive mutation.

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

Conciseness4/5

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

Front-loaded with the action-resource pair followed by effect, reversibility, side effects and prerequisites in a tight four sentences. There is minor redundancy between 'until restored' and 'action=restore lifts the suspension', but nothing inflating the description.

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

Completeness4/5

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

For a 3-param destructive tool with no output schema and no annotations, it covers safety profile, effect scope, reversibility and authorization. Gaps remain around return/success shape and behavior on an already-suspended actor (idempotency) or on unknown actorIds, which matter somewhat for a transactional mutation.

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

Parameters4/5

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

Schema coverage is 67% and the description fills the gap on the undocumented action enum by explaining what suspend and restore each do, plus the audit-trail effect and 300-char cap of note. It adds real meaning beyond the schema, though it doesn't restate the actorId UUID format/origin constraint.

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

Purpose5/5

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

The description opens with a specific verb pair and resource: 'Suspend or restore one remote fediverse actor.' It explicitly scopes the target to remote fediverse actors, which separates it from local-user tools like admin_ban_user and admin_unban_user. An agent can select it without opening the schema.

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

Usage Guidelines4/5

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

It clearly defines the two action values and their effects, and the 'same semantics as a local user ban' cue implicitly tells the agent this is the federation counterpart to admin_ban_user. It never states when NOT to use it or names a sibling alternative for related federation tasks (e.g. admin_domain_moderate), so it stops short of explicit routing.

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

admin_get_auditAInspect

Read the audit log stream (admin actions in mod_logs), newest first, with the acting admin joined in. Optional filters: action (exact match, e.g. settings.update / domain.release), adminId (uuid; system actors have null). Returns audit rows + total + the distinct action list (for filter dropdowns). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
actionNoExact action filter (e.g. settings.update)
offsetNo
adminIdNoFilter by acting admin; omit to include system actors

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses ordering, the admin join, that system actors surface with null adminId, an explicit authorization requirement ('Requires admin'), and return contents. Missing only things like pagination behavior or rate limits.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the core purpose and scoping/ordering before the filter details and the auth caveat. No filler.

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

Completeness5/5

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

No output schema exists, so the description rightly spells out the return shape (audit rows + total + distinct action list) and the admin prerequisite. Everything needed to call it correctly is present.

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

Parameters4/5

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

Schema coverage is only 50%, but the description compensates by clarifying action is an exact match with concrete examples (settings.update / domain.release) and that adminId relates to system actors having null. limit/offset are left to the schema's defaults and bounds.

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

Purpose5/5

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

States a specific verb (Read) and resource (audit log / admin actions in mod_logs), plus ordering (newest first) and the join (acting admin). This is clearly distinguishable from lookalike siblings like admin_list_mail_log or admin_list_ops_snapshot.

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

Usage Guidelines3/5

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

Explains the optional filters and what the distinct action list is for (filter dropdowns), giving implied usage. But it names no alternatives and states no when-to-use or when-not conditions relative to the other admin log/list tools.

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

admin_get_backup_statusAInspect

Backup panel snapshot (read-only): whether backup storage is configured, the daily cron expression, retention days, whether a run is currently in progress, the last run and the 25 most recent runs (trigger/status/size/duration/error). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden and does reasonably well: it declares read-only semantics, states the admin authorization requirement, and enumerates the returned state (configured flag, cron, retention, in-progress, last run, 25 recent runs with trigger/status/size/duration/error). It omits error behavior and any rate/refresh considerations, but covers the key traits.

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

Conciseness4/5

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

A single front-loaded sentence that opens with the purpose and then enumerates return fields; every listed field is informative rather than filler. It is dense and list-heavy, but no sentence is wasted.

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

Completeness5/5

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

Because no output schema exists, describing the returned snapshot contents is exactly the compensation needed, and the description supplies it along with the admin requirement. An agent has everything required to call this correctly.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric this is a baseline 4. The description adds nothing to parameter meaning, which is correct since there is nothing to describe.

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

Purpose4/5

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

The description gives a specific verb+resource ('Backup panel snapshot') and immediately marks it read-only, which implicitly separates it from the write sibling admin_run_backup. It does not name the sibling explicitly, so the differentiation is inferable rather than stated.

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

Usage Guidelines3/5

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

The only guidance is the prerequisite 'Requires admin', which is useful but does not tell the agent when to reach for this versus admin_run_backup or other admin snapshot tools (admin_get_ops_snapshot, admin_get_audit). Usage is implied by the name and read-only marker rather than explained.

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

admin_get_boardAInspect

Get one board's full profile (policies, overrides, manual translations) plus its moderator roster with per-moderator wage/attendance overrides. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the auth requirement and the breadth of returned data, and 'Get' implies a read operation. It does not address error behavior for an unknown boardId, rate limits, or whether the roster can be empty – meaningful gaps for a tool with zero annotation coverage.

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

Conciseness4/5

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

A single dense sentence, appropriately front-loaded with the verb and resource before the payload enumeration. No filler, though the parenthetical list of returned fields makes it longer than strictly necessary.

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

Completeness4/5

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

For a one-parameter getter with no output schema, the description usefully previews the return payload and states the admin prerequisite. The remaining gap is failure/edge-case behavior, which is minor at this complexity.

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

Parameters3/5

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

Schema coverage is 0%, so the description technically has to compensate, and it does not explain boardId beyond the reference to 'one board'. The parameter is a single self-evident UUID identifier whose type/format is already declared in the schema, so the practical cost is low.

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

Purpose4/5

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

States a specific verb and resource ('Get one board's full profile') and enumerates the payload: policies, overrides, manual translations, and moderator roster with wage/attendance overrides. The word 'one' implicitly distinguishes it from admin_list_boards, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

'Requires admin' gives a real precondition, which is more than most definitions offer. However, there is no guidance on when to use this versus admin_list_boards or admin_get_topic, and no mention of what happens on a missing/invalid board.

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

admin_get_brandAInspect

Read the site brand texts: name, tagline, description plus the parsed per-locale translation package (locale → {tagline, description}). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does a fair job: 'Read' signals a non-mutating operation, 'Requires admin' declares the authorization requirement, and the parenthetical '(locale → {tagline, description})' discloses the nested return shape. It omits failure modes (e.g. behavior when brand is unset) but nothing is contradicted.

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

Conciseness5/5

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

A single sentence that front-loads the core action, enumerates the returned fields, and closes with the auth prerequisite. Every clause earns its place, with no filler or repetition of the name.

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

Completeness4/5

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

There is no output schema, so the description must describe return values itself, and it does so concretely including the locale-keyed translation map. For a zero-parameter admin getter this is nearly complete; only edge-case behavior (unset brand, error surface) is unaddressed.

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

Parameters4/5

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

The tool takes zero parameters, so the schema has nothing to document and the baseline of 4 applies. The description adds no argument-level detail because none is needed.

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

Purpose4/5

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

States a specific verb ('Read') and resource ('site brand texts'), then enumerates the exact fields returned (name, tagline, description) plus the per-locale translation package. The get/set pairing with the sibling admin_set_brand is inferable, but the description never names that sibling, so differentiation is left implicit.

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

Usage Guidelines3/5

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

The only guidance is the precondition 'Requires admin', which is useful auth context but not a when-to-use rule. It never states when to prefer this over admin_get_settings (which likely also carries brand-ish config) or that this is the read counterpart to admin_set_brand, so usage is only implied.

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

admin_get_domain_registrationAInspect

Get one domain registration's admin detail: domain DTO + owner + recent DNS sync jobs + related abuse reports (read-only, no audit entry). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainIdYes

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does materially: it discloses read-only semantics, that no audit entry is written (a real side-effect disclosure), and the admin authorization requirement. It stops short of rate limits or response-shape caveats, but this is well above the bare-minimum for an unannotated 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.

Conciseness5/5

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

One dense sentence, front-loaded with the verb and scope, with the return contents and the two operational qualifiers compactly bracketed. No filler sentences.

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

Completeness4/5

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

With no output schema, the description correctly enumerates the returned components, and it covers the authorization and side-effect profile an agent needs before calling. Only the identifier format and the list-vs-single routing are left implicit.

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

Parameters3/5

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

Schema description coverage is 0% on the single domainId parameter, so the description must compensate. It only implies that the ID identifies the target registration ('one domain registration's admin detail') and adds no format or identifier-source detail beyond that weak implication.

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

Purpose5/5

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

States a specific verb (Get), resource (domain registration), and singular scope ('one ... admin detail') that distinguishes it from the sibling admin_list_domain_registrations. Enumerates the composite payload (domain DTO + owner + DNS sync jobs + abuse reports), so an agent knows exactly what it returns without opening a schema.

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

Usage Guidelines3/5

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

Gives a prerequisite ('Requires admin') and non-use markers ('read-only, no audit entry'), but never names the alternative tools it competes with, such as admin_list_domain_registrations for enumeration or domains_get for the public view. Usage is implied by the admin-detail scoping rather than stated.

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

admin_get_federation_snapshotAInspect

Get the ActivityPub federation governance snapshot: shadow-actor/link/follow stats, the latest inbound activities, the latest remote actors with their status (active | suspended) and the in-flight profile-bind verification sessions (read-only, no audit entry). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does deliver: it discloses that the call is read-only and produces no audit entry, plus the status vocabulary (active | suspended). It stops short of describing pagination, response size, or freshness of the snapshot data.

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

Conciseness4/5

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

A single front-loaded sentence anchored by the verb 'Get', with the payload enumeration packed in. Dense but every clause names distinct returned data, so little is wasted.

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

Completeness4/5

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

For a zero-parameter tool with no output schema, the description usefully stands in for the return shape by enumerating the data categories and the actor status enum. Auth requirement is covered; only pagination/freshness remain unstated.

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

Parameters4/5

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

Zero parameters, so there is nothing for the description to disambiguate — the baseline for a no-param tool. The description correctly avoids inventing parameter detail.

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

Purpose5/5

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

Names a specific verb and resource (get ... federation governance snapshot) and enumerates exactly what it returns: shadow-actor/link/follow stats, inbound activities, remote actors with status, and in-flight profile-bind verification sessions. This clearly separates it from sibling read tools like admin_get_ops_snapshot, admin_get_stats, and admin_get_audit.

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

Usage Guidelines3/5

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

'Requires admin' gives a permission prerequisite, which is useful context. However, it never states when to reach for this tool over the similarly-named admin_get_ops_snapshot or admin_get_stats, leaving the choice to inference.

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

admin_get_guest_railAInspect

Read the guest rail join-invite copy (shown to logged-out visitors): baseline title/description plus the parsed per-locale translation package (locale → {name, description}). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonable work: it signals a read operation, discloses the admin authorization requirement, and describes the returned data structure (locale → {name, description}). It stops short of covering failure modes, such as what happens when no guest rail copy is configured or when the translation package is absent.

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

Conciseness5/5

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

A single efficient sentence with the action and resource front-loaded, followed by a parenthetical defining the resource and the exact return shape. No filler, no restatement of the tool name.

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

Completeness4/5

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

With no output schema, no annotations, and no parameters, the description is the only source of behavioral information, and it covers the essentials: auth requirement and return payload shape. Missing only edge-state behavior, which is a minor gap for a simple zero-arg getter.

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

Parameters4/5

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

The tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate. It correctly avoids inventing parameter discussion and instead spends its words on the returned payload.

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

Purpose5/5

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

States a specific verb (Read) and a precisely defined resource (the guest rail join-invite copy), then clarifies what that is by naming its audience: copy shown to logged-out visitors. It also enumerates the exact content returned (baseline title/description plus the per-locale translation map), which cleanly separates it from the write-side sibling admin_set_guest_rail.

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

Usage Guidelines3/5

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

The description gives one hard precondition ('Requires admin') but never states when to reach for this tool versus the obvious sibling admin_set_guest_rail or other content getters. Usage is implied by the get/set naming pair rather than stated explicitly.

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

admin_get_ops_snapshotAInspect

Read-only operations snapshot for the ops console: worker process info, core database table row counts, pg-boss queue depth by queue x state, content health (pending review / open reports / new users and posts in 24h), storage usage (on-disk media walk budgeted ~2s, partial results flagged complete:false; r2 driver adds a DB-aggregated r2 section) and dns query stats (dnsdist aggregates from ClickHouse when the DNS_STATS_CH_URL integration is configured, otherwise null). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it declares the operation read-only, states the admin requirement, warns that storage figures are budgeted (~2s) with partial results marked complete:false, and explains that dns stats are null unless DNS_STATS_CH_URL is configured. This conditional/partial-result disclosure is genuinely useful; only the absence of a return-shape summary keeps it from a 5.

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

Conciseness4/5

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

Front-loads the purpose before the section list, and every clause earns its place by naming a distinct data section. The single very long sentence with nested parentheticals is dense and slightly hard to scan, which costs it the top mark.

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

Completeness4/5

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

For a no-parameter tool with no annotations and no output schema, the description does the heavy lifting by enumerating all returned sections and their edge cases (partial storage, null dns stats). It is essentially complete, though it does not note an auth failure mode or the response envelope.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4 and there is no parameter meaning for the description to add or omit. Nothing about arguments is left ambiguous.

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

Purpose4/5

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

Uses a specific verb+resource ('Read-only operations snapshot') and enumerates the exact sections it returns (worker process info, row counts, queue depth, content health, storage, dns stats), which effectively separates it from admin_get_stats and admin_get_federation_snapshot. It stops short of naming any sibling explicitly, so it lands at 4 rather than 5.

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

Usage Guidelines3/5

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

Implies its usage context ('for the ops console') and states a prerequisite ('Requires admin'), which is more than nothing. However, it gives no when-to-use/when-not guidance and never contrasts itself with the many other admin_* and get_stats-style read tools, leaving the agent to infer the choice.

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

admin_get_settingsAInspect

Read site settings (full key set by default; optional keys subset; unknown keys are ignored). Same masking as the web admin console (secrets never leave this tool in plaintext): moderation/llm apiKeys become hasKey flags, oauth clientSecret becomes hasSecret, smtp pass becomes hasPass; the per-locale translation packages (site.brandI18n / site.guestRailI18n) come back parsed as objects. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysNooptional subset of setting keys; unknown keys are ignored; omit for all keys

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the masking contract for return values (apiKeys -> hasKey, clientSecret -> hasSecret, smtp pass -> hasPass, secrets never returned in plaintext), the parsing of i18n packages into objects, and the admin authorization requirement.

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

Conciseness4/5

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

Front-loaded with purpose and packed with genuinely useful detail, but it is one long semi-colon-chained sentence; the masking rules could be broken out for readability. Little waste, though density hurts scanability slightly.

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

Completeness5/5

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

For a tool with no output schema and no annotations, the description compensates by explaining exactly how return values are transformed (masked secrets, parsed i18n objects) and what authorization is required. Nothing essential to correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the single `keys` parameter is fully documented there, including 'unknown keys are ignored' and 'omit for all keys'. The description largely restates that, adding only emphasis on the default behavior, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('Read site settings') and immediately defines the scope ('full key set by default; optional `keys` subset'), which cleanly separates it from the write-side sibling admin_set_settings. An agent can tell what it does without opening the schema.

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

Usage Guidelines4/5

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

Gives clear operating context: default full-key behavior, how to narrow via `keys`, that unknown keys are ignored, and the hard prerequisite 'Requires admin'. It stops short of naming alternative readers (e.g. admin_get_brand/admin_get_guest_rail for narrower scopes) or stating 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.

admin_get_statsAInspect

Site-wide operating stats (users / posts / comments / open reports / pending review). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose the auth requirement ('Requires admin') and the read-only nature implied by 'stats', and enumerates the returned metrics in the absence of an output schema. It does not state caching/refresh behavior or whether the counts are live, which is a moderate gap for a stats endpoint.

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

Conciseness5/5

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

Two short sentences, zero waste, with the scope and metric list front-loaded before the access requirement. Nothing is padded or repeated from the name.

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

Completeness4/5

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

For a zero-parameter, no-output-schema read tool, the description supplies the returned metric set and the admin prerequisite, which is most of what an agent needs. Only the live-vs-cached nature of the numbers is left unstated.

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

Parameters4/5

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

The tool takes zero parameters, so the description needs no parameter detail; the baseline for a parameterless tool applies. The parenthetical metric list adds useful framing about what is being measured even though there is nothing to configure.

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

Purpose4/5

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

States a specific verb (get) and resource (site-wide operating stats) and enumerates the exact metrics returned: users, posts, comments, open reports, pending review. It is distinguishable from the write-oriented admin siblings, but it never contrasts with the similar-sounding read tools get_stats or admin_get_ops_snapshot.

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

Usage Guidelines2/5

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

The only usage signal is the precondition 'Requires admin', which tells the agent who may call it but not when to prefer it over get_stats, admin_get_ops_snapshot, or admin_get_audit. No when-to-use 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.

admin_get_topicAInspect

Get one topic's full profile plus all its manual translations (locale → {name, description}). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicIdYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the admin authorization requirement and that the read returns a full profile plus all manual translations, which is real added context. It says nothing about failure modes (unknown topicId), caching, or whether translations include non-manual/auto ones, leaving gaps for an unannotated tool.

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

Conciseness5/5

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

One dense sentence that front-loads the action and resource, then the return shape, then the permission requirement. No filler whatsoever.

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

Completeness4/5

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

For a single-resource read with no output schema, the description covers the operation, the permission gate, and the shape of the returned translations map. What is missing is minor: error behavior for an invalid/unknown topicId.

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

Parameters3/5

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

The single parameter has 0% schema description coverage, so the schema only supplies the name and uuid format. The description implies topicId selects the topic being fetched but adds no format or resolution semantics beyond that; adequate but thin.

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

Purpose4/5

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

States a specific verb and resource ('Get one topic's full profile') and even names the payload contents (manual translations keyed by locale). The word 'one' implicitly separates it from admin_list_topics, but no sibling is named explicitly, so it stops short of a 5.

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

Usage Guidelines3/5

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

'Requires admin' gives a useful precondition, and the singular 'one topic' implies this is the detail-fetch counterpart to admin_list_topics. However, no when-to-use or when-not-to-use guidance and no alternative (e.g. admin_list_topics, admin_upsert_topic) is referenced.

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

admin_grant_badgeAInspect

Grant a badge to a user by username: badgeId plus the target username (1-63 chars, case-insensitive) and an optional note (max 200). Idempotency guard: granting again to a holder returns 409 already_granted. The user receives a congratulation notification; federated ghost accounts (ActivityPub handles with @) have no session to manage wearing, so the badge is auto-worn on grant (wear limit 3 still applies). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNogrant reason, shown in admin lists
badgeIdYes
usernameYestarget user's username

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses the 409/idempotency outcome, that the user receives a congratulation notification, that federated ghost accounts auto-wear the badge because they have no session, and that the wear limit of 3 still applies. This is exactly the kind of side-effect and edge-case context an agent needs for a privileged mutation.

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

Conciseness4/5

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

A single dense paragraph that front-loads the verb, resource, and required inputs before moving to idempotency and side effects. Every sentence carries information, though the length pushes the practitioner-relevant warning (auto-wear, wear limit) toward the tail rather than near the top.

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

Completeness4/5

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

For a privileged mutation with no annotations and no output schema, the definition covers auth requirement, idempotent failure mode, notification side effect, and the federated-account edge case. It could be slightly stronger by stating what a successful response returns or where badgeId is sourced, but the essentials are present.

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

Parameters4/5

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

Schema coverage is 67%, with note and username already documented in-schema. The description adds genuinely new detail: username is case-insensitive and 1-63 chars (schema only gives maxLength 63, no min or casing), and note is optional with a 200 max. badgeId is only identified by name/format, with no hint that it comes from admin_list_badges, leaving a small gap.

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

Purpose5/5

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

States a specific verb+resource ('Grant a badge to a user') and the keying mechanism (by username), which cleanly separates it from siblings like admin_revoke_badge, admin_list_badges, and admin_upsert_badge. An agent can distinguish it from those without opening any schema.

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

Usage Guidelines4/5

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

Gives clear context: 'Requires admin' and the idempotency guard ('granting again to a holder returns 409 already_granted'), which effectively tells the agent not to re-call for existing holders. It stops short of explicitly naming the alternative (e.g. admin_revoke_badge) or stating when-not to use it, so it earns a 4 rather than a 5.

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

admin_list_badgesAInspect

List the badge catalog with per-badge grant counts (sorted by sortOrder then creation time): key, baseline zh name/wear-text/icon/style/description, enabled flag. Badge display content is localized per reader via ext_badge_translations (missing locales fall back to en, then the zh baseline). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningful work: it discloses the admin authorization requirement, the deterministic sort (sortOrder then creation time), and the localization fallback chain (ext_badge_translations -> en -> zh baseline). It omits pagination/result-size behavior, which is the only notable gap for a catalog endpoint.

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

Conciseness4/5

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

Front-loaded with purpose and sort behavior, then the returned field list, then localization and auth. The field enumeration makes the middle sentence dense, but every clause carries information an agent would otherwise have to infer.

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

Completeness4/5

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

No output schema or annotations exist, so the description must describe the return shape, and it does (key, baseline zh name/wear-text/icon/style/description, enabled flag, grant counts). Combined with the localization note and admin requirement, it is nearly complete; only paging/limits are unaddressed.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. Nothing in the description is needed to disambiguate inputs, and it correctly avoids inventing parameter semantics.

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

Purpose5/5

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

States a specific verb+resource ("List the badge catalog") and further narrows scope with per-badge grant counts and sort order, making it unmistakable against mutating siblings like admin_upsert_badge, admin_grant_badge or admin_revoke_badge. An agent can tell exactly what this returns without opening anything else.

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

Usage Guidelines3/5

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

Usage is implied by the list verb and the "Requires admin" prerequisite, but there is no explicit when-to-use framing, no mention of alternatives, and no guidance on when to prefer this over e.g. admin_list_perks or a search tool. Minimum-viable rather than instructive.

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

admin_list_boardsAInspect

List all boards including inactive ones, with policies, display order, post counts and manual translations (locale → {name, description}). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the returned fields (policies, display order, post counts, translations) and the admin requirement, but says nothing about pagination, ordering guarantees, or volume, which matters for a bulk list endpoint.

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

Conciseness5/5

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

A single dense sentence that front-loads the scope ('including inactive ones') and then enumerates returned fields; there is no filler. The parenthetical nicely compresses the translation shape.

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

Completeness4/5

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

With no output schema and no annotations, the description does the work of signaling key return fields and the admin gate, which is adequate for a no-param list tool. It stops short of covering pagination or per-record nesting limits, a minor gap.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline is 4. Nothing in the description conflicts with the empty schema.

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

Purpose5/5

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

States a specific verb and resource ('List all boards') and adds scope that distinguishes it from siblings: it includes inactive boards and requires admin, unlike the public list_boards/search_boards. An agent can tell this apart from admin_get_board (single board) and admin_list_topics without opening a schema.

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

Usage Guidelines3/5

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

The 'Requires admin' clause implies the admin context and the inactive-inclusion hints at when this is preferred over public listing, but it never names an alternative or an explicit trigger condition. Usage is inferable rather than stated.

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

admin_list_commentsAInspect

List latest comments with status (moderation view). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNoall

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose a real behavioral trait — the admin authorization requirement and the moderation viewpoint — which is useful. It omits ordering/'latest' semantics, pagination behavior, and what the moderation view actually returns, so the coverage is partial.

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

Conciseness5/5

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

Two short sentences, zero filler, with the resource and scope front-loaded ahead of the prerequisite. Nothing is redundant.

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

Completeness3/5

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

With no annotations, no output schema, and 0% parameter coverage, the description should say more about return shape, ordering, and pagination. As written it is adequate for picking the tool but thin for calling it confidently.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It hints at the status parameter ('with status') but adds no value beyond the schema's own enum values, and the limit parameter is undocumented in both description and schema.

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

Purpose4/5

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

States a specific verb and resource ('List ... comments') and adds scope ('latest', 'moderation view') that separates it from the read-only siblings list_post_comments and search_comments. It stops short of naming those alternatives explicitly, so differentiation is implied rather than stated.

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

Usage Guidelines3/5

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

'Requires admin' gives a genuine precondition, and '(moderation view)' implies the moderation context. However, it never says when to choose this over list_post_comments or search_comments, nor what the moderation framing changes about the result set.

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

admin_list_domain_abuseAInspect

List domain abuse reports (paginated, newest first): optional status filter; q matches the reported FQDN or the reporter email. Attachments are returned as storage keys only. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo
limitNo
offsetNo
statusNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden well: it discloses pagination, newest-first ordering, the admin permission requirement, and the non-obvious quirk that attachments come back as storage keys only. It doesn't state rate limits or a strict read-only guarantee, but the disclosed traits are solid.

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

Conciseness5/5

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

A single dense sentence front-loads the resource, then the filters, then the caveat, then the auth requirement. No wasted words.

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

Completeness4/5

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

For a read-only paginated list with no output schema and undocumented params, the description covers the key call-shaping facts (filters, ordering, auth, attachment format). Return field detail is omitted but largely unnecessary for a listing tool.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It clarifies q (matches reported FQDN or reporter email) and status (filter), and 'paginated' gestures at limit/offset, but limit and offset defaults/bounds are left entirely to the bare schema. Partial compensation only.

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

Purpose5/5

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

States a specific verb ('List') and resource ('domain abuse reports'), and the paginated/newest-first scope immediately identifies it apart from the mutation sibling admin_domain_abuse_transition. An agent can select it without opening the schema.

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

Usage Guidelines3/5

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

The description explains the filter semantics but never states when to reach for this tool versus admin_domain_abuse_transition or other admin list endpoints. Usage is implied by 'List ... reports' rather than explicitly framed as read-vs-modify routing.

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

admin_list_domain_preallocationsAInspect

List PFS pre-reserved domains (migrated from the legacy PublicFreeSuffix registry): pending entries await manual assignment, claimed entries are already delivered. Filter by status / suffix / keyword (fqdn or legacy whois email). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNokeyword matched against fqdn / email (case-insensitive)
limitNo
offsetNo
statusNoall
suffixIdNofilter by suffix

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose the admin authorization requirement and the lifecycle semantics of pending vs. claimed entries, which is genuinely useful. It stops short of confirming read-only behavior (only implied by 'List'), and says nothing about pagination behavior despite limit/offset parameters.

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

Conciseness4/5

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

A single dense sentence leads with the resource, then parenthetically supplies domain context, then the filter list, then the auth note. No filler, front-loaded, and all four clauses earn their place; only slightly long.

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

Completeness4/5

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

For a read-only listing tool with no output schema and no annotations, the description covers the essentials: what is listed, what the entry states mean, how to filter, and who may call it. Missing only pagination expectations, which the schema's defaults largely handle.

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

Parameters3/5

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

Schema description coverage is 40%, and the description compensates partially by mapping status/suffix/keyword to real filters and clarifying that the keyword matches fqdn or a legacy whois email (slightly richer than the schema's 'fqdn / email'). It adds nothing about limit/offset or the 'all' status default, so it does not fully close the coverage gap.

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

Purpose4/5

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

The description states a specific verb and resource ('List PFS pre-reserved domains') and even explains the domain-specific concept, including the legacy PublicFreeSuffix origin. However, it never explicitly distinguishes itself from close siblings like admin_list_domain_suffixes or admin_list_domain_registrations, so an agent must infer which listing tool to pick.

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

Usage Guidelines3/5

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

It names the available filters (status / suffix / keyword) and notes the admin requirement, which implies operational context, but there is no explicit when-to-use vs. alternative guidance or any exclusion ('use X instead when...'). The related assignment tools (admin_assign_domain_preallocation) are the natural next step but are never referenced.

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

admin_list_domain_registrationsAInspect

List all domain registrations across the platform (paginated, newest first): q fuzzy-matches the label (unicode or ASCII) or the owner's username; optional status/suffixId filters. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNofuzzy match: label / owner username
limitNo
offsetNo
statusNo
suffixIdNofilter by suffix

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose genuinely useful behavior: results are paginated, ordered newest first, and the call requires admin privilege. It falls short of describing return shape or rate/auth-token specifics, so it is 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.

Conciseness4/5

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

A single dense sentence that front-loads the operation, then pagination/order, then parameter meaning, then the admin gate. Efficient, though the semicolon-separated parameter clauses are somewhat packed.

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

Completeness4/5

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

For a paginated admin list tool with no output schema, it covers scope, ordering, parameter semantics, and the privilege requirement. The main omission is any hint at the returned fields or the shape of pagination metadata.

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

Parameters4/5

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

Schema coverage is only 40%, but the description compensates by explaining that q fuzzy-matches the label in unicode or ASCII or the owner's username, and that status/suffixId are filters. limit/offset are left to the schema's defaults, so a small gap remains.

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

Purpose4/5

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

States a specific verb+resource ("List all domain registrations") with scope ("across the platform"), which contrasts with the singular admin_get_domain_registration and the adjacent admin_list_domain_preallocations / admin_list_domain_suffixes. It does not name a sibling explicitly, so it stops short of a 5.

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

Usage Guidelines3/5

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

"Requires admin" gives a prerequisite and "optional status/suffixId filters" implies when to narrow results, but the description never states when to prefer this over admin_get_domain_registration or the other domain-list siblings. Usage is implied rather than directed.

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

admin_list_domain_suffixesAInspect

List all registration suffixes with registration counts, per-suffix reserved-label aggregates and DNSSEC availability. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations at all, the description carries the full disclosure burden and does meaningfully better than nothing: it states the admin authorization requirement and reveals that the response is an aggregate report (counts, per-suffix reserved-label data, DNSSEC availability) rather than a bare list. It is implicitly read-only via 'List', but does not discuss rate limits, result volume, or ordering.

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

Conciseness5/5

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

One sentence, front-loaded with the resource and its payload, with the auth constraint placed last where it belongs. No filler or repetition of the tool name.

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

Completeness4/5

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

With no output schema, the description is the only source of return-value information, and it enumerates the three categories of data returned. The auth requirement is also covered. Only result size/ordering and whether the list is exhaustive or paginated are left unaddressed.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. Schema coverage is also reported at 100%.

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

Purpose4/5

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

The description names a specific verb and resource (list registration suffixes) and enumerates the exact payload (registration counts, reserved-label aggregates, DNSSEC availability), which cleanly separates it from admin_list_domain_registrations and admin_list_domain_preallocations. It does not, however, explicitly contrast itself with the non-admin domains_suffixes sibling, so the differentiation rests on the admin_ prefix rather than stated text.

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

Usage Guidelines3/5

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

The only usage signal is the trailing 'Requires admin', which is a prerequisite rather than a when-to-use rule. There is no guidance on when to prefer this over domains_suffixes or admin_get_domain_registration. Usage is implied by the name and the prerequisite, but not spelled out.

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

admin_list_feature_cardsAInspect

List feature intro cards (baseline zh content, newest first) with per-locale translations (locale → {title, subtitle, description}); paginated. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose real behavioral traits: baseline zh content, newest-first ordering, the shape of per-locale translations, pagination, and the admin requirement. It stops short of stating default page size, totals, or count behavior, which keeps it from a 5.

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

Conciseness4/5

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

A single dense sentence with the resource and key scoping facts front-loaded, using parentheticals and semicolons efficiently. No wasted words, though the stacked clauses make it slightly heavy.

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

Completeness4/5

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

No output schema exists, and the description usefully sketches the return structure (locale → {title, subtitle, description}) along with ordering and auth. For a two-param read-only list tool this is close to complete, with pagination parameter detail the main gap.

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

Parameters2/5

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

Schema description coverage is 0% for both limit and offset, so the description must compensate. It only says "paginated," which hints the params exist but gives no defaults (25/0), ranges (max 100), or semantics for each parameter, leaving the agent to infer from JSON defaults alone.

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

Purpose5/5

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

States a specific verb and resource ("List feature intro cards") and adds scope that distinguishes it from siblings like admin_list_feature_switches, admin_upsert_feature_card, and admin_delete_feature_card. An agent can tell this is the read-only enumerator for feature cards without opening the schema.

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

Usage Guidelines3/5

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

The precondition "Requires admin" is given, which implies usage context, but there is no explicit when-to-use vs when-not guidance or reference to the sibling upsert/delete feature-card tools. Usage is inferable from the purpose but not spelled out.

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

admin_list_feature_switchesAInspect

List the site's boolean feature switches with their current values (registration, auth, 2FA, MCP admin tools, email notifications, domains, ActivityPub, SSO providers). The key set is a strict allowlist mirroring the web admin settings console. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does add real behavioral context: it discloses that the operation requires admin rights and that the key set is a strict allowlist mirroring the web admin settings console (i.e., a fixed, complete enumeration rather than an open-ended key space). It does not describe the return shape, though for a zero-parameter read tool that is a minor gap.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the action and resource, then the scope enumeration, then the allowlist/permission caveats. Every clause earns its place with no filler.

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

Completeness4/5

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

With no output schema and no annotations, the description supplies the two things an agent most needs: what the return contains (boolean switch values across a defined category set) and the auth requirement. Only the exact response shape (e.g., a key-to-boolean map) is left implicit, which is a small residual gap.

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

Parameters4/5

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

The tool takes no parameters, so the baseline is 4. The description adds useful semantics about the response content instead — what the switch values represent and which categories they cover — which is the relevant information for a parameterless call.

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

Purpose4/5

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

States a specific verb ('List') and a precisely scoped resource: the site's boolean feature switches with their current values. The parenthetical enumeration (registration, auth, 2FA, MCP admin tools, etc.) pins down exactly which switches are in scope and implicitly separates it from admin_get_settings and admin_set_feature_switch. It stops short of naming those siblings explicitly, so it falls just below the top mark.

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

Usage Guidelines3/5

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

The prerequisite 'Requires admin' is stated, but there is no explicit when-to-use guidance or routing to alternatives such as admin_get_settings (for non-switch settings) or admin_set_feature_switch (to change a value). Usage is only implied from the description's scope.

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

admin_list_invitesAInspect

List site-wide invite codes (paginated, newest first) with the creator and the consumer joined, plus usage stats (used/unused totals): optional filter (all | used | unused, default all) and q fuzzy-matching the code. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNofuzzy match on the invite code
limitNo
filterNoall
offsetNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does a good job: it discloses pagination, sort order (newest first), what is joined into results, usage stats, and the admin authorization requirement. It stops short of disclosing rate limits or the exact response shape, but the auth and ordering disclosure are genuinely valuable.

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

Conciseness4/5

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

One dense, front-loaded sentence that puts the core action first and packs the ordering, joins, and parameter guidance after. No filler, though the colon-delimited clauses make it slightly heavy to parse.

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

Completeness4/5

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

For a read-only admin list tool with no output schema and no annotations, the description covers the essentials an agent needs: scope, ordering, pagination, joined data, stats, filtering, and the admin requirement. Only the explicit meaning of limit/offset is left unstated.

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

Parameters4/5

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

Schema coverage is only 25%, so the description must compensate, and it does for two of the three undocumented parameters: it explains the filter semantics (all | used | unused, default all) and q's fuzzy matching on the code. limit/offset are only gestured at via "paginated", leaving their roles implicit, which keeps this just below top marks.

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

Purpose5/5

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

States a specific verb and resource ("List site-wide invite codes") and goes further to name the ordering (newest first), the joined entities (creator and consumer), and the accompanying usage stats. It is clearly distinguishable from admin_revoke_invite, its only nearby sibling on the same resource.

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

Usage Guidelines3/5

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

Usage is implied by "List" and the admin gating, but there is no explicit statement of when to reach for this tool versus alternatives, nor any when-not guidance. Adequate but with a clear gap for a list tool in a crowded admin namespace.

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

admin_list_keywordsAInspect

Search the moderation keyword blacklist by word substring (case-insensitive), newest first. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoWord substring filter; omit for all
limitNo
offsetNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden and does disclose meaningful traits: case-insensitive matching, newest-first ordering, and the admin authorization requirement. It stops short of covering rate limits, whether soft-deleted keywords appear, or pagination interaction, so it is not fully complete.

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

Conciseness5/5

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

Two short clauses with the primary operation and filter semantics front-loaded, then the auth precondition. No filler or redundancy.

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

Completeness4/5

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

For a low-complexity, read-only list tool with three simple params and no output schema, the definition covers filter semantics, ordering, and access control adequately. Paging return shape is the only notable omission and is partly inferable from the schema's limit/offset defaults.

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

Parameters3/5

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

Schema description coverage is only 33% (q is documented; limit and offset are not), so the description should compensate more. It reinforces q's substring semantics ('case-insensitive', 'omit for all') but adds nothing about limit/offset bounds or paging behavior beyond what the raw schema shows.

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

Purpose5/5

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

States a specific verb (Search), resource (moderation keyword blacklist), and filtering semantics (word substring, case-insensitive), plus result ordering (newest first). This clearly distinguishes it from the write-side siblings admin_add_keyword, admin_bulk_add_keywords, and admin_delete_keyword.

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

Usage Guidelines3/5

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

The 'Requires admin' clause gives an access prerequisite, and substring search over the blacklist is implied by the name. However, it never states when to choose this over related siblings or any exclusion conditions, leaving usage to inference.

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

admin_list_mail_logAInspect

Mail queue view (read-only): sent-mail health counts by status (queued/sent/failed) over the last 24h and 7d, plus the 50 most recent undelivered mails (queued + failed) with recipient, template kind, attempts and last error. The same data as the ops console mail panel (no extra filters, mirroring the REST route). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it states read-only semantics, discloses the admin authorization requirement, and details what the payload contains (status buckets, time windows, 50-row cap, per-row recipient/template kind/attempts/last error). It omits pagination/truncation behavior for the counts and any rate or retention caveats, so it is thorough but not exhaustive.

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

Conciseness4/5

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

Front-loads the resource and read-only flag, then enumerates the returned data in one dense but purposeful sentence. The parentheticals about the ops console and REST-route parity earn their place by explaining scope limits, though the description is on the heavy side for a no-parameter list tool.

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

Completeness5/5

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

With no output schema and no annotations, the description supplies what an agent needs: safety profile, authorization requirement, return shape, row cap, and the guarantee that the view is non-filterable. Nothing essential for correct invocation is missing.

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

Parameters4/5

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

The tool takes zero parameters, so the schema baseline of 4 applies; there is nothing further for the description to disambiguate. The 'no extra filters' note usefully confirms that absence is intentional rather than an omission.

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

Purpose5/5

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

Names a specific resource (mail queue / sent-mail log) with a clear verb-equivalent (view) and an explicit scope: status counts over 24h/7d plus the 50 most recent undelivered mails. An agent can distinguish it from the template-and-config siblings such as admin_list_mail_templates without opening any schema.

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

Usage Guidelines4/5

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

Declares the read-only nature and explicitly warns there are no extra filters, mirroring the fixed console/REST route, which steers the agent away from trying to parameterize it. It does not name an alternative tool or state when another mail-related sibling would be preferable, so it stops short of full when-to-use guidance.

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

admin_list_mail_templatesAInspect

List every registered mail template with its override state: built-in name/description/variables (zh/en), the saved admin override (subjectZh/subjectEn/bodyZh/bodyEn/enabled), customized (whether any copy text is overridden) and enabled (false = the mail channel skips sending). Mail copy is zh/en bilingual data owned by the template center; empty override fields fall back to the built-in copy. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so richly: it explains the returned override state, clarifies that 'enabled: false' means the mail channel skips sending, and documents the fallback behavior when override fields are empty. It also states the admin authorization requirement, which is important context for a sensitive endpoint.

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

Conciseness4/5

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

The description is front-loaded with the main action and a colon-delimited list of relevant return fields. It is dense but every clause contributes useful information, though the long enumeration makes it somewhat run-on rather than optimally scannable.

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

Completeness5/5

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

There is no output schema and no annotations, so the description must explain what the tool returns and its behavioral constraints. It does so by enumerating the returned fields, clarifying bilingual copy ownership, fallback behavior, the meaning of 'enabled', and the admin requirement. This is complete for a parameterless admin list tool.

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

Parameters4/5

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

This tool has zero input parameters, so the baseline is 4. The description appropriately focuses on returned fields and their semantics rather than input parameters, adding useful meaning beyond the empty input schema.

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

Purpose4/5

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

The description uses a specific verb ('List') and resource ('mail templates') and details the override state fields returned. It does not explicitly distinguish this list tool from adjacent siblings such as admin_list_mail_log or admin_preview_mail_template, so it is clear but lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use guidance or alternatives. It states 'Requires admin,' which is a prerequisite rather than usage guidance, and never explains when to choose this tool over admin_preview_mail_template, admin_set_mail_template, or admin_list_mail_log.

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

admin_list_mediaAInspect

List site-wide media library items (paginated, newest first) with owner info: filename, kind, mime, size, dimensions, storage driver and a public URL. q fuzzy-matches the filename or the owner's username; optional userId and kind (inline | avatar | cover | featured) filters. Also returns global storage stats: total files, total bytes and uploads this month. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNofuzzy match: filename / owner username
kindNo
limitNo
offsetNo
userIdNofilter by owner

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does well: it discloses pagination, newest-first ordering, the record fields, the global storage-stats side output, and the admin requirement. It omits any note on rate limits or read-only guarantees, but for a read-only listing it is substantively transparent.

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

Conciseness5/5

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

Three tightly packed sentences, front-loaded with purpose and scope before filters and side outputs. Every clause conveys information not already obvious from the name.

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

Completeness4/5

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

No output schema and no annotations, yet the description enumerates returned fields and the aggregate stats, so the agent knows what comes back. Minor gaps remain on pagination defaults and safety framing, but nothing essential to calling it correctly is missing.

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

Parameters4/5

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

Schema coverage is only 40% (q and userId documented, kind/limit/offset not), so the description must compensate. It explains q's fuzzy-matching target, userId as an owner filter, and enumerates the kind values (inline | avatar | cover | featured), covering the otherwise-undocumented enum parameter.

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

Purpose5/5

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

States a specific verb and resource (list site-wide media library items) and adds a scope qualifier ('site-wide') that implicitly separates it from the sibling list_my_media. It also enumerates the returned fields, so an agent knows exactly what this tool produces.

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

Usage Guidelines3/5

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

The prerequisite 'Requires admin' is stated and the filters are described, giving implied usage context. However, it never explicitly says when to choose this over alternatives such as list_my_media or how it relates to admin_delete_media, so routing remains partly inferential.

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

admin_list_perksAInspect

List the display-name perk catalog (sorted by priority desc, price asc): slug, name, monthly price (TGC / 30 days), color, style, active flag, display priority and the count of currently effective subscriptions. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden and does add real context: the sort order (priority desc, price asc), the exact fields returned, and the admin authorization requirement. It does not discuss pagination, result size, or whether the catalog can be empty, leaving gaps for a no-annotation tool.

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

Conciseness4/5

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

A single front-loaded sentence leads with the action and resource, then folds in sort order and the field list. The field enumeration is long but earns its place because there is no output schema to carry that information.

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

Completeness4/5

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

For a zero-parameter read tool with no annotations and no output schema, the description compensates well by naming the authorization requirement and enumerating what is returned plus the sort order. Minor omissions like emptiness/pagination behavior are irrelevant here since no inputs exist.

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

Parameters4/5

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

The schema has zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The enumerated return fields are helpful but concern output, not input semantics.

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

Purpose5/5

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

States a specific verb ("List") and resource ("display-name perk catalog"), and its scope is clearly the catalog rather than the subscribers, so it is cleanly distinguishable from the sibling admin_list_perk_subscribers. An agent can tell what it retrieves without opening any schema.

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

Usage Guidelines3/5

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

"Requires admin" gives a useful prerequisite, but there is no explicit when-to-use, no when-not-to-use, and no named alternative among siblings like admin_list_perk_subscribers or admin_update_perk. Usage is only implied by the listing nature of the tool.

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

admin_list_perk_subscribersAInspect

List one perk's subscribers (paginated, newest first): username/display-name search (q), status filter (active | expired | revoked; anything else means no filter), and offset pagination. Rows carry the subscription id (needed for revoking), status, start/expiry dates, price paid and months. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNofuzzy match username / display name
limitNo
offsetNo
perkIdYes
statusNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does a solid job: it discloses pagination and sort order ('paginated, newest first'), the auth prerequisite ('Requires admin'), and the shape of returned rows. It does not mention rate limits or total-count/cursor behavior, so not quite exhaustive.

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

Conciseness5/5

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

Front-loaded with the core action, then layered detail in one dense but coherent sentence plus two short ones. Every clause (search, status filter, pagination, row contents, admin requirement) adds real information with no filler.

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

Completeness4/5

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

For a paginated admin list tool with no output schema and no annotations, the description covers the essential ground: auth, filtering, pagination, and return fields. It stops short of documenting the limit parameter and any pagination limits, but nothing critical to a correct call is missing.

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

Parameters4/5

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

Schema coverage is only 20%, so the description must compensate, and it does: it explains q (username/display-name search), the status filter's semantics ('active | expired | revoked; anything else means no filter'), and offset pagination. Only 'limit' (default 25, max 100) is left entirely undocumented in both description and schema.

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

Purpose5/5

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

States a specific verb and resource (list one perk's subscribers), scoped to a single perk, and is clearly distinguishable from siblings like admin_list_perks (which lists perks) and admin_revoke_perk_subscription (which acts on one subscription). An agent can identify the tool's job without opening any schema.

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

Usage Guidelines4/5

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

Gives clear context for use: requires admin, is scoped to one perk, and calls out that the returned subscription id is 'needed for revoking', implicitly routing to admin_revoke_perk_subscription. It does not name an explicit alternative or a when-not condition, so it stops short of a 5.

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

admin_list_pinsAInspect

List the site-wide pins currently in effect for one post (the latest / hot / topic rails), newest first: each entry has id, scope, topicId + topicName (topic scope only) and expiresAt (ISO). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and delivers well: it states the ordering ('newest first'), the exact return fields (id, scope, topicId + topicName, expiresAt as ISO), the scope-conditional field, and the admin auth requirement. Only pagination/bounding behavior is unstated.

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

Conciseness4/5

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

A single front-loaded sentence opens with verb+resource before the parenthetical details, with no filler. It is dense and slightly run-on with two parentheticals, but every clause carries information.

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

Completeness4/5

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

No output schema exists, and the description correctly fills that gap by enumerating the returned fields, their formats, and the sort order, plus the auth requirement. It is close to complete for a simple read; only cardinality/pagination behavior is missing.

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

Parameters3/5

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

Schema coverage is 0% for the single parameter, so the description must compensate. 'for one post' clarifies that postId identifies the target post, but it adds no format or constraint detail (the uuid format lives only in the schema), leaving the parameter semantics minimally explained.

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

Purpose5/5

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

States a specific verb (List) and resource (site-wide pins) with scope (for one post) and even names the rails involved (latest/hot/topic). An agent can distinguish it immediately from write siblings like admin_set_pin and admin_delete_pin.

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

Usage Guidelines3/5

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

It discloses the access requirement ('Requires admin') and the object of the query, so usage is implied, but it gives no explicit when-to-use guidance or routing to alternatives (e.g., the relationship to admin_set_pin, admin_delete_pin, or pin-listing within admin_list_posts).

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

admin_list_postsAInspect

List posts across the platform with status filter (moderation view). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
searchNotitle keyword
statusNoall

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the admin authorization requirement and that the operation is a read/list, but says nothing about pagination behavior, the default 30-item page, or result ordering, leaving meaningful gaps.

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

Conciseness5/5

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

A single compact sentence with the resource and scope front-loaded and no filler. Every clause earns its place.

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

Completeness3/5

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

For a four-parameter, no-output-schema list tool with no annotations, the description omits pagination semantics and defaults that an agent needs to call it correctly. The status filter and admin requirement are covered, but the definition is only minimally adequate.

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

Parameters3/5

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

Schema coverage is only 25% (only 'search' is documented in the schema), so the description should compensate. It adds that posts can be filtered by status, mapping to the enum parameter, but says nothing about limit, offset, or the search field it could have clarified.

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

Purpose4/5

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

States a specific verb+resource ('List posts') with explicit scope ('across the platform') and a moderation framing, which distinguishes it from siblings like list_my_posts. It stops short of naming a specific alternative such as search_posts, so sibling differentiation is implied rather than stated.

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

Usage Guidelines3/5

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

'Requires admin' gives a prerequisite and '(moderation view)' hints at context, so usage is implied. However, there is no explicit guidance on when to choose this over search_posts, list_my_posts, or admin_list_topics, nor any exclusion criteria.

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

admin_list_pro_applicationsAInspect

List professional-account applications for the review console (paginated, newest first): optional status filter (pending | approved | rejected) and q fuzzy-matching the applicant's username or display name. Each row carries the applicant identity and current account type. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNofuzzy match: username / display name
limitNo
offsetNo
statusNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it discloses the sort order (newest first), that results are paginated, the auth requirement, and the per-row payload ('applicant identity and current account type'). It omits any rate-limit, total-count, or pagination-metadata behavior, so it is not quite exhaustive.

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

Conciseness5/5

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

One dense sentence plus a short auth clause; the resource and scope are front-loaded and every clause (filters, ordering, row shape, auth) earns its place with no filler.

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

Completeness4/5

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

With no output schema, the description does describe the return rows and the ordering, and it covers all filters and the admin gate. It lacks detail on pagination metadata (totals, next-page signals) and on what happens when no applications match.

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

Parameters4/5

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

Schema description coverage is only 25%, so the description must compensate and largely does: it maps the status enum to a filter, explains q as fuzzy-matching username or display name, and signals pagination. It never names or explains limit/offset defaults or the 100 max, which schema picks up only structurally.

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

Purpose5/5

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

States a specific verb and resource ('List professional-account applications') plus the console context, ordering ('newest first'), and pagination. An agent can tell this apart from the decision counterpart admin_decide_pro_application and from admin_list_verifications without opening the schema.

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

Usage Guidelines4/5

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

Gives clear context for use ('for the review console') and states the access prerequisite ('Requires admin'). It does not explicitly name an alternative or state when not to use it, so it stops short of the when/when-not/alternatives bar.

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

admin_list_queue_jobsAInspect

List pg-boss jobs (newest first) with the filtered total and distinct job names, plus cron schedules with their last run state and subsystem ledgers (exports / domain sync / webhooks / usage checks). Optional filters: state (one of created/retry/active/completed/cancelled/failed; invalid values are ignored and mean all), name (exact match). Jobs expire after ~14 days (pg-boss retention). Strictly read-only, no queue side effects. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoexact job-name match
limitNo
stateNoinvalid values mean no filter
offsetNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and largely succeeds: it discloses read-only/no-side-effects, admin requirement, ~14-day pg-boss retention, newest-first ordering, and that invalid state values are ignored. It stops short of describing pagination or the response shape in detail.

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

Conciseness4/5

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

Three dense sentences, front-loaded with the core purpose and followed by filters and constraints. No filler, though the parenthetical list of subsystem ledgers is somewhat list-heavy.

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

Completeness4/5

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

For a read-only list tool with no output schema, the description explains what comes back (filtered total, distinct names, cron schedules, ledgers) and covers safety and retention. The main gap is the undocumented limit/offset paging behavior.

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

Parameters3/5

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

Schema coverage is 50%: name and state are described, but limit and offset have no schema description and are not mentioned in the description either, leaving the pagination parameters undocumented anywhere. The description's state/name notes largely restate the schema, so added value is modest.

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

Purpose5/5

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

States a specific verb+resource ('List pg-boss jobs') and adds scope detail: newest-first ordering, filtered total, distinct job names, plus cron schedules and subsystem ledgers. This clearly separates it from siblings like admin_delete_queue_job and admin_retry_queue_job.

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

Usage Guidelines3/5

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

It describes the optional filters and read-only nature, which implies it's the inspection tool, but never explicitly routes the agent to alternatives such as admin_delete_queue_job or admin_retry_queue_job, nor states when-not to use it. Usage is implied rather than spelled out.

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

admin_list_reportsBInspect

List reports (open by default; status filter). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNoopen

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the admin authorization requirement and the default filter behavior, but says nothing about whether it is read-only, pagination/return behavior, or what a report record contains.

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

Conciseness4/5

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

Extremely tight and front-loaded: the core action, the default filter, and the auth prerequisite all appear in one short sentence with zero filler. Brevity comes at some cost to completeness, but structurally it is well formed.

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

Completeness3/5

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

For a two-parameter, no-output-schema, no-annotation admin list tool, the description covers the essentials (action, default scope, auth) but leaves the limit parameter, the enumeration of statuses, and the shape/paging of results unaddressed. Adequate but with visible gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the status parameter's default and filter role, but omits the valid status values and says nothing at all about the limit parameter (default 30, max 100), leaving that parameter's semantics to the raw schema alone.

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

Purpose4/5

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

States a clear verb+resource ('List reports') plus the default scoping and that it is admin-only, which distinguishes it from action siblings like admin_resolve_report or admin_report_action. It does not explicitly name those siblings, so differentiation is implied rather than stated.

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

Usage Guidelines3/5

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

Provides an implied context (admin-only, defaults to open reports) but gives no explicit when-to-use versus the related tools admin_resolve_report/admin_report_action, nor when to set status='all' versus a specific status. Usage is inferable but not spelled out.

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

admin_list_topicsBInspect

List topics with governance fields and heat data (30-day post count, subscribers); search by name, filter by status. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoName keyword
sortNoheat
limitNo
offsetNo
statusNoOmit for all

TDQS

B3.4/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It discloses the auth requirement ('Requires admin') and describes the returned data (governance fields plus heat metrics), which is useful. However it never states read-only semantics, pagination behavior, or result ordering despite limit/offset/sort parameters.

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

Conciseness4/5

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

A single tightly packed sentence with semicolon-separated clauses that front-loads the resource and its returned fields before the operations and prerequisite. No filler, though the density makes the sort/enum mapping less than obvious.

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

Completeness3/5

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

With no output schema and no annotations, the description does a fair job covering return content and authorization, but leaves pagination defaults/limits, ordering semantics, and read-only safety unstated for a 5-parameter admin listing tool. Adequate but with clear gaps.

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

Parameters3/5

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

Schema coverage is only 40%, so the description must compensate. It documents the intent of 'q' (search by name) and 'status' (filter by status), and its parenthetical '30-day post count, subscribers' implicitly maps to the heat/posts/subs sort enum values. It says nothing about limit/offset, leaving pagination parameters undocumented in both places.

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

Purpose4/5

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

States a specific verb+resource (list topics) and goes beyond tautology by naming what it returns (governance fields, 30-day post count, subscribers) and the two supported operations (name search, status filter). It doesn't explicitly contrast with near siblings like admin_get_topic or admin_list_posts, so an agent must infer the distinction.

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

Usage Guidelines3/5

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

Usage is implied by 'search by name, filter by status' and the prerequisite 'Requires admin', but there is no explicit when-to-use vs. when-to-use-something-else guidance and no named alternatives. An agent can infer it lists topics for admin auditing but gets no routing help.

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

admin_list_usersAInspect

Search users by username/display name (with status, role, ban info). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose the admin auth requirement and the returned profile fields, which is meaningful. It says nothing about pagination (the limit cap of 100 with default 30) or result ordering, so key operational behavior is left undisclosed.

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

Conciseness4/5

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

A single dense sentence with the core action front-loaded and the qualifier trailing. The parenthetical field list is compact and earns its place; nothing is redundant.

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

Completeness4/5

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

For a simple two-parameter list tool with no output schema and no annotations, the description covers action, scope, returned fields and the admin gate. The gap is pagination/limit behavior, which is minor but non-trivial for a listing endpoint.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It clarifies that the search string matches username/display name, adding real meaning; the limit parameter is documented nowhere, leaving pagination semantics entirely unexplained.

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

Purpose4/5

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

States a specific verb and resource (search users) and enumerates the payload (status, role, ban info), so the agent knows what it gets. It does not name the sibling it differs from (search_users), relying on the 'Requires admin' qualifier to signal the distinction.

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

Usage Guidelines3/5

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

'Requires admin' gives a prerequisite, which is useful context for an admin-only surface. However it never states when to prefer this over the sibling search_users or what scope/conditions apply, leaving the agent to infer the alternative.

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

admin_list_verificationsAInspect

List verification (V badge) requests for the review console (paginated, newest first): optional status filter (pending | approved | rejected) and q fuzzy-matching the applicant's username, display name or the requested label. Each row carries the applicant identity and current badge. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNofuzzy match: username / display name / label
limitNo
offsetNo
statusNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonably well: it discloses default sort order (newest first), pagination, the row payload (applicant identity + current badge), and the admin authorization requirement. It omits rate limits, whether a total count is returned, and what happens with an invalid status value.

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

Conciseness4/5

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

Front-loaded with the verb+resource, then filters, then row contents, then the auth requirement — a sensible information order with no filler sentences. Slightly dense in the middle but every clause carries information.

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

Completeness4/5

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

For a 4-parameter, no-annotation, no-output-schema list tool, the description covers purpose, filtering, ordering, and the essential return shape (applicant identity + current badge). The main residual gaps are pagination bounds/defaults and any total-count behavior.

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

Parameters3/5

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

Schema coverage is only 25%, so the description must compensate. It does clarify that q fuzzy-matches username, display name or label, and that status filters to the three states (already enumerated in the schema), but limit (max 100, default 25) and offset are only gestured at with 'paginated' and remain undocumented anywhere.

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

Purpose5/5

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

States a specific verb and resource ('List verification (V badge) requests') with clearly bounded scope (review console, paginated, newest first). An agent can distinguish it from admin_list_badges (badge catalog) and admin_decide_verification (act on a single request) without opening any schema.

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

Usage Guidelines3/5

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

The phrase 'for the review console' and the status filter imply the browse-before-deciding workflow, and 'Requires admin' gives a precondition. However, it never states when to use this versus admin_decide_verification or other list siblings, nor any exclusion criteria, leaving usage to inference.

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

admin_preview_mail_templateAInspect

Preview one mail template rendered with sample variable values: returns the rendered {subject, text, html} (html is the brand-styled multipart part). locale picks the rendering side (zh | en, default zh; matching how real mails go out mono-lingual per recipient). The saved override is used unless unsaved draft fields (subjectZh/subjectEn/bodyZh/bodyEn) are passed, so edits can be previewed without saving; data overrides individual sample variables. Read-only. Disabled templates can still be previewed. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesregistered template key
dataNovariable overrides on top of the built-in sample values
bodyEnNounsaved draft. Preview without saving
bodyZhNounsaved draft. Preview without saving
localeNozh
subjectEnNounsaved draft. Preview without saving
subjectZhNounsaved draft. Preview without saving

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and covers a lot: declares 'Read-only', states 'Requires admin', and adds the non-obvious trait that disabled templates are still previewable. It also explains the saved-override-vs-draft resolution rule. It stops short of mentioning rate limits or any side effects, so it is strong but not exhaustive.

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

Conciseness4/5

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

Effectively one dense paragraph that is front-loaded with what the tool does and the returned fields. Every clause carries information, but the run-on packing of draft-vs-override and locale semantics reduces scannability slightly.

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

Completeness4/5

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

For a 7-parameter tool with a nested object, two enums, and no output schema, the description compensates well by listing return fields and the override/draft rules. It is complete enough to invoke correctly, though nothing is said about error behavior for an invalid key.

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

Parameters4/5

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

Schema coverage is 86% (baseline 3), and the description adds genuine meaning beyond the schema: locale selects the rendering side and reflects mono-lingual per-recipient delivery, and data overrides individual sample variables while the four draft fields bypass the saved override. This clarifies the interaction between parameters rather than repeating field docs.

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

Purpose5/5

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

States a specific verb (Preview) and resource (one mail template rendered with sample values), and even enumerates the return shape {subject, text, html}. An agent can distinguish this from admin_list_mail_templates, admin_set_mail_template, and admin_reset_mail_template without opening any schema.

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

Usage Guidelines4/5

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

Explains the primary use case clearly ('so edits can be previewed without saving') and notes the edge case that disabled templates can still be previewed. It implies the preview-vs-save split against set_mail_template but never names an alternative sibling or states an explicit 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.

admin_reject_postAInspect

Reject a post pending review with a reason (author notified, content hidden). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes
reasonYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose key side effects: the author is notified and the content is hidden, plus the admin permission requirement. It omits reversibility (can the rejection be undone?), what happens to existing comments/media on the post, and error behavior.

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

Conciseness5/5

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

A single sentence with the action and effect front-loaded and no filler; every clause (reason, author notified, content hidden, requires admin) carries information.

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

Completeness3/5

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

For a two-param mutation with no annotations and no output schema, the description covers the action, the state, the permission, and the immediate effects, but leaves reversibility and downstream effects on related content unexplained.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate and only partly does: 'a post' maps loosely to postId and 'with a reason' to reason, but the uuid format, the 500-char limit, and whether the reason is shown to the author are left to the schema.

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

Purpose4/5

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

The description gives a specific verb+resource pair ('Reject a post') and constrains the state to 'pending review', which implicitly separates it from the sibling admin_approve_post. It does not explicitly name that sibling, so it stops short of a 5.

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

Usage Guidelines3/5

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

'post pending review' tells the agent the applicable state and 'Requires admin' states a precondition, but there is no explicit when-not guidance or named alternative (e.g. use admin_approve_post to accept instead). Usage is implied rather than spelled out.

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

admin_reorder_boardsAInspect

Save the board display order (orderedIds must list every board id in the intended order; boards left out keep their current order). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderedIdsYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose two genuinely useful traits: the admin authorization requirement and the partial-ordering semantics ("boards left out keep their current order"), which is the key behavioral subtlety for this mutation. It stops short of covering atomicity, invalid-id handling, or reversibility.

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

Conciseness4/5

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

A single front-loaded sentence with the parenthetical detail placed after the main action. No waste, though the parenthetical wraps two ideas (completeness and omission behavior) that could be stated more cleanly.

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

Completeness4/5

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

For a one-parameter mutation with no annotations and no output schema, the description covers the action, the auth gate, and the ordering semantics. Remaining gaps (failure behavior, whether the reorder is atomic) are minor against the tool's low complexity.

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

Parameters4/5

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

Schema coverage is 0% (only type/array/min-max items), so the description must compensate, and it does: it explains orderedIds is the full intended order and that omitted boards retain their current position. The phrasing "must list every board id" sits awkwardly against "boards left out keep their current order," which slightly muddies the intended constraint.

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

Purpose4/5

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

States a specific verb+resource: saving the board display order. That is clearly distinct from admin_upsert_board (create/update a board) and admin_list_boards (read), so an agent can route correctly even though no sibling is named explicitly.

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

Usage Guidelines3/5

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

"Requires admin" gives a precondition, and reordering boards is implied to be an admin maintenance task, but there is no explicit when-to-use vs alternatives guidance (e.g., versus admin_upsert_board, or when partial reordering is preferable). Adequate but thin.

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

admin_report_actionAInspect

Report-workbench quick action: resolve | dismiss | delete_content (soft-remove the reported post/comment and resolve) | ban_author (banDays 1..365 or permanent when omitted; permanent/staff bans are admin-only) | warn_author (warning notice). The content/author side effects run in the same single source as the web workbench; every branch closes the report and notifies the reporter. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNomoderator note persisted to mod_logs
actionYes
reasonNoban_author: mandatory ban reason; warn_author fallback
banDaysNoban_author only; omit for a permanent ban
messageNowarn_author: the warning message shown to the author
reportIdYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it discloses that every branch closes the report and notifies the reporter, that content/author side effects are applied through the same path as the web workbench, that delete_content is a soft-remove, and that permanent/staff bans are admin-only. Return shape and exact notification semantics remain unspecified, but the mutation and permission profile is clearly conveyed.

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

Conciseness4/5

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

A single dense sentence plus a short closing requirement is front-loaded with the action list and wastes little, though the nested parentheticals make it slightly harder to scan than a bulleted branch list would be. Every clause carries information.

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

Completeness4/5

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

For a multi-branch mutation tool with no annotations and no output schema, the description covers the action set, side effects, reporter notification, soft-delete behavior, and admin-only constraints. An agent can invoke it correctly; only the response/return contract is left implicit.

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

Parameters3/5

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

Schema coverage is 67%, so the schema already documents most parameters (note, reason, banDays bounds, message). The description usefully ties parameters to their branches (banDays omission means permanent, reason is mandatory for ban_author) but largely restates the schema's own descriptions rather than adding new meaning.

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

Purpose4/5

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

The description names a specific verb-plus-resource ('Report-workbench quick action') and enumerates all five branches with a short gloss for each, so an agent knows exactly what selecting this tool does. It does not, however, contrast itself with overlapping siblings such as admin_resolve_report or admin_delete_comment, which is the only thing keeping it from a 5.

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

Usage Guidelines3/5

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

Usage is implied through the per-branch semantics (ban_author, warn_author, delete_content), and the 'Requires admin' plus 'permanent/staff bans are admin-only' constraints give some selection guidance. But there is no explicit when-to-use-this-versus-sibling routing given the many overlapping admin_* report/user/comment tools in the same namespace.

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

admin_reset_mail_templateAInspect

Drop the saved override for one mail template and restore the built-in bilingual copy (the override row is removed, so enabled resets to true as well). Returns { ok: true }. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesregistered template key

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the destructive side effect (override row removed), an unexpected state change (enabled resets to true), the return value ({ ok: true }), and the authorization requirement (Requires admin). It stops short of saying the dropped customizations are unrecoverable or noting any audit implications.

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

Conciseness5/5

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

Two front-loaded sentences with no filler: effect, then side effect, then return value and auth requirement. Every clause earns its place.

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

Completeness5/5

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

For a one-parameter admin mutation with no output schema, the description supplies the missing pieces an agent needs: the mutation's effect, the reset side effect, the response shape, and the privilege requirement. Nothing material is absent.

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

Parameters3/5

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

Schema coverage is 100% with a fully enumerated key list, so the schema already carries parameter meaning. The description only says 'one mail template' and adds no guidance on the enum values (e.g. what 'test' or 'system' mean), so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb-and-resource pair — 'drop the saved override for one mail template' — and adds the resulting effect (restore built-in copy). This is clearly distinguishable from the neighbouring admin_set_mail_template (which writes an override) and admin_preview_mail_template (which renders one).

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

Usage Guidelines3/5

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

The scenario is implied by 'drop the saved override ... restore the built-in bilingual copy', which tells an agent this is the revert path, but no sibling is named and no explicit when/when-not condition is stated. Adequate but leaves routing to inference.

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

admin_resolve_reportAInspect

Mark a report resolved or dismissed (status update + audit log; content takedown still via web console). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
outcomeYes
reportIdYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the key traits: it is a status mutation, it writes an audit log entry, it does not take down content, and it requires admin privileges. It omits reversibility/idempotency and whether re-resolving an already-closed report is allowed, which are meaningful gaps for a mutation.

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

Conciseness5/5

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

A single front-loaded sentence with a parenthetical that pays for itself by ruling out content takedown. No filler, no repetition of the tool name, and the authorization caveat lands last where it belongs.

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

Completeness3/5

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

For a mutation tool with no annotations and no output schema, the description covers scope, side effects, and auth, but leaves parameter meanings (reportId, note) and post-call behavior unexplained. Adequate but with clear gaps an agent would have to guess at.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for all three parameters. It only implicitly covers 'outcome' via the words resolved/dismissed (matching the enum), and says nothing about 'reportId' or the 'note' parameter's purpose or 500-character limit.

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

Purpose4/5

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

States a specific verb (mark resolved/dismissed) and resource (report), and the parenthetical clarifies the effect is a status update plus audit log rather than content removal. It does not explicitly distinguish itself from the sibling mod_resolve_report or admin_report_action, so an agent must infer which tier applies.

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

Usage Guidelines4/5

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

Gives positive conditions (marking a report resolved or dismissed) and a useful negative boundary: content takedown is not handled here and still requires the web console. 'Requires admin' sets the permission prerequisite. It stops short of naming alternative tools for related report actions.

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

admin_retry_queue_jobAInspect

Retry a pg-boss job: it is re-enqueued with the original retry budget (retryLimit/retryDelay/backoff preserved; a future startAfter keeps its delay) and the failed record is then deleted; pg-boss has no native retry, so the old record is removed irreversibly (the payload carries over to the new job). Requires the job's queue name and id; 404 if no such job. Audit-logged. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYespg-boss job id (uuid)
queueYesqueue (job) name the id lives in

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so thoroughly: retry budget (retryLimit/retryDelay/backoff) is preserved, a future startAfter keeps its delay, the payload carries over, the old record is deleted irreversibly, and the action is audit-logged and admin-gated. This discloses exactly the destructive and permission characteristics an agent needs.

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

Conciseness4/5

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

Front-loaded with the verb and resource, and the dense parenthetical clauses each carry distinct information (retry budget, startAfter, payload). It is long for a two-parameter tool but nearly every clause earns its place; only minor tightening is possible.

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

Completeness5/5

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

For a mutation tool with no annotations and no output schema, the description covers mechanics, reversibility, preserved state, error behavior, and auth requirements. Nothing an agent needs to invoke it safely is missing.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented (uuid id, queue name). The description only restates that both are required and adds the 404 condition, which is behavioral rather than parameter meaning, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource (retry a pg-boss job) and immediately distinguishes itself from the sibling admin_delete_queue_job by clarifying that deletion is a side effect of re-enqueueing, not the goal. An agent can tell this apart from list/delete queue tools without opening a schema.

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

Usage Guidelines4/5

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

Gives clear operating context: requires the job's queue name and id, returns 404 if no such job, and requires admin. It does not explicitly name alternatives (e.g. admin_delete_queue_job for outright removal), so it stops short of full when-not guidance.

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

admin_revoke_badgeAInspect

Revoke one user's badge grant: badgeId plus the grantee's userId (uuid, see admin_list_badges grant counts or the badge admin page). 404 when no grant record exists. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesgrantee user id
badgeIdYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it usefully discloses two behavioral traits: a 404 error when no grant record exists, and an admin authorization requirement. It omits reversibility (whether the grant can be restored via admin_grant_badge) and any success-side effect, which keeps it below 5.

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

Conciseness5/5

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

Three compact clauses, front-loaded with the action and scope, then inputs, then error and auth behavior. No filler sentences; every clause earns its place.

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

Completeness4/5

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

For a two-param mutation with no output schema and no annotations, the description covers purpose, both inputs, the error case, and the auth requirement. It leaves the return value and reversibility unstated, a minor gap given no output schema exists.

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

Parameters4/5

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

Schema coverage is only 50% (badgeId has no schema description), and the description compensates by clarifying that userId is the grantee's id — a semantic distinction the schema's 'grantee user id' only partly conveys — and noting both are uuids. It adds meaning beyond the raw schema.

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

Purpose5/5

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

Specific verb (revoke) plus resource (badge grant) plus scope (one user's), which cleanly separates it from the sibling admin_grant_badge. An agent knows exactly what operation this performs without opening the schema.

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

Usage Guidelines4/5

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

It tells the agent how to source the inputs (see admin_list_badges grant counts or the badge admin page) and states the admin prerequisite, giving clear usage context. It stops short of an explicit when-not or naming the re-grant counterpart as the inverse operation, so it is not a full 5.

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

admin_revoke_inviteAInspect

Revoke (delete) an unused invite code by its invite id (the row id, not the code string). Only unused invites can be revoked. Used ones are historical records and will 404 here. The removal is audit-logged. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
inviteIdYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses the destructive nature (delete), the precondition that only unused invites qualify, that used invites return 404, that the removal is audit-logged, and that admin privileges are required. It omits reversibility, but for a delete on an unused invite the disclosed traits are substantial.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the action and target, then constraints, then side effect, then auth requirement. No filler; every clause earns its place.

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

Completeness4/5

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

For a single-param destructive tool with no annotations and no output schema, the description covers preconditions, error behavior (404), side effects (audit log), and auth. Only the success response shape is left implicit, which is acceptable given no output schema.

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

Parameters4/5

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

Schema coverage is 0% and the schema only says uuid, so the description must compensate — and it does by clarifying inviteId is the row id, not the code string, which is exactly the ambiguity an agent would otherwise hit. A strong addition beyond the schema, though it stops short of format/examples.

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

Purpose5/5

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

States a specific verb (revoke/delete) and resource (unused invite code), and explicitly distinguishes itself from listing tools like admin_list_invites by clarifying it operates on the invite id row, not the code string. An agent can immediately tell what this does and what it targets.

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

Usage Guidelines4/5

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

Gives a clear precondition: only unused invites can be revoked, and used ones will 404 as historical records. It also states the admin requirement. It doesn't explicitly name an alternative tool, but the constraint on which invites qualify bounds usage well.

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

admin_revoke_perk_subscriptionAInspect

Revoke one active perk subscription by subscription id (from admin_list_perk_subscribers): no refund; status flips active → revoked, the display-name effect disappears immediately and the user is sent a localized notice. 404 when the subscription does not exist or is not active. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: no refund, the active → revoked state flip, the immediate disappearance of the display-name effect, a localized notice sent to the user, and a 404 when the subscription is missing or not active. These are exactly the side effects and irreversible consequences an agent needs before invoking.

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

Conciseness5/5

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

A single dense block that is front-loaded with verb, resource, and identifier. Every clause adds operational value – consequences, notification, error case, auth requirement – with no filler.

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

Completeness5/5

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

For a one-parameter mutation tool with no annotations and no output schema, the description covers side effects, irreversibility, user-visible notification, failure semantics, and permission requirements. Nothing material for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It identifies the single parameter's meaning and provenance (a subscription id sourced from admin_list_perk_subscribers) and implies it must identify an active subscription; it does not restate the UUID format the schema already declares, which is fine.

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

Purpose5/5

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

States a specific verb and resource ('Revoke one active perk subscription') and pins the scope to the subscription id. It is clearly distinguishable from siblings like admin_revoke_badge, admin_revoke_invite, and admin_update_perk, and it even names the list tool that produces the id.

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

Usage Guidelines4/5

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

Gives clear context: the id must come from admin_list_perk_subscribers, and the call requires admin. It stops short of explicitly saying when to revoke vs other perk management tools (e.g. admin_update_perk), but the prerequisites and error condition make selection unambiguous enough.

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

admin_run_backupAInspect

Trigger one full database backup now. Enqueue-only: the actual pg_dump + upload runs asynchronously in the backup worker and is heavy on the database host (CPU/IO/disk spike for the duration of the dump). Gates: 503 backup_not_configured when backup storage is not configured, 409 backup_running when a run is already in progress, 503 queue_unavailable when the queue is unavailable. Poll admin_get_backup_status for progress and result. Every trigger is audit-logged. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses that the operation is enqueue-only, that the heavy pg_dump/upload runs asynchronously in a worker with a CPU/IO/disk spike, the exact gate responses (503 backup_not_configured, 409 backup_running, 503 queue_unavailable), that every trigger is audit-logged, and that admin is required.

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

Conciseness5/5

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

Front-loads the action, then the asynchrony/load warning, then the gate codes, then the polling sibling and auth requirement. Every clause carries information an agent needs; none is padding.

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

Completeness5/5

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

No output schema and no annotations exist, so the description must cover behavior, failure modes, follow-up, side effects, and auth — and it covers all of them. Nothing an agent needs to call this correctly and interpret its result is missing.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly implies a no-argument call and adds no misleading parameter information, but there is nothing further it could contribute here.

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

Purpose5/5

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

States a specific verb and resource ('Trigger one full database backup now') and immediately distinguishes itself from the sibling admin_get_backup_status by declaring itself enqueue-only, i.e. a trigger rather than a status read. An agent can select it correctly without opening any schema.

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

Usage Guidelines4/5

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

Explicitly routes the agent to admin_get_backup_status for progress and result, which is the key follow-up action. It also names the precondition failures (not configured, already running, queue down), so the agent knows when the call will be refused. It stops short of stating when *not* to trigger a backup in the first place.

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

admin_set_board_moderatorsAInspect

Replace a board's moderator roster (full sync: submitted list becomes the final list; missing users are removed; at most one chief per board; appointing a chief demotes the previous one to deputy). Per-moderator weeklyWage/attendanceHours null = fall back to global role tiers. Unresolvable usernames are skipped silently. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYes
moderatorsYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does well: it discloses destructive removal of missing users, the single-chief constraint and automatic demotion, null-value fallback behavior, silent skipping of unresolvable usernames, and the admin requirement. It omits whether the operation is atomic or how errors are surfaced, keeping it from a 5.

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

Conciseness5/5

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

A single dense but efficient paragraph, front-loaded with the core action ('Replace a board's moderator roster'). Every clause adds distinct operational information (sync semantics, role handling, null fallback, silent skip, auth) with no filler.

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

Completeness4/5

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

For a complex admin mutation with no annotations, no output schema, and a nested array parameter, the description covers the critical behavioral traits an agent needs to call it correctly. It stops short of covering error conditions or atomicity, but given no output schema is present, that omission is relatively minor.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must add meaning, and it does: it explains that null weeklyWage/attendanceHours fall back to global role tiers, clarifies the chief/deputy role effect, and notes that unresolvable usernames are skipped silently. It does not explain boardId, maxItems, maxLength, or numeric ranges, but the schema already encodes those constraints.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Replace a board's moderator roster'. It immediately conveys the exact operation and scope, distinguishing it from sibling admin_* tools that manage other resources. No ambiguity about what the tool does.

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

Usage Guidelines4/5

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

It explains the full-sync semantics ('submitted list becomes the final list; missing users are removed'), which tells an agent when this tool is appropriate versus an incremental add/remove tool. It also states the admin prerequisite. However, it does not explicitly name alternative tools or when-not to use it, leaving that to inference.

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

admin_set_board_translationsAInspect

Save manual translations for one board (locale → {name, description}; zh is the baseline and not accepted; sides with an empty name are skipped; these manual sides are the single source shown to readers). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardIdYes
translationsYeslocale → {name, description}

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose non-obvious behavior: zh is the baseline and rejected, entries with an empty name are skipped, and the manual sides become the single source shown to readers. It still omits whether stored translations are replaced wholesale or merged, and what happens on partial/invalid input.

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

Conciseness5/5

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

A single tight sentence with the core action front-loaded and the edge-case rules in a parenthetical. No filler text; every clause (baseline, skip rule, source-of-truth) carries actionable meaning.

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

Completeness4/5

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

For a two-parameter nested-object mutation with no annotations and no output schema, the description covers prerequisites, rejection rules, and effective semantics. Remaining gap is the replace-vs-merge behavior and any success/failure reporting, which an agent would want before overwriting reader-visible content.

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

Parameters4/5

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

Schema coverage is 50% (boardId is an undescribed uuid, translations only gets the shape hint). The description compensates by explaining accepted locales (zh excluded), the name/description payload, and the empty-name skip rule, which the schema does not express.

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

Purpose5/5

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

States a specific verb and resource: saving manual translations for one board, with the exact data shape (locale → {name, description}). The board scope cleanly separates it from the sibling admin_set_topic_translations, so an agent can route without opening either schema.

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

Usage Guidelines3/5

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

The only explicit guidance is 'Requires admin', which is a prerequisite rather than a when-to-use rule. The board-vs-topic distinction against admin_set_topic_translations is implied by the resource name, but there is no statement of when not to call it or what to do for baseline (zh) content.

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

admin_set_brandAInspect

Update the site brand texts and/or their per-locale translations. Baseline: name / tagline / description (zh source of truth; provide at least one of these or translations; unchanged values are skipped). Translations: optional translations object (locale → {tagline, description}; zh excluded; merge-mode; only explicitly provided locale sides/fields are overwritten, empty string clears a field so it falls back to English/Chinese). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
taglineNo
descriptionNo
translationsNolocale → {tagline, description}; zh is the baseline and not accepted; merge-mode per-locale update

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and discharges it: it discloses the authorization requirement ('Requires admin'), merge-mode partial-update semantics, that unchanged values are skipped, and that an empty string clears a field and falls back to English/Chinese. That is exactly the kind of write-operation behavior an agent needs and the schema does not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and organized as baseline-then-translations, with no filler sentences. The parenthetical chaining makes it dense to parse in places, but every clause carries operational meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object mutation tool with no output schema and no annotations, the description covers what an agent needs: required input selection, nested object shape and exclusions, overwrite/clear semantics, and permission gating. Nothing material to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, but the description compensates heavily: name/tagline/description are framed as the zh source-of-truth baseline, the nested translations object is defined as locale → {tagline, description} with zh excluded, and the merge/clear semantics per field are spelled out. This goes well beyond the bare maxLength constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Update the site brand texts and/or their per-locale translations'), which cleanly distinguishes it from siblings like admin_get_brand (read) and admin_set_board_translations / admin_set_topic_translations (different resources). An agent can route to it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear precondition — 'provide at least one of these or translations' — and explains the baseline-vs-translations split, so the agent knows what to supply. It does not explicitly name when to prefer a sibling tool (e.g., admin_set_board_translations), so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_set_domain_suffix_reservedAInspect

Replace the per-suffix reserved-label set wholesale (max 500 labels; each is normalized to an ASCII A-label and the set is deduped). System-wide reserved words are a separate tier that applies to every suffix automatically and is not managed here. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
labelsYesfull replacement set of reserved labels
suffixIdYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and does well: it discloses that the existing set is destroyed and replaced, that labels are normalized to ASCII A-labels and deduped, and that admin privileges are required. It stops short of describing failure modes (e.g., invalid labels, non-existent suffix).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the destructive-replacement behavior front-loaded and the exclusion and auth requirement trailing as short clauses. No filler, though the parenthetical is dense enough to warrant a re-read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No annotations and no output schema, so the description must stand alone behaviorally -- and it does for the destructive semantics and normalization rules. The remaining gap is the unannotated suffixId/note parameters and any statement of the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 33% (only 'labels' is documented), so the description must compensate. It adds real semantics for labels (normalization, dedup, 500 cap) and implies per-suffix targeting via 'per-suffix', but 'suffixId' and 'note' receive no explanation beyond the schema's bare types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: replacement of the per-suffix reserved-label set, with the operation's scope ('wholesale') made explicit. It also distinguishes this resource from the system-wide reserved-word tier, so an agent can tell what this tool does and does not own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use: wholesale replacement, 500-label ceiling, admin required, and an explicit exclusion ('System-wide reserved words ... is not managed here'). It does not, however, point to a sibling tool for managing the other tier or for additive edits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_set_feature_switchAInspect

Enable or disable one boolean feature switch by key. The key set is a strict allowlist kept in sync with the web admin settings console. Keys outside the allowlist are rejected. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
enabledYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does disclose real behavior: the key set is a strict allowlist synced with the web admin console, out-of-allowlist keys are rejected, and admin privileges are required. It still omits whether the change takes effect immediately, is audited, or is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the action and then the constraints in descending importance. No filler or repetition; each sentence adds a distinct fact (scope, allowlist source, rejection behavior, auth).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter toggle with no output schema and no annotations, the description covers purpose, validation model, and access requirement. The main gap is that it never says what happens downstream when a switch flips, which matters given keys like mcp.adminTools that could affect the tool surface itself.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and does so partially: it explains that 'key' must come from the admin-console allowlist and that 'enabled' toggles a boolean. But the 16 enum values carry no per-key meaning anywhere, so the agent cannot learn what any individual switch controls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (enable/disable) and resource (one boolean feature switch) plus the addressing mode (by key), so an agent can tell it apart from the read-only admin_list_feature_switches. It is clear enough to act on, but it never names the sibling that would be the alternative for non-boolean or bulk settings (admin_set_settings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by phrasing 'one boolean feature switch', which hints at the single-toggle scope versus the broader admin_set_settings, and the 'Requires admin' line states a prerequisite. However, there is no explicit when-not guidance, no pointer to admin_list_feature_switches for discovering keys, and no note about the counterpart bulk tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_set_guest_railAInspect

Update the guest rail join-invite copy and/or its per-locale translations. Baseline: title ({name} placeholder becomes the site name) / description (zh source of truth; provide at least one of these or translations; unchanged values are skipped). Translations: optional translations object (locale → {name, description}; zh excluded; merge-mode; only explicitly provided locale sides/fields are overwritten, empty string clears a field so it falls back to English/Chinese). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
descriptionNo
translationsNolocale → {name, description}; zh is the baseline and not accepted; merge-mode per-locale update

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the admin permission requirement, merge-mode semantics, that empty strings clear a field and cause fallback to English/Chinese, that zh is excluded, and that unchanged values are skipped. It stops short of describing error behavior or the response, but the mutation semantics are unusually well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then the baseline rules, then translations. Dense with parenthetical asides and a long final clause, but every sentence conveys operative information; nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with a nested object, zero required params, and no output schema, the description covers the mutation semantics, permission requirement, and merge/fallback behavior needed to call it correctly. Return-value expectations are the only notable omission, and no output schema exists to offset that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, but the description compensates thoroughly: it explains the {name} placeholder substitution in title, that description is the zh source of truth, and the full structure/merge behavior of the nested translations object including locale keys, field-level overwrite, and empty-string clearing. This adds meaning well beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and a specific resource (guest rail join-invite copy and its per-locale translations), which cleanly distinguishes it from the read-only sibling admin_get_guest_rail and from the analogous admin_set_board_translations / admin_set_topic_translations. An agent can identify the target without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description supplies usage constraints ("provide at least one of these or translations", "unchanged values are skipped", "Requires admin"), which imply how to invoke it. However, it never states when to prefer this tool over the sibling translation setters or when to skip it (e.g., if the rail is disabled). Guidance is implied rather than comparative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_set_mail_templateAInspect

Create or update the copy override for one mail template (key must be a registered template key). Any of subjectZh/subjectEn (max 500) and bodyZh/bodyEn (max 20000) may be provided; an empty string means 'fall back to the built-in copy' for that side, and each language side takes effect independently (real mails are sent mono-lingual per recipient locale). enabled=false disables the template entirely. Returns { ok, override }. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesregistered template key
bodyEnNo
bodyZhNo
enabledNofalse disables sending this template
subjectEnNo
subjectZhNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it explains empty-string fallback semantics, that each language side takes effect independently because mails are mono-lingual per recipient locale, that enabled=false disables the template entirely, discloses the return shape { ok, override }, and states the admin authorization requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, followed by parameter semantics, the enabled flag, return value and auth requirement in a logical order. It is dense with semicolons but every clause conveys non-obvious behavior; no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation tool with no annotations and no output schema, the description supplies the missing pieces: auth requirement, per-side language semantics, fallback behavior, disable flag, and the return object. Nothing needed to invoke it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, so the description must compensate and largely does: it defines empty-string behavior, the independence of the zh/en sides, and enabled=false semantics for parameters whose schema entries are bare. It repeats the max lengths from the schema rather than adding to them, but adds genuine new meaning for every parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Create or update the copy override for one mail template', with the scope constraint that the key must be registered. This clearly distinguishes it operationally from admin_list_mail_templates, admin_preview_mail_template and admin_reset_mail_template, though none are named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (an admin setting/updating template copy) and the empty-string rule hints at a fallback mechanism, but there is no explicit when-to-use guidance and no routing to siblings like admin_preview_mail_template (to preview) or admin_reset_mail_template (to clear an override).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_set_pinAInspect

Create or refresh a site-wide pin for one post. scope=latest pins it to the newest rail, scope=hot to the trending rail, scope=topic to a topic page (topicId then required, and the post must belong to that topic). days (1-365) sets the duration; expiry auto-unpins. Multiple pins per post coexist across scopes; re-pinning into the same scope is idempotent (refreshes the expiry). This is the site-level admin surface. Distinct from board moderators' board-scoped pinning. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYespin duration in days
scopeYes
postIdYes
topicIdNorequired for scope=topic; the post must belong to that topic

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses idempotency ('re-pinning into the same scope... refreshes the expiry'), coexistence of multiple pins across scopes, auto-unpin on expiry, and the admin auth requirement. It stops short of error/failure behavior and whether side effects like notifications occur, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded: the core action and scope mapping come first, followed by duration, idempotency, and finally the boundary/authorization note. Every sentence carries distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description supplies the safety profile (requires admin), scope semantics, idempotency, and expiry behavior an agent needs to call it correctly. Nothing material is missing given the absence of a return contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% (days and topicId documented; scope and postId bare), but the description compensates by explaining each scope value's meaning and the conditional topicId requirement. It adds genuine semantics beyond the raw enum, though postId itself gets no elaboration.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Create or refresh a site-wide pin for one post.' It explicitly names the sibling it is not ('Distinct from board moderators' board-scoped pinning'), so an agent can separate it from mod_pin_post without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use routing: scope=latest/hot/topic map to specific rails, topic requires topicId and the post must belong to that topic, and the site-level admin surface is contrasted with moderators' board-scoped pinning. Alternatives and preconditions are spelled out rather than implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_set_settingsAInspect

Update site settings with entries (setting key → value; same shape and validation as the web admin settings console). Unknown keys are rejected with 400 bad_key; per-key value validation failures are 400 bad_value. Secret fields never need plaintext: an empty apiKey in llm.providers, an empty clientSecret in oauth.providers or an empty pass in smtp keeps the stored value. Pass the masked read output back unchanged. WARNING: writing mcp.adminTools=false hides and locks the MCP admin tool surface itself (self lock-out), and site.maintenance=true enables maintenance mode which intercepts mutating calls including this tool. Baseline copy keys (site.name / site.tagline / site.description / site.guestRailTitle / site.guestRailDesc) are diffed against the current value. Unchanged keys are accepted but skipped. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
entriesYessetting key → value (same shape as the web admin settings POST; secret fields left empty keep the stored value)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so: it discloses the 400 bad_key / 400 bad_value failure modes, that unchanged keys are accepted but skipped, that empty secret values preserve stored secrets, and that writing mcp.adminTools=false locks out the MCP admin surface itself. It also states the admin authorization requirement. This is unusually complete behavioral disclosure 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and payload shape are front-loaded, followed by error semantics, secret handling, and then the two WARNING items in descending order of severity. Every sentence carries operational information; none is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-risk mutation tool with no annotations and no output schema, the description covers authorization, error behavior, secret-preservation semantics, idempotency (unchanged keys skipped), and self-inflicted lock-out risk. Nothing an agent needs before calling it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single `entries` parameter, so the baseline is 3, but the description adds real meaning beyond the schema: unknown-key rejection, per-key validation, the diff-and-skip behavior for baseline copy keys, and the empty-value-keeps-secret convention for apiKey/clientSecret/pass. The only soft spot is "same shape as the web admin settings console," which defers some detail to an external reference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Update site settings with `entries`") and immediately characterizes the payload shape as the admin settings key→value map. An agent can distinguish this from the read-side sibling admin_get_settings without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: read the masked output and pass it back unchanged, and be aware that maintenance mode intercepts mutating calls. It does not, however, name alternatives for the overlapping siblings (admin_set_brand, admin_set_feature_switch, admin_set_guest_rail) or state when to prefer those over the general settings endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_settle_mod_payrollAInspect

Settle last week's moderator payroll now (attendance-met days pay weeklyWage/7 each in TGC; idempotent per week anchor; safe to re-run). Returns the paid total and payee count. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does most of it well: idempotency keyed to a per-week anchor, re-run safety, the pay formula (attendance-met days at weeklyWage/7 in TGC), and the admin auth requirement. It does not say whether a settlement can be reversed or whether payees are notified, which are the remaining side-effect questions for a payment action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with no filler: the action and its trigger come first, the mechanics and safety guarantees second, the return shape and auth requirement last. Every clause conveys information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description compensates by stating the return values (paid total and payee count). Combined with the auth requirement, idempotency guarantee, and pay formula, nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate beyond what the empty schema already shows. Baseline 4 applies; the description correctly does not invent arguments. The note that it pays 'each in TGC' clarifies the currency implicitly used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (settle) and resource (last week's moderator payroll) with a clear trigger ('now'). No sibling tool touches payroll, so the agent can route to it unambiguously from the name-plus-description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: it settles last week's payroll, it is idempotent per week anchor, safe to re-run, and requires admin. It does not explicitly state when-not to call it (e.g., before the week closes), but for a uniquely-scoped payroll action that guidance is largely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_set_topic_translationsAInspect

Save manual translations for one topic (locale → {name, description}; zh is the baseline and not accepted; sides with an empty name are dropped; these manual sides are the single source shown to readers). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicIdYes
translationsYeslocale → {name, description}

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it delivers real behavioral detail: zh is the baseline locale and is rejected, sides with empty names are dropped, and these manual sides are 'the single source shown to readers'. It omits what happens to existing translations not named in the payload (replace vs. merge) and any return confirmation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense parenthetical sentence plus a short 'Requires admin' clause — front-loaded and free of filler. The parenthetical is information-packed but still readable; nothing needs to be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object mutation tool with no output schema, no annotations, and 50% param coverage, the description covers purpose, edge-case semantics, and auth. The notable remaining gap is replacement vs. merge behavior for the translations map.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 50% schema coverage, topicId is left undocumented (though the uuid format makes it self-evident) and translations is only labeled 'locale → {name, description}'. The description compensates by clarifying valid locale rules ('zh is the baseline and not accepted') and empty-name handling, adding meaning the schema does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Save') and resource ('manual translations for one topic') with an explicit locale→{name, description} shape. The 'one topic' scope implicitly separates it from the sibling admin_set_board_translations. An agent can pick this without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the use case (setting manual translations) and gives a prerequisite ('Requires admin'), but never states when to use this versus alternatives like admin_set_board_translations or mod_override_translation, nor when-not to use it. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_unban_userAInspect

Lift a user's ban (status back to active, login allowed again). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
userIdYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose the resulting state (status back to active, login allowed again), which is more than most short descriptions. However it says nothing about idempotency if the user is not currently banned, error behavior, or audit implications, leaving meaningful gaps 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight clauses with the effect front-loaded and the permission requirement second. No filler, no restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with no annotations and no output schema, the description conveys the core action and outcome but omits everything about the 'note' parameter and any edge-case behavior. Adequate minimum-viable coverage, but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across two parameters. The description implies a userId ('a user's ban') but never describes the expected identifier, and the 'note' parameter is not mentioned at all despite its 300-char limit and likely audit purpose. The description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Lift a user's ban') and resource (user), and the parenthetical defines the exact state transition. It is unambiguously the inverse of the sibling admin_ban_user, so an agent can select between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Requires admin' gives a permission prerequisite, which is useful context, but the description never states when to use this versus alternatives (e.g. admin_ban_user, admin_warn_user) or any exclusion conditions. Usage is only implied by the tool name and the revocation framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_update_perkAInspect

Update one perk's commercial knobs (at least the business layer requires a valid perkId; fields left out keep their current value): priceMonthly: positive number with up to 2 decimals (TGC / 30 days); active: false delists the perk from the redeem shop while existing subscriptions run out their term; priority: integer 0-9999, higher wins when a user holds several perks. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
activeNofalse = delist from the redeem shop
perkIdYes
priorityNointeger 0-9999
priceMonthlyNopositive, up to 2 decimals (TGC / 30 days)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses partial-update semantics, the side effect of active=false (delists from redeem shop while existing subscriptions run out their term), priority conflict-resolution behavior, and the admin auth requirement. It omits error behavior on an invalid perkId and idempotency/response details, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action before the parenthetical caveats, and every clause (merge behavior, per-field semantics, auth) carries information. It is a single dense run-on sentence, which slightly hurts scannability but wastes little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param mutation tool with no annotations and no output schema, the description covers params, side effects, merge semantics, and auth. It leaves only invalid-input handling and the shape of the result unstated, which is acceptable given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

At 75% schema coverage, the schema documents most fields, but the description adds meaning beyond it: priority's 'higher wins when a user holds several perks', active's delisting consequence, and priceMonthly's TGC/30-day framing. The one gap is perkId, whose validity requirement is stated only as 'requires a valid perkId'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update one perk's commercial knobs'), and the scope (commercial knobs) plus the single-perk target distinguishes it from admin_list_perks, admin_list_perk_subscribers, and admin_revoke_perk_subscription. An agent can tell what this does and how it differs from the neighboring perk tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It defines field semantics and the merge behavior ('fields left out keep their current value'), which implies a partial-update use case, but never explicitly states when to choose this over siblings or any when-not condition. Usage must be inferred rather than read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_upsert_badgeAInspect

Create a badge (omit badgeId; name and text required) or update an existing one (badgeId plus at least one of name / text / description / enabled / sortOrder / translations). key (creation only) is the stable identifier matching ^[a-z0-9_-]{2,40}$, auto-generated when omitted; icon and style must be from the badge whitelist; enabled=false hides the badge site-wide; sortOrder (0-9999) controls catalog order. translations: locale → {name, text, description}; zh and en sides are required (six other locales optional, readers fall back to en); the zh side is kept in sync with the baseline fields. Duplicate key on create → 409. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNocreation only, e.g. event-2026; lowercase letters, digits, hyphens, underscores
iconNo
nameNobadge name (zh baseline)
textNoshort text shown while worn (zh baseline)
styleNo
badgeIdNoExisting badge to update; omit to create
enabledNofalse hides the badge site-wide
sortOrderNo0-9999 catalog order
descriptionNonull clears it
translationsNolocale → {name, text, description}; zh and en are required, other six locales optional (readers fall back to en)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses 'Duplicate key on create → 409', 'Requires admin', whitelist constraints on icon/style, that enabled=false hides the badge site-wide, and the zh/en sync and fallback behavior. It does not state what happens to fields omitted on update, which is the main residual gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense paragraph but front-loads the create-vs-update distinction first, then constraints, then edge cases (409) and auth. Nearly every clause carries information, though the run-on style makes it slightly harder to scan than a bulleted form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with a nested translations object, no annotations and no output schema, the description covers modes, required fields, constraints, defaults/auto-generation, conflict handling, and auth. It omits update-time field-preservation semantics and return behavior, keeping it short of 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 80%, yet the description adds real meaning: the key regex (^[a-z0-9_-]{2,40}$) and auto-generation when omitted, the 0-9999 sortOrder range, the enabled site-wide semantics, and the translations locale→{name,text,description} shape with zh/en required and zh kept in sync. This is value beyond the schema, so above the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb+resource and explicitly forks the two modes: 'Create a badge (omit badgeId...)' vs 'update an existing one'. It is immediately clear this manages badge definitions, not user grants. It does not explicitly distinguish itself from siblings like admin_grant_badge / admin_revoke_badge, which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear selection logic between the two modes ('omit badgeId' to create; 'badgeId plus at least one of...' to update) and states the create-time prerequisites ('name and text required'). However it offers no explicit 'when not to use' or routing to related tools (e.g., grant vs define).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_upsert_boardAInspect

Create a board (omit boardId; optional explicit slug; a taken slug returns an error instead of touching the existing board) or update an existing one (fields left out stay unchanged; slug is immutable). Both paths accept manual translations (locale → {name, description}; zh baseline excluded, empty-name sides skipped; these manual sides are the single source shown to readers; no automatic machine translation). Board password is web-console only and cannot be set here. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNolucide icon name (kebab-case)
nameYes
slugNoExplicit URL slug, creation only (lowercase letters, digits, hyphens); normalized like topic slugs; 409 if already taken. Omit to derive from the name; not changeable on update
colorNoTheme color, #rrggbb
activeNo
pinnedNo
boardIdNoExisting board to update; omit to create a new board
colorFgNoTheme text color #rrggbb, or empty for auto contrast
coverPathNoCover image path; null removes the cover
sortOrderNo
postPolicyNo
descriptionNo
acceptsPostsNo
accessPolicyNo
translationsNoManual translations, locale string → {name, description}; zh is the baseline and not accepted here; sides with an empty name are skipped; saved sides beat machine translations
minAccountAgeDaysNoFor the days access policy

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and does so well: it discloses PATCH semantics (omitted fields stay unchanged), the taken-slug error behavior, slug immutability, translation resolution rules, and the admin requirement. It omits auth scope detail beyond 'admin' and any rate-limit/return-shape context, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph, front-loaded with the create-vs-update distinction before edge cases. Every clause carries substantive information, though the run-on structure around translations reduces scannability slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-parameter, nested-object tool with no output schema and no annotations, the description covers the semantically tricky parts (mode selection, slug, translations, password exclusion) that an agent would otherwise get wrong. Field-level details are left to the schema, which is reasonable given the coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is ~50%, so the schema documents roughly half the fields. The description adds valuable meaning for the confusion-prone parameters (boardId mode switch, slug rules, translations map), but the many remaining fields (color, icon, sortOrder, policies, coverPath) rely on the schema alone. Adequate but incomplete compensation for the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (create/update a board) and cleanly splits the two modes via boardId. It is clearly distinguishable from siblings like admin_get_board, admin_list_boards, admin_reorder_boards, and admin_set_board_translations. An agent can pick it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit conditions: omit boardId to create, provide it to update, and notes that slug is immutable on update and that board password cannot be set through this tool. It lacks named sibling alternatives (e.g., for translations or moderation), so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_upsert_domain_suffixAInspect

Create a domain suffix (omit suffixId) or update an existing one (provide suffixId; fields left out keep their current value). Fields: suffix (normalized to lowercase A-label; unique), providerId (uuid or null to unbind; the provider must have the delegation role), hostingProviderIds (ordered array of provider ids, max 5; explicit DNS-hosting bindings for zones under this suffix — each provider must have the hosting role, consumed in order until a provider's free capacity is exhausted, then the next; empty array clears), minLabelLength/maxLabelLength (1-63, min <= max), priceTiers (1-5 tiers of {years, price}; must include a 1-year tier and respects the per-transaction year policy), premiumPriceTiers (0-10 tiers of {maxLen, price}: labels at or under maxLen characters are priced at that level for both registration and renewal; empty clears), maxPerUser (null clears, falls back to the global limit), dnssecEnabled (requires an active provider that supports DS writes), idnRegistrationEnabled (default true; when false, availability checks and registration reject Unicode and punycode labels), idnResolutionEnabled (default true; when false, DNS records under this suffix reject Unicode and punycode hostnames), enabled, remark. Returns { created, item }. Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
remarkNo
suffixNocreation only, e.g. blog.example or xn--...
enabledNocreation default: false
suffixIdNoexisting suffix to update; omit to create a new suffix
maxPerUserNonull clears the per-suffix cap
priceTiersNo
providerIdNoDNS provider id; null unbinds
dnssecEnabledNo
maxLabelLengthNo
minLabelLengthNo
premiumPriceTiersNolabel-length tiers (unicode codepoints <= maxLen priced at level); empty clears
hostingProviderIdsNoordered DNS-hosting provider bindings (hosting role required); array order = priority; empty clears
idnResolutionEnabledNodefault true; false rejects Unicode/punycode hostnames in DNS records
idnRegistrationEnabledNodefault true; false rejects Unicode/punycode labels at check & registration

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so richly: 'Requires admin', lowercase A-label normalization, uniqueness constraint, delegation/hosting role requirements, ordered capacity-consumption for hostingProviderIds, DNSSEC needing an active DS-capable provider, IDN flag effects, and the return shape {created, item}. Mutation semantics (omitted fields keep current values; null/empty clears) are explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the create-vs-update decision, then a dense but field-by-field enumeration where each clause adds real constraint. It is long and prose-heavy, but nearly every sentence earns its place, so the size is justified by the 14-parameter complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter admin mutation with no output schema, the description covers auth, mode selection, per-field constraints, clearing semantics, and the return envelope. Nothing an agent needs to invoke it correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Well beyond the 64% schema coverage, it explains business rules the schema cannot: priceTiers must contain a 1-year tier and honor the per-transaction year policy, premiumPriceTiers price by codepoint length for registration and renewal, min<=max label bounds, providerId null unbinds, and hostingProviderIds ordering/priority semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation (upsert = create or update) on a specific resource (domain suffix) and immediately disambiguates the two modes via suffixId presence. An agent can tell this apart from admin_list_domain_suffixes or admin_set_domain_suffix_reserved without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states when to create (omit suffixId) versus update (provide suffixId, omitted fields retained). It does not name alternative tools or explicit when-not conditions, but for an upsert tool the mode-selection guidance is essentially complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_upsert_feature_cardAInspect

Create a feature intro card (omit cardId; translations required) or update an existing one (cardId plus at least one of translations / active). translations: locale → {title, subtitle, description}; zh and en sides are required (each side needs all three fields), the other six locales are optional and fall back to en when omitted; unknown locale keys are ignored. active: false takes the card offline (existing confirmations are kept). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
activeNoOnline toggle; false stops the intro flow; defaults to true on create
cardIdNoExisting card to update; omit to create
translationsNolocale → {title, subtitle, description}; zh and en are required, other six locales optional (readers fall back to en); required when creating

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the zh/en requirement, the six-locale fallback to en, that unknown locale keys are silently ignored, that active:false takes the card offline while preserving existing confirmations, and that admin rights are required. It does not state idempotency, error behavior for a nonexistent cardId, or the shape of any response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the create/update branching, then the translation and active semantics, with no filler sentences. It is a single dense paragraph with several stacked clauses, which slightly reduces scannability but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object mutation tool with no annotations and no output schema, the description covers the key decisions: mode selection, translation requirements and fallbacks, and offline semantics. It lacks only error/edge behavior (nonexistent cardId, partial updates) and any hint of the returned value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning: each zh/en side must carry all three fields (title, subtitle, description), the other six locales fall back to en, and unknown locale keys are ignored. Those nuances are not spelled out in the nested-object schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create/update a feature intro card') and explicitly conditions the mode on cardId presence versus update. An agent can distinguish this from admin_list_feature_cards and admin_delete_feature_card without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly states the rule that selects create (omit cardId) versus update (cardId plus at least one of translations/active), which is genuine when-to-use guidance. It stops short of naming a sibling or an exclusion case (e.g., use admin_delete_feature_card to remove), so it does not reach the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_upsert_topicAInspect

Create an official topic (omit topicId; name required) or update an existing one (fields left out stay unchanged; on update name renames the topic display name. The ID is the stable anchor and slug/associations are unaffected). Per-locale display names/descriptions are maintained manually via the translations input or admin_set_topic_translations (no automatic machine translation). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
iconNolucide icon name (kebab-case)
nameNoRequired when creating; on update renames the display name (slug and associations stay stable)
pinnedNo
statusNobanning clears the pin
boardIdNoOwning board; null unassigns
colorBgNo#rrggbb or empty for default
colorFgNo#rrggbb or empty for auto contrast
topicIdNoExisting topic to update; omit to create
officialNo
hideCoverNo
postPolicyNo
descriptionNo
translationsNolocale → {name, description}; zh is the baseline and not accepted here; sides with an empty name are dropped

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses partial-update semantics ('fields left out stay unchanged'), that rename only affects display name while ID/slug/associations stay stable, that translations are never machine-generated, and that admin rights are required. It stops short of error/idempotency behavior or what create returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the create/update contract comes first, followed by rename stability, then translations, then the admin requirement. Heavy parenthetical nesting makes it slightly harder to scan, but every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter mutation tool with no annotations and no output schema, the description covers the essentials an agent needs: mode selection, partial-update semantics, side effects on slug/associations, translations handling, and auth. It could say more about the create response and validation failures, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 62%, and the description adds a cross-parameter rule the schema does not state: omitted fields are left unchanged on update. It also explains topicId's role and that name doubles as the rename lever, supplementing rather than merely repeating the field docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair and resource ('Create an official topic ... or update an existing one') and immediately disambiguates the two modes via topicId. It is clearly distinguishable from siblings like admin_get_topic, admin_list_topics, and admin_upsert_board.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the create-vs-update selector (omit topicId; name required) and routes translation work to either the translations input or admin_set_topic_translations. It also flags 'Requires admin.' It does not state exclusions (e.g. when to prefer a different topic tool) but the routing is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

admin_warn_userAInspect

Send a moderation warning notice to a user (no state change: notification + user.warn audit row only; the warning text is written verbatim in all languages of the notice). Requires admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYes
messageYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden and does it well: it clarifies this is a notification, that no state change occurs, that a user.warn audit row is written, that the message is stored verbatim, and that admin rights are required. Missing only rate limits and response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with a parenthetical that carries the highest-value behavioral facts first. No filler, every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no annotations and no output schema, the description covers side effects, audit trail, i18n behavior, and auth requirements. Only the parameter-level details (format, length limit) are left to the bare schema, a minor gap at this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It adds real meaning for the message parameter (written verbatim in all languages, i.e. not translated), but says nothing about userId beyond 'a user' and omits the 500-char limit, leaving half the parameter documentation gap unfilled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (send a moderation warning notice to a user) and immediately scopes it with 'no state change', which meaningfully separates it from admin_ban_user and other mutating admin tools. It stops short of naming the sibling outright, so it does not quite reach the 5 bar for explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied by the moderation-warning framing and the 'Requires admin' prerequisite, but there is no explicit when-to-use guidance or 'prefer this over admin_ban_user when...' routing. An agent can infer the scenario but no alternatives or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_articleAInspect

Create a new article (markdown) owned by the authenticated user. publishNow=false saves a draft; otherwise the article enters the same submit/review pipeline as the web editor (pre-submit keyword gate → pending_review → the moderation plugin publishes or queues review).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
topicsNoOfficial topic names of that board (1-3 when publishNow); unknown names are ignored. Topics are admin-created only
boardIdNoBoard to submit to (required when publishNow; must be a board created by the admins)
contentYesMarkdown body
summaryNo
announceNoAdmin tokens only: also publish as a site-wide announcement (every user gets a system notification when it publishes). Non-admin tokens are rejected.
publishNowNofalse ⇒ save as draft
visibilityNopublic
collectionIdNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does substantial work: it discloses the draft-vs-publish fork, the pre-submit keyword gate, the pending_review state, and that a moderation plugin ultimately publishes or queues review. It omits permission requirements for creation, failure modes, and what fields are dropped on the draft path, so it stops short of full disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and ownership, then the mode/lifecycle detail. The arrow-chain parenthetical is dense but informative rather than wasteful; only minor trimming is possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no annotations and no output schema, the description covers lifecycle and ownership well but leaves gaps: creation permissions, error/rejection behavior, and the semantics of visibility, collectionId, and summary are absent. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 56%, so several parameters (summary, visibility, collectionId) are undocumented in both places. The description does add real meaning for publishNow by tying it to the whole downstream pipeline, and implicitly signals that board/topics matter only on publish, but it never addresses the remaining undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Create a new article (markdown)') and scopes ownership to the authenticated user, so the agent knows exactly what is produced. It does not explicitly distinguish itself from siblings such as update_post or admin_approve_post, but the overlap is low enough that purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear conditional: publishNow=false for a draft versus the default submit/review path, which tells the agent which mode to pick. It never names an alternative tool for any scenario, but no close sibling competes for the same job, so context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_mediaBInspect

Delete a media file from the authenticated user's library (removes the library row and the underlying file).

ParametersJSON Schema
NameRequiredDescriptionDefault
mediaIdYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose important destructive behavior: it removes both the library row and the underlying file. However, it omits permission requirements, irreversibility warnings, error handling, and authentication details, leaving meaningful gaps 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that communicates the action and its side effect without any filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter delete tool with no output schema, the description adequately covers the core action and its destructive effect. However, it omits parameter semantics and usage context, leaving the definition minimally viable rather than fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description never mentions the sole parameter 'mediaId' or its expected format beyond what the schema already types as a UUID. With low coverage, the description should compensate by explaining the parameter's meaning, but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Delete') and resource ('a media file'), plus the scope ('authenticated user's library'), which distinguishes it from the sibling admin_delete_media tool. An agent can identify what this tool does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given. It does not mention the alternative admin_delete_media tool or explain prerequisites such as ownership or permissions. The scope implies it is for the user's own media, but this is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_postAInspect

Move one of the authenticated user's posts to the recycle bin (soft delete, restorable from the web UI). Posts already in the recycle bin are reported as not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses soft-delete semantics, restorability from the web UI, and the edge-case behavior that already-recycled posts return not-found. It stops short of stating auth requirements or secondary effects (e.g. what happens to the post's comments).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both earning their place: the first delivers the core action and reversibility, the second handles the notable edge case. The main behavior is front-loaded with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter delete with no annotations or output schema, the description covers the essentials: what happens (soft delete), reversibility, and the not-found behavior. Auth requirement and downstream effects are the only meaningful omissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single postId parameter, so the description must compensate. It implies postId identifies a post the caller owns, adding an ownership constraint, but contributes no format or identifier detail beyond what the schema's uuid type already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: 'Move one of the authenticated user's posts to the recycle bin,' which distinguishes it from the sibling mod_delete_post by limiting it to the caller's own posts. It never names the alternative explicitly, so the differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scoping ('authenticated user's posts') implies when this tool applies versus the moderator variant, but there is no explicit when-to-use statement, no prerequisites, and no named alternative. Usage must be inferred from the ownership constraint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_eventsBInspect

Recent activity timeline of your zone (create/record/dnssec/billing... events, newest first). Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
zoneIdYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses that the operation is read-only, that results are newest-first, and what event categories appear. However it is silent on pagination behavior and the fact that the limit caps at 50, which is material for a timeline feed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the resource and scope, with no filler. It could have spent one clause on zoneId/limit instead of only parenthetical event examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no output schema, the description covers what the tool returns at a high level (activity timeline, newest first). It is not complete enough given the 0% parameter coverage: zoneId's role and the limit cap are left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and neither of the two parameters (zoneId, limit) is mentioned in the description. 'Your zone' only weakly implies zoneId is a zone you own; the limit/default/max-50 semantics are entirely undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific resource and scope: a zone's activity timeline, enumerating event kinds (create/record/dnssec/billing) and ordering (newest first). An agent can tell this is a read-only event feed, but it never names a sibling (e.g. dns_zone_get, admin_get_audit) to distinguish it from other zone-read tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use statement, no condition for choosing this over dns_zone_get or dns_zone_export, and no exclusions or prerequisites. 'Read-only' hints at the safety profile but not the use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_pricingBInspect

DNS hosting plan disclosure: monthly price, days remaining this month, prorated first-month estimate, zone quota usage. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It does disclose the read-only, non-mutating nature and enumerates the returned data points, but says nothing about auth requirements, rate limits, or whether output is per-account or per-plan.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence lists the payload contents followed by a two-word safety note; there is no filler. The colon-list format is dense and readable, though 'disclosure' is slightly odd phrasing for a read operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must describe returns, and it does so by naming the four data points returned. It leaves auth scope and quota semantics (what the quota is measured against) unstated, which is a minor gap for a simple, argument-free read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies. There is no scalar syntax to clarify, and the description correctly adds nothing about inputs because none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (DNS hosting plan) and enumerates exactly what it discloses: monthly price, days remaining, prorated first-month estimate, and zone quota usage. It is clearly distinct from siblings like dns_zones or dns_zone_get, though it never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when an agent should call this versus alternatives such as dns_zone_get or dns_zones. The only usage signal is the trailing 'Read-only', which implies safety but conveys no triggering context or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_record_createBInspect

Create a DNS record (A/AAAA/CNAME/ALIAS/MX/TXT/SRV/CAA/PTR/SVCB/HTTPS/TLSA/DNAME) in your zone. Mutating; conflicts (CNAME coexistence), per-zone record quota and per-type validation are enforced server-side.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
nameNorecord name, default @ (zone apex)
typeYes
zoneIdYes
contentYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does well: it declares the operation is mutating and lists server-side enforcement (CNAME coexistence conflicts, per-zone quota, per-type validation). It stops short of stating required permissions, whether the operation is reversible, or what happens on a rejected conflict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and scope, with no filler. The long parenthetical type list is somewhat redundant with the enum but is compact enough to justify itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and low parameter coverage, the description covers behavior but omits auth/permission requirements and gives no indication of the response. The core is adequate but leaves real gaps an agent must guess at.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (only 'name' is described in the schema), so the description should compensate but does not: it restates the record-type set already captured by the enum and says nothing about ttl bounds, content format, or zoneId. TTL, content, and zoneId remain undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a DNS record') plus the scope ('in your zone') and enumerates every supported record type, so the agent knows exactly what is produced. It does not explicitly name or distinguish itself from siblings like dns_record_update, dns_record_delete, or dns_records_import, leaving that differentiation to inference from the verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite statement, and no pointer to the alternatives (update, delete, import) that an agent would need to pick the right tool. The description explains enforcement rules but never tells the agent when this tool is the correct choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_record_deleteCInspect

Delete one of your DNS records. Mutating.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneIdYes
recordIdYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, yet it only offers the single word 'Mutating.' It does not say whether deletion is irreversible, whether dependent records break, whether propagation/verification state is affected, or what authorization is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler. The 'Mutating.' fragment is terse but earns its place as a safety signal, though it could be folded into the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with zero annotations, no output schema, and undocumented parameters, the description is far too thin. It omits irreversibility, side effects, and authorization, all of which an agent needs before invoking a delete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about zoneId or recordId. The names are semi-self-explanatory, but there is no indication of where to obtain them or whether recordId is scoped to zoneId, so the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Delete) and resource (DNS record) with clear ownership scoping ('your'), which cleanly separates it from siblings dns_record_create and dns_record_update. It does not explicitly name those siblings, but the verb+resource pairing is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives, and no mention of prerequisites such as needing the zone to exist or permissions required. The agent is left to infer everything from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_records_importAInspect

Bulk-import records from an RFC 1035 zone file (max 256 KB). System records (SOA/NS/DS/DNSSEC) are skipped; capacity/conflict warnings are reported per line without aborting the batch. Mutating.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneIdYes
zoneFileNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that system records (SOA/NS/DS/DNSSEC) are silently skipped, that capacity/conflict warnings are reported per line, that the batch is NOT aborted on failure, and that the call is mutating. Gaps remain on permissions required, whether existing records are replaced or merged, and idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short clauses, front-loaded with the operation and format, no filler. Slightly telegraphic in style but nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating, 0%-schema-coverage tool with no annotations and no output schema, the description covers the unusual behaviors well (skips, non-aborting warnings, mutating flag) but omits auth requirements, what happens to pre-existing records, and how warnings are surfaced to the caller.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate; it does add the file format and the 256 KB limit for the zone-file parameter, but zoneId is never explained, and the schema's required list names 'text' while the properties define 'zoneFile', an inconsistency the description does not resolve.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource combination ('Bulk-import records'), the input format (RFC 1035 zone file) and the size ceiling, which cleanly distinguishes it from the single-record sibling dns_record_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'Bulk-import' implies this is the many-record path versus dns_record_create, but the description never names an alternative or states a when-not condition, leaving the agent to infer routing from the large sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_record_updateAInspect

Update one of your DNS records (type/name/content/ttl/disabled/meta; at least one field). Mutating. Suffix-level IDN resolution restrictions apply the same way as creation (dns_record_idn_disabled).

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
nameNo
typeNo
zoneIdYes
contentNo
disabledNo
recordIdYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully flags 'Mutating' and the IDN/suffix resolution restriction referencing dns_record_idn_disabled, but it omits whether unspecified fields are preserved, permission/auth requirements, and reversibility of the change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Compact and front-loaded: mutating nature and the field list come first, with secondary IDN caveats trailing. Every sentence adds information, though the trailing IDN parenthetical is terse to the point of being cryptic.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with 0% schema coverage, no annotations, and no output schema, the description is only partially sufficient: it clarifies partial-update semantics but leaves required identifiers, permission needs, and return behavior unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does name most updatable fields (type/name/content/ttl/disabled). But it omits the two required params (zoneId, recordId) and lists 'meta', which does not appear in the schema — a small inconsistency that leaves real gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Update') and resource ('DNS records'), scopes it ('one of your'), and enumerates the mutable fields, making it easily distinguishable from siblings like dns_record_create and dns_record_delete. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'at least one field' condition is a genuine usage constraint, and the reference to creation-time IDN behavior hints at a related tool. However, no alternatives are explicitly named and there is no when-not-to-use guidance (e.g., use dns_record_delete to remove, dns_record_create to add).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_zone_createAInspect

Create a DNS hosting zone for a site-registered domain (domainId) or an external domain (externalFqdn, exactly one of the two). Mutating; consumes the per-user zone quota; the zone is provisioned on a hosting node and delegation is wired automatically for site domains.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainIdNo
externalFqdnNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that the call is mutating, consumes the per-user zone quota, provisions on a hosting node, and auto-wires delegation for site domains. It omits permission/auth requirements and failure modes, but the operational side effects are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the resource and the parameter-choice constraint front-loaded; every clause earns its place. It is slightly overloaded with the provisioning/delegation clauses, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param create tool with no annotations and no output schema, the description covers creation modes, quota cost, and delegation side effects. It stops short of describing the return value or the required caller permissions, which an agent would still want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: domainId is tied to a site-registered domain, externalFqdn to an external one, plus the mutual-exclusivity constraint. It does not add format details (uuid, 253-char max, error behavior when both or neither are supplied), leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create a DNS hosting zone") and immediately distinguishes the two input modes an agent must choose between. It is unambiguous against siblings such as dns_zone_get, dns_zone_delete, and dns_record_create without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the selection rule "exactly one of the two" and explains which input path applies to which scenario (site-registered domain vs external domain). It gives clear context but does not address when to prefer this over related tools like domain_register or dns_record_create.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_zone_deleteAInspect

Delete a DNS hosting zone (destructive, irreversible): resolution stops immediately and all records are wiped from the node and the site. The domain itself is unaffected; re-add hosting anytime via dns_zone_create.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneIdYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it states the operation is destructive and irreversible, that resolution stops immediately, that all records are wiped from node and site, and that the domain registration itself is untouched. It omits permission/confirmation requirements and any cascading effects (e.g. DNSSEC state), which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, with the destructive nature front-loaded before the mitigating detail about the domain being unaffected. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter delete with no annotations and no output schema, the description covers the consequences an agent must weigh before invoking it. Remaining gaps are the response shape and any authorization prerequisite, but the critical destructive semantics are fully stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single required parameter zoneId is never mentioned in the description, so nothing compensates for the empty schema. The name and uuid format make the parameter inferable, but the description adds no meaning about which zone identifier to supply (e.g. whether it must be the hosting zone id vs. the domain).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Delete a DNS hosting zone" is a precise verb+resource that clearly separates it from the sibling dns_zone_create and from record-level tools like dns_record_delete. An agent can identify what the tool acts on without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It establishes the destructive/irreversible condition under which this tool is appropriate and points at dns_zone_create as the path back, giving real context for choosing it. It never explicitly names a sibling to use instead (e.g. dns_record_delete for removing individual records), so it stops short of a full when/when-not mapping.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_zone_dnssecBInspect

Enable or disable DNSSEC signing for your zone (DS propagation to the parent delegation is handled server-side). Mutating.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneIdYes
enabledYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully flags the mutation ('Mutating.') and discloses that DS propagation to the parent delegation is handled server-side, which is real behavioral context. However, it omits auth/permission requirements, reversibility, and the effect of disabling, so it only partially compensates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the action first and the server-side caveat parenthetical, plus a terse 'Mutating.' flag. No wasted words, though the one-word sentence is a slight stylistic outlier.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation toggle with no annotations and no output schema, the description covers what the tool does, that it mutates, and the DS-propagation side effect. It still leaves auth requirements and disable-side behavior unstated, so it is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and no annotations exist, so the description must compensate. It conceptually covers both parameters ('your zone' maps to zoneId, 'enable or disable' maps to the enabled boolean), but adds no format or constraint detail (e.g. UUID requirement) beyond the obvious mapping.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair and resource: 'Enable or disable DNSSEC signing for your zone'. This is clearly distinct from zone/record siblings (dns_zone_create, dns_record_update), so an agent can route to it without opening the schema, though it does not explicitly name a sibling to contrast with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the operation (toggle DNSSEC signing) but gives no explicit when-to-use guidance, no prerequisites, and no mention of alternatives or the conditions that select this tool over adjacent zone tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_zone_exportBInspect

Export your zone as an RFC 1035 zone file. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneIdYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose two useful traits: the operation is read-only (non-destructive) and the payload is a standards-compliant RFC 1035 zone file. It says nothing about permissions/ownership required to export a zone, size limits, or whether the response is text, a download URL, or base64.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and the output format, then the safety trait. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool, the description covers the action and output format, but with no annotations and no output schema it leaves the return shape (text body vs. file link), authorization requirements, and any size/time limits unexplained. Adequate but with visible gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description never mentions zoneId, so the single parameter is documented by name and uuid format only. It does add implicit meaning in that the zone must be one "your" account owns, but nothing about which identifier form to supply beyond the schema's uuid.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Export your zone") and even names the output format (RFC 1035 zone file), so an agent understands exactly what comes back. It does not explicitly contrast with nearby siblings like dns_zone_get or dns_records_import, so an agent must infer that this produces a raw zone file rather than structured records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this versus dns_zone_get, dns_record_*, or dns_records_import, and no prerequisites or preconditions are given. The only implicit cue is that it is read-only, which any sibling could also be.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_zone_getAInspect

Get one DNS zone panel: zone summary (status, driver, sync state, DNSSEC) plus all records. Read-only; non-owned ids return 404.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneIdYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose two behavioral facts an annotation would normally cover: it is read-only, and non-owned ids yield a 404. It omits auth requirements, rate limits, and pagination behavior for the embedded records list, so it stops short of full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, zero filler, with the highest-value information (what is returned) front-loaded and the caveat trailing. Nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description usefully previews the return shape (summary fields plus all records) and the failure mode. For a single-parameter read tool this is nearly sufficient, though it could note record volume or whether records are paginated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One parameter at 0% schema description coverage, so the description must compensate. It adds real meaning to zoneId by revealing the ownership constraint (non-owned ids return 404), but says nothing about format or where a valid id comes from, so the uuid typing rests entirely on the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and a singular resource ('one DNS zone panel'), then enumerates the payload (zone summary with status, driver, sync state, DNSSEC, plus all records). This clearly separates it from the list sibling dns_zones and from record-level siblings like dns_record_update/dns_zone_export.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the single-zone detail fetch, but the description never says when to prefer it over dns_zones, dns_zone_export, or the dns_record_* tools. The 'non-owned ids return 404' note is an error condition, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_zonesAInspect

List your DNS hosting zones (per-zone record counts, sync status, delegation state). Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden, and it does add real value by declaring 'Read-only' and naming the fields returned (record counts, sync status, delegation state). It says nothing about pagination, ordering, or rate limits, so the disclosure is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence plus a two-word safety tag. The resource and scope come first, and every clause (returned fields, read-only) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read tool with no annotations and no output schema, the description substitutes for the missing output schema by enumerating the returned fields and confirms the safety profile with 'Read-only.' Only ordering/pagination behavior is left unstated, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. There are no arguments whose meaning could be clarified, and the description correctly adds none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('DNS hosting zones'), and the parenthetical enumerates the returned fields. The plural scope implicitly separates it from dns_zone_get (single zone) and the mutation siblings, but it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: a zero-parameter listing tool whose purpose is self-evident. There is no statement of when to call this versus dns_zone_get or dns_events, and no preconditions or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_zone_verifyAInspect

Check public NS delegation for a pending (external) zone and activate it when delegation is satisfied. Idempotent; returns the new status.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneIdYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does real work: it discloses a conditional side effect (activation happens only when delegation is satisfied), states idempotency, and says it returns the new status. It omits what happens on failure/unsatisfied delegation and any permission or rate-limit requirements, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the core action and its condition come first, and the idempotency/return note follows. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description usefully notes that it returns the new status, covering the return-value gap. It is nearly complete; the residual gap is the undocumented zoneId semantics and failure behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required 'zoneId' (UUID), so the description must compensate and does not: it never explains that zoneId identifies the pending zone or what form it takes. The word 'zone' only loosely implies the parameter's meaning, leaving the agent to infer it from the sibling ecosystem.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('verify') plus resource ('DNS zone') and the exact action taken: check public NS delegation for a pending/external zone and activate it once delegation holds. This is clearly separable from sibling reads like dns_zone_get or dns_zone_dnssec, so the agent can pick it without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for a pending (external) zone' scopes usage well: it applies only to zones awaiting external delegation, not general zone inspection. It stops short of naming the alternative (e.g., use dns_zone_get to merely read status) or stating a when-not condition, so it is clear context but without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_registerAInspect

Register a subdomain under a suffix and charge points (idempotency: concurrent duplicate registrations are rejected server-side; failures roll back the charge). Registration must be enabled site-wide; per-user quota and balance are enforced. Nameservers are required (2-4 hostnames; predefined provider sets or custom) UNLESS the suffix forbids external NS (externalNsForbidden) — such suffixes are wired to site DNS hosting automatically at registration; passing nameservers to them is rejected. Pricing follows the suffix label-length tiers: labels within a premium tier's maxLen are charged that tier's price, and renewals match the registration price of the current tier; suffixes with IDN registration disabled reject Unicode and punycode (xn--) labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYeslabel to register (unicode or ASCII form)
yearsYesregistration term in years (1-3, site policy cap)
suffixIdYessuffix id from domains_suffixes
dsRecordsNoDS records for DNSSEC. Only allowed when dnssecEnabled=true (cleared automatically when DNSSEC is off).
nameserversNoNameserver hostnames (2 to 4 entries, required).
dnssecEnabledNo

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: idempotency semantics (concurrent duplicates rejected server-side), transactional rollback of the charge on failure, quota/balance enforcement, a site-wide enablement gate, NS requirements with the externalNsForbidden exception and automatic site-DNS wiring, tiered pricing/renewal rules, and IDN/punycode rejection. This is unusually rich disclosure of what happens around the call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core action is front-loaded in the first clause, and nearly every sentence carries distinct operational information with no filler. It is delivered as one dense block, though, and would be easier to scan if the NS/pricing/IDN rules were separated rather than run together.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation tool with no annotations and no output schema, the description covers idempotency, rollback, quotas, NS rules, pricing tiers, and IDN restrictions well. It omits any indication of what a successful registration returns and does not elaborate on the DNSSEC/dsRecords path, which is left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 83%, so the schema does most of the work, but the description adds genuine meaning the schema lacks: the externalNsForbidden interaction that makes nameservers invalid for certain suffixes, the predefined-provider vs custom NS options, and the label-length pricing/IDN constraints on `label`. It stops short of clarifying dsRecords behavior beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Register a subdomain under a suffix") and immediately adds the consequential side effect ("charge points"), which cleanly separates it from domain_renew, domain_transfer_*, and domains_check. It never names those siblings explicitly, so the differentiation is inferable from the verb rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description supplies strong preconditions (site-wide registration enabled, per-user quota and balance enforced) but frames them as failure conditions rather than as guidance on when to pick this tool over alternatives like domain_renew for existing domains or domains_check for availability. Usage is implied by the verb, not routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_renewAInspect

Renew one of the caller's domains by N years and charge points (max 10 years from now after renewal; renewing inside the grace period revives an expired domain). Pass requestId (any uuid) to make retries idempotent: the same requestId never double-charges or double-extends.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
yearsYesrenewal term in years (1-3)
requestIdNoclient intent idempotency key for retries

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the point charge, the 10-year ceiling from now, the grace-period revival behavior, and precise idempotency semantics ('the same requestId never double-charges or double-extends'). It omits what happens on insufficient points or failure, and does not restate the caller-ownership requirement beyond the word 'caller's'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with the action and its cost, then the constraints and idempotency contract. No filler, no restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers cost, term limits, grace-period effects, and retry safety — the essentials for invoking it correctly. The gap is failure semantics (insufficient point balance, invalid/non-owned domain id), which an agent would otherwise have to discover at runtime.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the undocumented 'id' parameter is compensated by the description framing it as 'one of the caller's domains'. The requestId parameter's purpose is expanded well beyond the schema's terse 'idempotency key for retries' by explaining the never-double-charge guarantee. The years parameter's 1-3 range is only in the schema, but the description adds the overall deadline context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource with explicit scope: 'Renew one of the caller's domains by N years'. An agent can immediately tell this apart from domain_register (creation) and domain_update_ns (nameserver edits) among the siblings. The billing side-effect (charge points) is stated up front, so the action's identity is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real operational guidance: renewal limits, grace-period revival of expired domains, and when/how to pass requestId for retries. It does not contrast against any sibling (e.g., domain_register or domain_transfer_confirm) or state prerequisites such as sufficient point balance or ownership, so it stops short of explicit when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domains_checkAInspect

Check whether a label is available for registration under a suffix (no side effects). Reserved labels report available=false with reason="reserved"; the provider-side check is best-effort (providerChecked=false means the local registry answer only). The result carries pricing: { price, premium } — the 1-year reference price and whether the label hits a premium length tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYeslabel to register (unicode or ASCII form)
suffixIdYessuffix id from domains_suffixes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it declares the operation is side-effect free, explains that reserved labels yield available=false with reason="reserved", and discloses that the provider-side check is best-effort (providerChecked=false means local-registry-only). It does not mention auth requirements or rate limits, but the edge-case and result semantics are unusually thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The availability semantics are front-loaded, followed by the caveat and then the pricing note; every clause carries distinct information. It is dense but not padded, though the single long sentence chain could be broken up slightly for scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully explains the return shape (available, reason, providerChecked, and pricing {price, premium}), which is exactly what an agent needs. It is close to complete; only permissions and failure modes are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented in-schema, so the baseline of 3 applies. The description adds no format or constraint detail beyond what the schema provides for label and suffixId.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: checking whether a label is available for registration under a suffix. It is clearly distinguishable from siblings like domains_suffixes (which enumerates suffixes) and domain_register (which performs the registration), so an agent can route correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(no side effects)' implies this is a safe pre-registration probe, which is useful context. However, it never explicitly says to call this before domain_register, nor names any alternative or when-not-to-use condition, leaving the agent to infer the workflow placement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domains_getAInspect

Get one of the authenticated user's domains by id: domain DTO, the recent delegation sync job history (provider push attempts and errors) and the transfer overview (active transfer code expiry / pending incoming request, aligned with the REST detail route; null when the overview query fails). Not-found for domains owned by others.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does well: it discloses partial-failure semantics ('null when the overview query fails'), authorization scoping (only own domains), and the composite return payload. It lacks detail on permissions beyond ownership, pagination, or rate limits, but the behavioral profile is materially richer than the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and resource, then adds return-shape detail. The single long sentence is dense and slightly overloaded with the parenthetical about the REST detail route, but every clause is informational rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must describe return values, and it does so thoroughly (DTO, sync job history, transfer overview plus null behavior). Combined with the ownership scoping, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and there is one required parameter, but the description only says 'by id' without adding format, uniqueness, or lookup semantics beyond what the schema already types as a uuid string. Adequate but minimal value-add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('one of the authenticated user's domains by id'), and enumerates exactly what is returned (domain DTO, delegation sync job history, transfer overview). This clearly distinguishes it from domains_list, which handles collections.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly scoped to single-domain retrieval and adds the crucial ownership boundary ('Not-found for domains owned by others'), which tells the agent this is an authenticated, self-scoped lookup. It does not explicitly name domains_list as the alternative for enumeration, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domains_listAInspect

List the authenticated user's subdomains with optional search/filter/sort. Returns domain DTOs (fqdn, status, nameservers, DNSSEC state, expiry) and the total count.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNofuzzy match on label (unicode or ASCII form)
dirNodesc
sortNocreatedAt
limitNo
offsetNo
statusNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers useful disclosure: the call is scoped to the authenticated user (implied auth requirement) and the response is enumerated as domain DTOs with named fields, plus a total count that signals paging. It omits rate limits, how limit/offset interact, and whether sorting/filtering have defaults. The return-shape disclosure goes well beyond what an unannotated tool usually offers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, operation stated first, return payload second. No filler, no restated title, and the capability summary ('optional search/filter/sort') is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, unannotated, no-output-schema tool, the description covers purpose and response contents but leaves pagination semantics, filter precedence, and sibling differentiation unaddressed. An agent could invoke it, but would be guessing at several parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% across 6 parameters, so the description must compensate, and it largely does not. It generically mentions 'search/filter/sort' but never maps q, status, sort, dir, limit, or offset to behavior, defaults, or enum meaning. The vague keyword list overlaps the schema without adding actionable semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('List the authenticated user's subdomains'), which cleanly separates it from domains_get (single domain) and dns_zones (DNS zones). It also names the return payload, reinforcing what the tool is. It does not, however, explicitly contrast itself with the nearest siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'With optional search/filter/sort' implicitly tells the agent this is a browsable, filterable list, and 'the authenticated user's' scopes it to owned domains. There is no explicit when-to-use guidance, no statement of when to prefer domains_get or the DNS tools, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domains_suffixesAInspect

List the public suffix catalog open for registration (per-suffix label length rules, price tiers in points, DNSSEC availability) plus the registration meta: whether registration is currently enabled, the per-transaction year limit, the grace period (days) and the points unit (unitName/unit).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does useful work by disclosing the return payload — per-suffix rules, price tiers, DNSSEC, plus meta (registration enabled flag, per-transaction year limit, grace period days, unitName/unit) — which tells the agent what state it can read. It says nothing about auth requirements, rate limits, or whether the catalog is cached/static.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence that front-loads the action and resource, then the payload contents. The parenthetical enumerations are long but every item is substantive rather than filler, so nothing reads as waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter read tool with no annotations and no output schema, the description is the sole carrier of return-shape information and it does describe the catalog fields and registration meta. It is nearly complete; only the sibling-overlap and auth story are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly focuses on output content instead of inventing parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('public suffix catalog open for registration'), then enumerates the returned attributes (label length rules, price tiers in points, DNSSEC availability, registration meta). This is clearly distinguishable from domains_get/domains_check, though it never acknowledges the near-identical sibling admin_list_domain_suffixes, so the agent must guess which surface to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by 'open for registration' — an agent can infer this is the discovery call before domain_register, but there is no explicit when-to-use, no prerequisites, and no mention of the admin_list_domain_suffixes alternative. Adequate but with a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_transfer_confirmAInspect

Complete a domain transfer by submitting the 6-digit OTP the current owner received by email. On success the domain changes ownership immediately, lands on the platform's managed DNS hosting, and DNSSEC is cleared (trust anchors do not survive a transfer). Wrong/expired OTPs consume attempts; the request locks after 5 failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
otpYes6-digit code from the current owner's email
transferIdYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses that ownership changes immediately, DNS moves to the platform's managed hosting, DNSSEC is cleared (with the reason), and that wrong/expired OTPs consume attempts with a lock after 5 failures. This is exactly the side-effect and rate-limit context an agent needs before calling a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, purpose front-loaded, then consequences. Every clause earns its place — no filler, no restating of the name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with no annotations and no output schema, the description covers the critical behavioral consequences thoroughly. It omits only what the caller gets back on success/failure and where transferId originates, minor gaps given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%; the OTP is described in the schema and the description restates it, while transferId (uuid) is undocumented in both. The description adds no format, source, or constraint details for transferId, so it does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Complete a domain transfer') plus the exact mechanism ('submitting the 6-digit OTP the current owner received by email'). This unambiguously identifies the terminal confirm step and cannot be confused with the sibling initiation/resend/revoke tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'Complete a domain transfer by submitting the 6-digit OTP', but the description never states the prerequisite ordering (that a transfer must first be requested) nor routes the agent to domain_transfer_resend_otp when no code arrives. No explicit when/when-not guidance is offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_transfer_create_codeAInspect

Generate a transfer code for one of the caller's active domains. The plaintext code is returned exactly once in this response (only its hash is stored) and is also emailed to the owner. Store it now. Regenerating revokes the previous code and cancels its pending incoming transfer requests. Code expires in 7 days.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: plaintext code returned exactly once, only the hash is stored, the code is emailed to the owner, regeneration revokes the prior code and cancels its pending incoming transfer requests, and the code expires in 7 days. This is exactly the lifecycle and side-effect context an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then layers the critical behavioral notes (one-time return, revocation semantics, expiry) in five tight sentences. Every sentence carries actionable information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, single-parameter tool with no output schema or annotations, the description covers the return value, storage warning, side effects of re-invocation, and expiry. Nothing material an agent needs to call it correctly is missing beyond the minor id-clarification noted above.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One required uuid parameter with 0% schema description coverage, so the description must compensate. It partially does by implying the id identifies 'one of the caller's active domains', but it never states the identifier's format or confirms it is the domain id, leaving a real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Generate a transfer code') and scopes it to 'one of the caller's active domains'. An agent can immediately distinguish this from sibling tools like domain_transfer_request or domain_transfer_confirm.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context (the domain must be active and owned by the caller) and warns about the consequences of regenerating. However, it never explicitly states when to use this versus siblings such as domain_transfer_request or domain_transfer_revoke_code, leaving the routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_transfer_my_requestsAInspect

List the caller's pending incoming transfer requests (domains being transferred to them, awaiting OTP confirmation).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the filtering semantics (only pending incoming requests, not outgoing or completed), but says nothing about authorization requirements, whether it returns an empty list or errors when nothing is pending, or the shape of results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that states scope, direction, and state constraint with no filler. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-argument read tool with no annotations and no output schema, the description conveys what is listed and under what condition. It is close to sufficient; only the returned record shape and the empty-result behavior are left unstated, which is minor given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is empty, so there is no parameter semantics to explain and nothing for the description to compensate for. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ("List") with a precisely scoped resource ("the caller's pending incoming transfer requests"), and disambiguates direction by naming the domain (transferred to them) rather than from them. That makes it easy to separate from the admin_* domain tools, though it never names a specific sibling alternative it must not be confused with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied via the state qualifier "pending... awaiting OTP confirmation," which tells the agent this is the read-side view of the transfer flow. However, there is no explicit when-to-use statement and no routing to related siblings such as domain_transfer_confirm or domain_transfer_resend_otp, which an agent would plausibly need next.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_transfer_requestAInspect

Request the transfer of a domain to the caller using a transfer code obtained from its current owner. After the transfer completes the domain is hosted on the platform's managed DNS (custom nameservers are not accepted during transfers). An OTP is emailed to the current owner. The caller must ask them for it (the OTP never appears in tool output or logs). Wrong codes consume attempts and lock the code after 5 failures; the transfer completes only via domain_transfer_confirm.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYestransfer code from the current owner (XXXX-XXXX-XXXX-XXXX)
fqdnYesfull domain to transfer (unicode or ASCII form)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so richly: managed DNS hosting after completion, custom nameservers rejected, OTP emailed to the current owner and never exposed in output or logs, and the lockout rule (attempts consumed, code locked after 5 failures). These are exactly the operational facts an agent cannot get from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each carrying a distinct fact: purpose, hosting consequence, OTP retrieval path, and failure/completion semantics. Front-loaded with the action and the required input, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no annotations and no output schema, the description supplies the prerequisites, the side effects, the security-relevant OTP handling, the retry/lockout behavior, and the terminal step. An agent has everything needed to invoke it correctly and warn the user.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (fqdn, code) are already documented with format hints in the schema, setting the baseline at 3. The description reinforces that 'code' comes from the current owner but adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Request the transfer of a domain to the caller') and immediately scopes it with the required input ('using a transfer code obtained from its current owner'). This clearly distinguishes it from siblings domain_transfer_create_code (generates a code) and domain_transfer_confirm (finishes the transfer).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the prerequisite (transfer code from the current owner) and the follow-up tool ('the transfer completes only via domain_transfer_confirm'), which routes the agent correctly. It does not explicitly contrast with domain_register for non-transfer acquisitions, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_transfer_resend_otpAInspect

Resend the transfer OTP to the current owner's email (recipient's own pending request only). Resending issues a new OTP, resets its 10-minute TTL and clears the attempt counter.

ParametersJSON Schema
NameRequiredDescriptionDefault
transferIdYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does so well for the side effects: a new OTP is issued, the 10-minute TTL resets, and the attempt counter is cleared. It omits auth requirements, rate limiting, and error behavior, but discloses the important mutation consequences that an agent could not otherwise predict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler; scope is front-loaded in the first sentence and side effects follow. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter mutation with no annotations and no output schema, the description covers scope, preconditions, and mutation side effects adequately. Remaining gaps are error handling and rate-limit behavior, which are secondary for an OTP resend.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required transferId, so the description must compensate. It identifies the target implicitly as the caller's own pending transfer request, which gives context, but never explains that transferId is the transfer UUID or what happens with an invalid/past transfer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Resend the transfer OTP') plus a scope constraint ('recipient's own pending request only'), which distinguishes it from the companion domain_transfer_create_code flow. It stops short of explicitly naming a sibling, but an agent can tell what it does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a precondition — the caller must be the recipient of the pending transfer request — which gives implied usage context. However, it never states when an agent should resend versus create a fresh code or confirm, so routing between the domain_transfer_* siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_transfer_revoke_codeAInspect

Revoke a domain's active transfer code and cancel its pending transfer requests (recipient is notified). Idempotent: revoking when no active code exists succeeds silently.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does disclose real traits: a recipient notification side effect, cancellation of pending transfer requests, and idempotent behavior when no active code exists. It omits auth/permission requirements and the failure mode for an already-confirmed transfer, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded with the action and its side effect, and the idempotency guarantee placed second where it belongs. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter mutation with no annotations and no output schema, the description covers the action, its collateral effect, the notification, and retry safety. Only the permission/authorization requirement and the id's exact referent are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (id, uuid) and schema description coverage is 0%. The phrase 'a domain's active transfer code' implies id identifies the domain, which adds some meaning, but the description never states this explicitly nor clarifies whether the id is the domain or the transfer record.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource (revoke a domain's transfer code) plus a secondary effect (cancel pending transfer requests), which clearly separates it from siblings like domain_transfer_create_code, domain_transfer_request, and domain_transfer_confirm. An agent can route to it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the sibling set (it is the inverse of domain_transfer_create_code), and the idempotency note implies it is safe to call when unsure. However, it names no alternative or condition (e.g. when to use this versus letting a transfer expire, or which domain states it applies to), so the guidance is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domain_update_nsAInspect

Update the desired delegation state (nameservers / DNSSEC / DS records) of one of the caller's active domains. Omitted fields keep their current value; at least one field is required. Disabling DNSSEC clears all DS records. The change is queued for provider sync (idempotent convergence); expired domains cannot be updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
dsRecordsNoDS records for DNSSEC. Only allowed when dnssecEnabled=true (cleared automatically when DNSSEC is off).
nameserversNoNameserver hostnames (2 to 4 entries, required).
dnssecEnabledNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses important mutation behavior: the change is queued for idempotent provider sync, disabling DNSSEC clears all DS records, omitted fields preserve current values, and expired domains are blocked. It omits auth or rate-limit details, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, purpose front-loaded, and each sentence adds a unique constraint or behavioral detail. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter mutation tool with no annotations and no output schema, the description covers purpose, constraints, and key side effects. It leaves out how to verify the queued sync or handle provider errors, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 50% schema description coverage, the description compensates by clarifying that at least one optional field must be supplied, that omitted fields keep current values, and that disabling DNSSEC clears all DS records. It does not describe the id parameter or nameserver format, but the schema covers those.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and resource (desired delegation state: nameservers, DNSSEC, DS records) scoped to the caller's active domains. It does not explicitly distinguish this registry-level operation from sibling tools like dns_zone_dnssec or dns_record_update, so it misses the top band.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational context: omitted fields retain values, at least one field is required, and expired domains cannot be updated. It lacks explicit when-to-use guidance relative to sibling tools (e.g., dns_zone_dnssec), so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_feedCInspect

Browse the community feed (recent published public posts and short posts).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

C2.7/5.0
Behavior2/5

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 'recent' ordering and public/published scope, which is useful, but says nothing about pagination behavior (limit/offset are the only params), whether authentication is required, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler that immediately conveys the activity and scope. Sized well for the amount of information the author chose to include.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, no-output-schema tool with two undocumented parameters, the description should at minimum cover pagination and ordering. It instead leaves the entire calling contract to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two parameters, and the description never mentions limit, offset, defaults, or the maximum of 50. The reader is left to guess that these control pagination and ordering.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb (Browse) and resource (the community feed), and narrows the content to 'recent published public posts and short posts'. An agent can distinguish it from list_my_posts or admin_list_posts, though it never explicitly names a sibling to avoid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no exclusions or alternatives. The reader must infer that this is the general public browse rather than a search or personal-listing call, and use search_public_posts / search_everything for anything targeted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_postAInspect

Get one post's full markdown content by id. The caller's own posts are readable in any lifecycle state; other people's posts only when published and visible to the caller (public, or followers-only if the caller follows the author).

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes

TDQS

A4.2/5.0
Behavior4/5

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 adds valuable behavioral context about lifecycle states and visibility rules (own posts readable in any state; others only if published and visible), which is beyond schema. It does not mention permissions or errors, but the access logic is a strong disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, then access rules. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool without an output schema or annotations, the description covers purpose and access conditions adequately. It omits return format details, but with no output schema that is a minor gap; the visibility rules are the critical missing piece and are well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the schema only defines postId as a UUID string. The description says 'by id' but adds no format details beyond what the schema provides. For a single-parameter tool with no schema descriptions, a baseline of 3 is appropriate; the description does not compensate with extra parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get), resource (one post's full markdown content), and key (by id). Clearly distinguishes from list_my_posts, search_posts, and get_feed, which return collections rather than a single post's content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The visibility and lifecycle rules effectively define when this tool will succeed versus fail, giving clear context for use. However, it does not explicitly name alternatives like search_posts or get_feed for discovery scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_profileBInspect

Get the authenticated user's profile.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It fails to disclose whether authentication is required, what fields the profile contains, or that it returns no data if unauthenticated. 'Authenticated user's' hints at auth but does not fully specify behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the key verb and scope. No waste, perfectly sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param read tool, the description is minimally adequate. It lacks return value details and authentication prerequisites, which would help an agent know what to expect. Without an output schema, some explanation of the response would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so baseline is 4. The description correctly implies no input is needed, matching the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (profile) with scope 'authenticated user's'. Clear but does not differentiate from siblings like get_stats or search_users, though its zero-param, self-scoped nature is largely self-evident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when or why to use this tool versus alternatives. The self-scoped framing is implicit but no explicit guidance or exclusion is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statsCInspect

Get the authenticated user's content statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it discloses almost nothing beyond the word "Get" implying a read. It does not state whether this is read-only, what authorization is needed, whether results are cached or scoped by time, or what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler or redundancy. It is efficient, though the brevity borders on under-specification rather than tight conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is the only source of information about what the tool returns, and it fails to say what statistics are included. For a stats endpoint the agent needs at least a hint of the metric categories to use the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is an empty object, so there is nothing for the description to clarify. Per the zero-parameter baseline, this is appropriately handled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a concrete verb and resource ("Get ... statistics") and scopes it to the authenticated user, which implicitly separates it from the sibling admin_get_stats. However, "content statistics" is vague about what is actually counted or returned, so the agent cannot tell precisely what data this yields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this instead of alternatives such as admin_get_stats, nor any stated prerequisites or context. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_boardsAInspect

List active community boards with their posting policy. Use it to find the boardId required by create_article.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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 scope ('active' boards) and content ('posting policy'), which implies a safe read, but says nothing about permissions, result size, or pagination behavior. Adequate but with clear gaps for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and resource, followed immediately by the actionable motivation. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, no output schema, and no annotations, the description still conveys what is returned and why an agent would call it. The main omission is any hint about result shape or pagination, but for a zero-arg list tool this is close to sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter meaning to document and no schema gap to compensate for. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List active community boards') plus the payload ('with their posting policy'), which distinguishes it from mutation siblings like admin_upsert_board. It doesn't explicitly contrast with the similar read siblings search_boards or admin_list_boards, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case with a named downstream tool: 'Use it to find the boardId required by create_article.' That is concrete routing guidance, though it offers no when-not condition or explicit alternative (e.g. search_boards for filtered lookups).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_board_topicsAInspect

List the active official topics of one board (by slug). The candidates for create_article's topics argument (1-3 must belong to the submitted board).

ParametersJSON Schema
NameRequiredDescriptionDefault
boardSlugYesBoard slug from list_boards

TDQS

A3.6/5.0
Behavior3/5

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 usefully discloses filtering semantics ('active', 'official') and the 1-3 constraint tied to create_article, but says nothing about pagination, result limits, auth requirements, or return shape for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the core purpose front-loaded and no filler. The parenthetical second sentence is dense but earns its place by giving the cross-tool constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read list with no output schema and no annotations, the description covers purpose, input, and the downstream consumer. It omits only minor context such as relationship to search_topics and whether this is a public or authenticated endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single parameter at 100% schema coverage, the schema already documents boardSlug including its source ('from list_boards'). The description's 'by slug' phrasing is essentially redundant, so it adds no semantic payload beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (active official topics of one board) with the input selector (by slug) named. It is distinguishable from generic siblings like search_topics or admin_list_topics through the board scoping and the 'official/active' filter, though it never names those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames the result as 'the candidates for create_article's topics argument (1-3 must belong to the submitted board)', making the when-to-use condition concrete. It offers no exclusions or named alternatives, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_my_mediaCInspect

List the authenticated user's media library (WebP images).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations and no output schema, the description carries the full burden. It discloses the image format (WebP) but says nothing about pagination, ordering, whether trashed items are included, or the read-only nature beyond the weak implication of 'List'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is appropriately terse for a simple list tool, though the terseness is partly under-specification rather than economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional param and no output schema, the description covers the essentials of what is returned, but omits pagination and result-ordering context that an agent would need to call it well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter (limit) has 0% schema description coverage and is never mentioned in the description, so the agent gets no guidance on its meaning, units, or interaction with the default/max values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List'), resource ('media library'), and scope ('authenticated user's'), plus a content detail (WebP images). The 'my' scoping implicitly separates it from the sibling admin_list_media, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives such as admin_list_media or delete_media. An agent must infer that this is for viewing one's own uploads.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_my_postsBInspect

List the authenticated user's posts (articles and short posts), newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
statusNoall

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but it does disclose two useful behavioral facts: results are scoped to the caller's own content and are ordered newest first. It omits anything about pagination behavior, whether unauthenticated calls fail, and how drafts/rejected posts appear relative to the status default.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource scope, content types, and ordering each earn their place in the clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three fully undocumented parameters, no annotations, and no output schema, the description is too thin. It never explains pagination, status filtering, or what a returned post contains, so an agent cannot call it confidently beyond the defaults.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about limit, offset, or status. In particular the status enum (draft, pending_review, published, rejected, all) is completely unexplained in both the schema and the description, leaving the agent to guess at filtering semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List), a precisely scoped resource (the authenticated user's posts), and disambiguates the content types (articles and short posts). The scope phrase 'authenticated user's' cleanly separates this from sibling tools like admin_list_posts and search_posts without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no alternatives are named. An agent must infer that search_posts, search_public_posts, or get_feed are the right choice in other situations, and nothing tells it when this tool is preferred over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_post_commentsBInspect

List comments on a post (only comments the caller may see).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
postIdYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose a meaningful authorization trait — results are filtered to comments the caller may see — which an agent needs to know. However, it says nothing about ordering, pagination behavior, or what happens when the limit is exceeded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero padding, and the resource scope is front-loaded ahead of the parenthetical visibility caveat. Nothing in the sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with no annotations, no output schema, and 0% parameter documentation, the description is too thin. It covers purpose and a visibility constraint but omits the meaning of limit, result ordering, and any pagination model an agent would need to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there are no enums or defaults documented. The description implies the 'postId' parameter by referring to 'a post', but adds no format details, and the 'limit' parameter (default 50) is entirely unaddressed, so the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('comments on a post') with the scope narrowed to a single post, which is clear enough that an agent can distinguish it from the broad admin_list_comments and search_comments. It stops short of explicitly contrasting itself with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as search_comments or admin_list_comments when the caller wants cross-post or keyword-based comment retrieval. Usage is only implied by the verb and resource.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_decide_delete_requestAInspect

Approve or reject a pending board-post delete request (chief moderator of that board or admin only). One-shot: already-decided requests are rejected by the pending guard. Approving soft-deletes the post (recycle bin).

ParametersJSON Schema
NameRequiredDescriptionDefault
approveYes
requestIdYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the authorization requirement, the one-shot semantics enforced by the pending guard, and that approving soft-deletes the post into a recycle bin. It does not say what rejecting does or whether anything is notified, leaving a modest gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the action and resource front-loaded, followed by eligibility, semantics and side effect in descending priority. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation with no annotations and no output schema, the description covers the essentials an agent needs: permission scope, idempotency behavior, and the downstream effect of approval. Missing only the reject-path outcome and return shape, which are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate for both parameters. 'Approve or reject' conveys the meaning of the approve boolean, and 'pending board-post delete request' anchors requestId, but neither the exact value mapping (true=approve) nor the UUID's source is spelled out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb pair (approve/reject) applied to a precisely named resource (pending board-post delete request). It is clearly distinguishable from siblings such as mod_delete_post, admin_approve_post and admin_reject_post, which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the eligibility gate (chief moderator of that board or admin only) and implies a pending request is a prerequisite. It stops short of naming the alternative tools an agent might reach for (e.g. mod_delete_post for a direct deletion), so no exclusion guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_delete_postAInspect

Moderation delete for a post. Admins delete any post directly (boardSlug optional); a board chief soft-deletes posts in their own board (recycle bin); a deputy files a delete request for chief approval instead (one pending request per post; outcome "requested"). Moderators must pass boardSlug and the post must belong to that board. Already-deleted posts report outcome "already". Pending requests are decided via mod_decide_delete_request.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes
reasonNoOptional reason, forwarded to the board moderators
boardSlugNoRequired for moderators; admins may omit it

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses role-dependent semantics, soft-delete/recycle-bin behavior, the one-pending-request-per-post rule, and the observable outcome strings ('requested', 'already'). It stops short of stating whether an admin delete is permanent/irreversible, which for a destructive moderation action would be the final useful detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose, then role branches in descending authority order, then the sibling pointer. Information-dense with essentially no filler, though the single long enumerative sentence is heavier than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description compensates by naming outcome values ('requested', 'already') that a caller would otherwise have to discover by trial. It covers role, preconditions, and routing; the only gap is the irreversibility of the admin path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the description adds real meaning beyond the schema: it explains that boardSlug is required specifically for moderators and that the post must actually belong to that board, plus that reason is forwarded to board moderators. This constrains usage in a way the schema's terse field notes do not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Moderation delete for a post') and immediately distinguishes the tool by role-based behavior, which no sibling (delete_post, admin_delete_comment) shares. An agent can tell what this does and how it differs from plain post deletion without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It spells out exactly which actor uses which path (admin direct, chief soft-delete, deputy files a request), the required precondition (moderators must pass boardSlug and the post must belong to that board), and routes pending decisions to the explicit sibling mod_decide_delete_request. When/when-not is fully covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_list_queueAInspect

List the caller's moderation queues: the boards they moderate, pending board-post delete requests and open post reports (up to 50 each). Pass boardSlug to scope to one board (admins may scope to any board); without it the queues aggregate across all the caller's board seats. An admin without seats sees empty queues, same as the web moderation page.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardSlugNoOptional board slug to scope the queues

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discloses useful traits: per-queue caps of 50 items, admin-wide scoping privileges, and the empty-queue edge case matching the web moderation page. It stops short of stating explicit auth/permission requirements or the return shape, but the behavioral context is above average for an unannotated 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences that are front-loaded and each earns its place: purpose and contents first, then the scoping parameter, then the edge case. No filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single optional parameter, no annotations, and no output schema, the description covers queue contents, item caps, scoping behavior, and the admin edge case well. The only mild gap is that it does not describe authentication requirements explicitly, but an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), but the description goes further by explaining the semantics of omitting boardSlug (aggregation across all seats) and the admin override, which the schema does not convey. This is meaningfully more than the schema's terse 'Optional board slug to scope the queues'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (the caller's moderation queues) and enumerates exactly what those queues contain: moderated boards, pending delete requests, and open post reports. It is clearly distinguishable from the action siblings like mod_resolve_report and mod_decide_delete_request, which act on the items this tool surfaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the scoping decision explicitly: pass boardSlug to scope to one board (admins may scope to any board), otherwise queues aggregate across all board seats. It gives the edge case of an admin without seats seeing empty queues. It does not name an alternative tool, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_move_postAInspect

Move a post into a board (admin, or a moderator of the target board). Moving a post out of its board is admin-only on the web and not exposed over MCP. The author is notified (unless they performed the move).

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes
boardSlugYesTarget board slug from list_boards

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and does well: it discloses the required permission level and a real side effect (the author is notified unless they performed the move). It omits failure conditions and what happens to the post's existing board-scoped state, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and followed by permission rules and side effects in descending priority. No filler or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation with no output schema and no annotations, the description covers authorization, scope limits, and the notification side effect. Missing only return-value expectations and error behavior, which are minor given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The 50% schema coverage leaves postId undocumented, and the description adds no parameter information at all. The gap is mitigated by both parameters being self-evident (a UUID post id and a slug whose schema description already points to list_boards), but the description does not compensate for the uncovered parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Move a post into a board" is a specific verb+resource with the destination scope made explicit, which cleanly separates it from sibling mutations like mod_pin_post, mod_delete_post, and update_post. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives the authorization context (admin, or moderator of the target board) and rules out a related use case by stating that moving a post out of its board is admin-only on the web and not exposed over MCP. It does not route to a named alternative tool, so it falls short of explicit when/when-not/alternatives routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_override_translationAInspect

Write a manual translation override for one post in a target locale (admin, or a moderator of the board the post belongs to; boardless posts are admin-only). The override bypasses the AI pipeline and stays effective as long as the source post is unchanged. Any later source edit invalidates it like any other cached translation. lang must be one of the 8 site locales and must differ from the detected source language. Only published posts can be overridden.

ParametersJSON Schema
NameRequiredDescriptionDefault
langYesTarget locale of the override
titleNoOptional translated title (omit to show the source title)
postIdYes
contentYesTranslated markdown body

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it discloses the authorization requirement, that the override bypasses the AI pipeline, that it persists while the source is unchanged, and that any source edit invalidates it like other cached translations. This is exactly the mutation/lifecycle context an agent needs and cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action in the first clause, then layers authorization, pipeline bypass, invalidation, and the lang constraint, with essentially no filler. It is slightly run-on with several constraints chained in one paragraph, but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param write tool with no annotations and no output schema, the description covers authorization, lifecycle/invalidation, locale validity, and publication state, which is nearly everything needed to call it correctly. It stops short of stating upsert-vs-conflict behavior when an override already exists for the post/locale.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, so baseline is 3, and the description adds real value on top: lang must be one of the 8 site locales and must differ from the detected source language, a constraint absent from the schema, plus the published-post restriction tied to postId. postId itself (uuid) remains described only in name, keeping this short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope ('Write a manual translation override for one post in a target locale'), which is clear and actionable. It never names the nearest sibling (mod_retranslate_post) or any other translation tool, so differentiation from alternatives is left implicit via the 'bypasses the AI pipeline' phrasing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides rich precondition context: admin or board-moderator authorization (boardless posts admin-only), only published posts can be overridden, and lang must differ from the detected source language. It does not explicitly contrast when to pick this over AI retranslation or admin_set_topic_translations, so exclusions relative to siblings are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_pin_postAInspect

Pin a post to the top of a board (any moderator of that board; admins unrestricted). days = pin duration 1..365, null or omitted = permanent. The post must already belong to the board.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoPin duration in days; null/omitted = pinned until manually unpinned
postIdYes
boardSlugYesBoard slug from list_boards

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose the permission model, the duration default (permanent when null/omitted), and a precondition. It stops short of stating idempotency (pinning an already-pinned post) or how the pin is later removed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, no filler, with the action and permission scope front-loaded before the constraint clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No annotations and no output schema, so the description must stand alone; it covers authorization, duration, and preconditions well. It leaves minor gaps around re-pinning behavior and the unpin path, but nothing that would cause a misinvocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%; days is already documented in the schema including its null semantics, and boardSlug is described there too. The description restates the days range and permanence rather than adding new meaning, and says nothing about postId.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Pin a post to the top of a board') and immediately qualifies the operation with an authorization scope. An agent can distinguish it from mod_unpin_post and admin_set_pin without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the authorization model ('any moderator of that board; admins unrestricted') and a hard precondition ('the post must already belong to the board'). It does not name the inverse sibling mod_unpin_post or explain when admin_set_pin should be preferred, so the alternative-routing is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_resolve_reportBInspect

Resolve (close) an open post report (any moderator of the board the reported post belongs to; admins unrestricted).

ParametersJSON Schema
NameRequiredDescriptionDefault
reportIdYes

TDQS

B3.4/5.0
Behavior3/5

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 does disclose a real behavioral trait beyond the schema: the authorization model (board moderator or unrestricted admin) and that this is a mutating close action. It omits whether closure is reversible, whether a resolution reason is recorded, and what effect (if any) applies to the reported post.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action ('Resolve (close)') followed by the qualifier. No filler text; the parenthetical gloss and permission clause each carry information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter mutation with no annotations and no output schema, the description covers the action and the authorization boundary, which is the most important missing piece. It still leaves the post-closure effects and error conditions unstated, so it is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One parameter with 0% schema description coverage, so the schema supplies only the type and uuid format. The description adds nothing about the parameter (e.g., that reportId must be an open report or where to obtain it), but the name is largely self-explanatory, leaving this at a minimum-viable level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and object: 'Resolve (close) an open post report', which is unambiguous about the state transition. It partially differentiates from the sibling admin_resolve_report by scoping authority ('any moderator of the board the reported post belongs to; admins unrestricted'), though it never names that sibling directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies when the tool is applicable by spelling out the permission envelope, so an agent can infer that a board moderator uses this rather than the admin variant. However, it never explicitly says when to prefer this over admin_resolve_report or how it relates to admin_report_action, and no exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_retranslate_postAInspect

Invalidate a post's cached translations and immediately re-translate from the current source through the publish warm-up pipeline (admin, or a moderator of the board the post belongs to; boardless posts are admin-only). Only published public posts are queued; cleared caches rebuild on next access otherwise. Returns how many locales were invalidated.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden and does so well: it discloses the permission model, the side effect (cache invalidation plus pipeline queueing), the conditional scope (published public posts only, otherwise lazy rebuild on next access), and the return value (count of invalidated locales). This is materially more than the schema or annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action before the parenthetical permission details, and every clause carries real information (auth, queueing condition, return). The dense nested parentheses make it slightly heavy to parse, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter mutation with no output schema and no annotations, the description covers the gaps that matter: who may call it, what gets destroyed/rebuilt, the condition for immediate queueing, and what the call returns. Nothing an agent needs in order to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One parameter with 0% schema description coverage, so the description should compensate. It gives useful context that the post's board membership determines permissions, but adds nothing about the postId format or constraints beyond what the name and uuid format already convey. Adequate but thin.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific compound action (invalidate cached translations AND immediately re-translate from current source) on a specific resource (a post). It is clearly distinguishable from siblings like mod_override_translation (manual override) and admin_set_topic_translations (setting translations), since this one forces a re-translation through the warm-up pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit authorization conditions (admin, or a moderator of the post's board; boardless posts admin-only) and states when the immediate re-translation actually fires (only published public posts are queued; otherwise caches rebuild on next access). It never names a competing sibling tool to route between, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mod_unpin_postAInspect

Remove the pin from a board post (any moderator of that board; admins unrestricted).

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYes
boardSlugYesBoard slug from list_boards

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose the key trait an agent needs — who is permitted to call it (board moderators vs. unrestricted admins) — which is real value beyond the schema. It does not say what happens if the post is not currently pinned, nor whether the operation is idempotent or how it can be reversed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the action and its authorization qualifier are both immediately visible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation with no annotations and no output schema, the description covers purpose and permissions, which is roughly the minimum viable set. It still leaves the postId parameter and error/no-op behavior unexplained, so it is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: boardSlug is documented ('Board slug from list_boards') but postId has no description beyond format:uuid, and the tool description adds nothing about either parameter. At half coverage the description should compensate for the undocumented postId, and it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource pair ('Remove the pin from a board post') that is unambiguously the inverse of sibling mod_pin_post and distinct from admin_set_pin/admin_delete_pin. An agent can select it on the verb alone without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical gives the authorization precondition ('any moderator of that board; admins unrestricted'), which is useful context for deciding whether the caller may use it. But it never states when to prefer this over adjacent tools such as admin_delete_pin or admin_set_pin, so alternative-routing guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_boardsBInspect

Search active community boards by keyword in name/description. Public endpoint: no auth required, rate-limited. q is required and must be non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesKeyword, non-empty
limitNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses no auth required, rate limiting, keyword search scope, and required non-empty `q`, but omits return shape, pagination, error behavior, and what 'active' means.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose. The auth/rate-limit and required-parameter clauses are compact and no sentence is filler; structure is highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple public search endpoint with no output schema and no annotations, the description covers auth, rate limiting, scope, and required `q`. It still leaves the `limit` behavior and result shape undocumented, so an agent lacks complete guidance for pagination and result handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%; `q` is already documented in the schema as non-empty, and the description only restates that it is required and non-empty. The `limit` parameter gets no explanation in either the schema or the description, so parameter semantics are weak overall.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'Search' and resource 'active community boards', plus the search fields 'name/description'. This makes the purpose clear and distinguishes it from generic board listing, but it does not explicitly name an alternative sibling such as list_boards.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides useful context as a public, auth-free, rate-limited endpoint and states that `q` is required and non-empty. However, it does not explain when to use this tool instead of list_boards, search_everything, or search_topics, nor does it set exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_commentsBInspect

Search visible comments on published public posts by keyword; each hit carries a short excerpt around the match, never the private floors. Public endpoint: no auth required, rate-limited. q is required and must be non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesKeyword, non-empty
limitNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose meaningful traits: no auth needed, rate-limited, and hits return only a short excerpt around the match rather than full/private content. It leaves out ordering and pagination behavior, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight clauses, front-loaded with the core action and scope, then behavioral notes. Slightly idiosyncratic phrasing ('never the private floors') costs a little clarity but wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain returns; it does say each hit includes a short excerpt, but omits result ordering, pagination, and any meaning for `limit`. Adequate but with clear gaps for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: `q` is documented in the schema itself, and the description's 'q is required and must be non-empty' merely restates it. The `limit` parameter (default 5, max 10) is undocumented in both schema and description, so the description does not compensate for the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('search comments') and bounds the corpus to 'visible comments on published public posts', which separates it from list_post_comments and the admin_* comment listing tools. It does not name an alternative sibling explicitly, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Public endpoint: no auth required' note implies the context in which this tool applies (anonymous/public search) and rate-limiting warns against heavy use. However, there is no explicit when-not guidance or pointer to siblings such as list_post_comments or search_public_posts for other needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_everythingAInspect

Run all five public searches (posts, topics, boards, users, comments) in parallel and return each type's top hits in one call. Public endpoint: no auth required, rate-limited. q is required and must be non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesKeyword, non-empty
perTypeNoMax hits per type

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses that the endpoint is public, requires no auth, is rate-limited, and executes the five searches in parallel. Auth and rate-limit disclosure is exactly the kind of context annotations would otherwise supply. It stops short of describing ranking or return structure, but it is a non-mutating 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the aggregation purpose front-loaded, followed by the auth/rate-limit constraint and the required-parameter note. No filler and no repetition beyond the harmless q restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-param read tool with a 100%-covered schema and no output schema, the description covers purpose, scope, auth, and rate limits adequately. The only minor gap is that 'top hits' leaves the ranking/selection criteria unstated, but nothing needed to invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% – q (keyword, non-empty) and perType (max hits per type, default 3, max 5) are fully documented in the schema. The description restates that q is required and non-empty, which is redundant with the schema rather than additive, and says nothing about perType. Baseline 3 is correct when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (runs all five public searches) and the aggregation scope (posts, topics, boards, users, comments) in one call. It explicitly enumerates the five sibling searches it combines, so an agent can distinguish it from search_posts/search_topics/etc. without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'in one call' framing plus the enumeration of the five underlying searches makes the routing clear: use this when you want hits across all types simultaneously rather than a single-type search. However, it never explicitly states the inverse ('use search_posts when you only need posts') or any exclusions, so the guidance is strong but not fully spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_postsCInspect

Search published posts across the platform by keyword (title + body).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses only the 'published posts' scope; it says nothing about pagination, result ordering, auth requirements, or rate limits for what is presumably a public search endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the scope and mechanism front-loaded and no wasted words. It is appropriately sized, though it could have spent one more sentence on parameters or disambiguation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with zero annotations, 0% schema coverage, and no output schema, the description is thin: it omits parameter behavior, result/pagination semantics, and any differentiation from sibling search tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so both parameters are undocumented. The description clarifies that the query searches 'title + body', adding some meaning to `query`, but says nothing about `limit` (default 10, max 50) or the query syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (search) and resource (posts), plus meaningful scope (published, across the platform, keyword on title + body). It does not, however, distinguish itself from the very similar sibling search_public_posts, leaving the agent unsure which to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives, despite the presence of closely related siblings like search_public_posts, search_everything, and search_comments. The agent must infer which search tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_public_postsAInspect

Search published public posts by keyword (title + body), newest first. Ghost (federated) authors are excluded. Public endpoint: no auth required, rate-limited. q is required and must be non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesKeyword, non-empty
limitNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses ordering (newest first), a filtering exclusion (Ghost/federated authors excluded), auth posture (no auth required), and a rate limit. It omits return shape/pagination and the limit parameter's default/cap, but for a read-only search this is solid disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, front-loaded with verb+resource+scope, then exclusions, then endpoint/auth constraints. Every sentence carries distinct information with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search with no output schema, the description covers scope, ordering, exclusions, auth, and rate limiting. The remaining gap is `limit` semantics and pagination behavior, which is minor but leaves the second parameter under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: `q` is documented ('Keyword, non-empty') while `limit` has no description at all. The description clarifies that the keyword matches title + body (useful added meaning for `q`) but is redundant on the non-empty requirement and says nothing about `limit`'s default of 5 or max of 10, so it only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope: 'Search published public posts by keyword (title + body), newest first.' The word 'public' and the 'no auth required' framing distinguish it implicitly from the sibling search_posts, but it never names that alternative, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context that implies usage (public endpoint, no auth), but offers no explicit when-to-use or when-not-to-use guidance against siblings like search_posts, search_everything, or search_topics. Usage is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_topicsAInspect

Search active official topics (hashtags) by keyword in name/description. Public endpoint: no auth required, rate-limited. q is required and must be non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesKeyword, non-empty
limitNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose real behavioral traits: public endpoint, no auth required, rate-limited, and that only 'active official' topics are returned. It omits pagination/return-shape behavior, but the auth and scope disclosures are genuinely useful beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose, then environment constraints, then the required-parameter rule. No filler sentences; every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter read tool with no output schema and no annotations, the description covers purpose, auth, rate limit, and the required input. It does not explain the limit cap or what a result looks like, which are the remaining gaps an agent would want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%. The description reinforces that 'q' is required and non-empty (already in the schema) but adds no syntax or matching rules, and says nothing about 'limit' (default 5, max 10), leaving half the parameters undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (search topics/hashtags) plus the searched fields (name/description) and a scope qualifier ('active official'). It is distinguishable from admin_list_topics and search_everything, but it never names a sibling to route against, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent can infer this is the keyword-lookup for topics. There is no explicit when-to-use versus admin_list_topics or search_everything, and no exclusions. The auth/rate-limit note is context, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_usersAInspect

Search active community members by username/display-name keyword. Anti-enumeration: at most 10 results, no pagination, public profile fields only (username, display name, ghost flag). Public endpoint: no auth required, rate-limited. q is required and must be non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesKeyword, non-empty
limitNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load and does so well: it discloses the anti-enumeration cap (at most 10 results), absence of pagination, the exact fields returned, a public/no-auth endpoint, and rate limiting. These are exactly the traits an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core purpose and followed by constraints; every clause carries actionable information and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description still specifies the returned fields (username, display name, ghost flag), the result cap, pagination behavior, auth requirements, and rate limiting. Nothing material for a correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: `q` is already documented as non-empty in the schema, and the description largely restates it, while `limit` (default 5, max 10) gets no direct explanation beyond the derived 'at most 10 results' note. It partially compensates for the coverage gap by tying the cap to the limit, but the default limit and its effect are left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) plus resource (active community members) and the matching key (username/display-name keyword), which cleanly separates it from search_posts, search_boards, search_topics, and admin_list_users. An agent can identify the target resource without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: it describes a public, auth-free endpoint but never states when to prefer this over search_everything or get_profile, nor any exclusion conditions. The context is enough to infer intent, but there is no explicit when/when-not guidance or named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_postAInspect

Update an existing post's title/content/summary (must be owned by the caller). Editing a published post re-enters the moderation pipeline (status goes back to pending_review, same as the web editor).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
postIdYes
contentNo
summaryNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose a genuinely non-obvious side effect: editing a published post resets status to pending_review via the moderation pipeline, mirroring the web editor. It omits partial-update semantics (whether omitted fields are cleared) and permission/error behavior, so it isn't exhaustive, but the highest-risk behavior is surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, no filler, with the core action first and the moderation side effect second. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter mutation tool with no annotations and no output schema, the description covers the critical unknowns: ownership requirement and moderation re-entry. The remaining gap is partial-update field semantics, which is a real but secondary omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it names three of the four parameters (title, content, summary) with postId implied by 'existing post'. It does not explain that all three edit fields are optional or what omitting one means, leaving the most consequential schema ambiguity undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update an existing post') plus the exact editable fields (title/content/summary), which distinguishes it from delete_post, mod_delete_post, admin_reject_post and get_post. The ownership qualifier further narrows the scope so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear precondition ('must be owned by the caller') and explains the consequence of editing a published post, which effectively tells the agent when this tool has side effects. It stops short of naming an alternative path (e.g., a moderator/admin tool) for posts the caller does not own.

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.

  1. 139 tool updates
    • First observedadmin_add_keyword
    • First observedadmin_approve_post
    • First observedadmin_assign_domain_preallocation
    • First observedadmin_assign_domain_preallocations_batch
    • First observedadmin_ban_user
    • First observedadmin_broadcast
    • First observedadmin_bulk_add_keywords
    • First observedadmin_decide_pro_application
    • First observedadmin_decide_verification
    • First observedadmin_delete_comment
    • First observedadmin_delete_feature_card
    • First observedadmin_delete_keyword
    • First observedadmin_delete_media
    • First observedadmin_delete_pin
    • First observedadmin_delete_queue_job
    • First observedadmin_domain_abuse_transition
    • First observedadmin_domain_moderate
    • First observedadmin_federation_actor_action
    • First observedadmin_get_audit
    • First observedadmin_get_backup_status
    • First observedadmin_get_board
    • First observedadmin_get_brand
    • First observedadmin_get_domain_registration
    • First observedadmin_get_federation_snapshot
    • First observedadmin_get_guest_rail
    • First observedadmin_get_ops_snapshot
    • First observedadmin_get_settings
    • First observedadmin_get_stats
    • First observedadmin_get_topic
    • First observedadmin_grant_badge
    • First observedadmin_list_badges
    • First observedadmin_list_boards
    • First observedadmin_list_comments
    • First observedadmin_list_domain_abuse
    • First observedadmin_list_domain_preallocations
    • First observedadmin_list_domain_registrations
    • First observedadmin_list_domain_suffixes
    • First observedadmin_list_feature_cards
    • First observedadmin_list_feature_switches
    • First observedadmin_list_invites
    • First observedadmin_list_keywords
    • First observedadmin_list_mail_log
    • First observedadmin_list_mail_templates
    • First observedadmin_list_media
    • First observedadmin_list_perk_subscribers
    • First observedadmin_list_perks
    • First observedadmin_list_pins
    • First observedadmin_list_posts
    • First observedadmin_list_pro_applications
    • First observedadmin_list_queue_jobs
    • First observedadmin_list_reports
    • First observedadmin_list_topics
    • First observedadmin_list_users
    • First observedadmin_list_verifications
    • First observedadmin_preview_mail_template
    • First observedadmin_reject_post
    • First observedadmin_reorder_boards
    • First observedadmin_report_action
    • First observedadmin_reset_mail_template
    • First observedadmin_resolve_report
    • First observedadmin_retry_queue_job
    • First observedadmin_revoke_badge
    • First observedadmin_revoke_invite
    • First observedadmin_revoke_perk_subscription
    • First observedadmin_run_backup
    • First observedadmin_set_board_moderators
    • First observedadmin_set_board_translations
    • First observedadmin_set_brand
    • First observedadmin_set_domain_suffix_reserved
    • First observedadmin_set_feature_switch
    • First observedadmin_set_guest_rail
    • First observedadmin_set_mail_template
    • First observedadmin_set_pin
    • First observedadmin_set_settings
    • First observedadmin_set_topic_translations
    • First observedadmin_settle_mod_payroll
    • First observedadmin_unban_user
    • First observedadmin_update_perk
    • First observedadmin_upsert_badge
    • First observedadmin_upsert_board
    • First observedadmin_upsert_domain_suffix
    • First observedadmin_upsert_feature_card
    • First observedadmin_upsert_topic
    • First observedadmin_warn_user
    • First observedcreate_article
    • First observeddelete_media
    • First observeddelete_post
    • First observeddns_events
    • First observeddns_pricing
    • First observeddns_record_create
    • First observeddns_record_delete
    • First observeddns_record_update
    • First observeddns_records_import
    • First observeddns_zone_create
    • First observeddns_zone_delete
    • First observeddns_zone_dnssec
    • First observeddns_zone_export
    • First observeddns_zone_get
    • First observeddns_zone_verify
    • First observeddns_zones
    • First observeddomain_register
    • First observeddomain_renew
    • First observeddomain_transfer_confirm
    • First observeddomain_transfer_create_code
    • First observeddomain_transfer_my_requests
    • First observeddomain_transfer_request
    • First observeddomain_transfer_resend_otp
    • First observeddomain_transfer_revoke_code
    • First observeddomain_update_ns
    • First observeddomains_check
    • First observeddomains_get
    • First observeddomains_list
    • First observeddomains_suffixes
    • First observedget_feed
    • First observedget_post
    • First observedget_profile
    • First observedget_stats
    • First observedlist_board_topics
    • First observedlist_boards
    • First observedlist_my_media
    • First observedlist_my_posts
    • First observedlist_post_comments
    • First observedmod_decide_delete_request
    • First observedmod_delete_post
    • First observedmod_list_queue
    • First observedmod_move_post
    • First observedmod_override_translation
    • First observedmod_pin_post
    • First observedmod_resolve_report
    • First observedmod_retranslate_post
    • First observedmod_unpin_post
    • First observedsearch_boards
    • First observedsearch_comments
    • First observedsearch_everything
    • First observedsearch_posts
    • First observedsearch_public_posts
    • First observedsearch_topics
    • First observedsearch_users
    • First observedupdate_post

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources