Untax
Server Details
Source-backed property assessment research and draft assessment comparisons for supported pilot j...
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- mooshee/untax-mcp
- GitHub Stars
- 0
- Server Listing
- Untax MCP
TDQS
Scored across 20 tools
While many tools relate to the same core concepts (VA forms, sandbox orders), they are segmented into distinct stages or functions (e.g., finding vs. getting a form, starting vs. completing an order). The boundaries are generally clear.
All tools strictly adhere to a consistent snake_case format with predictable action prefixes like 'get_', 'start_', 'find_', and 'review_'. This consistency makes the entire surface easy for an agent to parse.
With 20 tools, the set is comprehensive but appropriately scoped for the complexity of managing tax audits, property assessment data, and VA integration. It feels well-defined without being overly granular or bloated.
The set provides strong coverage for research, VA fact retrieval, and simulating tax options. The major limitation is the consistent lack of final 'filing' or 'live application submission' capabilities, which aligns with the tool descriptions but represents a functional gap for a complete lifecycle.
Available Tools
20 toolsaudit_microtransactionARead-onlyIdempotentInspect
Research the selected property and show the evidence needed for the requested records service. Returns source facts and available actions. It does not verify savings, quote a payable fee, inspect payment methods, charge, create a filing packet or submit a correction. Test checkout uses separate tools and requires account permission.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Explicitly selected property street address or parcel ID. A nonblank address takes precedence over parcel_id. | |
| parcel_id | No | Explicitly selected county parcel ID / PIDN, used when address is absent or blank. | |
| county_key | No | Exact registered county adapter key, such as hamilton; restricts source lookup to that county. | |
| service_type | Yes | Explicit research route selected from get_microtransactions_catalog. Common aliases: demolished_outbuilding, square_footage_correction, mailing_address_change, commercial_reclassification, certified_tax_ledger. No service is assumed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, open-world behavior. The description adds useful boundary context by listing what the tool does not do (verify savings, quote fees, inspect payment methods, charge, create a filing packet, submit a correction) and by noting test checkout requires separate tools and account permission. It still does not describe the return format in detail, so this is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, followed by return behavior and negative scope, and no sentence merely restates the name. The test-checkout sentence is relevant boundary information and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage and annotations covering the safety profile, the main remaining gap is output detail: no output schema exists and the description only says it returns "source facts and available actions." That is enough to select the tool but not fully describe the evidence payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are fully documented in the schema, including address precedence over parcel_id, county_key scope, and service_type aliases from get_microtransactions_catalog. The description adds no parameter-level meaning beyond those schema descriptions, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific action ("Research the selected property") and output ("show the evidence needed for the requested records service"), which clearly frames the tool as a read-only research step. It separates itself from payment and checkout actions, but it does not name the closest research sibling such as get_property_assessment, and the tool name audit_microtransaction is not echoed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes when the tool applies ("requested records service") and gives explicit when-not conditions for fee verification, charging, filing packets, corrections, and test checkout. However, it only refers to "separate tools" instead of naming the specific sibling alternatives, so guidance is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_tax_sandbox_orderAIdempotentInspect
Check the test payment for your own order, then make its draft PDF and receipt available if verified. Requires owner:sandbox sign-in and completed test checkout. Any submission is simulated. It does not file a real appeal or change county records. Show the returned test checkout link when payment is pending. When an order_id is known, read the same order after checkout or an uncertain failure before retrying. If starting checkout fails before an order_id is returned, retry start_tax_sandbox with the original idempotency_key; do not create a new key for the same attempt. get_tax_sandbox_order and complete_tax_sandbox_order take only order_id. Report test payment, draft generation, download availability and external delivery as separate observed states. Do not claim the draft is available until the order confirms its artifact is available; a payment or download URL alone is not proof. A sandbox receipt or simulated submission is not county filing, external email delivery or permission for live payments.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description explains that any submission is simulated, does not file a real appeal or change county records, and that a sandbox receipt is not county filing or external delivery. It also warns not to claim the draft is available until the order confirms its artifact is available, adding important mutation-state context not covered by readOnlyHint or destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main action is front-loaded and the operational guidance is organized around checkout, retry, and reporting states. It is longer than typical, but most sentences carry meaningful behavioral or safety information rather than repeating structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the mutation's simulated nature, auth requirements, state-reporting expectations, retry behavior, and the distinction between sandbox completion and real filing or delivery. With no output schema, it still gives the agent enough context to invoke the tool correctly and interpret its results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the tool takes only one simple parameter, order_id. The description clarifies that both get_tax_sandbox_order and complete_tax_sandbox_order take only order_id and explains when to reuse the known order_id, though it does not add format or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: checking a test payment for an order and making its draft PDF and receipt available once verified. It explicitly distinguishes this tool from get_tax_sandbox_order and start_tax_sandbox by describing which order_id-based actions each supports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit prerequisites (owner:sandbox sign-in and completed test checkout) and directs the agent to show the test checkout link when payment is pending. It also specifies when to read the same order after checkout or an uncertain failure, and when to retry start_tax_sandbox with the original idempotency_key instead of creating a new one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_va_connectionADestructiveIdempotentInspect
When requested, stop this assistant's access to this account's shared VA facts. Requires owner:va. Saved verification stays in Account until the owner removes it. Does not disconnect another account or assistant, submit a claim or change VA records.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: the owner:va authorization requirement and the important side effect that 'Saved verification stays in Account until the owner removes it.' This clarifies what destruction actually means in this domain, though it doesn't explicitly say the connection can be re-established via start_va_connection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and scope, then layers prerequisites, side effects, and exclusions in short clauses. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and annotations covering safety/idempotency, the description supplies what annotations cannot: required role and what is preserved after disconnect. A note on whether the disconnect is reversible would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to explain. A baseline of 4 is appropriate; the description correctly avoids inventing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (stop this assistant's access to this account's shared VA facts), which implicitly distinguishes it from get_va_connection and start_va_connection. The scope โ this assistant, this account โ prevents ambiguity with other connection operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a prerequisite ('Requires owner:va') and explicit exclusions ('Does not disconnect another account or assistant, submit a claim or change VA records'), which narrow usage. 'When requested' is slightly vague about who requests it, keeping it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_va_facilitiesARead-onlyIdempotentInspect
Find official VA facilities in a specified state, with optional city and facility-type filters. If location is missing, ask the returned question. Do not guess a state or present a VA facility as a county tax office or accredited VSO. Results are public information; sandbox results are samples.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| limit | No | ||
| state | No | ||
| facility_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations cover safety (readOnlyHint: true), the description provides critical behavioral constraints on the data itself. It informs the agent that the results are public information and that sandbox results are merely samples, which manages the agent's expectations regarding real-world accuracy versus simulated output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is highly economical. Both sentences are focused, with the primary constraints and behavioral protocols strategically placed to guide the AI agent immediately after defining the tool's basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity of domain-specific, filtered search tools, the definition is extremely complete. It handles the core function, potential input deficiencies, output limitations (public/sandbox), and data classification constraints all within its text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides significant semantic value by defining the domain boundaries (VA facilities vs. county offices) and explaining the filters. It clarifies that city and facility-type are 'optional filters,' guiding correct parameter construction, though it doesn't elaborate on specific parameter meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and resource ('official VA facilities'), and clearly defines the scope by listing optional filters (state, city, facility-type). It provides a strong operational definition of the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit instructions on when to act and when to wait: 'If location is missing, ask the returned question.' Furthermore, it sets boundaries on usage by forbidding speculative behavior ('Do not guess a state') or misclassification ('present a VA facility as a county tax office or accredited VSO').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_va_formsARead-onlyIdempotentInspect
Find official VA forms by number or search text. If query is missing, ask which form or purpose is needed. Show returned revision details and official PDF links. This does not complete or submit a claim.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds useful context about asking for a missing query, showing revision details and official PDF links, and not submitting claims.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and every sentence contributes: purpose, missing-query handling, return details, and scope boundary. There is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search tool with rich annotations and no output schema, the description is largely complete: it covers purpose, fallback behavior, return details, and scope. It is slightly incomplete because it does not explain the limit parameter or when to use get_va_form instead.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain both parameters. It clarifies that query accepts a form number or search text, but says nothing about the limit parameter or how result limiting works.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: find official VA forms by number or search text. It is clear what the tool does, but it does not explicitly distinguish itself from the sibling get_va_form, which likely retrieves a single form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says to ask which form or purpose is needed when the query is missing, and it rules out claim completion/submission. However, it gives no explicit guidance on when to use this search tool versus the singular get_va_form sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_veteran_packetARead-onlyIdempotentInspect
Create a free private veteran review PDF for the selected saved review. Requires owner:read. Missing answers appear as questions to review. A VA connection is optional; using connected facts requires owner:va and the user's explicit choice for this applicant. Extra answers are user reports and are not saved to the review. Returns a protected, expiring PDF download. The draft does not complete an official application, decide eligibility, estimate savings or file anything.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | No | ||
| review_id | Yes | ||
| saved_property_id | Yes | ||
| use_connected_va_records | No | Only true when the user explicitly asks to use their connected records for their own applicant review; requires additional owner:va permission and is_surviving_spouse=false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: missing answers surface as review questions, extra answers are treated as user reports and not persisted, output is a protected expiring PDF, and the draft neither files an application nor decides eligibility. This is consistent with readOnlyHint=true since nothing is written back to the review.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, followed by permissions, answer handling, and limits; almost every sentence carries distinct information. The caveat list at the end is dense but each clause (no official application, no eligibility decision, no savings estimate, no filing) sets a real expectation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-permission, nested-parameter tool with no output schema, the description covers return format (expiring PDF), permission gating, and the crucial non-effects. The remaining gap is the un-narrated role of the two required ID parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, and the description compensates partially by explaining how the nested 'answers' object is treated (missing vs extra answers) and the conditional semantics of use_connected_va_records. However, review_id and saved_property_id are never explained in the description, leaving some parameters documented only by bare types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a free private veteran review PDF for the selected saved review'), clearly distinct from siblings like review_veteran_requirements or get_owner_review_details. The scope (per selected saved review) makes it selectable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions: owner:read required, VA connection optional, and owner:va plus explicit per-applicant user choice needed for connected facts. It does not explicitly contrast with siblings like review_veteran_requirements, so the routing guidance is contextual rather than exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appeal_lifecycleARead-onlyIdempotentInspect
Read a general checklist for reviewing an assessment. It does not look up a property or verify deadlines, fees, eligibility or outcomes. Check the official rules for the property's location and tax year.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false already provided, the description adds useful scope: it is a general checklist, not a property-specific lookup, and it explicitly disclaims verification of deadlines, fees, eligibility, and outcomes. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences and front-loads what the tool does before adding limitations. It is appropriately sized, though the opening sentence could be more specific about the appeal lifecycle.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It explains what the tool is not and directs users to official rules, but it does not describe what the checklist actually covers, such as appeal stages or general review steps. With no output schema, that leaves a meaningful gap in understanding what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description has no parameter semantics to add, and none are needed for this zero-argument tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says it reads a general checklist for reviewing an assessment, but the tool name is get_appeal_lifecycle and the description never mentions appeals or lifecycle stages. It distinguishes itself from property lookup tools by saying it does not look up a property, yet the core resource is still vague relative to the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear exclusions: it does not look up a property or verify deadlines, fees, eligibility, or outcomes, and it directs users to official rules. It does not explicitly name a sibling alternative, but the when-not guidance is strong enough to route an agent away from misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_microtransactions_catalogARead-onlyIdempotentInspect
Browse property-tax research options and the tools available in this connection. Each option shows its status and the evidence still needed. This does not verify eligibility, set a payable price, establish savings, approve an automatic refund or authorize filing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent and non-destructive; the description adds real value by stating what each option exposes (status, evidence still needed) and drawing explicit outcome boundaries (no eligibility verification, no payable price, no savings, no refund approval, no filing authorization). This is exactly the behavioral context annotations cannot express, though return shape is not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are front-loaded with the browse purpose, and the disclaimer is compact and purposeful rather than filler. The disclaimer list is somewhat long but each item earns its place by fencing off non-capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-param, no-output-schema read-only browse tool, the description adequately covers both what the catalog shows and what it guarantees not to do. Nothing essential to calling it correctly is missing, though the absence of an output schema means a sentence on result structure would have completed it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to clarify semantically.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Browse' gives a concrete verb and the resource is spelled out as property-tax research options plus the connection's available tools. It is clearly a discovery/catalog tool rather than an executor, though the name ('microtransactions_catalog') is slightly misaligned with the 'property-tax research options' phrasing and no sibling is explicitly contrasted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing disclaimer implicitly tells the agent this is informational only and that actual verification/pricing/filing belongs to other tools, which is genuine routing guidance. However, it never names an alternative sibling (e.g., audit_microtransaction, start_tax_sandbox) or states a positive 'use this when' condition, leaving usage largely inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_owner_review_detailsARead-onlyIdempotentInspect
Read the selected saved property review. Requires both IDs from get_owner_workspace and valid owner:read permission. Check source_context_current and reconfirmation_required; confirm stale previous_owner_answers with the user before reusing them. Ask relevant unanswered questions and honor current answers and skips. Keep user reports separate from county facts. Use the protected browser review for changes and sensitive evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| review_id | Yes | ||
| saved_property_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed world), and the description adds genuine extra context: the owner:read permission requirement, the source of the identifiers, and the flags the caller must inspect. Disclosing that stale previous_owner_answers must be reconfirmed with the user is exactly the kind of behavioral caveat annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action is front-loaded in the first sentence, but the body is a six-sentence prompt-like checklist mixing permissions, return-field inspection, and conversational policy ('Ask relevant unanswered questions and honor current answers and skips'). Each line is arguably useful, yet the density makes it harder to scan than a tighter two- or three-sentence version.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by naming the key return signals a caller must branch on and by stating the auth and identifier prerequisites. What is missing is any statement of result shape or error behavior when the required permission is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (only regex patterns, no descriptions), so the description must carry the load. It does say both IDs come from get_owner_workspace, which is useful provenance, but it never distinguishes review_id from saved_property_id or notes that both are mandatory and pattern-constrained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Read the selected saved property review', and ties the resource to a prerequisite sibling (get_owner_workspace). It is a bit muddied by interleaved workflow instructions and by naming output fields (source_context_current, reconfirmation_required) that are never explained structurally, but the core action is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete preconditions ('Requires both IDs from get_owner_workspace and valid owner:read permission') and names an alternative for other cases: 'Use the protected browser review for changes and sensitive evidence', which implicitly excludes mutations from this tool. The alternative is not a listed sibling, so the routing is slightly less crisp than an explicit sibling reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_owner_workspaceARead-onlyIdempotentInspect
Read saved property reviews for the signed-in Untax account. Requires valid, revocable owner:read permission. Returns property and review IDs; do not assume an active property. Ask the user to choose when ambiguous. This does not verify ownership, benefit eligibility, savings or filing authority.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring read-only, idempotent, non-destructive, closed-world behavior, the description adds useful context: the required revocable owner:read permission, that it returns property and review IDs, and that it does not verify ownership or filing authority. It stops short of pagination or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and permission requirement, then adds return shape and guardrails in short sentences. Every sentence adds useful information without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description covers the key points an agent needs: what is read, whose account, required permission, returned identifiers, ambiguity handling, and explicit non-guarantees. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters, so the baseline is 4. The description adds no parameter detail because none exist, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: reading saved property reviews for the signed-in Untax account. It distinguishes the return shape (property and review IDs) from a details tool like get_owner_review_details, though it does not name 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use it for the signed-in account's saved reviews, requires owner:read permission, and says to ask the user when ambiguous. It also warns not to assume an active property. It does not explicitly route between this and get_owner_review_details, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_property_assessmentARead-onlyIdempotentInspect
Read county assessment records and their sources for a supported address or parcel ID. Keep missing facts unknown; commercial building area is not finished living area. Report comparisons as drafts with their evidence limits. They do not verify personal tax savings or authorize filing. For a property audit or a request to find tax-reduction routes, review opportunity_screen before concluding. A weak or held comparable-property analysis does not rule out independent relief, record corrections or billing research. Ask the next relevant unanswered targeted_questions item one at a time; use available_questions for relevant follow-ups. Accept none, not sure or skip, and do not repeat answered or skipped questions in this conversation unless the user changes the facts. After an answer, call recheck_property_opportunities for the same selected property and county with the accumulated explicit owner_answers and skipped_question_ids. Rechecks are stateless: resend still-applicable prior answers, preserve explicit false and empty arrays, and omit unknown or skipped fields instead of sending null or inventing a negative answer. Resend stable skipped_question_ids until the user supplies an answer or asks to revisit the question. Skips suppress prompts only and leave requirements unresolved. Do not transfer property-specific answers or skips to another property. When the user is done or skips the remaining questions, summarize supported research routes and missing evidence without treating unknowns as a denial. For a fact-only lookup, answer the requested fact and offer relevant screening without requiring an unrelated intake. Owner answers do not verify eligibility, savings, authority, payment or filing readiness.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Alternative alias for property street address | |
| county_key | No | Optional registered county key, such as hamilton. Searches only that county. A conflicting county prefix is rejected. | |
| actual_sqft | No | Optional owner-reported measured living area, in square feet | |
| address_or_pidn | Yes | Full street address or county parcel ID (e.g. '3731 Anderson Ave, Chattanooga, TN' or '157I L 001') | |
| notice_appraised_value | No | Optional: New proposed appraised value from reassessment notice |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only annotations, it discloses important limits: missing facts stay unknown, commercial building area is not living area, comparisons are drafts with evidence limits, and the tool does not verify savings or authorize filing. It also explains that skips only suppress prompts and owner answers do not verify eligibility or filing readiness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the description is very long for a single read tool and mixes core behavior with detailed multi-turn workflow instructions. Several procedural points could be tightened or moved to agent-level guidance without losing essential tool-selection information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the tool's domain, safety posture, and downstream workflow thoroughly despite having no output schema. However, it does not describe the return structure beyond 'records and their sources,' leaving some uncertainty about what a caller should expect back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents address, county_key, actual_sqft, address_or_pidn, and notice_appraised_value. The description adds some domain caveats relevant to square footage but does not provide parameter-specific syntax or selection guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: read county assessment records and their sources for an address or parcel ID. It also names related tools like opportunity_screen and recheck_property_opportunities, making the tool's role distinguishable from those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly routes the agent: review opportunity_screen for tax-reduction routes, ask targeted_questions one at a time, call recheck_property_opportunities after answers, and handle fact-only lookups by answering and offering screening. It also states how to treat skipped questions and when to summarize rather than continue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tax_sandbox_orderARead-onlyIdempotentInspect
Read your own Untax test order. Requires owner:sandbox sign-in. Reports test payment and draft delivery separately. Neither status verifies production eligibility or a county filing. Show the returned test checkout link when payment is pending. When an order_id is known, read the same order after checkout or an uncertain failure before retrying. If starting checkout fails before an order_id is returned, retry start_tax_sandbox with the original idempotency_key; do not create a new key for the same attempt. get_tax_sandbox_order and complete_tax_sandbox_order take only order_id. Report test payment, draft generation, download availability and external delivery as separate observed states. Do not claim the draft is available until the order confirms its artifact is available; a payment or download URL alone is not proof. A sandbox receipt or simulated submission is not county filing, external email delivery or permission for live payments.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations by defining critical states, such as reporting test payment and draft generation separately, and specifying exactly what constitutes 'availability' for a draft (artifact confirmation vs. just a URL). This is vital operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely verbose. While every sentence adds crucial operational context, the sheer length makes it poorly structured for quick consumption compared to a highly concise summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and 0% input coverage, this description provides comprehensive completeness. It covers operational limits, legal disclaimers, idempotent usage rules, and required sign-in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the input schema is minimal and coverage is 0%, the description is expected to compensate. However, it does not provide any additional semantic meaning for the `order_id` parameter itself beyond its use in a retrieval context, maintaining the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The purpose is highly specific: reading one's own 'Untax test order.' It clearly identifies the resource (test order) and the primary action (read), establishing a unique niche within the tax workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides detailed workflow guidance on how to use the tool in practice. It outlines when to retry the tool vs. when to use `start_tax_sandbox`, and clarifies the condition under which to use the tool (when an `order_id` is known).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_va_connectionARead-onlyIdempotentInspect
Read the limited, dated VA facts shared with this account and assistant. Requires owner:va and active sharing permission; browser sign-in alone grants no access. Saved facts remain after the VA session expires or the server restarts. Show verified_at and freshness. This is a saved snapshot, not a live check; reverification may be needed. Expired or revoked app permission stops sharing. These facts do not establish property ownership, primary residence, tax eligibility or filing authority.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: it discloses authorization requirements, that facts survive VA session expiry and server restarts, that revoked or expired app permission stops sharing, and that the data is a dated snapshot rather than a live check. It also bounds what the returned facts mean ('do not establish property ownership, primary residence, tax eligibility or filing authority'), which is exactly the extra context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and access requirement, then layers persistence, staleness and scope disclaimers. Dense but every sentence carries information; the only mild redundancy is between 'active sharing permission' and 'expired or revoked app permission stops sharing', which restates the same gate from the opposite direction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the full burden and does so: it covers authorization, persistence across sessions, staleness and how to present results, plus explicit scope limits on the returned facts. An agent has everything needed to call it and to interpret the response responsibly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the schema to describe and no semantic gap to fill. Baseline 4 applies; the description's instruction to surface verified_at and freshness is a useful presentation hint rather than parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: read the VA facts shared with this account. It also scopes what the resource is ('limited, dated VA facts') and negates a misconception ('saved snapshot, not a live check'). It does not explicitly name start_va_connection or disconnect_va_connection as the alternative paths, so sibling 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions for use: requires owner:va and an active sharing permission, and states that browser sign-in alone is not sufficient. It also frames when the data is stale ('reverification may be needed'). It stops short of routing the agent to the sibling tools that establish or tear down that sharing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_va_facilityARead-onlyIdempotentInspect
Read one official VA facility using its returned id. Returns available address, phone and website details, with source and environment. Does not return private veteran records or decide eligibility.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given that there is no output schema, the description is highly valuable for behavioral transparency. It explicitly lists the data returned (address, phone, website, source, environment) and clearly defines functional exclusions, providing context far beyond the generic 'Read' verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is highly efficient. The first sentence defines the core action and input, and the second sentence handles output and scoping. Both sentences are focused and contribute maximum value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is remarkably complete considering the lack of an output schema. It covers the input mechanism, specific return data fields, and ethical/functional limitations. Only the absence of an output schema prevents a perfect score here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, so the description must carry the full semantic burden. However, since the description merely states the tool is used 'using its returned id,' it doesn't add any unique functional meaning or data type nuance beyond what the input schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: reading one official VA facility. It distinguishes itself from sibling tools like 'find_va_facilities' by specifying that it uses a returned ID for a singular record lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it does not explicitly reference sibling tools as alternatives, it provides critical usage boundaries by stating what it *does not* do, specifically that it 'Does not return private veteran records or decide eligibility.' This strongly guides the agent on when this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_va_formARead-onlyIdempotentInspect
Look up a VA form number, such as 21-0966. Use form_name from search results, not the numeric catalog id. If form_name is missing, ask for the form number. Returns available title, revision details and official PDF link. The link does not complete or submit an application or establish eligibility.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Official form number (the form_name field in search results), such as 21-0966. Do not use the numeric catalog id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description's added value is the disclosure of what is returned (title, revision details, official PDF link) and the important caveat that the link does not submit an application or establish eligibility โ a meaningful guard against misuse in a benefits context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short sentences, front-loaded with the action and the example, then input sourcing, then return contents, then the caveat. Nothing is wasted, though the form_name guidance duplicates the schema text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by stating exactly what a call returns and what the result does not do. For a single-parameter lookup this covers everything an agent needs before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema's id field already states 'Official form number... Do not use the numeric catalog id', so the description largely repeats that guidance. The only marginal addition is the behavior when the value is absent, which is arguably usage guidance rather than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Look up a VA form number") with a concrete example (21-0966), which distinguishes it from the search-oriented sibling find_va_forms. It doesn't name the sibling explicitly, but referencing "search results" makes the relationship inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies it is a follow-up step to a search ("Use form_name from search results") and gives an explicit fallback when the input is missing: ask the user for the form number. Clear enough to act on without opening sibling schemas, though it never explicitly says 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.
recheck_property_opportunitiesARead-onlyIdempotentInspect
Review possible property-tax options using the available county records and the owner's answers. Returns research and next questions. Answers do not verify eligibility, evidence, savings, owner authority or permission to pay or file. Do not send exact income, ages, identifiers, documents or a caller-supplied audit. For a property audit or a request to find tax-reduction routes, review opportunity_screen before concluding. A weak or held comparable-property analysis does not rule out independent relief, record corrections or billing research. Ask the next relevant unanswered targeted_questions item one at a time; use available_questions for relevant follow-ups. Accept none, not sure or skip, and do not repeat answered or skipped questions in this conversation unless the user changes the facts. After an answer, call recheck_property_opportunities for the same selected property and county with the accumulated explicit owner_answers and skipped_question_ids. Rechecks are stateless: resend still-applicable prior answers, preserve explicit false and empty arrays, and omit unknown or skipped fields instead of sending null or inventing a negative answer. Resend stable skipped_question_ids until the user supplies an answer or asks to revisit the question. Skips suppress prompts only and leave requirements unresolved. Do not transfer property-specific answers or skips to another property. When the user is done or skips the remaining questions, summarize supported research routes and missing evidence without treating unknowns as a denial. For a fact-only lookup, answer the requested fact and offer relevant screening without requiring an unrelated intake. Owner answers do not verify eligibility, savings, authority, payment or filing readiness.
| Name | Required | Description | Default |
|---|---|---|---|
| county_key | No | Optional registered county key, such as hamilton. Searches only that county. A conflicting county prefix is rejected. | |
| owner_answers | Yes | ||
| address_or_pidn | Yes | ||
| skipped_question_ids | No | Stable question IDs explicitly skipped in this same property conversation. Resend them with accumulated answers. Skips suppress prompts only; facts and eligibility remain unresolved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and idempotent annotations, it discloses stateless recheck behavior, skip semantics, the need to resend still-applicable answers, and the fact that skips suppress prompts but leave requirements unresolved. It also clarifies that answers do not verify eligibility, evidence, savings, authority, payment, or filing readiness, which is rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and most sentences carry operational guidance for a complex, stateful question flow. It is long and repeats the verification caveat near the beginning and end, so it is slightly redundant rather than maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with no output schema, the description explains what is returned (research and next questions), how the question flow works, how rechecks are stateless, and what the answers do not establish. It gives an agent enough context to call and continue the interaction correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema description coverage, the description adds important meaning for owner_answers and skipped_question_ids: preserve explicit false and empty arrays, omit unknown or skipped fields, resend stable skips, and do not transfer answers across properties. It does not explain every nested owner_answers field, so it compensates well but not completely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: reviewing possible property-tax options using county records and owner answers. It also distinguishes this screening/recheck flow from a fact-only lookup and from an audit or tax-reduction route, so an agent can identify its role 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: ask one targeted_questions item at a time, then call recheck_property_opportunities with accumulated owner_answers and skipped_question_ids. It also names alternatives and exclusions, including reviewing opportunity_screen for audits and avoiding an unrelated intake for fact-only lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_veteran_requirementsARead-onlyIdempotentInspect
Review requirements for the selected property using accumulated answers and, only when requested, the connected applicant's saved VA facts. Requires owner:va. Show va_source.verified_at and freshness; saved facts are not a live check. Ask returned questions one at a time. Accept unknown or skip, preserve explicit false, and keep answers with the same property. Does not decide eligibility or savings, generate an application, or file anything.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | No | ||
| skipped_fields | No | Stable question ids explicitly skipped in this same property conversation. Unknown facts stay unresolved. | |
| use_connected_va_records | No | Set true only when the user explicitly identifies the connected VA records as theirs and asks to use them for their own applicant review. A surviving-spouse review needs separate deceased-veteran and survivor evidence. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: an owner:va authorization requirement, disclosure that saved facts are 'not a live check' and carry a verified_at plus freshness indicator, and interaction rules (ask returned questions one at a time, accept unknown or skip, preserve explicit false). The annotations already cover read-only/idempotent safety, so this is complementary rather than duplicative; it does not describe rate limits or what the returned question objects contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the optional-records condition before the operational rules and exclusions. It is dense with short imperative clauses; every clause carries a constraint, though the staccato fragments make it slightly harder to scan than a couple of well-formed sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still tells the agent what comes back (questions to ask one at a time) and what provenance to surface (va_source.verified_at and freshness). Authorization, optional-input gating, and non-goals are all covered, so 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the schema carries most field documentation, but the description adds real semantic rules the schema lacks: unknown answers are acceptable and skippable, explicit false must be preserved rather than treated as missing, answers stay bound to the same property, and connected VA records are used only when the user claims them. These constraints change how an agent should populate 'answers' and 'skipped_fields'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Review requirements for the selected property') and scopes the inputs precisely: accumulated answers plus, only on request, the connected applicant's saved VA facts. It also draws a hard boundary against adjacent capabilities ('does not decide eligibility or savings, generate an application, or file anything'), which separates it from siblings like generate_veteran_packet and get_owner_review_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition for the optional path ('only when requested'), a prerequisite ('Requires owner:va'), and explicit exclusions of what it will not do. It stops short of naming a sibling tool to use instead for packet generation or eligibility, so routing is implied by the exclusions rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_tax_sandboxAIdempotentInspect
Start a test checkout for the selected property only when the user requests it. Requires owner:sandbox sign-in. Uses test payments and separate test orders. It does not verify ownership, eligibility, savings or an open appeal window. No real charge or county filing occurs. Show the returned test checkout link when payment is pending. When an order_id is known, read the same order after checkout or an uncertain failure before retrying. If starting checkout fails before an order_id is returned, retry start_tax_sandbox with the original idempotency_key; do not create a new key for the same attempt. get_tax_sandbox_order and complete_tax_sandbox_order take only order_id. Report test payment, draft generation, download availability and external delivery as separate observed states. Do not claim the draft is available until the order confirms its artifact is available; a payment or download URL alone is not proof. A sandbox receipt or simulated submission is not county filing, external email delivery or permission for live payments.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | ||
| county_key | Yes | ||
| address_or_pidn | Yes | ||
| idempotency_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: no real charge or county filing, no verification of ownership/eligibility/savings/appeal window, test payments and separate test orders, and the requirement to report payment, draft generation, download availability and external delivery as distinct states. The safety and limited-side-effect profile is well disclosed; what it does not cover is what the response body actually contains beyond the checkout link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the user-request gate are front-loaded, and most sentences carry operational weight. It is longer than typical, with a couple of advisory sentences (state reporting, not claiming draft availability) that stretch toward policy prose rather than tool selection guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-stakes mutation with no output schema, it explains what is returned (a test checkout link, an order_id when available) and the follow-up read pattern. The notable remaining gap is the meaning of the service enum, which determines the kind of checkout being started.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description had to carry all four parameters and it only explains idempotency_key (its retry semantics). address_or_pidn is only hinted at via 'the selected property', and county_key plus the appeal/microtx service enum are entirely unexplained, leaving the agent to guess the most consequential input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Start a test checkout for the selected property', and clarifies it is a sandbox/test flow. It distinguishes itself implicitly from get_tax_sandbox_order and complete_tax_sandbox_order, which it names as separate steps, though it never says in one line what this tool is *not*.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditions: only when the user requests it, requires owner:sandbox sign-in, and directs the agent to read the same order after checkout or an uncertain failure rather than retrying. It also specifies the exact retry rule (reuse the original idempotency_key when no order_id was returned) and names which sibling tools take only order_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_va_connectionAInspect
Start a requested VA connection for this signed-in account and assistant. Requires owner:va. Show connection_url to confirm the account and fields to share. Review saved verification or complete official VA sign-in, then approve sharing with this app. Verification is saved to the account only after approval. Call get_va_connection after browser return. The link alone grants no access. Never request passwords, tokens, SSNs or full VA documents in chat.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is not read-only, is open-world, and is not idempotent. The description adds substantial behavioral context beyond annotations: the owner:va requirement, verification being saved only after approval, the fact that the link alone grants no access, and explicit secret-handling prohibitions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then prerequisites, user flow, follow-up, and safety constraints. Every sentence adds useful operational or security guidance without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains the key return/UI concept by instructing the agent to show connection_url and collect confirmation. It also covers authorization requirements, browser handoff behavior, persistence timing, and follow-up tooling, which is complete for a zero-parameter start tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the baseline is 4. The description has no input parameters to clarify, and references to connection_url and fields to share describe expected outputs or UI behavior rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: starting a requested VA connection for the signed-in account and assistant. It also distinguishes the follow-up step by explicitly naming get_va_connection after browser return, so an agent can tell the tools apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear prerequisites and workflow: it requires owner:va, says to show connection_url, guides the user through saved verification or official VA sign-in, and instructs calling get_va_connection after browser return. It does not explicitly state when to avoid this tool versus disconnect_va_connection, but the operational context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_addressesARead-onlyIdempotentInspect
Find possible address matches in county records from a partial query or misspelling. If the property is ambiguous, ask the user to choose before drawing conclusions or taking action. Similarity scores and is_auto_match are hints. They do not verify a selection, owner authority or financial eligibility.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of candidate suggestions to return (default: 5) | |
| query | Yes | Address query or partial street name (e.g. '3731 Andrson Ave', 'Anderson Ave', '810 Lindsay') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as a safe, read-only, idempotent, non-destructive operation. The description adds important behavioral guidance by warning that similarity scores and is_auto_match are only hints and do not verify selection, owner authority, or financial eligibility, which is valuable context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences, front-loading the purpose and following with the ambiguous-case handling and an important caveat. Every sentence earns its place with no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, read-only suggestion tool with full schema coverage and no output schema, the description is complete enough. It explains the matching behavior, ambiguity handling, and the meaning of key output hints like similarity scores and is_auto_match.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the query and limit parameters are already documented with examples, constraints, and defaults. The description does not add parameter-specific semantics beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Find possible address matches in county records' from a partial query or misspelling. It clearly identifies the task and scope, and no sibling tool in the list appears to perform address suggestion, so the agent can distinguish 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: use for partial queries or misspellings, and if the property is ambiguous, ask the user to choose before drawing conclusions or taking action. It does not name alternatives or explicit exclusions, but there are no obvious sibling alternatives for this specific suggestion task.
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.
2 tool updates
- Changed
get_property_assessment2 fields changed- changed
Input schema / properties / actual_sqft / descriptionPrevious value: -"Optional: Actual measured living area in sq ft"New value: +"Optional owner-reported measured living area, in square feet" - changed
Input schema / properties / county_key / descriptionPrevious value: -"Optional exact registered county adapter key, such as hamilton. Restricts lookup to that county and avoids unrelated county scans; conflicting explicit prefixes are rejected."New value: +"Optional registered county key, such as hamilton. Searches only that county. A conflicting county prefix is rejected."
- Changed
recheck_property_opportunities1 field changed- changed
Input schema / properties / county_key / descriptionPrevious value: -"Optional exact registered county adapter key, such as hamilton. Restricts lookup to that county and avoids unrelated county scans; conflicting explicit prefixes are rejected."New value: +"Optional registered county key, such as hamilton. Searches only that county. A conflicting county prefix is rejected."
20 tool updates
- First observed
audit_microtransaction - First observed
complete_tax_sandbox_order - First observed
disconnect_va_connection - First observed
find_va_facilities - First observed
find_va_forms - First observed
generate_veteran_packet - First observed
get_appeal_lifecycle - First observed
get_microtransactions_catalog - First observed
get_owner_review_details - First observed
get_owner_workspace - First observed
get_property_assessment - First observed
get_tax_sandbox_order - First observed
get_va_connection - First observed
get_va_facility - First observed
get_va_form - First observed
recheck_property_opportunities - First observed
review_veteran_requirements - First observed
start_tax_sandbox - First observed
start_va_connection - First observed
suggest_addresses
Related MCP Connectors
Source-backed property assessment research and draft assessment comparisons for supported pilot j...
Source-backed county property records, owner-name portfolios and three Hamilton County lead packa...
Source-backed county property records, owner-name portfolios and three Hamilton County lead packa...
US parcels, owners, sales, zoning rules, building permits and zoning cases.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to look up county assessor public records for properties, check MLS discrepancies against public data, and discover new county assessor sources, all via a local MCP server for real-estate appraisal workflows.6MIT
- FlicenseNot gradedqualityBmaintenanceProvides source-dated Washington property evidence and transaction math, including REET, seller scenarios, and research packets, for software and AI assistants.-
- AlicenseBqualityDmaintenanceEnables coding agents to conduct local criminal case file review by parsing PDF volumes, recording facts and evidence with source citations, and generating structured Word review notes and Excel indexes without uploading files.2524 PyPIMIT
- AlicenseCqualityAmaintenanceEnables researchers to turn property-history questions into reviewable evidence dossiers by gathering sources, tracing people and places, linking conclusions to supporting or opposing passages, and exporting portable backups.37Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.