Skip to main content
Glama

Server Details

LeaseCommand's MCP server gives an assistant organization-scoped access to lease records and ASC 842 lease accounting data: lease portfolios, payment and amortization schedules, critical dates and journal entries. Access never exceeds the user's own role, platform administration is excluded, and every change goes through explicit prepare and confirm steps.

Ownership verified
Status
Healthy
Uptime
49.0% over 23 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

D1.9/5.0

Scored across 544 tools

Disambiguation2/5

There are two parallel ways to reach the same data: the generic execute_read plus dozens of curated helpers (find_contracts, view_portfolio_dashboard, review_lease), and ~500 auto-generated get_* tools that mirror the same GET endpoints. Among the generated tools, many names collapse into near-identical prefixes (get_accounting_journal_close_runs_by_id_196eafa…, _d11e1e1a…, _e0335119…) where only a 32-char hash distinguishes the sub-resource, forcing an agent to decode the truncated path fragment instead of the tool name.

Naming Consistency2/5

Names are uniformly snake_case, but the scheme 'get_<truncated path>_<opaque hash>' produces truncated fragments like get_leases_by_leaseId_supplemental_rent_63d1171a19f5... that are neither human-meaningful nor stable-looking, and they mix awkwardly with clean curated verbs (describe_operation, execute_read, view_portfolio_dashboard). The pattern is mechanical rather than predictive, so an agent cannot guess a name and get a hit.

Tool Count1/5

544 tools for a lease/contract accounting product is a flat endpoint dump rather than a curated tool surface, far beyond what an agent can select from reliably. Nearly all of them are redundant with execute_read plus search_operations/describe_operation, so the vast majority do not earn their place.

Completeness3/5

Read coverage is essentially exhaustive across leases, contracts, CAM, journal close, subleases, portfolio and settings, so there are few read-side dead ends. However the surface appears read-only: get_write_status references an 'execute_write' tool that is not present, so the create/update/approve lifecycle implied by leases, journal entries and approvals has no counterpart.

Available Tools

544 tools
describe_operationDescribe OperationB
Read-onlyIdempotent
Inspect

Get a registered operation’s method, path parameters, query and body schemas. If a schema is absent, use app API documentation and validation feedback; do not invent accounting evidence.

NameRequiredDescriptionDefault
operationIdYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare this a safe, idempotent, closed-world read, so the safety profile is covered. The description adds real value by enumerating the returned sections and by stating the non-fabrication rule when a schema is missing, but says nothing about error behavior for an unknown operationId.

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 returned content, with the fallback rule second. The closing clause about accounting evidence is domain-flavored but still earns its place as a guardrail.

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 with no output schema, the description adequately covers what is returned. It is incomplete on the single input (where operationId comes from) and on behavior for unknown IDs, which is the main thing an agent could get wrong.

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 0% — operationId has no description in the schema. The description says 'registered operation' but never explains the 24-hex-character format, that it must come from search_operations, or what happens with an unregistered ID, 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.

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 a registered operation) plus the concrete payload: method, path parameters, query and body schemas. An agent knows exactly what comes back, though it never differentiates itself from search_operations, which appears to be the discovery counterpart.

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 guidance is a fallback rule for absent schemas (use app API documentation and validation feedback, don't invent accounting evidence). Nothing says when to pick this over search_operations or execute_read, nor how an operationId is obtained 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.

execute_readExecute ReadC
Read-onlyIdempotent
Inspect

Execute an organization-scoped GET operation with normal user permissions and audit logging. Exports and large results return a bounded downloadable result.

NameRequiredDescriptionDefault
queryNo
paramsNo
operationIdYes

TDQS

C2.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description still adds real context: organization scoping, that it runs under normal user permissions, that calls are audit-logged, and that exports/large results come back as a bounded downloadable result. That result-shape and audit disclosure is exactly the kind of thing annotations cannot express; only error behavior for an invalid operationId is left out.

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, no filler, and the scoping/permission constraint is front-loaded before the result-shape caveat. 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.

Completeness2/5

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

For a generic gateway with 0% parameter documentation, no output schema, and nested untyped objects, the description answers too few of the questions an agent must resolve before calling it: where the operationId comes from, what the query/params maps accept, and what happens on failure are all missing.

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 all three parameters include nested free-form objects, so the description must carry the burden and it does not. Neither 'operationId' (a 24-hex id whose source is unstated), nor the opaque 'query' and 'params' objects (string-valued, 2000-char capped) is explained, leaving an agent to guess what goes into them.

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 verb+resource pairing ('Execute... GET operation') is real but abstract: an 'operation' is the gateway's own concept, and the description never says how operations are identified or that they are looked up elsewhere. It also fails to distinguish this generic executor from the many concrete get_* siblings that overlap with it.

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 at all: no mention of describe_operation or search_operations to obtain the required operationId, no statement of when to prefer this gateway over the dedicated get_* tools, and no indication of when read_download (the obvious alternative for bounded exports) should be used instead.

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

find_contractsFind contractsA
Read-onlyIdempotent
Inspect

Find existing organization contracts by text. Returns a bounded authorized source selection; use the generic catalog for additional filters or deeper records.

NameRequiredDescriptionDefault
qNo
pageNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive behavior, so the description's added value is the authorization scope and bounded result set. That is useful behavioral context beyond the annotations, although 'bounded' and 'authorized source selection' are not explained concretely.

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 only two sentences and front-loads the primary purpose before the alternative. It is efficient, though 'bounded authorized source selection' is jargon that could be replaced with clearer language.

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 read tool with annotations and no output schema, the description covers purpose and an alternative but leaves parameter meanings and result-set limits underexplained. Given 0% schema description coverage, it does not fully compensate for what the schema omits.

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 does not explain either parameter. 'By text' weakly implies that q is a text query, but page is entirely undocumented in both schema and description, so an agent must infer its 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?

States a clear verb and resource: find existing organization contracts by text. The purpose is understandable without opening the schema, though the phrase 'bounded authorized source selection' is vague and the alternative 'generic catalog' is not named precisely.

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 directs the agent to use the generic catalog for additional filters or deeper records, which gives a when-to-use-this-vs-alternative condition. The guidance would be stronger if the generic catalog tool were named and if exclusions for this tool were clearer.

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

find_sitesFind sitesB
Read-onlyIdempotent
Inspect

Find existing organization sites by text. Returns a bounded authorized source selection; use the generic catalog for additional filters or deeper records.

NameRequiredDescriptionDefault
qNo
pageNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is fully covered elsewhere. The description adds that results are a "bounded authorized source selection," hinting at result caps and permission scoping, which is genuinely beyond the annotations, but it never states how bounded, how authorization is determined, or how paging behaves.

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 primary action front-loaded and the fallback stated second. "Bounded authorized source selection" is somewhat jargon-heavy but is the only thing carrying behavioral information, so it earns its place.

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 schema descriptions, no required params and no output schema, the description should explain result shape and pagination expectations. It gestures at bounded results but omits result size, paging semantics, and whether q is optional-and-returns-everything, which is critical given 0 required 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 0%, so the description carries the whole burden. "By text" loosely maps to q, but nothing explains the 200-character limit, matching/ranking behavior, or what the page parameter does (size, ordering, whether bounds interact with the "bounded selection"). Substantial compensation is missing.

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?

"Find existing organization sites by text" gives a specific verb (find), resource (organization sites) and search method (by text), so an agent can tell it apart from the ID-based get_sites_by_id family. It does not explicitly distinguish itself from sibling get_sites or the sitefolio location tools, leaving partial ambiguity.

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 points to "the generic catalog" for additional filters or deeper records, which is a useful routing hint. But the alternative is unnamed and does not match any obvious sibling in the provided list, and there is no statement of when NOT to use this tool (e.g., vs get_sites for a full list).

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

get_accounting_account_mappings_af326dc504febcc9b80a68a5accounting: GET /api/accounting/account-mappingsC
Read-onlyIdempotent
Inspect

GET /api/accounting/account-mappings. GET /api/accounting/account-mappings. Operation ID: af326dc504febcc9b80a68a5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered structurally. The description adds nothing beyond that - no return shape, no pagination, no filtering behavior, no note about what the mapping resource represents.

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

Conciseness2/5

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

Short, but the first two sentences are the identical URL string repeated verbatim - pure duplication with zero information gain. Front-loading is absent because there is no substantive content to front-load.

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?

No output schema and 0% parameter coverage mean the description must carry the burden, and it does not: no purpose, no parameters, no behaviors. The single pointer to describe_operation and execute_read-adjacent siblings is the only useful fragment.

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 both parameters ('query' as an arbitrary property bag and empty 'params') are undocumented. The description does not compensate at all; it only points at describe_operation for the real request schema, which is a pointer rather than semantics.

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

Purpose2/5

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

The description merely restates the tool name as a raw URL path ('GET /api/accounting/account-mappings') twice. It implies a listing of account mappings but does not describe what a mapping is, what it contains, or how it differs from near-identical siblings such as get_account_mappings_5900b624a5f0d38407bcecf4, get_account_mappings_by_id_..., or get_account_mappings_effective_....

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 to use this tool versus the many account-mapping siblings in the same namespace. The only guidance is the note that describe_operation provides native request schemas, which hints at how to discover parameters but says nothing about tool selection.

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

get_accounting_books_cd2565b64517881a8c685349accounting-books: GET /api/accounting-booksD
Read-onlyIdempotent
Inspect

GET /api/accounting-books. GET /api/accounting-books. Operation ID: cd2565b64517881a8c685349; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds nothing behavioral beyond the schema-lookup hint — no mention of pagination, filtering, response shape, 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.

Conciseness2/5

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

Very short, but the first sentence is duplicated word-for-word and the remainder is a bare operation ID, so there is no front-loaded useful content. Brevity here reflects under-specification rather than efficiency.

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 endpoint with free-form nested query objects, no output schema, and 0% parameter documentation, the description leaves an agent unable to know what filters to pass or what comes back. The describe_operation pointer is the only lifeline, and it forces a second round-trip.

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 two parameters ('query' and 'params') are untyped free-form objects with additionalProperties, so the schema explains nothing. The description does not compensate at all — it never mentions what query keys are accepted or what 'params' is for.

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

Purpose2/5

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

The description is essentially the tool name and HTTP path repeated verbatim ('GET /api/accounting-books. GET /api/accounting-books.'), which restates the title rather than explaining what an 'accounting book' is or what the response contains. The only added information is an opaque operation ID, which does not help an agent understand purpose.

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 single usable signal is 'describe_operation provides native request schemas', which hints at a prerequisite lookup, but there is no statement of when to call this versus the dozens of sibling accounting endpoints (account mappings, contracts, journal entries, GL accounts). No exclusions, no context conditions.

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

get_accounting_compliance_settings_ec0e9c9df45c16e75ddd2b8daccounting: GET /api/accounting/compliance-settingsD
Read-onlyIdempotent
Inspect

GET /api/accounting/compliance-settings. GET /api/accounting/compliance-settings. Operation ID: ec0e9c9df45c16e75ddd2b8d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no indication of what the settings object contains, whether it is workspace-scoped, or any auth/rate-limit context; the only added value is the pointer to describe_operation.

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

Conciseness2/5

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

The first sentence is repeated verbatim, wasting space in an already minimal description. No real content is front-loaded because there is no content beyond the path.

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

Completeness1/5

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

For a nested-object, zero-coverage parameter schema with no output schema and no annotations on data shape, the description must explain what is retrieved and how to call it — it does neither, so an agent would have to fall back to describe_operation for anything useful.

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 two parameters are opaque ('query' as a free-form object with additionalProperties: {} and an empty 'params'). The description supplies no parameter meaning at all, leaving an agent unable to know what a query object on this endpoint would even accept.

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

Purpose2/5

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

The description only echoes the URL path and title, 'GET /api/accounting/compliance-settings', which is a tautology of the tool name rather than an explanation of what the endpoint returns or why compliance settings matter. It does not distinguish this tool from any of the many other accounting GET endpoints in the sibling list.

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 to use this tool, when not to, or which sibling to prefer. The only actionable hint is that 'describe_operation provides native request schemas', which points at a companion tool but offers no selection criteria between this and, say, get_settings_* or get_compliance_rules_* tools.

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

get_accounting_contracts_by_contractId__0445d72187506a84a6e8d28faccounting: GET /api/accounting/contracts/:contractId/payment-scheduleC
Read-onlyIdempotent
Inspect

GET /api/accounting/contracts/:contractId/payment-schedule. GET /api/accounting/contracts/:contractId/payment-schedule. Operation ID: 0445d72187506a84a6e8d28f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the URL — no return shape, pagination, or scope information — and the duplicated sentence wastes space rather than adding behavior detail.

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

Conciseness2/5

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

The same endpoint string appears verbatim twice, which is pure redundancy, and there is no front-loaded explanatory sentence. It is short but only because content is missing, not because it is efficient.

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?

Two parameters, a nested untyped query object, 0% schema coverage, and no output schema — the description should carry this burden but instead defers entirely to describe_operation. An agent cannot call this correctly from the description alone.

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 nested query/params objects are undocumented. The description says nothing about contractId or the free-form query object; the pointer to describe_operation is the only compensating hint, and it offloads rather than explains.

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 is only the raw route 'GET /api/accounting/contracts/:contractId/payment-schedule' repeated twice, from which an agent can infer it fetches a contract's payment schedule. There is no plain-language statement of the verb+resource, and nothing distinguishes it from the four sibling 'get_accounting_contracts_by_contractId__*' tools, which are different endpoints 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 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 the other contract-by-contractId endpoints or find_contracts. The only actionable hint is 'describe_operation provides native request schemas', which directs to a schema lookup tool, not to selection criteria.

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

get_accounting_contracts_by_contractId__128cfef3799a881d247173a8accounting: GET /api/accounting/contracts/:contractId/journal-entriesC
Read-onlyIdempotent
Inspect

GET /api/accounting/contracts/:contractId/journal-entries. GET /api/accounting/contracts/:contractId/journal-entries. Operation ID: 128cfef3799a881d247173a8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description contributes nothing beyond that — no pagination behavior, no scoping rules (does query support filters? date ranges?), no note on what a missing contractId returns. It is not contradictory, just empty.

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

Conciseness2/5

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

Short, but the same endpoint path appears twice back-to-back with no added information the second time. Brevity here comes from under-specification rather than economy; there is no front-loaded statement of what the tool returns.

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?

No output schema exists, so the description should carry the burden of explaining return shape, and it does not. With a nested query object at 0% schema coverage and no examples, an agent cannot confidently construct a call without first invoking describe_operation.

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 parameters, and the description says nothing about contractId or the fully free-form query object (additionalProperties: {}). The single mitigation is the reference to describe_operation, which tells the agent where to look for request schemas but documents no semantics itself.

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

Purpose2/5

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

The text is the raw endpoint path repeated verbatim, plus an operation ID. It implies reading journal entries scoped to a contract, but it never says 'retrieve journal entries for a contract' in a way that adds anything over the tool name and title. Among dozens of near-identical get_accounting_contracts_by_contractId__* siblings, an agent gets no help distinguishing what makes this one different.

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, when-not-to-use, or sibling routing guidance. The only actionable information is the pointer to describe_operation for native request schemas, which is a discovery hint rather than usage guidance. Alternatives such as get_journal_entries_readiness or get_accounting_journal_entries_by_id_ap are left entirely unaddressed.

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

get_accounting_contracts_by_contractId__422327c0ed8b8a690e7de0f1accounting: GET /api/accounting/contracts/:contractId/profileC
Read-onlyIdempotent
Inspect

GET /api/accounting/contracts/:contractId/profile. GET /api/accounting/contracts/:contractId/profile. Operation ID: 422327c0ed8b8a690e7de0f1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond that — no mention of what the profile payload covers, auth requirements, or pagination.

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

Conciseness2/5

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

The same endpoint path is repeated in two consecutive sentences with zero added information, wasting half the text. The only unique content — the operation ID and the `describe_operation` pointer — is buried at the end.

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 0% schema coverage on a two-parameter tool, the description should explain the returned profile shape and the meaning of `contractId`; it does neither. The `describe_operation` reference partially mitigates the missing request schema, but overall the definition is inadequate for correct selection and invocation.

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 and does not: `contractId` is never explained (format, source, whether it is the internal ID vs. contract number), and the free-form `query` object is not mentioned at all. The path template is the only implicit hint about the required parameter.

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

Purpose2/5

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

The description only restates the title/endpoint path verbatim, twice, without explaining what a contract 'profile' contains or how it differs from the several sibling endpoints with the same `/accounting/contracts/by_contractId/...` shape. The HTTP verb and resource path are recoverable, but the semantic purpose is not stated.

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 versus the numerous sibling contract sub-resource endpoints (e.g. the other `get_accounting_contracts_by_contractId__*` tools). The only actionable pointer is that `describe_operation` holds the native request schema, which is a schema-lookup hint, not a usage rule.

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

get_accounting_contracts_by_contractId__6ebf0ad09a2b3215514df5ccaccounting: GET /api/accounting/contracts/:contractId/modificationsC
Read-onlyIdempotent
Inspect

GET /api/accounting/contracts/:contractId/modifications. GET /api/accounting/contracts/:contractId/modifications. Operation ID: 6ebf0ad09a2b3215514df5cc; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond the path — no pagination, filtering, or result-shape context — so it does not enrich what 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.

Conciseness2/5

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

The same path is repeated verbatim in two consecutive sentences, and an opaque operation ID is included that adds no selection value. Nearly the whole text is redundant or noise rather than front-loaded guidance.

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?

A nested-object, 0%-coverage, GET endpoint with no output schema needs the description to explain the query object and return payload. Neither is addressed; the only useful pointer is the deferred reference to describe_operation, which offloads the actual specification.

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 two parameters (a free-form 'query' object and 'params.contractId') have no descriptions anywhere. The path string only implicitly names contractId; the 'query' parameter is completely undocumented in both schema and description, leaving the agent to guess accepted filter keys.

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 raw path 'GET /api/accounting/contracts/:contractId/modifications' does encode a verb and resource, and the 'modifications' suffix distinguishes it from the many sibling get_accounting_contracts_by_contractId__* endpoints. But the tool name itself ends in a hash, so the only disambiguation comes from the URL string, never restated in plain language as 'list contract modifications'.

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 to call this versus the sibling /modifications endpoints or versus find_contracts. The only procedural hint is 'describe_operation provides native request schemas', which points at another tool but does not describe conditions for use.

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

get_accounting_contracts_by_contractId__f14f4aae97c368d8c2e01d51accounting: GET /api/accounting/contracts/:contractId/amortization-scheduleC
Read-onlyIdempotent
Inspect

GET /api/accounting/contracts/:contractId/amortization-schedule. GET /api/accounting/contracts/:contractId/amortization-schedule. Operation ID: f14f4aae97c368d8c2e01d51; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered elsewhere. The description adds nothing about response shape, pagination, or what the amortization schedule covers, so it earns little beyond the 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.

Conciseness2/5

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

The same URL sentence is repeated verbatim, which is pure waste, and the remaining text is an internal operation ID. Nothing is front-loaded as a human-readable purpose statement.

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, no annotation gaps to fill, and 0% parameter documentation, the description would need to explain the endpoint's semantics and the undeclared query parameter. It does neither, leaving an agent to consult describe_operation for anything beyond the URL.

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 (required contractId, optional free-form query). The description only echoes ':contractId' from the path and never explains the query object or the contractId's expected form, so it 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.

Purpose3/5

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

The repeated URL line does convey a verb (GET) and resource (amortization schedule for a contract), so the intent is inferable. But it is a bare endpoint path with no plain-language explanation of what an amortization schedule response contains, and the duplication adds nothing.

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 call this versus the many sibling contract sub-resource endpoints or execute_read. The only routing hint is a pointer to describe_operation for request schemas, which is about schema discovery, not tool selection.

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

get_accounting_financial_dimensions_by__e86bd7bc072a5b5747c5e73eaccounting: GET /api/accounting/financial-dimensions/:scope/:idD
Read-onlyIdempotent
Inspect

GET /api/accounting/financial-dimensions/:scope/:id. GET /api/accounting/financial-dimensions/:scope/:id. Operation ID: e86bd7bc072a5b5747c5e73e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context of its own — no auth requirements, no scope/id resolution behavior, no error conditions.

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

Conciseness2/5

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

The first sentence is duplicated verbatim, which is pure waste rather than emphasis. The remaining content is an operation ID and a pointer, so there is no front-loaded substance to be concise about.

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?

There is no output schema, so the description could have described the returned dimension record, but does not. Combined with 0% parameter documentation and a nested params object, an agent would have to call describe_operation first to use this tool at all.

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% for two critical path parameters (scope, id) plus an open-ended query object. The description says nothing about what values scope accepts, what id identifies, or how query filters work, so it 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.

Purpose2/5

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

The description restates the endpoint path already present in the title and tool name, twice, without explaining what a 'financial dimension' is or what :scope distinguishes. An agent cannot tell this apart from the hundreds of other get_accounting_* siblings on the basis of the text.

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 to use this tool, no prerequisites, and no named alternative among siblings. The only actionable hint is that describe_operation holds the native request schemas, which is a lookup pointer rather than usage guidance.

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

get_accounting_fx_spot_rate_3e012bb36423e976cb923affaccounting: GET /api/accounting/fx/spot-rateD
Read-onlyIdempotent
Inspect

GET /api/accounting/fx/spot-rate. GET /api/accounting/fx/spot-rate. Operation ID: 3e012bb36423e976cb923aff; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own: it says nothing about required scoping (query is a free-form object), currency pair semantics, rate precision, or caching/staleness of FX rates, which is exactly the kind of detail a spot-rate lookup needs.

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

Conciseness2/5

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

It is short, but the first sentence is repeated verbatim and the operation ID is technical boilerplate for the agent. No sentence is front-loaded with actionable meaning beyond the raw path.

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

Completeness1/5

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

With a free-form query object, no output schema, and zero parameter documentation, the definition leaves the agent unable to construct a valid call without first invoking describe_operation. For a tool whose entire input is untyped, the description should carry the burden and does not.

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 two parameters are a free-form `query` object with additionalProperties and an empty `params` object. The description provides no parameter meaning at all — no mention of which query keys (currency pair, date, base/quote) are expected, so it 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.

Purpose2/5

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

The description only restates the HTTP path and title ('GET /api/accounting/fx/spot-rate'), so an agent can infer it fetches a foreign-exchange spot rate, but it never says in prose what it does or returns. No sibling differentiation is offered beyond the URL fragment, and the duplicated second sentence adds nothing.

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 to use this tool versus alternatives such as describe_operation, search_operations, or execute_read. The only directional hint is a pointer to describe_operation for 'native request schemas', which is a schema-lookup instruction, not usage guidance.

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

get_accounting_integration_connections__10dd6fac6c9b2f27022d6258accounting-integration: GET /api/accounting-integration/connections/:id/intercompany-modeC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/connections/:id/intercompany-mode. GET /api/accounting-integration/connections/:id/intercompany-mode. Operation ID: 10dd6fac6c9b2f27022d6258; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered and the description adds no behavioral context of its own. It says nothing about what a connection id must reference, what the response contains, or what happens if the connection has no intercompany mode configured.

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

Conciseness2/5

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

The single sentence is duplicated verbatim, which is pure waste rather than concision. The only content-bearing clause (the describe_operation pointer) is buried at the end instead of front-loaded.

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 no output schema, a nested 'query' object, and 0% schema description coverage, the description should explain the id semantics and the returned mode value. Instead it repeats the path and defers entirely to describe_operation, leaving the agent to open a second tool just to learn the request shape.

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 supplies no meaning for either parameter. The literal ':id' in the path implies a connection identifier, but the schema's required 'id' (minLength 1, maxLength 2000) and the free-form 'query' object are left entirely unexplained.

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

Purpose2/5

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

The description is the URL path repeated verbatim, so the purpose must be reverse-engineered from 'connections/:id/intercompany-mode'. It never states in plain language that it retrieves the intercompany-mode setting for a given accounting integration connection, and the sibling set contains several near-identical connections endpoints it does not distinguish itself from.

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 is given. The only routing hint is 'describe_operation provides native request schemas', which points at a helper for schema lookup rather than explaining when this endpoint should be chosen over the four other get_accounting_integration_connections_* siblings.

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

get_accounting_integration_connections_151a736c7638a1cc4ef22cceaccounting-integration: GET /api/accounting-integration/connectionsD
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/connections. GET /api/accounting-integration/connections. Operation ID: 151a736c7638a1cc4ef22cce; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond the path—no return shape, pagination, filtering, or auth context—so it contributes no behavioral value.

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

Conciseness2/5

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

Extremely short, but the same path sentence is duplicated verbatim, which is pure waste rather than conciseness. The one useful pointer (describe_operation) is buried at the end behind the repetition.

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 list-style GET endpoint with an undocumented free-form query object and no output schema, the description omits any explanation of what is returned or how to scope results. An agent could not call this correctly without falling back to describe_operation.

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?

Two parameters (a free-form 'query' object and an empty 'params' object) exist with 0% schema description coverage, and nested objects are involved. The description supplies no parameter meaning at all, leaving the agent to guess how to pass filters.

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

Purpose2/5

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

The description is just the raw URL path repeated twice, so the only signal is that it touches 'accounting-integration/connections'. It does not say whether this lists connections, retrieves a single connection, or how it differs from the five sibling get_accounting_integration_connections_* 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?

The only actionable sentence points the agent to describe_operation for native request schemas, which is a retrieval hint rather than a when-to-use rule. There is no guidance on choosing among the many near-identical connections and integration siblings.

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

get_accounting_integration_connections__4bf52f4563055973522763b2accounting-integration: GET /api/accounting-integration/connections/:id/dimensionsD
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/connections/:id/dimensions. GET /api/accounting-integration/connections/:id/dimensions. Operation ID: 4bf52f4563055973522763b2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds nothing on top — no mention of pagination, what a 'dimension' record contains, error behavior for a missing id, or scoping to the workspace. It does not contradict the annotations, but it contributes zero 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.

Conciseness2/5

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

Very short, but the first sentence is duplicated verbatim, which is pure waste rather than concision. There is no front-loaded statement of purpose — the reader hits a URL path and a hex operation ID before any meaning.

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

Completeness1/5

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

No output schema exists, a nested 'params' object is required, and 0% of parameters are documented anywhere — yet the description supplies none of the missing information about the response shape or the required identifier. For a nested-object lookup tool this leaves the agent unable to call it confidently.

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% across two parameters: the required nested 'params.id' (a bare string with only length constraints) and the free-form 'query' object with additionalProperties. The description never mentions either; the ':id' placeholder in the URL is the only clue that it identifies a connection, and 'query' is entirely unexplained.

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

Purpose2/5

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

The description is literally the tool title repeated twice: a raw REST path 'GET /api/accounting-integration/connections/:id/dimensions' with no plain-language statement of what the operation returns. An agent can infer 'fetch dimensions for a connection' only by parsing the URL, and it cannot distinguish this from the many sibling get_accounting_integration_connections_* tools, which are also raw-path restatements.

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 to use this versus siblings such as get_accounting_financial_dimensions_by__ or the other connection sub-resource tools. The only actionable hint is the trailing note that 'describe_operation provides native request schemas', which at least points the agent at a prerequisite tool for schema detail, but no use/exclude conditions are given.

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

get_accounting_integration_connections__e3638ce1ddc1b217df03afb3accounting-integration: GET /api/accounting-integration/connections/:id/dimension-slot-mappingC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/connections/:id/dimension-slot-mapping. GET /api/accounting-integration/connections/:id/dimension-slot-mapping. Operation ID: e3638ce1ddc1b217df03afb3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is known. The description adds nothing beyond that - no mention of what the mapping represents, whether it is paginated, or what the response contains, despite being an integration-configuration read.

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

Conciseness2/5

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

The same path sentence is repeated verbatim, which is pure waste, and the operation-ID boilerplate occupies a third of the text. It is short but badly structured, with no front-loaded explanation of purpose.

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 0% parameter documentation, no output schema, and a nested free-form query object, the description should carry substantial weight. Instead it supplies only a path, leaving the agent unable to tell what data comes back or how to scope the request.

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 (query and params.id), and the description only echoes ':id' from the path. It never explains that id is a connection identifier or what the free-form query object accepts, so it fails to compensate for the completely undocumented schema.

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

Purpose2/5

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

The description merely restates the HTTP verb and path from the title, with no explanation of what a 'dimension-slot-mapping' resource is or what the endpoint retrieves. An agent learns nothing it did not already get from the name/title combination.

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 versus the many sibling connection endpoints, or what the prerequisite state is. The only actionable hint is that describe_operation exposes native request schemas, which is a tooling note rather than usage guidance.

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

get_accounting_integration_connections__e9524e4aafd73d0a4c3dd907accounting-integration: GET /api/accounting-integration/connections/:id/accountsC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/connections/:id/accounts. GET /api/accounting-integration/connections/:id/accounts. Operation ID: e9524e4aafd73d0a4c3dd907; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no note on rate limits, pagination, empty-connection behavior, or what the accounts payload represents.

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

Conciseness1/5

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

The same sentence is duplicated verbatim, which is pure waste, and the remaining content is a machine-generated operation ID plus a redirect. Nothing is front-loaded in human-readable form.

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

Completeness1/5

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

No output schema, no parameter documentation, no behavioral notes; for a nested-parameter read endpoint the only substantive content is a pointer to another tool. An agent cannot form a request or judge relevance without calling describe_operation first.

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, and it does not: the required 'id' (connection id) and the free-form 'query' object are never described. The ':id' in the path hints at the connection identifier, but there is no guidance on accepted query filters.

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 REST path does convey a verb (GET) and a concrete resource (accounts belonging to one integration connection), so an agent can roughly infer intent. But it is stated only as a URL, with no plain-language explanation of what 'accounts' are (e.g. chart-of-accounts records pulled from the connected accounting system) and no differentiation from the dozens of sibling get_accounting_integration_connections_* 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?

No when-to-use, when-not-to-use, or alternative is given. The only guidance is a pointer that 'describe_operation provides native request schemas', which helps with request construction but not with tool selection among the many near-identically named siblings.

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

get_accounting_integration_connections__eaf96e511b30d11e08f34f16accounting-integration: GET /api/accounting-integration/connections/:id/dimension-slot-definitionsC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/connections/:id/dimension-slot-definitions. GET /api/accounting-integration/connections/:id/dimension-slot-definitions. Operation ID: eaf96e511b30d11e08f34f16; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no statement of what is returned, whether results are scoped to a single connection, or any auth/size caveats.

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

Conciseness2/5

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

The only substantive content is the identical REST path repeated twice, which is pure redundancy. The remaining clause about describe_operation is useful but is buried in boilerplate rather than front-loaded.

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 zero parameter documentation, no output schema, and nested query objects in the input, the description leaves an agent unable to predict the response shape or the meaning of the free-form query bag. For a read endpoint with no output schema, the description needed to do far more of the explanatory work.

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, so the description must compensate and it does not. The path template weakly implies that params.id is the connection id, but the free-form 'query' object and its allowed keys are never explained anywhere.

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 names a verb (GET) and a resource path ending in 'dimension-slot-definitions' scoped to an accounting-integration connection, so the raw operation is identifiable. But it is a verbatim REST path rather than a plain-language statement of what dimension slot definitions are, and it is indistinguishable from the many other get_accounting_integration_connections__* siblings that share the same prefix.

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 versus siblings such as describe_operation, execute_read, or the other connection sub-resource GETs. The only routing hint, 'describe_operation provides native request schemas,' is about fetching a schema, not about when this tool is the right choice.

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

get_accounting_integration_module_field_4d5cadee1442775f9d9fd558accounting-integration: GET /api/accounting-integration/module-fieldsD
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/module-fields. GET /api/accounting-integration/module-fields. Operation ID: 4d5cadee1442775f9d9fd558; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral context such as scoping, filtering requirements, or pagination, so it contributes nothing 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.

Conciseness2/5

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

Very short, but the content is a duplicated URL string rather than front-loaded meaning; the repetition wastes the entire budget without conveying anything useful.

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

Completeness1/5

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

For a tool with a nested free-form query object, zero parameter documentation, and no output schema, the description supplies none of the context an agent needs to invoke it correctly, and it does not explain the relationship to the sibling module-field tool.

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 the two parameters. The free-form 'query' object (additionalProperties: {}) is entirely undocumented, leaving the agent to guess what query keys are accepted.

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

Purpose2/5

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

The description only repeats the raw endpoint path 'GET /api/accounting-integration/module-fields' twice, which restates the title rather than explaining what a module field is or which module's fields are returned. An agent cannot distinguish this from the near-identical sibling get_accounting_integration_module_field_54b26c135c8bbb56776effa3.

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 or when-not-to-use guidance is given, and no alternative is named. The only actionable pointer is that 'describe_operation provides native request schemas', which hints at a discovery workflow but says nothing about selecting this tool.

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

get_accounting_integration_module_field_54b26c135c8bbb56776effa3accounting-integration: GET /api/accounting-integration/module-fields/:moduleC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/module-fields/:module. GET /api/accounting-integration/module-fields/:module. Operation ID: 54b26c135c8bbb56776effa3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is fully covered elsewhere. The description adds nothing about response shape, pagination, or scoping rules, only a pointer to describe_operation for schemas.

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

Conciseness2/5

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

Very short, but the sole content sentence is duplicated word-for-word, so a third of the text is pure waste. The operation ID and describe_operation pointer are the only non-redundant content.

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?

A tool with an undocumented required param, a free-form nested query object, and no output schema needs more than a restated path. An agent cannot tell what values 'module' accepts or what the response contains.

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 explains the required 'module' path parameter or the free-form 'query' object. With two parameters and no schema documentation, the description should compensate but supplies nothing.

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

Purpose2/5

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

The description repeats the HTTP path twice and adds nothing about what a 'module field' is or what set of records is returned. It restates the title verbatim, making it close to tautology, though the path does at least indicate a GET on a module-scoped resource.

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 call this versus the near-identical sibling get_accounting_integration_module_field_4d5cadee1442775f9d9fd558 or describe_operation/execute_read. The only guidance is a pointer that describe_operation holds native schemas, which is not a usage condition.

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

get_accounting_integration_quickbooks_a_45e0426f509169f503f4e957accounting-integration: GET /api/accounting-integration/quickbooks/authorizeC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/quickbooks/authorize. GET /api/accounting-integration/quickbooks/authorize. Operation ID: 45e0426f509169f503f4e957; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered externally; the description adds essentially nothing beyond that. It does not disclose that an authorize endpoint typically initiates an external OAuth handshake or what it returns, which is the key behavioral fact an agent would need.

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

Conciseness2/5

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

The single meaningful sentence is duplicated verbatim, wasting half the description, and the remaining text is an operation ID plus a meta-instruction. Nothing is front-loaded about the actual action.

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 behavioral notes, an agent has no idea whether this returns a URL, a token, a redirect, or a connection object, nor whether it mutates external state. For an OAuth authorization endpoint in a large tool catalog, the description is materially incomplete.

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 input schema is a generic object with an untyped 'query' bag and an empty 'params' object, so the description carries the full burden — yet it says nothing about what query parameters exist or are needed. Pointing at describe_operation defers rather than compensates.

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

Purpose2/5

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

The description only repeats the raw path 'GET /api/accounting-integration/quickbooks/authorize' twice, which merely restates the title. It never says what the endpoint actually does (start a QuickBooks OAuth authorization flow, return a redirect/auth URL, etc.), so an agent cannot distinguish it from the sibling get_accounting_integration_xero_authori tool beyond the vendor 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?

The only routing hint is that describe_operation provides native request schemas, which is about schema discovery rather than when to call this versus the Xero authorize endpoint or describe_operation itself. No prerequisites (e.g., admin role, existing integration config) 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.

get_accounting_integration_sftp_configs_5d84bc68d4cf493a1d18a481accounting-integration: GET /api/accounting-integration/sftp-configsC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/sftp-configs. GET /api/accounting-integration/sftp-configs. Operation ID: 5d84bc68d4cf493a1d18a481; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only the mildly useful note that describe_operation supplies the native request schema, but says nothing about result shape, pagination, or auth scope. With annotations carrying the behavioral load, a 3 is right.

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

Conciseness2/5

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

The first two sentences are identical copies of the endpoint path, so one of them is pure waste. The remaining operation-ID sentence earns its place, but the definition is padded by duplication rather than front-loaded with useful information.

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 nested objects, zero schema description coverage, and no output schema, the description leaves an agent unable to construct a correct call without consulting describe_operation. It acknowledges that dependency but supplies no configuration of its own.

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 0% and the two parameters (a free-form 'query' object and an empty 'params' object) are entirely undocumented in both schema and description. The single compensating signal is the referral to describe_operation for native request schemas, which is a partial but real mitigation rather than meaningful semantic detail.

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

Purpose2/5

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

The description is the raw route string 'GET /api/accounting-integration/sftp-configs' repeated verbatim twice, which only restates the name and title rather than explaining what the operation returns or how it differs from siblings like the integration connection or sync job getters. A reader can infer it reads SFTP configuration, but nothing more specific.

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 preconditions, and no comparison against alternative tools. The only directive is 'describe_operation provides native request schemas', which is a pointer for schema discovery, not usage selection.

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

get_accounting_integration_sync_jobs_by_1c69ef915478cdcae3725e91accounting-integration: GET /api/accounting-integration/sync-jobs/:idC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/sync-jobs/:id. GET /api/accounting-integration/sync-jobs/:id. Operation ID: 1c69ef915478cdcae3725e91; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered by structured data. The description adds nothing beyond that — no note on what a sync job record contains, whether not-found is possible, or how the response is shaped. No contradiction with annotations.

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

Conciseness2/5

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

Brevity is not a virtue here: the same endpoint sentence appears twice in a row, which is pure waste, and what remains is an operation UUID plus a pointer to another tool. Only one of the three sentences carries any information.

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 nested-object, zero-described-parameter tool with no output schema, the description should explain the single-record retrieval semantics and the ID's meaning; instead it defers entirely to describe_operation. An agent must call a sibling tool to learn anything about the request shape.

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 does not compensate. The ':id' path token faintly maps to params.id, but nothing explains what the ID identifies, and the nested 'query' object parameter is left entirely undocumented in both schema and prose.

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

Purpose2/5

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

The description is the raw route string 'GET /api/accounting-integration/sync-jobs/:id' repeated verbatim twice, which only restates the name and title. It never says in plain language that it retrieves a single sync job record by ID, and it does nothing to separate it from the sibling list tool get_accounting_integration_sync_jobs_dc723bca47df10fef58c8b23.

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 when the sibling list endpoint or describe_operation should be preferred. The only actionable hint is 'describe_operation provides native request schemas', which is a discovery pointer rather than usage guidance.

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

get_accounting_integration_sync_jobs_dc723bca47df10fef58c8b23accounting-integration: GET /api/accounting-integration/sync-jobsC
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/sync-jobs. GET /api/accounting-integration/sync-jobs. Operation ID: dc723bca47df10fef58c8b23; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered; the description adds nothing on top. It says nothing about pagination, result caps, ordering, or what the sync-job records contain — all relevant for a collection endpoint.

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

Conciseness2/5

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

The description is short, but it wastes its entire length repeating the identical path string twice. That duplication displaces any substantive content rather than making the definition compact.

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 collection endpoint with an opaque nested 'query' parameter, no output schema, and no annotations gaps to fall back on, the description should explain filtering/paging and result shape. The describe_operation pointer is the only genuinely useful element, leaving the definition materially incomplete.

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 meaningful parameter ('query') is an untyped free-form object with additionalProperties {}, so the schema conveys no semantics at all. The description's only help is telling the agent to call describe_operation for native request schemas, which is a useful pointer but does not itself explain any accepted keys or values.

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

Purpose2/5

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

The description only restates the HTTP verb and path ('GET /api/accounting-integration/sync-jobs') twice, mirroring the title without added explanation. It never clarifies what a 'sync job' is or how this list endpoint differs from the sibling get_accounting_integration_sync_jobs_by_... endpoint, so an agent cannot disambiguate from the name alone.

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 to use this list endpoint versus the by-ID sibling, nor any precondition, pagination, or filtering context. The only routing hint is the pointer to describe_operation, which addresses schema lookup rather than tool selection.

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

get_accounting_integration_xero_authori_afd75a94a7a573b8a5931b4eaccounting-integration: GET /api/accounting-integration/xero/authorizeD
Read-onlyIdempotent
Inspect

GET /api/accounting-integration/xero/authorize. GET /api/accounting-integration/xero/authorize. Operation ID: afd75a94a7a573b8a5931b4e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered, but the description adds nothing beyond that. For an authorize endpoint the agent needs to know whether it returns a redirect/consent URL, whether it creates server-side state, or what errors occur if Xero isn't configured — none of which 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.

Conciseness2/5

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

The first sentence is duplicated verbatim, wasting the only substantive line of the description. Length is short but the content is filler rather than front-loaded information.

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

Completeness1/5

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

With no output schema, no parameter documentation, and no behavioral explanation beyond annotations, an agent has essentially no basis for calling this correctly — it cannot tell what the free-form query accepts or what the call returns.

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?

Two parameters (`query` and `params`) have 0% schema description coverage, and the description provides no parameter information at all. The free-form `query` object in particular is left entirely unexplained, so there is nothing to compensate for the coverage gap.

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

Purpose2/5

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

The description only restates the HTTP path and title verbatim ('GET /api/accounting-integration/xero/authorize'), which is a tautology of the name/title. It never explains what an 'authorize' call actually does (e.g. start a Xero OAuth flow, return a consent URL), and it does not distinguish this tool from the many sibling `get_accounting_integration_*` endpoints.

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 or when-not-to-use guidance is given. The only actionable sentence points the agent at `describe_operation` for native request schemas, which is a discovery hint rather than usage criteria; the agent must still guess whether this starts an OAuth handshake or returns existing authorization state.

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

get_accounting_je_templates_bdf0cdb3a5303beee6e96fbdaccounting: GET /api/accounting/je-templatesC
Read-onlyIdempotent
Inspect

GET /api/accounting/je-templates. GET /api/accounting/je-templates. Operation ID: bdf0cdb3a5303beee6e96fbd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds zero behavioral context — no mention of pagination, filtering scope, or what the template list contains — so it contributes nothing beyond structured data.

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

Conciseness2/5

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

The first sentence is duplicated verbatim, wasting half the text, and the content is front-loaded with a machine path rather than a human-readable purpose. It is short but by omission, not by efficiency.

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 2 undocumented params, no output schema, and nested objects in the schema, the description should carry meaningful load but instead defers entirely to describe_operation. An agent cannot confidently call this tool from the definition alone.

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 both parameters (query, params) are opaque generic catch-alls. The description offers no parameter meaning at all, only a pointer to describe_operation, which pushes the agent to another tool call rather than adding semantics.

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

Purpose2/5

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

The description is essentially the URL path restated twice plus an operation ID, which only implicitly tells an agent this lists journal-entry templates. There is no plain-language verb+resource statement, and nothing distinguishes it from siblings such as get_journal_entries_* or get_templates_leases.

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 is given beyond an implicit redirect: 'describe_operation provides native request schemas.' It doesn't say what this endpoint returns versus the journal-close or journal-entry siblings, nor any preconditions.

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

get_accounting_journal_close_account_nu_22e0c3e263df3751839690f8accounting: GET /api/accounting/journal-close/account-number-formatC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/account-number-format. GET /api/accounting/journal-close/account-number-format. Operation ID: 22e0c3e263df3751839690f8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. Beyond that the description adds nothing: no indication of what the response body contains, whether it returns workspace-level or company-level configuration, or whether any query parameters change behavior.

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

Conciseness2/5

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

The single substantive sentence is duplicated verbatim ('GET /api/...' appears twice), which is pure waste, and the front-loaded content is a raw URL path rather than a human-readable statement of purpose.

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 endpoint with two undocumented parameters, no output schema, and deep nesting hints, the description should at minimum say what configuration object is returned and what the query object can carry. Neither is present, leaving the agent to infer everything from the slug and a redirect to another 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 description coverage is 0% for two opaque parameters ('query' as a free-form object and an empty 'params' object), so the description carries the burden and fails. The lone note that describe_operation provides native request schemas is a pointer, not documentation of what query keys or params this endpoint accepts.

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

Purpose2/5

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

The description only repeats the URL path 'GET /api/accounting/journal-close/account-number-format' twice, which restates the name and title rather than explaining in plain language what the tool returns (e.g. the configured journal-close account number format/mask). An agent learns nothing about the resource beyond guessing from the slug, and nothing distinguishes it from the ~40 other journal-close 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 or when-not-to-use guidance, and no alternatives named among the many journal-close endpoints. The only steering is a pointer to describe_operation for native request schemas, which is a schema-retrieval hint rather than usage guidance.

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

get_accounting_journal_close_aggregatio_415b31bc7851c055a59e616daccounting: GET /api/accounting/journal-close/aggregationC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/aggregation. GET /api/accounting/journal-close/aggregation. Operation ID: 415b31bc7851c055a59e616d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description contributes nothing beyond that — no note on scoping, required permissions, pagination, or what the aggregation covers.

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

Conciseness2/5

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

The same endpoint sentence appears twice back-to-back, which is pure waste rather than front-loaded signal. The remaining clause about describe_operation is the only informative content and could have stood alone.

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 an opaque, untyped aggregation endpoint with nested free-form query objects, no output schema, and 0% parameter documentation, the description should explain what is aggregated and what filters exist. Instead it offers only an operation ID and a pointer to a sibling, leaving the essential contract undefined.

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 free-form parameters ('query' accepting arbitrary properties and an empty 'params' object), so the schema provides almost no meaning. The description makes no attempt to describe accepted query fields or filters, only deferring to describe_operation, leaving the caller with no semantic anchor.

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

Purpose2/5

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

The description repeats the URL path 'GET /api/accounting/journal-close/aggregation' twice and adds only an operation ID, which is a tautological restatement of the name and title. It never says in plain language what a 'journal close aggregation' returns (e.g. aggregated close status, balances, or rollups) or how it differs from the many sibling journal-close endpoints such as get_accounting_journal_close_batches or get_accounting_journal_close_runs.

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, when-not-to-use, or sibling comparison is given. The only guidance is a pointer to describe_operation for request schemas, and a generic reference to execute_read is absent entirely, so an agent must infer that this is a read call routed through some other tool.

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

get_accounting_journal_close_batches_5c1099938b1bdfe0bed627d0accounting: GET /api/accounting/journal-close/batchesD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/batches. GET /api/accounting/journal-close/batches. Operation ID: 5c1099938b1bdfe0bed627d0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that (no pagination, filter semantics, or authentication context), so it contributes no behavioral value.

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

Conciseness2/5

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

The single repeated sentence is redundant waste, and the operation-ID/metadata boilerplate is not front-loaded with any useful information. Brevity here reflects under-specification rather than efficiency.

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

Completeness1/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, 0% parameter documentation, and nested-object inputs, the description provides no guidance on filtering, pagination, or response shape. It is wholly inadequate for calling the tool correctly.

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?

There are two parameters (query, params) with 0% schema description coverage and nested objects, yet the description says nothing about what may be passed in query or params. It entirely fails to compensate for the schema gap.

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

Purpose2/5

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

The description only restates the tool title/path twice ("GET /api/accounting/journal-close/batches") without saying what a "journal close batch" is or what listing them returns. With many sibling journal-close tools (runs, profiles, setups, catalog), an agent cannot distinguish this tool from them based on the description.

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 guidance is that "describe_operation provides native request schemas," which points to a meta tool rather than explaining when to use this endpoint vs. siblings like get_accounting_journal_close_runs or get_accounting_journal_close_catalog. No when-to-use, no exclusions.

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

get_accounting_journal_close_catalog_769af96434519810c165b668accounting: GET /api/accounting/journal-close/catalogD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/catalog. GET /api/accounting/journal-close/catalog. Operation ID: 769af96434519810c165b668; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, covering the safety profile. The description adds nothing beyond that—no indication of what the catalog returns, whether it is user-scoped, or any pagination/auth behavior—so it contributes no behavioral context of its own.

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

Conciseness2/5

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

The description wastes its length by repeating the identical endpoint string twice and appending an opaque operation ID, while omitting any actual explanatory content. Not under-specified for lack of space, but structurally redundant.

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, 0% schema coverage, and a nested free-form 'query' object, the description should explain what is returned and what query supports. It provides none of that, so an agent cannot confidently invoke this tool without first calling describe_operation.

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 two parameters ('query' as a free-form object and an empty 'params' object) are entirely undocumented. The description says nothing about what query keys are accepted or what they filter, leaving the agent with no usable parameter semantics.

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

Purpose2/5

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

The description is just the endpoint path 'GET /api/accounting/journal-close/catalog' repeated twice, which restates the tool name/title rather than explaining what a journal-close catalog is or contains. An agent learns only that this is some GET on a journal-close catalog, with no differentiation from the many sibling journal-close endpoints.

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 guidance is 'describe_operation provides native request schemas', which tells the agent where to find parameter details but not when to use this endpoint versus siblings like get_accounting_journal_close_configurat_... or get_accounting_journal_close_profiles_.... No when-to-use or exclusion criteria are present.

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

get_accounting_journal_close_company_co_302ec776eae89649cb5ba2a0accounting: GET /api/accounting/journal-close/company-contextD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/company-context. GET /api/accounting/journal-close/company-context. Operation ID: 302ec776eae89649cb5ba2a0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing — no note on what the context payload contains, scoping, or how it relates to a close run — so it fails to add value beyond 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.

Conciseness2/5

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

Brief, but the only content is a duplicated path string, which is pure waste rather than front-loaded information. Under-specification, not conciseness.

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

Completeness1/5

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

With no output schema, 0% parameter documentation, and an opaque free-form query object, the description should carry the load and does not. An agent cannot call this correctly without further exploration.

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 there are two parameters, including a nested free-form 'query' object with arbitrary properties. The description provides no parameter meaning whatsoever, leaving the agent to guess at filter keys.

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

Purpose2/5

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

The description is just the endpoint path repeated verbatim twice, plus an operation ID. It never states what 'company-context' actually returns or how it differs from the many sibling journal-close context endpoints (catalog, batches, setups, workspace, configuration).

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, when-not-to-use, or alternative routing is given beyond a pointer that describe_operation exposes native request schemas. An agent has no basis for preferring this over the other journal-close endpoints.

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

get_accounting_journal_close_company_se_21dcf24837172fbc567b6834accounting: GET /api/accounting/journal-close/company-settingsD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/company-settings. GET /api/accounting/journal-close/company-settings. Operation ID: 21dcf24837172fbc567b6834; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered by structured data. The description adds nothing about what settings are returned, scope (company vs workspace), or auth requirements beyond pointing to describe_operation.

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

Conciseness2/5

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

Short, but the path is duplicated verbatim and the operation ID adds no decision value. It is under-informative rather than concise.

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 2 undocumented parameters, 0% schema coverage, and no output schema, the description should explain request shape and return content. It only defers to describe_operation, leaving real gaps for an agent that must call it blind.

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 schema is a generic free-form 'query' object plus empty 'params'. The description makes no attempt to explain what those parameters accept, so an agent has no idea which query keys are valid.

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

Purpose2/5

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

The description only restates the endpoint path twice: 'GET /api/accounting/journal-close/company-settings.' It names a resource but adds no verb-level explanation of what the endpoint returns, and it is indistinguishable from a dozen sibling journal-close endpoints (company_co, configurat, catalog, setups). This is close to tautology against the title.

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

Usage Guidelines1/5

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

No guidance on when to call this versus the many other journal-close read endpoints. The only directive is 'describe_operation provides native request schemas,' which is a discovery hint, not usage guidance.

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

get_accounting_journal_close_configurat_efc128a23fda53dd4b11ba3aaccounting: GET /api/accounting/journal-close/configurationD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/configuration. GET /api/accounting/journal-close/configuration. Operation ID: efc128a23fda53dd4b11ba3a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no auth requirements, no note about what configuration scope is returned, no pagination or caching behavior.

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

Conciseness2/5

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

The definition is short but broken: the same endpoint path appears twice back-to-back, which is pure duplication rather than front-loaded content. The only other sentence contains an operation ID and a pointer, neither of which conveys operational meaning.

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

Completeness1/5

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

With no output schema, 0% schema description coverage, and no annotations-uncovered details in the text, the description is essentially a placeholder. An agent cannot tell what configuration values are returned or how to filter via the free-form query object.

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% with two parameters (a free-form 'query' object and an empty 'params' object), and the description provides no parameter information at all. The agent gets no syntax, filtering, or naming guidance to compensate for the schema gap.

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

Purpose2/5

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

The description is a verbatim repetition of the endpoint path with no elaboration of what the configuration object contains or what 'journal close configuration' means. The path implies a GET on a resource, but it does nothing to distinguish this from the many sibling journal-close endpoints (catalog, setups, profiles, workspace, company_config).

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 guidance is a pointer that 'describe_operation provides native request schemas', which helps discovery but gives no when-to-use or when-not-to-use criteria. There is no routing to the many relevant sibling tools such as get_accounting_journal_close_setups_by_ or get_accounting_journal_close_company_co_.

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

get_accounting_journal_close_dimension__eaf4ccfadc2e63425b7f3aceaccounting: GET /api/accounting/journal-close/dimension-sourcesD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/dimension-sources. GET /api/accounting/journal-close/dimension-sources. Operation ID: eaf4ccfadc2e63425b7f3ace; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description contributes nothing beyond that — no statement of what is returned, whether results are scoped to a workspace/period, pagination, or side effects.

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

Conciseness2/5

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

The description duplicates the identical URL sentence twice, which is pure waste, and the remaining content is a mechanical operation-ID string. There is no front-loaded explanation of purpose.

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 nested-object query endpoint with no output schema and no documented parameters, an agent needs meaning for the query filters and the shape of the response. The description provides neither, leaving only a pointer to describe_operation.

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 there are two parameters (a free-form 'query' object with additionalProperties and an empty 'params' object). The description says nothing about what should go in 'query' — no filter keys, no date/period semantics — so it 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.

Purpose2/5

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

The description only restates the tool name as a raw URL path ('GET /api/accounting/journal-close/dimension-sources') twice. It never explains what a 'dimension source' is or what the endpoint returns, so an agent cannot differentiate this from the sibling get_accounting_journal_close_dimension__fbf666ceb0ede2498b035498.

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 named alternative among the many journal-close siblings. The only actionable pointer is the note that describe_operation provides native request schemas, which is a hint about schema discovery rather than about when this tool is appropriate.

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

get_accounting_journal_close_dimension__fbf666ceb0ede2498b035498accounting: GET /api/accounting/journal-close/dimension-sources/:module/valuesC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/dimension-sources/:module/values. GET /api/accounting/journal-close/dimension-sources/:module/values. Operation ID: fbf666ceb0ede2498b035498; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds no behavioral context of its own — no note on response shape, pagination, or what a "dimension source" is in this domain.

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

Conciseness2/5

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

The same path sentence appears twice back-to-back, which is pure waste, and the remaining sentence is a metadata pointer rather than substantive content. Nothing is front-loaded to tell an agent what the tool does.

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?

No output schema and zero schema descriptions mean the description must carry the burden, yet it supplies neither purpose detail, module value semantics, nor the structure of the nested query object. An agent cannot confidently invoke this from the definition alone.

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 2 parameters. The description only echoes ':module' from the path, giving no semantics for allowed module values, and says nothing about the arbitrary free-form 'query' object, leaving both parameters effectively undocumented.

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

Purpose2/5

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

The description is just the endpoint path repeated verbatim twice, plus an operation ID. The path does imply a read of dimension-source values for a given module, but there is no verb-level statement of what the tool returns and no differentiation from the similarly named sibling get_accounting_journal_close_dimension__eaf4ccfadc2e63425b7f3ace.

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 statement of when to use this versus the many other journal-close endpoints. The only guidance is "describe_operation provides native request schemas", which points at how to discover the contract, not when this tool is the right call.

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

get_accounting_journal_close_integratio_577cbc92d0bd522c0b490bd8accounting: GET /api/accounting/journal-close/integration-formatD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/integration-format. GET /api/accounting/journal-close/integration-format. Operation ID: 577cbc92d0bd522c0b490bd8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond the path and a pointer to describe_operation: no mention of scope, permissions, or what the payload contains.

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

Conciseness2/5

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

It is short, but two of its three clauses are the identical URL path, which is pure waste. Content is not front-loaded with anything useful because there is nothing to front-load.

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 a 0%-documented nested query object and no output schema, the description should explain accepted query keys and the shape of the response. It does neither, so an agent cannot call this correctly without first calling describe_operation.

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 free-form 'query' object accepts arbitrary keys with no documentation anywhere. The description provides no parameter meaning at all, leaving the agent to guess what filters or identifiers the endpoint accepts.

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

Purpose2/5

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

The description only restates the HTTP verb and path, and does so twice. It tells the agent this is a GET on journal-close integration-format, but never says what an 'integration format' is or what the endpoint returns, so it cannot be distinguished from the many sibling journal-close GETs beyond the URL slug.

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 or when-not-to-use guidance, and no comparison against siblings like get_accounting_journal_close_catalog or get_accounting_journal_close_configurat. The only actionable hint is the redirect to describe_operation for schemas, which is a schema pointer rather than usage guidance.

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

get_accounting_journal_close_liability__2d570b1c978b70aceb9c5cadaccounting: GET /api/accounting/journal-close/liability-presentationC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/liability-presentation. GET /api/accounting/journal-close/liability-presentation. Operation ID: 2d570b1c978b70aceb9c5cad; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing behavioral beyond that — no indication of what data is returned, whether results are period-scoped, pagination, or required permissions. Its sole extra content is a referral to describe_operation.

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

Conciseness3/5

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

Short, but the first sentence is duplicated verbatim — pure waste in an already minimal definition. The useful clause (operation ID plus the describe_operation pointer) is buried after the repetition rather than front-loaded.

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 a fully opaque nested query object, no output schema, and dozens of near-identically named journal-close siblings, the definition is far too thin to guide correct invocation. The describe_operation referral is the only bridge to the real contract, and it is not enough on its own.

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 two parameters are an untyped free-form `query` object (additionalProperties: {}) and an empty `params` object. The description gives no parameter meaning at all; it only notes that describe_operation exposes the native request schemas, which partially mitigates the opacity but does not document anything itself.

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

Purpose2/5

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

The text is the endpoint path repeated verbatim twice: "GET /api/accounting/journal-close/liability-presentation." It restates the name/title rather than explaining in plain language what a "liability presentation" for a journal close actually is or returns. An agent learns only the HTTP verb and URL slug, which is marginally more than the name alone.

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 exclusions, and no differentiation from the many sibling journal-close endpoints (batches, aggregation, profiles, runs, unassigned, workspace). The only actionable pointer is that describe_operation supplies native request schemas, which is a parameter-discovery hint, not usage guidance.

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

get_accounting_journal_close_profiles_b_529dea391d4b5f57ca4bd203accounting: GET /api/accounting/journal-close/profiles/:id/baselineD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/profiles/:id/baseline. GET /api/accounting/journal-close/profiles/:id/baseline. Operation ID: 529dea391d4b5f57ca4bd203; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds essentially nothing beyond a pointer to describe_operation, giving no information about error behavior, what a baseline represents, or response shape.

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

Conciseness2/5

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

The single sentence is duplicated verbatim, wasting half the text, and the remaining operation-ID/describe_operation note is boilerplate. No front-loaded explanation of the tool's effect.

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 0% schema coverage, no output schema, and a nested query object, the description is far too thin to let an agent call this correctly. Nothing explains what 'baseline' data is or what the untyped query parameters do.

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 parameters, so the description would need to explain 'id' and the free-form 'query' object. It only implicitly shows ':id' in the path, leaving the query object and id format/constraints (maxLength 2000, string) undocumented.

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

Purpose2/5

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

The description only repeats the endpoint path 'GET /api/accounting/journal-close/profiles/:id/baseline' twice, with no natural-language explanation of what a 'baseline' profile is or what is returned. The path does imply a read of a baseline resource scoped to an id, but it adds nothing the title doesn't already state and gives no way to distinguish this tool from the many sibling get_accounting_journal_close_profiles_b_* variants.

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

Usage Guidelines1/5

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

No when-to-use guidance, no mention of alternatives such as describe_operation or the sibling profile tools, and no prerequisites. The agent is left to infer usage entirely from the URL.

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

get_accounting_journal_close_profiles_b_9a1da60751bdac3e1433dbf4accounting: GET /api/accounting/journal-close/profiles/:id/input-reviewC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/profiles/:id/input-review. GET /api/accounting/journal-close/profiles/:id/input-review. Operation ID: 9a1da60751bdac3e1433dbf4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no note on what the review payload contains, whether it is computed on demand, or any scoping behavior.

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

Conciseness2/5

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

The core sentence is duplicated word-for-word with zero added information, and the remainder is an operation ID plus a pointer to another tool. Short, but the space is not earned — duplication is pure noise.

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, 0% parameter description coverage, and a nested free-form query object, the description should explain what the input-review response contains and how the query is used. It provides none of that, leaving the agent unable to use the tool confidently beyond the bare minimum.

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. The path string conveys that :id identifies a profile, but the free-form 'query' object (additionalProperties: {}) has no documented meaning anywhere in the description or schema, and :id's expected format is not clarified beyond minLength/maxLength.

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

Purpose2/5

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

The description is the raw endpoint path repeated twice verbatim, which merely restates the tool name and title without explaining in plain language what an 'input review' for a journal close profile is or what it returns. An agent learns only that it is a GET on an :id-scoped sub-resource.

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 use this tool versus the many sibling journal-close endpoints (batches, runs, setups, workspace, catalog). The only actionable sentence points to describe_operation for request schemas, which is a schema hint rather than usage guidance.

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

get_accounting_journal_close_profiles_b_a496f5b15415c25eece9d650accounting: GET /api/accounting/journal-close/profiles/:idC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/profiles/:id. GET /api/accounting/journal-close/profiles/:id. Operation ID: a496f5b15415c25eece9d650; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing behavioral beyond that — no note on 404 behavior for a missing id, no auth/scope requirements, no pagination or return-shape hints. The describe_operation pointer is the sole marginal contribution.

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

Conciseness2/5

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

Short, but the first sentence is duplicated verbatim, which is pure waste rather than concision. The operation ID and the describe_operation pointer are buried in a trailing clause rather than front-loaded as the actionable instruction.

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 nested-parameter, 2-arg retrieval endpoint with no output schema and 0% schema description coverage, the description should at minimum explain the id and what is returned. It supplies neither, relying entirely on a redirect to describe_operation, so an agent cannot call this correctly from the definition alone.

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 required 'id' path parameter or the optional 'query' object. The single sentence 'describe_operation provides native request schemas' acknowledges that schemas live elsewhere but doesn't convey any parameter meaning (format, source of the id, allowed query keys), leaving the agent to guess.

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

Purpose2/5

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

The description is essentially a restatement of the tool name and URL path with no added meaning: 'GET /api/accounting/journal-close/profiles/:id' appears verbatim twice. It implies a retrieve-by-id of a journal close profile, but doesn't say what a 'profile' is or how it differs from the many sibling journal-close profile tools (three similarly-named profile endpoints).

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 or when-not-to-use guidance, and no discrimination against the closely-named siblings get_accounting_journal_close_profiles_b_529dea..., _9a1da6..., or get_profile. The only actionable pointer is the generic 'describe_operation provides native request schemas', which is a discovery hint rather than usage guidance.

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

get_accounting_journal_close_runs_110a7b0396175f5089714ecaaccounting: GET /api/accounting/journal-close/runsD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/runs. GET /api/accounting/journal-close/runs. Operation ID: 110a7b0396175f5089714eca; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description adds nothing behavioral beyond that — no note on pagination, filters, default ordering, or what the run list contains.

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

Conciseness2/5

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

It is short, but the sentence is duplicated identically and the remainder is a raw operation ID and a pointer. No useful information is front-loaded, so brevity here reflects under-specification rather than efficiency.

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

Completeness1/5

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

With no output schema, zero parameter coverage, and no behavioral notes, the description leaves an agent unable to determine how to call or interpret this endpoint. It does not meet the burden for a 2-parameter, nested-object list tool.

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 there are two parameters (a free-form query object and an empty params object). The description provides no parameter meaning, accepted query keys, or format, so an agent gets nothing from the text.

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

Purpose2/5

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

The description just repeats the raw endpoint path verbatim, twice. The path does reveal the resource (journal close runs), but no natural-language verb or scope is given, so it essentially restates the title/name rather than explaining the operation.

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 among the many journal-close siblings (e.g., the by-id run endpoints or batches). The only hint is that describe_operation provides native request schemas, which is a tooling pointer, not usage guidance.

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

get_accounting_journal_close_runs_by_id_196eafa1a664004e4d9dac1caccounting: GET /api/accounting/journal-close/runs/:idC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/runs/:id. GET /api/accounting/journal-close/runs/:id. Operation ID: 196eafa1a664004e4d9dac1c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds no behavioral context of its own — nothing about what the run record contains, error behavior for an unknown id, required permissions, or scoping to a workspace/company.

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

Conciseness2/5

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

The single substantive sentence is duplicated verbatim, and the opaque hex operation ID plus a pointer to describe_operation consume much of the text without informing tool selection. Short, but the content is noise rather than front-loaded signal.

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 no output schema, a nested query object, and 0% parameter documentation, the description should at minimum explain the run resource and the id's meaning. It does neither, so an agent cannot predict the return shape or confidently construct the query parameter.

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 2 parameters, so the description carries the burden and does not meet it. The only information conveyed is the ':id' path template, which implies params.id identifies a run; the 'query' object parameter is completely unexplained in both the schema and the description.

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

Purpose2/5

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

The description restates the tool name and HTTP path verbatim ('GET /api/accounting/journal-close/runs/:id') without saying what a journal close run is or what the response represents. It technically indicates a read-by-ID operation, but adds nothing beyond the title, and does not distinguish this tool from the several sibling tools with identical 'journal_close_runs_by_id' names.

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 exclusions, and no pointer to alternatives such as get_accounting_journal_close_runs_110a7b0396175f5089714eca (the list endpoint). The only routing hint is 'describe_operation provides native request schemas', which concerns parameter discovery rather than tool selection.

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

get_accounting_journal_close_runs_by_id_3a80565f14bf3a616376feccaccounting: GET /api/accounting/journal-close/runs/:id/activityC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/runs/:id/activity. GET /api/accounting/journal-close/runs/:id/activity. Operation ID: 3a80565f14bf3a616376fecc; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond the endpoint path plus a pointer to describe_operation - no disclosure of what 'activity' returns, pagination, or filtering behavior.

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

Conciseness2/5

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

The one meaningful sentence is duplicated verbatim, wasting the entire body of the description, and no information is front-loaded beyond the raw route.

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 0% schema coverage on both parameters, the description would need to explain the run-activity payload and query filters to be usable. It provides neither, delegating everything to describe_operation without telling the agent when that delegation is warranted.

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%, with an `id` path param and an untyped `query` object, so the description must compensate and does not. The ':id' in the path hints that id is the run identifier, but nothing explains accepted query parameters or constraints (maxLength 2000).

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

Purpose2/5

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

The description is essentially the endpoint path restated twice, so the resource (journal-close run activity for a given id) is inferable only by decoding the URL. It offers no verb-level description of what the 'activity' payload contains and does nothing to distinguish it from the many sibling journal-close runs endpoints.

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 guidance is the pointer that 'describe_operation provides native request schemas', which vaguely indicates an alternative tool for schema lookup. There is no statement of when to call this vs. the numerous sibling run endpoints (batches, profiles, unassigned, workspaces) or what preconditions apply.

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

get_accounting_journal_close_runs_by_id_d11e1e1a1567456281385fe8accounting: GET /api/accounting/journal-close/runs/:id/statusC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/runs/:id/status. GET /api/accounting/journal-close/runs/:id/status. Operation ID: d11e1e1a1567456281385fe8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered. The description contributes nothing beyond that: no indication of what the 'status' payload represents, no auth/scope requirements, no note on what happens for a run in an invalid state.

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

Conciseness2/5

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

It is short, but the single sentence is duplicated verbatim, so half the text is pure waste. There is no front-loaded plain-language statement of purpose, just a raw HTTP path.

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?

A read tool with no output schema needs the description to say what comes back (run status, current stage, completion state). Here the description is functionally a generated route stub plus a pointer to describe_operation; an agent has no idea what the response looks like or how it differs from the four sibling run-status/run-detail 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% across 2 parameters. The path template ':id' at least lets an agent map params.id to the journal close run identifier, which is the one piece of meaning added. The 'query' object (additionalProperties: {}) is left entirely unexplained in both schema and description.

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 is a restatement of the endpoint path 'GET /api/accounting/journal-close/runs/:id/status', from which an agent can infer it retrieves the status of a journal close run by ID. However, it never says so in plain language and does nothing to distinguish it from the several sibling tools named get_accounting_journal_close_runs_by_id_196eafa..., _3a80565..., _e033511..., which likely hit adjacent sub-resources of the same run.

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 statement of when to prefer this tool over the sibling journal-close run endpoints. The only routing hint is that 'describe_operation provides native request schemas', which points to a metadata tool, not to usage conditions or alternatives.

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

get_accounting_journal_close_runs_by_id_e0335119f49fb4d5ff6f03d7accounting: GET /api/accounting/journal-close/runs/:id/reconciliationC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/runs/:id/reconciliation. GET /api/accounting/journal-close/runs/:id/reconciliation. Operation ID: e0335119f49fb4d5ff6f03d7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no hint about what reconciliation payload contains, whether it is a snapshot vs live computation, or any scoping/auth context.

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

Conciseness2/5

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

The same URL sentence is printed twice back-to-back, which is pure duplication, and the remaining sentence is a boilerplate pointer. There is no front-loaded purpose statement, so the little content present is not efficiently structured.

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?

No output schema exists, so the description should at least characterize the returned reconciliation data; it does not. With zero parameter documentation and four sibling tools with nearly identical names, the definition leaves an agent unable to confidently choose or correctly call it.

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 (required 'id' plus a free-form 'query' object). The description only embeds ':id' in the URL template, implicitly tying the id param to the path, and says nothing about the 'query' bag or id format/constraints (maxLength 2000). This 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.

Purpose2/5

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

The description is a verbatim repeat of the title/URL path ('GET /api/accounting/journal-close/runs/:id/reconciliation'), which restates the name rather than explaining in plain language what the call returns. An agent can infer 'fetch reconciliation for a journal close run', but nothing distinguishes it from the many sibling runs-by-id endpoints (e.g. get_accounting_journal_close_runs_by_id_196eafa1..., _3a80565f..., _d11e1e1a...).

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 or when-not-to-use guidance is given. The only actionable pointer is 'describe_operation provides native request schemas', which is a schema-discovery hint, not a routing rule between this and the several near-identical journal-close runs siblings.

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

get_accounting_journal_close_setups_by__3b5879515c627497ec60f583accounting: GET /api/accounting/journal-close/setups/:id/versionsC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/setups/:id/versions. GET /api/accounting/journal-close/setups/:id/versions. Operation ID: 3b5879515c627497ec60f583; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world scope, so the safety profile is covered. The description adds nothing beyond that: no pagination behavior, no ordering of versions, no note on what happens if the setup id doesn't exist, and no return shape.

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

Conciseness2/5

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

The description is short but padded: the identical endpoint path is printed twice, and the second copy carries no new information. The only substantive sentence is a pointer to describe_operation, so the space is not well spent.

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?

No output schema exists and nothing in the description explains what the versions list contains or how it is shaped, which matters for a nested-object tool. Combined with an undocumented query parameter, an agent has to fall back on describe_operation for anything beyond the raw URL.

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 and it does not. The ':id' is only visible as a URL placeholder with no statement that it is the journal-close setup identifier, and the free-form 'query' object parameter is entirely unaddressed in the description.

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 restates the endpoint path 'GET /api/accounting/journal-close/setups/:id/versions', which does convey a verb (retrieve) and resource (versions of a journal-close setup). However, it never explains in plain language what a 'version' is here, and it does nothing to distinguish this from the many other journal-close siblings such as get_accounting_journal_close_profiles_* or get_accounting_journal_close_runs_by_id_*.

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 versus alternatives. The only pointer is 'describe_operation provides native request schemas', which redirects to a schema helper rather than explaining selection criteria. No prerequisites, no exclusions.

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

get_accounting_journal_close_unassigned_202736bb0b9440bdacf2d42aaccounting: GET /api/accounting/journal-close/unassigned-leasesD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/unassigned-leases. GET /api/accounting/journal-close/unassigned-leases. Operation ID: 202736bb0b9440bdacf2d42a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered by structured data. The description contributes nothing beyond that — no mention of what the response contains, whether it is scoped to a period, or what 'unassigned' implies.

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

Conciseness2/5

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

The endpoint path is duplicated verbatim in consecutive sentences, which is waste rather than conciseness. The operation ID and describe_operation pointer are the only non-redundant content.

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?

No output schema exists, so the description carries the burden of describing the return shape, and it does not. Combined with a 0%-documented parameter schema and a vague resource noun ('unassigned'), an agent cannot confidently call or interpret this tool.

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 the two parameters (an open-ended 'query' object and an empty 'params' object). For an endpoint whose only filtering mechanism is an untyped query blob, the description should explain accepted query keys, and it does not.

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

Purpose2/5

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

The description only repeats the raw endpoint path twice; it restates the title rather than explaining what 'unassigned leases' means in a journal-close context. An agent gets a resource path but no semantics to distinguish this from the dozens of sibling journal-close GET tools (batches, runs, profiles, setups).

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, when-not-to-use, or alternative guidance is given. The only actionable hint is the pointer to describe_operation for native request schemas, which is a meta-instruction rather than usage context.

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

get_accounting_journal_close_workspace_1c461b17f5dfc3bd94605c19accounting: GET /api/accounting/journal-close/workspaceD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-close/workspace. GET /api/accounting/journal-close/workspace. Operation ID: 1c461b17f5dfc3bd94605c19; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds nothing beyond a pointer to describe_operation — no indication of what the workspace response contains, whether it is per-entity/per-period scoped, or how large it may be.

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

Conciseness2/5

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

The first sentence is duplicated verbatim, wasting half the text, and the remaining content is a technical identifier plus a meta-instruction. Nothing is front-loaded in terms of useful meaning.

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, an undocumented free-form query parameter, and a nested 'query' object, the description leaves the agent unable to construct a correct call without first invoking describe_operation. It is not adequate for the tool's complexity.

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 there are two parameters (a free-form 'query' object and an empty 'params' object). The description says nothing about either, so an agent has no idea what query keys are accepted — exactly the case where the description is required to compensate.

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

Purpose2/5

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

The description is essentially the raw endpoint path repeated twice, so it names a resource ('journal-close/workspace') and an HTTP verb, but never explains what a 'workspace' is or what data comes back. It offers no differentiation from close-related siblings such as get_accounting_journal_close_batches or get_accounting_journal_close_profiles.

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 or when-not-to-use guidance is given. The only routing hint is 'describe_operation provides native request schemas,' which tells the agent how to get more info rather than when to pick this tool over its many siblings.

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

get_accounting_journal_entries_by_id_ap_79572c9fbc9f064d24790753accounting: GET /api/accounting/journal-entries/:id/approval-trailC
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-entries/:id/approval-trail. GET /api/accounting/journal-entries/:id/approval-trail. Operation ID: 79572c9fbc9f064d24790753; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world scope, so the safety profile is covered. The description adds nothing beyond that: no mention of what an approval trail contains, whether entries are ordered, paginated, or empty for unapproved journals.

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

Conciseness2/5

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

The first sentence is repeated verbatim, which is pure waste, and the useful content (operation ID, schema pointer) is buried after it. Nothing is front-loaded in human-readable form.

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?

No output schema, no annotation-level detail about the response, and no description of the returned approval trail. For a nested-object, two-parameter retrieval endpoint, an agent would need to fall back entirely on describe_operation to call this 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%, so the description carries the burden and fails to meet it. The path implies 'id' is a journal entry identifier, which is a small gain, but the 'query' object parameter is never explained and no format, constraint, or expected value is given.

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 endpoint path does encode a specific verb+resource (GET the approval trail of a journal entry identified by :id), so an agent can infer the purpose. But the description only restates the URL twice and never says it in plain language, nor does it distinguish this from siblings like get_approvals_by_id or get_journal_entries_by_id.

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 or when-not-to-use guidance, and no indication of how this relates to the other approval and journal-entry tools. The only actionable hint is that describe_operation exposes native request schemas, which is a schema-discovery note rather than usage guidance.

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

get_accounting_journal_entries_true_up__469a7ce87fb97f43879e6f71accounting: GET /api/accounting/journal-entries/true-up/configurationD
Read-onlyIdempotent
Inspect

GET /api/accounting/journal-entries/true-up/configuration. GET /api/accounting/journal-entries/true-up/configuration. Operation ID: 469a7ce87fb97f43879e6f71; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own beyond noting that schemas live in describe_operation; 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.

Conciseness2/5

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

The same URL sentence appears twice, which is pure duplication rather than conciseness. There is nothing front-loaded beyond the path, so the repeated sentence wastes space without adding meaning.

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

Completeness1/5

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

For a tool with a free-form query object, no output schema, and no documented return values, the description supplies none of the information an agent would need to invoke it correctly. It is effectively a bare endpoint stub.

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 there are two parameters, including a free-form 'query' object with additionalProperties and an empty 'params' object. The description provides no information about what query keys are accepted or what they filter, leaving both parameters entirely undocumented.

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

Purpose2/5

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

The description only repeats the raw URL path 'GET /api/accounting/journal-entries/true-up/configuration' twice. It names a resource and HTTP verb, but never explains in plain terms what a 'true-up configuration' is or what the call returns, so an agent must infer purpose purely from the path string.

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 to use this endpoint versus siblings such as get_journal_entries or describe_operation. The only procedural hint is that 'describe_operation provides native request schemas,' which is a discovery pointer, not usage guidance.

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

get_accounting_leases_by_id_accounting__39f2fa821156166eec377c50accounting: Inspect saved accounting setup, rent schedules, options and measurement readiness without changing anythingB
Read-onlyIdempotent
Inspect

Inspect saved accounting setup, rent schedules, options and measurement readiness without changing anything. GET /api/accounting/leases/:id/accounting-context. Operation ID: 39f2fa821156166eec377c50; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and 'without changing anything' merely restates that. The description does add value by enumerating the aggregate contents (setup, rent schedules, options, readiness) and giving the underlying route, but says nothing about payload size, pagination, or errors.

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; the substantive content comes first and the route/operation-id metadata trails it. No filler, though the operation-id sentence is utility metadata rather than description.

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, listing the sections returned is genuinely helpful, and the note that describe_operation carries native request schemas is useful. Still, the undocumented 'query' parameter and lack of any return-shape detail leave gaps for a nested-object read 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 description coverage is 0%, so the description must carry the burden. It only conveys lease id via the ':id' path template; the generic 'query' object is not explained at all, leaving half the parameters 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?

States a specific verb (inspect) plus the concrete resources returned: accounting setup, rent schedules, options, and measurement readiness, scoped to a lease by id. This distinguishes it from narrower siblings such as the dedicated rent-schedule or measurement endpoints, though it never names those siblings 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?

The phrase 'without changing anything' implies this is the safe read path, and the listed payload hints at when an agent would want it (checking measurement readiness before posting). But there is no explicit when-to-use/when-not guidance and no pointer to the parallel per-topic endpoints an agent might prefer.

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

get_accounting_leases_by_id_accounting__47a241eb321f7843f834d27daccounting: GET /api/accounting/leases/:id/accounting-profilesC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/accounting-profiles. GET /api/accounting/leases/:id/accounting-profiles. Operation ID: 47a241eb321f7843f834d27d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds essentially nothing beyond pointing at describe_operation: no note on pagination, error behavior, permission needs, or what the accounting-profiles payload contains.

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

Conciseness2/5

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

The first sentence is duplicated, which wastes the front-loaded position on redundancy rather than on what the tool returns. The trailing operation-ID boilerplate is machine metadata rather than guidance.

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 endpoint with a nested free-form query object and no output schema, the agent needs at least the shape of the returned accounting profiles and how query parameters are forwarded. Neither is present; the description is barely above the endpoint signature alone.

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: the required lease id and an unconstrained free-form query object. The description supplies no meaning for either, not even that id is the lease identifier, leaving the agent to infer everything from the path template.

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

Purpose2/5

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

The description is the URL path repeated verbatim twice, so the purpose can only be inferred from the endpoint string (retrieve accounting profiles for a lease id). It offers no differentiation from the three other get_accounting_leases_by_id_accounting__* siblings, which are indistinguishable by their hashed names.

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 to use this tool, when not to, or which sibling to prefer. The only actionable direction is a pointer to describe_operation for request schemas, which is a discovery hint rather than usage guidance.

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

get_accounting_leases_by_id_accounting__c398faeab9310d674601767faccounting: GET /api/accounting/leases/:id/accounting-reset-previewC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/accounting-reset-preview. GET /api/accounting/leases/:id/accounting-reset-preview. Operation ID: c398faeab9310d674601767f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the endpoint string: it doesn't say whether 'reset preview' is a dry-run computation, what data it computes over, or whether it requires the lease to be in a particular accounting state. For a preview/computation endpoint, that missing semantics is significant.

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

Conciseness2/5

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

The opening sentence is duplicated verbatim, which is pure waste, and the remaining content is metadata boilerplate (operation ID, describe_operation pointer) rather than front-loaded purpose. Short, but under-specified rather than concise.

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?

No output schema, no annotations gap to lean on, 0% param coverage, and a nested free-form query object: this is a case where the description needed to carry real weight. It supplies none of the information an agent needs to decide to call it or interpret the preview result, deferring everything to describe_operation.

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 and it does not: the required `id` path param and an untyped free-form `query` object are never explained. No mention of format for the lease id, what query filters (if any) are honored, or defaults. The description only tells the agent to go look elsewhere.

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

Purpose2/5

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

The description is just the raw endpoint restated twice (identical sentence duplicated), plus an operation ID and a pointer to describe_operation. There is no verb/resource explanation of what an 'accounting-reset-preview' actually returns or means, and nothing distinguishes it from the many sibling get_accounting_leases_by_id_* endpoints. The path is the only semantic signal, making this close to tautology.

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 statement of when to call this versus the dozens of sibling lease-accounting GET endpoints (e.g. get_accounting_leases_by_id_journal_ent_*, get_accounting_leases_by_id_amortizatio_*). The only guidance is an implicit redirect to describe_operation, which places the burden entirely on another tool rather than telling the agent when this preview is appropriate.

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

get_accounting_leases_by_id_amortizatio_99d2473bf5f3fb3589b7c0a5accounting: GET /api/accounting/leases/:id/amortization-scheduleC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/amortization-schedule. GET /api/accounting/leases/:id/amortization-schedule. Operation ID: 99d2473bf5f3fb3589b7c0a5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds nothing beyond pointing at describe_operation for request schemas — no note on auth, scoping, whether the schedule is computed or persisted, or what an empty result means.

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

Conciseness2/5

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

Two sentences, and the first is duplicated word for word — pure waste. The one useful piece of information (describe_operation) is buried at the end of an operation ID string.

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?

A read endpoint with no output schema, a nested unconstrained query object and 0% schema description coverage needs prose to be callable correctly. Nothing here explains the response shape, filtering via query, or units/periods of the schedule, so an agent must blindly call describe_operation first.

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 carry the parameter burden, and it largely doesn't. The path template at least reveals that 'id' is a lease identifier, which the schema itself never states, but the free-form 'query' object is entirely unexplained.

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 REST path does convey a verb (GET) and a resource (a lease's amortization schedule), and the path token distinguishes it from siblings such as payment_sch or liability_s_ under the same leases/:id family. But the intent is only inferable from a URL fragment, and the sentence is repeated verbatim with no plain-language statement of what an amortization schedule is.

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 routing hint is 'describe_operation provides native request schemas', which tells the agent to make a meta-call but says nothing about when to fetch amortization versus payment schedule or liability schedule, or what preconditions exist.

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

get_accounting_leases_by_id_classificat_ebade756392ea13ae975fd9aaccounting: GET /api/accounting/leases/:id/classification-testsC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/classification-tests. GET /api/accounting/leases/:id/classification-tests. Operation ID: ebade756392ea13ae975fd9a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no pagination behavior, no filter semantics for the free-form `query` object, no statement of what is returned or whether the lease must exist. It does not contradict the annotations, but it contributes no extra 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.

Conciseness2/5

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

Two sentences, and the first is the identical path repeated twice — pure waste. The only non-redundant content is the trailing clause about describe_operation, which is buried at the end rather than front-loaded.

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, but the description never compensates: it gives no return-value shape, no pagination guidance, and no param semantics for a tool with 0% schema coverage and a required nested `params` object. For a read endpoint on a deeply nested lease resource, an agent cannot call this correctly from the description alone.

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, so the description bears the full burden and discharges none of it. The `:id` in the path weakly implies `params.id` is the lease identifier, but nothing explains the free-form `query` object's accepted keys (pagination? filters?), which is exactly the gap the schema leaves open.

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

Purpose2/5

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

The description is a verbatim restatement of the URL path already embedded in the tool name and title, repeated twice. It conveys that this is a GET of lease classification tests only through the raw path string, with no plain-language statement of what a 'classification test' resource is or what the response represents. Effectively tautological.

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 actionable sentence points at describe_operation for native request schemas, which is a routing hint but not a when-to-use rule. There are at least two siblings keyed on leaseId/classification-tests (get_accounting_leases_by_leaseId_classi_...) and dozens of other lease-by-id sub-resource getters, and the description does nothing to say which to pick or when.

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

get_accounting_leases_by_id_direct_cost_09107c5fd73b203224088e57accounting: GET /api/accounting/leases/:id/direct-costsC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/direct-costs. GET /api/accounting/leases/:id/direct-costs. Operation ID: 09107c5fd73b203224088e57; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that profile—no pagination, no shape of the direct-cost record, no permission scope. 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.

Conciseness2/5

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

Short, but the first sentence is duplicated verbatim, and no content is front-loaded beyond the path. Brevity here comes from under-specification rather than economy.

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?

No output schema exists, and the description carries none of the burden of explaining return values, response shape, or query semantics for a nested-object request. For a two-parameter nested request with zero schema documentation, far more is needed.

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 two parameters (a required path id and an untyped query object). The description only mirrors ':id' from the URL and says nothing about the id format or what query filters are accepted, so it 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.

Purpose2/5

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

The description is a verbatim restatement of the endpoint path in the tool name/title, repeated twice. An agent can infer 'fetch direct costs for a lease by id', but nothing explains what a direct cost is or how this differs from the dozens of sibling get_accounting_leases_by_id_* sub-resource 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 when-to-use guidance, no prerequisites, and no naming of alternatives. The only actionable sentence points at describe_operation for schemas, which is a workflow hint rather than usage guidance for this tool's selection.

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

get_accounting_leases_by_id_journal_ent_29a7792a0bb0e1883e267082accounting: GET /api/accounting/leases/:id/journal-entry-readinessC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/journal-entry-readiness. GET /api/accounting/leases/:id/journal-entry-readiness. Operation ID: 29a7792a0bb0e1883e267082; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no note on what 'readiness' means, what states it returns, or whether it requires a closed period — so it contributes no behavioral context of its own.

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

Conciseness2/5

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

The same sentence appears twice verbatim, which is pure waste, and the trailing Operation ID/describe_operation note is boilerplate rather than front-loaded intent. It is short, but the redundancy means the space is not earned.

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, zero schema description coverage, and a nested 'query' object, the description carries a lot of unanswered burden: it says nothing about the response shape, what 'readiness' evaluates, or how to use the query object. An agent would have to call describe_operation or guess.

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 parameter is documented in the schema. The description only conveys that :id is a path identifier (implicitly a lease id) via the URL template, and says nothing about the free-form 'query' object, which is completely unexplained.

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 endpoint path encodes a specific verb and resource hierarchy (leases → :id → journal-entry-readiness), so an agent can infer it returns journal-entry readiness info for one lease. But the description is literally the name/title restated with no plain-language elaboration, and it does nothing to distinguish this tool from the three sibling tools named get_accounting_leases_by_id_journal_ent_30923b87..., _c70603dd..., and _d40f358e..., which look identical by 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?

There is no statement of when to use this versus the many related lease readiness/journal-entry tools (e.g. get_journal_entries_readiness, get_review_readiness, the other journal_ent siblings). The only guidance is a pointer to describe_operation for native request schemas, which is routing advice for schema lookup, not usage scoping.

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

get_accounting_leases_by_id_journal_ent_30923b87c42c5367a6652a84accounting: GET /api/accounting/leases/:id/journal-entries/:entryId/lines/:lineId/sourceC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/journal-entries/:entryId/lines/:lineId/source. GET /api/accounting/leases/:id/journal-entries/:entryId/lines/:lineId/source. Operation ID: 30923b87c42c5367a6652a84; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no statement of permissions, ordering, or what the 'source' payload represents — so it contributes essentially zero 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.

Conciseness2/5

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

The same sentence is duplicated verbatim before the operation ID, which is pure waste rather than front-loading. The content that remains (operation ID plus a pointer to describe_operation) is short but carries no substantive information an agent could act on.

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, zero parameter descriptions, and three nested path identifiers, the description would need to explain both the returned resource and the path semantics. It does provide a useful escape hatch by naming describe_operation for native schemas, but otherwise leaves an agent unable to call the tool correctly from this definition alone.

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 schema only constrains id/entryId/lineId as 1-2000 character strings with no meaning attached. The route template in the description weakly maps these to lease, journal entry, and line identifiers, which is the only semantic value added, but it never explains the untyped 'query' object or accepted formats.

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

Purpose2/5

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

The description is a verbatim repetition of the route template, which also appears in the title, so it restates structured data rather than explaining purpose. The path segments do hint that it retrieves the 'source' record for a specific journal entry line under a lease, but an agent gets no plain-language statement of what that resource actually is.

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 use this tool versus the many sibling lease/journal-entry endpoints (e.g. get_accounting_leases_by_id_journal_ent_* variants or get_journal_entries_by_id_*). The only implicit routing hint is the note that describe_operation provides native request schemas, which tells the agent to look elsewhere for details but not when this call is appropriate.

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

get_accounting_leases_by_id_journal_ent_c70603dd427e9ed89693e12eaccounting: GET /api/accounting/leases/:id/journal-entriesD
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/journal-entries. GET /api/accounting/leases/:id/journal-entries. Operation ID: c70603dd427e9ed89693e12e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety behavior is covered. The description adds nothing beyond the annotations—no return behavior, pagination, or scoping details—so it barely helps the agent understand how the tool behaves.

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

Conciseness2/5

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

The description is short but wasteful: the same endpoint path is repeated twice, and neither sentence is front-loaded with useful purpose or usage information. The operation ID sentence is the only non-redundant clause.

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

Completeness1/5

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

This is a parameterized GET endpoint with nested query support and many near-identical sibling journal-entry endpoints. The description provides no differentiation, no parameter details, and no usage context, making it inadequate for correct selection and invocation despite annotations covering safety.

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 the required `id` path parameter or the optional `query` object. It merely defers to describe_operation for native schemas, which does not compensate for the missing parameter semantics.

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

Purpose2/5

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

The description restates the endpoint path twice and adds no information beyond the name/title. It conveys that this retrieves journal entries for a lease, but that is already evident from the tool name and title. It does not distinguish this tool from the many sibling journal-entries endpoints.

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 use this tool versus alternatives such as the several other get_accounting_leases_by_id_journal_ent_* siblings or get_journal_entries_* tools. The only practical pointer is that describe_operation provides request schemas, which is not usage guidance.

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

get_accounting_leases_by_id_journal_ent_d40f358e9723148ede4fb307accounting: GET /api/accounting/leases/:id/journal-entries/:entryId/explanationD
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/journal-entries/:entryId/explanation. GET /api/accounting/leases/:id/journal-entries/:entryId/explanation. Operation ID: d40f358e9723148ede4fb307; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no indication of what the 'explanation' payload is, its size, or any auth/rate-limit context.

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

Conciseness2/5

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

The same URL line is duplicated verbatim, which is pure waste, and there is no front-loaded statement of purpose. The operation ID and describe_operation pointer are the only non-redundant content.

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

Completeness1/5

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

No output schema exists, two undocumented nested parameters, and a highly ambiguous resource name ('explanation'), so the description is the only place an agent could learn what is returned — and it says nothing. Inadequate for this complexity.

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 both required params (id, entryId) are undocumented bare strings with only min/max length. The description could clarify that id is the lease and entryId the journal entry, but it does not, leaving the agent to infer from path ordering alone.

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

Purpose2/5

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

The description is just the raw URL path repeated twice, which restates the tool title rather than explaining it in prose. The path does hint at verb (GET) and resource (a lease journal entry's 'explanation'), but no sentence says what that explanation contains or returns.

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

Usage Guidelines1/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 the many sibling lease/journal-entry endpoints (e.g. get_accounting_leases_by_id_journal_ent_29a7792a..., get_journal_entries_by_id_981714fc...). The only pointer is 'describe_operation provides native request schemas', which is a schema-routing hint, not a usage rule.

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

get_accounting_leases_by_id_liability_s_1681c2cba557d4b4b20966f2accounting: GET /api/accounting/leases/:id/liability-scheduleC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/liability-schedule. GET /api/accounting/leases/:id/liability-schedule. Operation ID: 1681c2cba557d4b4b20966f2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered and the description owes context beyond it. It adds none: nothing about the return payload (schedule rows, period columns), pagination, or whether the schedule reflects generated vs. draft data, even though no output schema exists.

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

Conciseness2/5

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

The same endpoint string is repeated twice with zero added information, which is pure redundancy rather than front-loading. The operation-ID/describe_operation sentence is boilerplate, though the pointer to describe_operation has marginal navigational value.

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 domain-specific financial endpoint (ASC 842 lease liability schedule) with no output schema, 0% parameter documentation, and nested parameters, the description supplies only the route. An agent would need to call describe_operation first to have any chance of invoking this correctly, which is exactly the gap the description should have closed.

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 including a nested required 'params.id', so the description carries the full burden and supplies no meaning at all — it doesn't state that 'id' is the lease identifier, what format it takes, or what the free-form 'query' object accepts. The ':id' in the URL is the only implicit hint.

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

Purpose2/5

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

The description only restates the tool name and HTTP path verbatim, twice, with no elaboration of what a 'liability schedule' contains or what the response represents. An agent can infer it retrieves a lease's liability schedule, but the statement is a tautology rather than an explanation, and it does nothing to distinguish this tool from the many sibling lease sub-resource tools (payment schedule, amortization, classification, measurement).

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, when-not-to-use, or sibling routing is given; with ~50 similarly named 'get_accounting_leases_by_id_*' siblings, the absence of differentiation is a real gap. The only pointer, 'describe_operation provides native request schemas,' is a meta-tool reference rather than usage guidance for this tool.

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

get_accounting_leases_by_id_measurement_d232756a048c53a57a01e3d0accounting: GET /api/accounting/leases/:id/measurement-correctionC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/measurement-correction. GET /api/accounting/leases/:id/measurement-correction. Operation ID: d232756a048c53a57a01e3d0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered structurally. The description adds nothing beyond a referral to describe_operation for request schemas — no mention of what the measurement-correction payload contains or how it relates to lease measurement data.

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

Conciseness2/5

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

Two sentences, one of which is a verbatim duplicate of the other, followed by an operation ID and a meta-note about another tool. There is no waste-free substance here; the repetition is pure noise.

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?

No output schema exists, and the description does not describe the response shape, required auth, or the semantics of a 'measurement correction' lookup. For a nested-parameter read tool with zero schema coverage, this leaves the agent guessing about both input and return value.

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 carries the burden of explaining the two parameters (params.id and a free-form query object), yet it says nothing about either. Neither the meaning of the lease id nor the accepted query filters is clarified anywhere.

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

Purpose2/5

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

The description is the endpoint path repeated twice; it names a resource path but never states in plain terms what the operation returns or does. 'GET /api/accounting/leases/:id/measurement-correction' is essentially a restatement of the tool name rather than an explanation, and it does nothing to distinguish this from the many sibling leases-by-id endpoints.

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 versus the many sibling lease sub-resource tools (amortization, classification, journal entries, liability schedules). The only pointer is that describe_operation exposes native request schemas, which is a fallback for schema lookup, not usage guidance.

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

get_accounting_leases_by_id_payment_sch_6d89b79605a4a7e96dd120ddaccounting: GET /api/accounting/leases/:id/payment-scheduleC
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/payment-schedule. GET /api/accounting/leases/:id/payment-schedule. Operation ID: 6d89b79605a4a7e96dd120dd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered elsewhere. The description adds nothing beyond that—no note on what the payment schedule contains, whether it is paginated, or what happens when a lease has no schedule.

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

Conciseness2/5

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

The same path sentence appears twice back-to-back, which is pure waste, and the operation-ID line is boilerplate metadata rather than useful front-loaded information.

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 nested-object tool with zero schema description coverage, no output schema, and no parameter documentation, the description does far too little. An agent still cannot tell what the payment schedule response looks like or how to use the query parameter.

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 nested `query` object is entirely undocumented. The path template `:id` implicitly tells the agent the required param is a lease identifier, but the free-form query parameter is left opaque in both schema and description.

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 is a verbatim repetition of the endpoint path, which does imply the operation: fetch the payment schedule for a given lease. However, it is a path restatement rather than a plain-language purpose statement, and with dozens of near-identical lease sub-resource siblings (rent schedules, payments, payment requests), it offers no 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?

There is no guidance on when to use this versus alternatives such as get_leases_by_id_rent_schedules or get_leases_by_id_payment_requests. The only actionable line is a pointer to describe_operation for schemas, which is a schema hint, not usage guidance.

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

get_accounting_leases_by_id_sublease_in_7409936d39d3378015903766accounting: GET /api/accounting/leases/:id/sublease-income-summaryD
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/sublease-income-summary. GET /api/accounting/leases/:id/sublease-income-summary. Operation ID: 7409936d39d3378015903766; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only that 'describe_operation provides native request schemas', which is a useful discovery hint but discloses nothing about response shape, size, or scope of the summary.

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

Conciseness2/5

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

The single substantive sentence is duplicated verbatim, doubling length without adding information, and there is no front-loaded explanation of the operation's purpose. Little of the text earns its place.

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 0% schema description coverage, a nested object parameter, and no output schema, the description should explain what 'sublease income summary' returns and how the lease id is supplied. It instead defers entirely to describe_operation, leaving an agent unable to predict the result.

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 (a required nested 'params.id' and an untyped 'query' bag), and the description supplies no meaning for either. The only compensating value is the pointer to describe_operation as the place to find the native request schema.

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

Purpose2/5

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

The description only repeats the raw route 'GET /api/accounting/leases/:id/sublease-income-summary' (twice) with no plain-language explanation of what the sublease income summary contains or represents. The resource is at least identifiable from the path, but it is essentially a restatement of the tool name rather than a stated purpose.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool, no prerequisites, and no differentiation from the many close siblings such as get_accounting_leases_by_id_sublease_pr_897d0325fc351933c23e4160 or the other leases-by-id sub-resource tools. The only pointer is to describe_operation for schemas, which is not usage guidance.

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

get_accounting_leases_by_id_sublease_pr_897d0325fc351933c23e4160accounting: GET /api/accounting/leases/:id/sublease-profileD
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:id/sublease-profile. GET /api/accounting/leases/:id/sublease-profile. Operation ID: 897d0325fc351933c23e4160; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of auth requirements, response shape, or whether a lease with no sublease returns empty versus error. Sibling-tool ambiguity for accounting lease data is also unexplained.

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

Conciseness2/5

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

The first sentence is duplicated verbatim, and the operation-ID sentence is boilerplate. Nothing is front-loaded that helps an agent; the text is short but unstructured and adds zero information density.

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

Completeness1/5

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

For an operation with two undocumented parameters, no output schema, and a very large family of similarly-named lease sub-resource siblings, the description should distinguish this endpoint. It supplies no context beyond the route string.

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 the required 'id' or the free-form 'query' object. With two parameters and no schema descriptions, the description carries the burden and fails to provide any meaning.

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

Purpose2/5

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

The description only restates the HTTP route verbatim twice ('GET /api/accounting/leases/:id/sublease-profile'). The path implies a read of a lease sublease profile, but nothing states what the resource actually contains or how it differs from the dozens of other lease sub-resource getters.

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 and no exclusions. The only routing hint is 'describe_operation provides native request schemas', which points to a sibling for schema discovery but not to when this endpoint should be chosen over adjacent lease endpoints like sublease_in_7409936d or liability schedule.

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

get_accounting_leases_by_leaseId_classi_323eb234234b046fdd4f5e13accounting: GET /api/accounting/leases/:leaseId/classification-assessments/currentD
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:leaseId/classification-assessments/current. GET /api/accounting/leases/:leaseId/classification-assessments/current. Operation ID: 323eb234234b046fdd4f5e13; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no note on what 'current' means (latest vs. effective-as-of-date), whether an empty result is possible when no assessment exists, or how the record is versioned.

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

Conciseness2/5

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

It is short, but the single substantive sentence is duplicated word-for-word, so half the content is pure waste. The operation ID and the describe_operation pointer are tacked on without being framed in a way that helps selection.

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

Completeness1/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, a nested 'query' object, and 0% parameter documentation, the description should explain what is returned and how to scope the call. It explains neither, leaving the agent unable to predict the response shape or the meaning of the path parameter.

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%, so the description carries the full burden of explaining leaseId and the free-form 'query' object. It provides nothing — no format, no source of the ID, no explanation of what query parameters are accepted. The only implicit signal is that leaseId sits in the path.

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

Purpose2/5

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

The text is a raw endpoint path repeated verbatim, restating the tool name/title with no plain-language statement of what a 'classification assessment (current)' actually is. An agent can infer it fetches the current lease classification assessment for a lease ID, but there is no differentiation from the near-identical sibling get_accounting_leases_by_id_classificat_ebade756392ea13ae975fd9a.

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, when-not-to-use, or prerequisite information is given. The only routing hint is 'describe_operation provides native request schemas', which tells the agent how to get a schema, not when this tool is the right choice over the many sibling lease-classification tools.

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

get_accounting_leases_by_leaseId_classi_447bed0fb31912ca0289cae1accounting: GET /api/accounting/leases/:leaseId/classification-assessmentsD
Read-onlyIdempotent
Inspect

GET /api/accounting/leases/:leaseId/classification-assessments. GET /api/accounting/leases/:leaseId/classification-assessments. Operation ID: 447bed0fb31912ca0289cae1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered without the description. Beyond that the description adds only that describe_operation holds the request schemas — no pagination, filtering semantics, or what a classification assessment 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.

Conciseness2/5

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

It is short, but half the content is a verbatim duplicate of the same URL path, which wastes the reader's attention. The only non-redundant information (operation ID and the describe_operation pointer) is buried after the repetition.

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

Completeness1/5

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

With 0% parameter documentation, no output schema, and a nested free-form query object, the description supplies none of the context an agent needs to invoke this correctly. Calling it would be guesswork about what the query object accepts and what assessments are returned.

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 either parameter. The required leaseId path parameter (the pivot for retrieving the right lease's assessments) and the free-form 'query' object are entirely undocumented, so the description does not compensate for the schema gap at all.

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

Purpose2/5

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

The text is just the raw endpoint path repeated twice, so the agent must infer 'fetch classification assessments for a lease' from the URL segments. It does nominally identify a verb and resource, but that effectively restates the name/title rather than explaining the domain concept, and it offers no differentiation from the many other leaseId-scoped GET 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 statement of when to use this versus siblings such as get_accounting_leases_by_id_classificat_ebade756392ea13ae975fd9a or the other leaseId sub-resource tools. The only actionable sentence points at describe_operation for native request schemas, which is a mechanics hint rather than usage guidance.

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

get_accounting_setup_readiness_593e61664353bcbf3f5fa939accounting: GET /api/accounting/setup/readinessC
Read-onlyIdempotent
Inspect

GET /api/accounting/setup/readiness. GET /api/accounting/setup/readiness. Operation ID: 593e61664353bcbf3f5fa939; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context of its own — no indication of what readiness checks are evaluated, whether results are cached, or whether the response is scoped to a workspace/company — so it earns nothing 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.

Conciseness2/5

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

The description is two identical sentences plus an operation ID and a pointer sentence, so half the text is pure duplication. It is short but not front-loaded with any meaningful information about the resource or its outcome.

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 an opaque untyped query object, no output schema, and no explanation of return contents, an agent cannot predict what it will receive or how to shape the query. For a readiness-check endpoint whose value is entirely in its response shape, this leaves a critical 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% and the two parameters (a free-form nested 'query' object with additionalProperties and an empty 'params' object) are completely undescribed. The single useful signal is the pointer to describe_operation for native request schemas, which partially compensates but leaves the actual query keys and their formats unexplained.

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

Purpose2/5

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

The description only restates the HTTP method and path ('GET /api/accounting/setup/readiness') twice, which adds nothing beyond the tool name and title. It never says what 'setup readiness' means, what entity the readiness applies to, or what the caller would learn from it, and it does nothing to distinguish it from siblings such as get_journal_entries_readiness or get_accounting_compliance_settings.

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 to use this endpoint versus alternatives in the large accounting sibling set (e.g., get_accounting_compliance_settings, get_journal_entries_readiness). The only navigational hint is that describe_operation provides native request schemas, which addresses parameters, not tool selection.

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

get_account_mappings_5900b624a5f0d38407bcecf4account-mappings: GET /api/account-mappingsC
Read-onlyIdempotent
Inspect

GET /api/account-mappings. GET /api/account-mappings. Operation ID: 5900b624a5f0d38407bcecf4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description adds nothing beyond that—no note on pagination, filtering behavior, or what 'mappings' resolve to—so it contributes almost no 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.

Conciseness2/5

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

The opening sentence is literally duplicated, wasting the most prominent position, and the remaining content is a machine-generated operation ID. There is no front-loaded statement of intent to justify the length.

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, 0% parameter coverage, and nested-object parameters, the description needs to explain return shape and query/params usage. Instead it provides only a redirect to describe_operation, leaving an agent without enough to invoke the tool confidently.

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 two parameters (query, params) are undocumented in both schema and description. The only hint is that describe_operation holds the native request schemas, which offloads rather than explains parameter meaning.

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

Purpose2/5

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

The description merely repeats the HTTP path 'GET /api/account-mappings' twice plus an operation ID; it never states in plain terms what account mappings are or what the call returns. It is essentially a restatement of the title/name rather than an explanation of purpose.

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 guidance is a pointer to describe_operation for native request schemas, which is a delegation of schema discovery rather than when-to-use guidance. It does not distinguish this tool from close siblings like get_account_mappings_by_id, get_account_mappings_effective, or get_account_mappings_summary_types.

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

get_account_mappings_by_id_c7854d9762321ad306a73794account-mappings: GET /api/account-mappings/:idC
Read-onlyIdempotent
Inspect

GET /api/account-mappings/:id. GET /api/account-mappings/:id. Operation ID: c7854d9762321ad306a73794; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing meaningful beyond restating the endpoint and pointing to describe_operation for native request schemas; it does not describe return behavior, permissions, or any operational constraints.

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

Conciseness2/5

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

The description is short but contains a duplicated endpoint sentence that earns no place. The pointer to describe_operation is the only distinct content, making the overall structure repetitive rather than front-loaded with useful information.

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 retrieval tool with a nested query object, 0% schema description coverage, and no output schema, the description should at least identify the resource and clarify the parameters. It instead gives only the endpoint path and a pointer to describe_operation, leaving the agent without enough context to invoke the tool confidently.

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 only implies that :id is a path parameter. It does not explain the query object, the id format, or any constraints, so it fails to compensate for the undocumented parameters.

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

Purpose2/5

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

The description only repeats the HTTP endpoint already present in the title, effectively restating the name/title. It does not explain what an account mapping is or how this retrieval differs from sibling account-mapping tools such as get_account_mappings_5900b624a5f0d38407bcecf4 or get_account_mappings_effective_a95a52002e99b0c2b83ac112.

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 use this endpoint, when not to use it, or which sibling to choose for related queries. The agent is left to infer the use case entirely from the path.

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

get_account_mappings_custom_type_refere_1c8b30a74f61c1fea4dbf975account-mappings: GET /api/account-mappings/custom-type-referencesC
Read-onlyIdempotent
Inspect

GET /api/account-mappings/custom-type-references. GET /api/account-mappings/custom-type-references. Operation ID: 1c8b30a74f61c1fea4dbf975; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of result shape, filtering behavior, or the meaning of the openWorldHint=false scope.

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

Conciseness2/5

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

Two sentences are literally identical, so half the text earns nothing. What remains (operation ID, describe_operation pointer) is not front-loaded with any statement of what the call does.

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?

No output schema exists, so the description must describe returns, and it does not. With undocumented nested query object and zero parameter coverage, an agent cannot call this correctly without falling back to describe_operation.

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 (query and params), so the schema does not compensate. The description only defers to describe_operation for 'native request schemas', giving no indication of what keys the query object accepts or what the empty params object is for.

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

Purpose2/5

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

The description is the endpoint path repeated twice ("GET /api/account-mappings/custom-type-references") with no explanation of what a custom type reference is or what is returned. It restates the name/title rather than stating a purpose, and nothing distinguishes it from the many other account-mapping 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 named alternative among siblings (e.g. get_account_mappings_5900b624a5f0d38407bcecf4 or get_account_mappings_summary_types_dd9838c1eb9df96da78815d0). The only pointer is 'describe_operation provides native request schemas', which is a schema-lookup hint, not usage guidance.

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

get_account_mappings_effective_a95a52002e99b0c2b83ac112account-mappings: GET /api/account-mappings/effectiveD
Read-onlyIdempotent
Inspect

GET /api/account-mappings/effective. GET /api/account-mappings/effective. Operation ID: a95a52002e99b0c2b83ac112; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive behavior, so safety is covered. The description adds nothing beyond pointing to describe_operation for schemas; it does not say what 'effective' resolution means (inherited/overridden mappings) or what shape the response takes.

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

Conciseness2/5

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

The first sentence is duplicated verbatim and the rest is boilerplate metadata (operation ID). Nothing is front-loaded that helps an agent decide or invoke, so brevity here reflects emptiness rather than economy.

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

Completeness1/5

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

For a nested, undocumented query-object API with no output schema, an agent has essentially no information about what this returns or what to pass. The description is inadequate even for a simple read endpoint.

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 0% and both parameters (a free-form 'query' object and an empty 'params' object) are opaque. The description offers no parameter meaning, only a redirect to describe_operation for request schemas, which is a weak substitute for actual semantics.

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

Purpose2/5

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

The description only restates the endpoint path 'GET /api/account-mappings/effective' twice, which is a tautology of the tool title/name. It never explains what 'effective' account mappings are or how that differs from the sibling get_account_mappings_5900b624a5f0d38407bcecf4 or get_account_mappings_by_id.

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 against the many account-mapping siblings. The only actionable hint is 'describe_operation provides native request schemas', which is a discovery pointer, not usage guidance.

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

get_account_mappings_summary_types_dd9838c1eb9df96da78815d0account-mappings: GET /api/account-mappings/summary/typesC
Read-onlyIdempotent
Inspect

GET /api/account-mappings/summary/types. GET /api/account-mappings/summary/types. Operation ID: dd9838c1eb9df96da78815d0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing behavioral beyond that, such as what the summary contains, whether it is scoped to a workspace, or how large the response may be.

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

Conciseness2/5

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

The endpoint string is emitted twice verbatim, which is pure duplication, and the remaining sentence is a metadata pointer. It is short but the space is spent on repetition rather than useful front-loaded information.

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, 0% parameter coverage, and a free-form nested query object, the description carries the full burden and supplies almost nothing. The one useful element is the redirect to describe_operation, which partially mitigates but does not make the definition self-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?

Schema description coverage is 0% for two parameters (a free-form 'query' object and an empty 'params' object), so the description must compensate and does not. It gives no indication of what the untyped 'query' parameter accepts, deferring only to describe_operation.

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

Purpose2/5

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

The description only repeats the raw endpoint path 'GET /api/account-mappings/summary/types' twice, with no plain-language verb or explanation of what a 'summary types' resource contains. An agent can infer it lists mapping types from the URL, but the text itself is a restatement of the name rather than a description.

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 to use this tool versus siblings such as get_account_mappings_5900b624a5f0d38407bcecf4 or get_account_mappings_by_id_c7854d9762321ad306a73794. The only guidance is a pointer to describe_operation for native request schemas, which is a schema-discovery hint rather than a usage condition.

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

get_activity_entity_by_entityType_by_en_104030e3f8544bd096dec973activity: GET /api/activity/entity/:entityType/:entityIdC
Read-onlyIdempotent
Inspect

GET /api/activity/entity/:entityType/:entityId. GET /api/activity/entity/:entityType/:entityId. Operation ID: 104030e3f8544bd096dec973; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond the route and an operation ID — no scoping, no auth requirements, no result shape — which is a weak contribution even against the lower bar set by annotations.

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

Conciseness2/5

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

The first sentence is duplicated verbatim, wasting a third of an already tiny description, and the remaining content is a machine ID plus a cross-reference. Nothing is front-loaded beyond the raw route.

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 nested-parameter lookup tool with no output schema and 0% parameter documentation, the description leaves an agent unable to call it confidently. It omits what the endpoint returns and what the entity types are, which are the two things the structured fields do not supply.

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 both nested params (entityType, entityId) are undocumented in the schema, so the description must compensate and does not. The path template hints that entityType and entityId are path segments, but there is no indication of valid entityType values or entityId format.

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

Purpose2/5

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

The description only restates the HTTP route and title: 'GET /api/activity/entity/:entityType/:entityId'. It never explains in plain language what an 'activity entity' is or what data is returned, so an agent cannot distinguish it from siblings like get_activity_f33beb4acdd4980fd012eb8c or get_activity_users_active_6d057ad3e1937c7af1c21037 beyond the URL shape.

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 to use this tool, when not to, or which sibling is the alternative. The only routing hint is a pointer to describe_operation for native request schemas, which is a helper reference rather than usage guidance.

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

get_activity_f33beb4acdd4980fd012eb8cactivity: GET /api/activityD
Read-onlyIdempotent
Inspect

GET /api/activity. GET /api/activity. Operation ID: f33beb4acdd4980fd012eb8c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no mention of filtering behavior, pagination, or what the endpoint returns.

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

Conciseness2/5

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

It is short, but the first sentence is duplicated verbatim and the operation ID adds nothing an agent can act on. Brevity here comes from under-specification rather than economy.

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, an untyped nested query parameter, and no annotations explaining return shape, the description should explain what this endpoint yields. It does not, leaving the agent unable to predict the response or how to build the query object.

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 supplies zero parameter information. The 'query' object is an unconstrained additionalProperties bag and 'params' is empty, so the description had real work to do and did none of it.

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

Purpose2/5

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

The description only restates the HTTP path 'GET /api/activity' twice. It gives no indication of what an 'activity' record contains or how it differs from siblings like get_activity_users_active or get_activity_entity_by_entityType, so an agent must open the schema to learn anything.

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 named alternative. The only actionable sentence points to describe_operation for request schemas, which is a schema-retrieval hint rather than a usage condition.

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

get_activity_users_active_6d057ad3e1937c7af1c21037activity: GET /api/activity/users/activeC
Read-onlyIdempotent
Inspect

GET /api/activity/users/active. GET /api/activity/users/active. Operation ID: 6d057ad3e1937c7af1c21037; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully structured. The description adds nothing beyond that: no statement of what is returned, whether results are scoped to the caller's workspace, or how 'active' is computed, so it contributes no behavioral context of its own.

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

Conciseness2/5

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

The core sentence is duplicated verbatim, which is pure waste, and what remains is a machine-generated operation ID plus a deferral link. There is no front-loaded statement of purpose or behavior to justify the length.

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 0% schema coverage, an untyped free-form query object, and no output schema, the description had to carry the burden of explaining inputs and results. Instead it offers only the endpoint path and a redirect to describe_operation, leaving an agent unable to construct a correct call from this definition.

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 'query' parameter is a free-form object with additionalProperties, so the schema gives the agent essentially nothing. The description does not name a single query key, filter, or pagination field, and only deflects to describe_operation, which is a pointer rather than parameter semantics.

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

Purpose2/5

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

The description restates the endpoint path 'GET /api/activity/users/active' twice and adds an operation ID, but never explains what an 'active user' means (active over what window, per what workspace), so the resource is only nominally identified. It gives no way to distinguish this from the many other activity/users endpoints among its siblings beyond the raw URL.

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 guidance is 'describe_operation provides native request schemas', which tells the agent where to find a schema, not when to call this tool versus alternatives such as get_activity_f33beb4acdd4980fd012eb8c or get_activity_entity_by_entityType. No when-to-use, no exclusions, no prerequisites.

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

get_addendums_2271fab93d4539362c4ae3b6addendums: GET /api/addendumsD
Read-onlyIdempotent
Inspect

GET /api/addendums. GET /api/addendums. Operation ID: 2271fab93d4539362c4ae3b6; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that — no pagination behavior, no return shape, no note on what the query object controls.

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

Conciseness2/5

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

It is short, but the opening sentence is duplicated word-for-word and the operation ID is noise for an agent; the one useful pointer comes buried at the end. Brevity here reflects under-specification rather than tight writing.

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

Completeness1/5

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

With no output schema, an opaque nested query parameter, and zero description coverage of parameters, an agent cannot determine what to pass or what comes back. The definition is not sufficient to invoke the tool correctly without falling back to describe_operation.

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?

There are 2 parameters with 0% schema description coverage and a nested free-form 'query' object with additionalProperties allowed. The description provides no information about what query keys are accepted or what 'params' does, so it fails to compensate for the schema gap entirely.

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

Purpose2/5

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

The description is a restatement of the endpoint path ('GET /api/addendums') duplicated verbatim, which is essentially tautological with the tool name get_addendums. It implies listing addendums but gives no scope, filters, or differentiation from the many sibling list endpoints (e.g., get_addendums_by_id).

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 actionable sentence points to describe_operation for native request schemas, which is a hint about tooling rather than guidance on when to call this tool versus get_addendums_by_id or the other read siblings. No conditions, prerequisites, 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.

get_addendums_by_id_4d90a8c062603d050d406968addendums: GET /api/addendums/:idC
Read-onlyIdempotent
Inspect

GET /api/addendums/:id. GET /api/addendums/:id. Operation ID: 4d90a8c062603d050d406968; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that - no note on what the response contains, whether an unknown id errors or returns null, or any auth/scope requirements.

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

Conciseness2/5

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

It is short, but the first sentence is duplicated verbatim ('GET /api/addendums/:id. GET /api/addendums/:id.') and the remaining text is an operation id plus a redirect, so half the content is wasted repetition.

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 0% schema description coverage, a nested required object, and no output schema, the description should explain the id path parameter and the response shape. Instead it defers everything to describe_operation, leaving the agent with a route path and nothing else.

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 two parameters (a free-form 'query' object and a nested required 'params.id'), yet the description explains neither. The pointer to describe_operation is a mitigation but does not tell the agent what 'id' means or what the query object accepts.

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 identifies the resource (addendums) and the verb (GET by :id), which does distinguish it from the sibling list tool get_addendums_2271fab93d4539362c4ae3b6. However, it only restates the route path from the title with no plain-language statement of what an addendum is or what the caller gets back.

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 to use this tool versus the list endpoint or any other sibling. The only hint is 'describe_operation provides native request schemas', which points at another tool for schema discovery but gives no selection criteria.

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

get_ai_extract_progress_by_jobId_d286bbe7ec406ca9898189c2ai: GET /api/ai/extract/progress/:jobIdC
Read-onlyIdempotent
Inspect

GET /api/ai/extract/progress/:jobId. GET /api/ai/extract/progress/:jobId. Operation ID: d286bbe7ec406ca9898189c2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds nothing beyond restating the endpoint—no polling cadence, no meaning of the progress payload, no indication of what a jobId refers to.

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

Conciseness2/5

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

The endpoint path is duplicated verbatim in the first two sentences, which wastes space without adding information. The operation ID and describe_operation note are the only non-redundant content.

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?

There is no output schema, so the description would need to explain what 'progress' returns (percentage, state, errors) but does not. Combined with undocumented parameters and no sibling differentiation, the definition is too thin for reliable invocation.

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 should compensate for the two parameters (required jobId, optional query), but it says nothing about them. An agent learns only from the parameter names in the schema, not from the description.

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 repeated path 'GET /api/ai/extract/progress/:jobId' does convey the resource (extraction progress for a job) and a read verb, so an agent can infer a polling-status concept. However, it offers no differentiation from closely named siblings like get_ai_extract_status_by_jobId and get_ai_extract_result_by_jobId, leaving ambiguity about which progress/status/result endpoint 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 statement of when to use this versus the status or result siblings, nor any precondition. The only hint is that describe_operation can supply native request schemas, which is a plumbing pointer rather than usage guidance.

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

get_ai_extract_result_by_jobId_808c13e6ecc020565ea4aa59ai: GET /api/ai/extract/result/:jobIdD
Read-onlyIdempotent
Inspect

GET /api/ai/extract/result/:jobId. GET /api/ai/extract/result/:jobId. Operation ID: 808c13e6ecc020565ea4aa59; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations fully cover safety (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description's burden is lighter, but it adds essentially nothing behavioral: no polling guidance for what is plainly a job-based async result, no statement about what happens if the job is incomplete or the ID is unknown.

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

Conciseness2/5

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

Two sentences where the first is duplicated verbatim, and the unique content (the operation ID and a pointer to describe_operation) is boilerplate rather than useful front-loaded context. Nothing is actively misleading, but the text is pure padding.

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

Completeness1/5

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

No output schema exists, nested objects are present, and parameter semantics are undocumented. The description explains neither what an 'extract result' contains nor how to obtain a jobId, so an agent lacks the information needed to call this correctly or interpret its response.

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% across two parameters (a free-form query object and required params.jobId), and the description says nothing about either. The agent must infer the jobId format and where to obtain a valid jobId entirely from schema constraints (minLength 1, maxLength 2000), which carry no semantic meaning.

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

Purpose2/5

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

The description is a verbatim restatement of the title and name: 'GET /api/ai/extract/result/:jobId' repeated twice. It implies retrieval of an AI extraction result for a job, but it never says that in prose and never distinguishes this from the sibling endpoints get_ai_extract_progress_by_jobId and get_ai_extract_status_by_jobId.

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 is given. The only directive, 'describe_operation provides native request schemas,' routes the agent to another tool for schema information but does not say when this tool should be chosen over the status or progress variants.

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

get_ai_extract_status_by_jobId_a7d73eadeebbaa39b2e18dadai: GET /api/ai/extract/status/:jobIdD
Read-onlyIdempotent
Inspect

GET /api/ai/extract/status/:jobId. GET /api/ai/extract/status/:jobId. Operation ID: a7d73eadeebbaa39b2e18dad; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds zero behavioral context such as what the status response contains or polling expectations, and 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.

Conciseness2/5

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

It is short, but wastes the limited space by duplicating the same endpoint path twice with no added information. The operation ID and describe_operation pointer are the only non-redundant content.

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

Completeness1/5

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

There is no output schema, 0% parameter description coverage, and a status-polling tool whose return values and lifecycle are entirely unexplained. The description is far too thin for an agent to call this confidently over adjacent siblings.

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 2 parameters (query and params.jobId). The description only echoes the :jobId path segment and adds nothing about the meaning of jobId, its format, or the purpose of the query object.

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

Purpose2/5

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

The description is essentially a verbatim repetition of the endpoint path twice, which merely restates the tool name/title. While the path implies 'get AI extract status by jobId', it provides no differentiation from close siblings like get_ai_extract_progress_by_jobId or get_ai_extract_result_by_jobId.

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 use this versus the progress or result endpoints for the same jobId. The only actionable pointer is that describe_operation provides native request schemas, which is a generic hint, not usage guidance.

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

get_ai_field_metadata_by_entityType_by__666a994cbfe1ba4917ced3a8ai: GET /api/ai/field-metadata/:entityType/:entityIdC
Read-onlyIdempotent
Inspect

GET /api/ai/field-metadata/:entityType/:entityId. GET /api/ai/field-metadata/:entityType/:entityId. Operation ID: 666a994cbfe1ba4917ced3a8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing on top: no note about what is returned, permission requirements, or whether an unknown entityType/entityId yields an error or an empty result.

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

Conciseness2/5

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

The first two sentences are identical repetitions of the endpoint path, which wastes the most prominent position on duplicated content. Brevity is not the problem; the content is redundant rather than front-loaded with useful information.

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-level detail about results, an agent still cannot tell what this returns or how entityType/entityId constrain it. For a two-parameter, nested-object endpoint with 0% schema coverage, the description leaves the essential gaps unfilled.

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 carries the full burden for entityType and entityId. It merely echoes the parameter names from the path and gives no allowed values for entityType, no format for entityId, and no hint about the optional query object.

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

Purpose2/5

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

The description is a verbatim restatement of the HTTP path and duplicates itself. It technically names the resource (field-metadata) and the two path segments, but never explains what 'AI field metadata' is or what distinguishing it from siblings like get_clauses_field_mappings or get_import_available_fields entails.

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 guidance is a pointer that 'describe_operation provides native request schemas,' which is a generic fallback rather than a when-to-use rule. It never states when this endpoint is the right choice versus the many other field-metadata and entity-scoped GET tools in the sibling list.

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

get_ai_find_changes_full_abstract_by_jo_3e9d27c116555b243b94400bai: GET /api/ai/find-changes/full-abstract/:jobIdC
Read-onlyIdempotent
Inspect

GET /api/ai/find-changes/full-abstract/:jobId. GET /api/ai/find-changes/full-abstract/:jobId. Operation ID: 3e9d27c116555b243b94400b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond the URL string — no mention of what a 'full abstract' contains, whether the jobId must reference a completed job, or what happens for unknown/expired ids.

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

Conciseness2/5

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

Very short, but the first sentence is duplicated verbatim, which is pure waste rather than concision. Nothing is front-loaded that explains the operation's effect.

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, a nested free-form `query` parameter, 0% schema description coverage, and no annotations gaps filled, the description leaves the agent without enough to call the tool confidently beyond passing a jobId in the path.

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, including an untyped free-form `query` object and a required `jobId` (minLength 1, maxLength 2000). The description only echoes ':jobId' from the path, giving no meaning to the query object or how jobId values are obtained.

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

Purpose2/5

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

The description restates the raw HTTP path and title verbatim ("GET /api/ai/find-changes/full-abstract/:jobId") twice, with no natural-language statement of what the endpoint returns. An agent can infer it is a read of a 'full abstract' for a find-changes job, but nothing distinguishes it from the sibling get_ai_find_changes_full_abstract_jobs_* or get_ai_find_changes_glossary.

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 routing to alternatives; the only forward reference is 'describe_operation provides native request schemas', which points at a metadata tool, not a usage condition. The agent is left to infer that this fetches a full abstract given a jobId and that a job list must be obtained elsewhere.

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

get_ai_find_changes_full_abstract_jobs_12df2a1ab00f43bbeccbb1efai: GET /api/ai/find-changes/full-abstract/jobsC
Read-onlyIdempotent
Inspect

GET /api/ai/find-changes/full-abstract/jobs. GET /api/ai/find-changes/full-abstract/jobs. Operation ID: 12df2a1ab00f43bbeccbb1ef; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond that — no pagination, no filtering behavior, no indication of what the job list contains or its state lifecycle.

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

Conciseness2/5

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

Very short, but the first sentence is the endpoint path stated twice, which is pure redundancy, and the useful part (the describe_operation pointer) is buried at the end. It is brief by omission, not by efficiency.

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 a nested/free-form query object, 0% schema coverage, and no output schema, an agent gets essentially no information needed to invoke it correctly beyond the method and path. The description should at least explain what query fields or job states are accepted.

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 two parameters (a free-form 'query' object and an empty 'params') are completely undocumented. The description does not compensate at all; the only clue is a generic redirect to describe_operation for the real request schema.

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

Purpose2/5

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

The description is just the endpoint path repeated twice with an operation ID; it restates the name rather than saying what a 'full-abstract changes job' is or returns. It never distinguishes this from the sibling get_ai_find_changes_full_abstract_by_jo_... which presumably fetches one job by id.

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 to call this versus describe_operation, execute_read, or the by-jobId sibling. The only procedural hint is a generic pointer that describe_operation provides native schemas.

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

get_ai_find_changes_glossary_1e06a4d8ada944e5ec327f05ai: GET /api/ai/find-changes/glossaryD
Read-onlyIdempotent
Inspect

GET /api/ai/find-changes/glossary. GET /api/ai/find-changes/glossary. Operation ID: 1e06a4d8ada944e5ec327f05; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that - no note on what the glossary contains, pagination, or behavior when filters are absent. It does hint that request schemas live behind describe_operation, which is minor added context, but well short of meaningful behavioral disclosure.

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

Conciseness2/5

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

It is short but wasteful: the exact same path sentence is duplicated verbatim, so one of the three sentences earns nothing. Front-loading is fine, but redundancy and lack of substance make it inefficient rather than tight.

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

Completeness1/5

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

For a tool with nested generic objects, zero schema coverage, and no output schema, the description should explain what the glossary returns and how to shape the query. Instead it offers only the path and a pointer to describe_operation, leaving an agent unable to call it correctly without a second lookup.

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 two parameters (query, params) are untyped generic wrappers with no property documentation. The description's only relevant contribution is pointing to describe_operation for 'native request schemas', which partially compensates by telling the agent where real parameter detail lives, but it never explains what query or params should contain.

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

Purpose2/5

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

The description is a tautology: it repeats the URL path 'GET /api/ai/find-changes/glossary' twice and adds nothing about what a 'glossary' of AI find-changes actually is or returns. An agent can infer the resource is some glossary related to the find-changes feature, but the actual purpose (list of terms? entity type mappings? field glossaries?) is undefined, so it is barely better than the name alone.

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 to use this tool versus alternatives. The only routing hint is 'describe_operation provides native request schemas', which points to a schema-discovery sibling but not to when this endpoint is the right choice over, say, find_contracts or the other find-changes tools.

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

get_ai_find_changes_history_253fe0de00eddc8c260b1902ai: GET /api/ai/find-changes/historyC
Read-onlyIdempotent
Inspect

GET /api/ai/find-changes/history. GET /api/ai/find-changes/history. Operation ID: 253fe0de00eddc8c260b1902; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond noting that describe_operation carries the native request schema — mildly useful given the odd query/params envelope, but no disclosure of pagination, result shape, or scope of the history returned.

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

Conciseness2/5

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

The text is short but the first two sentences are an exact duplicate of each other, wasting half the description on repetition. The content is front-loaded but the payload is essentially zero; the operation ID and boilerplate referral consume the remaining space.

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 nested-object, two-parameter history endpoint with no output schema and no parameter documentation, the definition leaves the agent unable to construct a valid call without first invoking describe_operation. Nothing about result contents, filtering, or paging is provided, so the definition is incomplete relative to the tool's complexity.

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 (an open-ended 'query' object and an empty 'params' object with additionalProperties=false), and the description supplies no meaning for either. The delegation to describe_operation is the only clue, so an agent cannot tell from this definition what to put in 'query' or why 'params' accepts nothing.

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

Purpose2/5

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

The description only repeats the HTTP path 'GET /api/ai/find-changes/history' twice, which is a restatement of the title rather than an explanation of the tool's purpose. From the path an agent can infer it retrieves history for AI find-changes runs, but nothing states what a 'run' is, what the history entries contain, or how it differs from the sibling get_ai_find_changes_history_by_runId_1124444e3a0f40ff6090965f.

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 exclusions, and no mention of the obvious alternative (the by-runId history sibling). The only actionable instruction is a pointer to describe_operation for native request schemas, which addresses schema discovery rather than tool selection.

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

get_ai_find_changes_history_by_runId_1124444e3a0f40ff6090965fai: GET /api/ai/find-changes/history/:runIdC
Read-onlyIdempotent
Inspect

GET /api/ai/find-changes/history/:runId. GET /api/ai/find-changes/history/:runId. Operation ID: 1124444e3a0f40ff6090965f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered, but the description adds nothing beyond that — no statement about what the history contains, whether it is paginated or bounded, or what happens with an unknown runId. The repeated route line and operation ID are metadata, not 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.

Conciseness2/5

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

It is short, but the first sentence is duplicated verbatim and the operation ID is noise to an agent. Nothing is front-loaded because there is no real content to front-load.

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 history endpoint with no output schema, the description should say what a run's history consists of (e.g., change events, revisions, timestamps). It leaves that entirely unaddressed, so an agent cannot predict the response shape or decide between this and its near-namesake sibling.

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% with two parameters including a nested params object, so the description must carry the burden. It only echoes ':runId' from the path, adding no meaning about the identifier's format, origin, or length constraints.

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

Purpose2/5

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

The only content is the HTTP route 'GET /api/ai/find-changes/history/:runId', which simply restates the tool name and title rather than explaining what the operation returns or why an agent would call it. It does not distinguish this tool from the close sibling get_ai_find_changes_history_253fe0de00eddc8c260b1902, which has an almost identical 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?

There is no when-to-use or when-not-to-use guidance, no prerequisites, and no comparison to alternatives such as get_ai_find_changes_full_abstract_by_jo or get_ai_find_changes_progress. The only actionable hint is the trailing note that describe_operation exposes native request schemas, which is at least a pointer to how to learn more.

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

get_ai_find_changes_progress_fb6c87594c8171c59a792746ai: GET /api/ai/find-changes/progressC
Read-onlyIdempotent
Inspect

GET /api/ai/find-changes/progress. GET /api/ai/find-changes/progress. Operation ID: fb6c87594c8171c59a792746; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered without the description. The description adds no behavioral context of its own — nothing about whether the progress is polled, what state it reports, or how a job id is obtained.

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

Conciseness2/5

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

Short, but the first two sentences are byte-identical duplicates of the route, and the 'Operation ID' string is internal noise rather than information. Not front-loaded with anything an agent can act on.

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?

This is a progress-polling endpoint on an AI job with a nested, wholly undocumented schema and no output schema, yet the description explains none of the return shape or polling semantics. Pointing at describe_operation is the only completeness gesture and it leaves a significant gap for a tool an agent would need to poll 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% across two free-form objects (query and an empty params), so the schema explains nothing. The description does not compensate at all — it only redirects to describe_operation, leaving the agent to make a second call to learn anything about inputs.

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

Purpose2/5

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

The description merely repeats the HTTP route 'GET /api/ai/find-changes/progress' twice, which is a restatement of the tool name rather than a plain-language statement of what the tool does. It never says in words that this returns the progress/status of an AI find-changes job, nor differentiates it from siblings like get_ai_find_changes_full_abstract_jobs or get_ai_extract_progress_by_jobId.

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 named alternative among the many AI find-changes siblings. The only directional hint is 'describe_operation provides native request schemas', which points to a schema-discovery tool rather than explaining when this tool applies.

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

get_ai_import_by_batchId_c7b152d63ea6f9e7e601d629ai: GET /api/ai/import/:batchIdC
Read-onlyIdempotent
Inspect

GET /api/ai/import/:batchId. GET /api/ai/import/:batchId. Operation ID: c7b152d63ea6f9e7e601d629; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no note on auth, scoping, or what a missing/expired batchId yields — so it does not earn credit for extra context.

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

Conciseness2/5

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

The single substantive sentence is duplicated word-for-word, wasting half the description. What remains is short but structurally redundant rather than front-loaded with useful information.

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, 0% parameter documentation, and a nested query object, the description leaves an agent without enough to invoke this correctly. The describe_operation pointer is a partial mitigation but pushes all real information to a second tool call.

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 explains the batchId path parameter or the free-form query object. The only meaning comes from the path template ':batchId' embedded in the repeated sentence, which is minimal compensation.

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

Purpose2/5

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

The description is the endpoint path repeated verbatim twice, which restates the title rather than explaining the tool. An agent can infer a read of an AI import record keyed by batchId, but there is no plain-language statement of what an 'ai import' is or what is returned.

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 and no differentiation from closely related siblings such as get_pending_imports_by_batchId, get_bulk_import_by_id, or get_rent_import_workbook_by_batchId. The only actionable hint is a pointer to describe_operation for native request schemas.

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

get_analytics_summary_a3ce33201a794777e1a1f0adanalytics: GET /api/analytics/summaryD
Read-onlyIdempotent
Inspect

GET /api/analytics/summary. GET /api/analytics/summary. Operation ID: a3ce33201a794777e1a1f0ad; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond a repeated route string and a pointer to describe_operation; no pagination, aggregation, time-window, or scope behavior 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.

Conciseness2/5

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

The same route string is emitted twice, which is pure redundancy, and the only other content is an operation ID hash and a generic pointer. Short, but under-specified rather than concise.

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

Completeness1/5

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

No output schema, 0% parameter documentation, a free-form nested query object, and a namesake sibling in a huge tool set. The description does nothing to bridge any of these gaps, so an agent cannot confidently formulate the query object or predict the response.

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% for two parameters, one of which is a free-form nested object ('query' with additionalProperties) and one an empty 'params' object. The description offers no explanation of what goes in either, leaving the agent with zero guidance on the only real input.

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

Purpose2/5

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

The description only restates the tool name as a raw HTTP route ('GET /api/analytics/summary'), twice. It never says in plain language what analytics summary is returned (portfolio? leases? expenses?) or what scope it covers, so an agent cannot distinguish it from siblings like get_redline_analytics_summary or get_dashboard_metrics.

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, when-not, or prerequisite guidance. The only hint is 'describe_operation provides native request schemas', which tells the agent how to discover the schema but not when this tool is the right choice over other analytics/dashboard tools.

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

get_approvals_by_id_7ba1047b27b1c00dbdfc87f1approvals: GET /api/approvals/:idD
Read-onlyIdempotent
Inspect

GET /api/approvals/:id. GET /api/approvals/:id. Operation ID: 7ba1047b27b1c00dbdfc87f1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The only added value is the pointer to describe_operation for native request schemas, which is a minor navigational hint rather than behavioral disclosure about the approval object, its states, or fields.

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

Conciseness2/5

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

Two nearly identical sentences followed by an operation ID and a schema pointer; the duplication wastes the opening position that should carry the substantive explanation.

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 nested-object, 0%-documented-parameter tool with no output schema, the description provides no information about the returned approval shape, required id format, or errors. Only the describe_operation pointer gives the agent a path forward.

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 2 parameters, and the description only implies that 'id' is a path segment via the ':id' template. It says nothing about the arbitrary additionalProperties 'query' object, so it fails to compensate for the undocumented schema.

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

Purpose2/5

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

The description is essentially the HTTP method and path restated twice, which mirrors the tool name and title rather than explaining what an approval record is or what the response contains. It does distinguish the '/:id' single-resource form from list endpoints such as get_approvals_e70dd9642ffd2dec231cef2d, but only implicitly through the path template.

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

Usage Guidelines1/5

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

No guidance on when to use this vs the many sibling approvals endpoints (get_approvals_by_id_actions, get_approvals_progress, get_approvals_workflows_by_id). No prerequisites, no mention of what id value is expected.

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

get_approvals_by_id_actions_d56fcf4f08fe21ef4473a3f5approvals: GET /api/approvals/:id/actionsD
Read-onlyIdempotent
Inspect

GET /api/approvals/:id/actions. GET /api/approvals/:id/actions. Operation ID: d56fcf4f08fe21ef4473a3f5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context at all - not pagination, not ordering, not what the actions collection contains, not whether an unknown id errors or returns empty.

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

Conciseness2/5

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

Short, but the first two sentences are identical copies of the same path string - pure waste. The only non-redundant token is the operation ID, which is metadata rather than meaning.

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

Completeness1/5

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

With no output schema, 0% schema coverage, a nested free-form 'query' object, and no annotations gaps filled by the description, an agent has essentially nothing to work with beyond the URL. It cannot tell what the response shape is, how to filter actions, or what to expect for a missing approval.

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, and it largely does not. The ':id' path fragment hints that the required id parameter identifies an approval, but the optional 'query' object (which supports arbitrary properties) is completely unexplained.

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

Purpose2/5

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

The text is a verbatim restatement of the endpoint path and duplicates the title, adding nothing an agent could not read from the name. It implies fetching the action list for a given approval via 'GET /api/approvals/:id/actions', but it never says what an 'action' is or how this differs from the sibling get_approvals_by_id.

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, when-not-to-use, or alternative is given. The only actionable pointer is 'describe_operation provides native request schemas', which is a schema-discovery tip rather than invocation guidance. Nothing tells the agent how this relates to get_approvals_by_id or get_approvals_progress.

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

get_approvals_condition_fields_eb47a3b93bb4fc4322747621approvals: GET /api/approvals/condition-fieldsD
Read-onlyIdempotent
Inspect

GET /api/approvals/condition-fields. GET /api/approvals/condition-fields. Operation ID: eb47a3b93bb4fc4322747621; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond an opaque operation ID; it doesn't say what the endpoint returns, whether the field list is workspace-scoped, or how large the payload is.

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

Conciseness2/5

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

The path is repeated twice identically, wasting the entire first half of the description, and the operation ID plus schema pointer follow with no front-loaded purpose. It is short but for the wrong reason — under-specification, not efficiency.

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

Completeness1/5

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

For a tool with a nested free-form query parameter, no output schema, and no annotation-level clues about the data shape, the description supplies none of the missing context. An agent would have to call describe_operation and then still not know when this endpoint is the right choice.

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?

There are two parameters (a free-form 'query' object and an empty 'params' object) with 0% schema description coverage and nested objects. The description provides no information about what belongs in 'query', which keys are accepted, or what 'params' does, so an agent has to guess.

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

Purpose2/5

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

The description states only the raw endpoint path 'GET /api/approvals/condition-fields', duplicated verbatim, which merely restates the title. It never says in plain language what a 'condition field' is or what the response represents, so an agent cannot distinguish this from siblings like get_approvals_workflows or get_automation_workflows_condition_fields beyond the URL string.

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 routing hint is 'describe_operation provides native request schemas', which points to a helper tool but gives no when/when-not guidance or comparison to the many sibling approvals endpoints. There is no statement of context in which an agent should call this versus get_approvals or get_approvals_workflows.

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

get_approvals_e70dd9642ffd2dec231cef2dapprovals: List approvals Returns approval records for the tenant. Use `assignedToMe=true` to restrict to approvals where the calling user is an approver on the current stage. Each item includes an `eA
Read-onlyIdempotent
Inspect

List approvals Returns approval records for the tenant. Use assignedToMe=true to restrict to approvals where the calling user is an approver on the current stage. Each item includes an entityDetails object with the linked lease or contract's record number, name, status, and associated site(s).. GET /api/approvals. Operation ID: e70dd9642ffd2dec231cef2d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds real context beyond that: results are tenant-scoped, the assignedToMe filter is stage-specific, and each record carries an `entityDetails` object describing the linked lease or contract. Remaining gaps are pagination, default/max page size, and sort order.

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

Conciseness3/5

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

The core sentences are front-loaded and earn their place, but the payload is padded with template boilerplate ('GET /api/approvals. Operation ID: e70dd9642ffd2dec231cef2d') and a stray double period. The operation-ID string adds operational noise rather than invocation guidance.

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 does partially compensate by describing the entityDetails payload, and it explicitly routes the agent to describe_operation for the real request schema. But for a filtering-heavy list endpoint whose input schema is an opaque object, an agent still lacks the filter vocabulary needed to invoke it without a second tool call.

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 the `query` parameter is an unconstrained free-form bag, so the schema provides no help at all. The description rescues one parameter by explaining `assignedToMe` semantics and points to describe_operation for native request schemas, but the other available query fields (status, entity, date, paging) remain undocumented.

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 approvals', 'Returns approval records for the tenant') and defines the tenant-wide scope. It does not differentiate itself from close siblings such as get_approvals_by_id, get_approvals_progress, or get_approvals_condition_fields, leaving the agent to infer the boundary.

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 one concrete usage instruction — 'Use `assignedToMe=true` to restrict to approvals where the calling user is an approver on the current stage' — which is genuinely actionable. However, it never states when NOT to use it or names an alternative sibling (e.g., fetching a single approval by id), and there is no guidance on pagination, defaults, or other filters.

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

get_approvals_progress_8d1b16dee0d84d8330acedf6approvals: GET /api/approvals/progressC
Read-onlyIdempotent
Inspect

GET /api/approvals/progress. GET /api/approvals/progress. Operation ID: 8d1b16dee0d84d8330acedf6; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond that — no pagination, response shape, scoping, or rate-limit context — and 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.

Conciseness2/5

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

The same HTTP path sentence is duplicated verbatim, and the opaque operation ID hash consumes space without helping an agent decide or call. Front-loading is absent — the only informative clause (describe_operation) is buried at the end.

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-only reporting endpoint with no output schema and 0% parameter documentation, the description should explain what progress data is returned and what filters apply. Instead it supplies only a route and an internal operation ID, leaving the agent unable to use the tool without a prior describe_operation call.

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 itself is opaque (a free-form 'query' object with additionalProperties and an empty 'params' object). The description does at least compensate directionally by stating that describe_operation exposes the native request schemas, but it names no actual query keys or filters, so the agent must make a second call to learn anything.

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

Purpose2/5

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

The description only repeats the HTTP path 'GET /api/approvals/progress' twice, which is a restatement of the name/title rather than an explanation. It never says what 'progress' means for approvals (per-workflow completion? pending stages? aggregate counts?), so an agent cannot tell what data it returns or how it differs from siblings like get_approvals_workflows or get_approvals_by_id_actions.

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 to call this versus the many other approvals endpoints (get_approvals, get_approvals_by_id, get_approvals_workflows_match). The only usable cue is the pointer to describe_operation 'provides native request schemas,' which hints at a prerequisite call but not at tool selection.

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

get_approvals_stage_templates_324213b14e0d315d18908a0capprovals: GET /api/approvals/stage-templatesC
Read-onlyIdempotent
Inspect

GET /api/approvals/stage-templates. GET /api/approvals/stage-templates. Operation ID: 324213b14e0d315d18908a0c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that: no pagination behavior, no filtering semantics, no scope (workspace/global) of the returned templates.

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

Conciseness2/5

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

The first sentence is duplicated verbatim, which is pure waste, and the remaining sentence is a generic boilerplate reference to describe_operation. Nothing is front-loaded about the resource or its use.

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 an opaque nested query object, no output schema, and no annotations gaps, the description should explain what stage templates are and how to scope the query. Instead it delegates entirely to describe_operation, leaving an agent unable to construct a meaningful call from the definition alone.

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 two parameters are an untyped free-form 'query' object and an empty 'params' object, so the schema conveys almost nothing. The description's only compensating move is to redirect to describe_operation, which offloads the burden rather than explaining accepted query keys.

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

Purpose2/5

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

The description only repeats the raw endpoint path 'GET /api/approvals/stage-templates', which restates the title without saying what a stage template is or what the call returns. It is marginally more concrete than the title because a reader can infer a list of approval stage templates, but there is no verb-plus-resource phrasing that distinguishes it from siblings like get_approvals_workflows or get_approvals_e70dd964.

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 to use this tool versus alternatives; the only guidance is the pointer to describe_operation for native request schemas. An agent cannot tell from this text whether stage templates belong to workflows, whether it needs a workflow ID, or when to prefer the workflows siblings.

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

get_approvals_workflows_2a0387653a690414289f8f19approvals: GET /api/approvals/workflowsC
Read-onlyIdempotent
Inspect

GET /api/approvals/workflows. GET /api/approvals/workflows. Operation ID: 2a0387653a690414289f8f19; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond flagging describe_operation as a schema source — no pagination, filtering, or result-shape context for an unpaginated 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.

Conciseness2/5

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

The first sentence is duplicated verbatim, which is pure waste at a length where every token should carry information. The remaining content is a single useful pointer (describe_operation), so it is both redundant and under-informative rather than efficiently front-loaded.

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?

No output schema exists, so the description should explain what the list returns and whether filtering/pagination applies; it does neither. For a nested-object, free-form-query endpoint, the only completeness it offers is the redirect to describe_operation, leaving most of what an agent needs unstated.

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 both parameters are opaque: 'query' is a free-form object with additionalProperties and 'params' is empty. The description does not explain what may be passed in 'query', so the agent must call describe_operation before it can construct a request — the definition leaves the parameter gap entirely unresolved.

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

Purpose2/5

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

The description only restates the title/endpoint path ('GET /api/approvals/workflows') twice and cites an operation ID. It conveys the resource ('workflows' under approvals) but no verb-level detail about what the list contains, filters, or returns, so the agent must infer purpose from the name against ~400 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 and no differentiation from siblings like get_approvals_workflows_by_id, get_approvals_workflows_match, or get_approvals_condition_fields. The only directional cue is the pointer to describe_operation for request schemas, which is a next-step hint rather than an invocation guideline.

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

get_approvals_workflows_by_id_b9119347bbee34968bcd76afapprovals: GET /api/approvals/workflows/:idC
Read-onlyIdempotent
Inspect

GET /api/approvals/workflows/:id. GET /api/approvals/workflows/:id. Operation ID: b9119347bbee34968bcd76af; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description contributes nothing beyond that — no return shape, no permissions, no scoping or error behavior — so it clears no bar above 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.

Conciseness2/5

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

The text is short but not economical: the identical endpoint sentence is printed twice, which is pure waste. The remaining content is an operation ID and a pointer to another tool, neither of which is front-loaded into a useful statement of purpose.

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?

This is a simple idempotent read with no output schema, so the description should at least say what the workflow record contains or how the id is obtained. Instead it supplies only the raw route and a pointer to describe_operation, leaving request semantics and return expectations effectively unstated.

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 (an open-ended `query` object and a required `params.id`), so the description carries the full burden and fails to meet it. Only the presence of `:id` in the route string hints at the identifier requirement; the free-form query object is entirely undocumented anywhere.

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

Purpose2/5

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

The description is the HTTP route string repeated verbatim twice, which merely restates the tool name and title rather than explaining the purpose in prose. It conveys that a workflow is retrieved by id, but adds nothing an agent could not infer from the name itself, and gives no hint of what a "workflow" object is or how it differs from siblings like get_approvals_workflows or get_approvals_workflows_match.

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 to use this tool versus the listing tool or the match tool, and no prerequisites or auth notes. The only actionable hint is the pointer that "describe_operation provides native request schemas," which is meta-guidance about request construction rather than tool selection.

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

get_approvals_workflows_match_75c020fe7eb4d0c0da95c30eapprovals: GET /api/approvals/workflows/matchC
Read-onlyIdempotent
Inspect

GET /api/approvals/workflows/match. GET /api/approvals/workflows/match. Operation ID: 75c020fe7eb4d0c0da95c30e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own — no semantics for the 'match' operation, no indication of required scoping, no note on result shape or side effects.

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

Conciseness2/5

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

The first sentence is duplicated verbatim, so there is literal waste, and there is no front-loaded statement of intent. The remaining content is a bare operation ID plus a pointer to a sibling.

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 nested-object, zero-coverage, no-output-schema tool, the description does not supply enough to construct a valid call. Pointing to describe_operation is the only mitigation, and it is a workaround rather than completeness.

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 two parameters (a free-form nested 'query' object and an empty 'params' object) have no documentation. The description offers no substitute — it only deflects to describe_operation, leaving the agent unable to know what query keys the match endpoint expects.

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

Purpose2/5

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

The description only restates the endpoint path and title ("GET /api/approvals/workflows/match") twice. It never explains what a 'workflow match' is or what resource is returned, so an agent cannot distinguish it from get_approvals_workflows_2a0387653a690414289f8f19 or get_approvals_workflows_by_id_b9119347bbee34968bcd76af.

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, when-not-to-use, or sibling comparison. The only navigational help is the pointer that describe_operation exposes native request schemas, which tells the agent how to get a schema, not when this tool is the right choice.

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

get_asc842_reconciliation_records_by_re_bd82f94cdee897ddae664a01asc842-reconciliation: GET /api/asc842-reconciliation/records/:recordIdC
Read-onlyIdempotent
Inspect

GET /api/asc842-reconciliation/records/:recordId. GET /api/asc842-reconciliation/records/:recordId. Operation ID: bd82f94cdee897ddae664a01; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description owes the agent context beyond that safety profile. It adds nothing: no note on what happens when recordId is unknown (404 vs empty), no permissions/auth requirements, no indication of payload size. Repeating "GET ..." conveys no behavior the annotations do not already imply.

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

Conciseness2/5

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

The two sentences are short, but the first is literally printed twice — pure duplication with zero informational gain. The only non-redundant content (operation ID, describe_operation pointer) is buried at the end rather than 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?

There is no output schema, so the description should ideally say something about the returned record; it does not. However, this is a simple single-record read-by-id with only a path parameter, and the annotations plus the describe_operation pointer give an agent enough to attempt the call correctly. Adequate-but-thin is the right read.

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 two parameters, so the description carries the full burden and fails. It mentions ':recordId' only as part of the path string, giving no format, provenance, or constraints (maxLength 2000 is only in the schema), and the free-form 'query' object receives no mention at all.

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

Purpose2/5

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

The description only restates the raw HTTP route already embedded in the name and title ("GET /api/asc842-reconciliation/records/:recordId"), duplicated verbatim twice. It never says in domain terms what an ASC 842 reconciliation record is or what retrieving one yields. An agent gets the verb and resource shape but nothing that distinguishes this from the many sibling get_*_by_id 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 statement of when to use this versus alternatives such as get_asc842_reconciliation_runs_by_runId_* or execute_read. The only actionable pointer is to describe_operation for native request schemas, which is a schema-lookup hint rather than usage guidance. No prerequisites, no exclusions, no context about needing a runId first.

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

get_asc842_reconciliation_runs_by_runId_646108e391f59a3eea06c16casc842-reconciliation: GET /api/asc842-reconciliation/runs/:runId/cutover-reportC
Read-onlyIdempotent
Inspect

GET /api/asc842-reconciliation/runs/:runId/cutover-report. GET /api/asc842-reconciliation/runs/:runId/cutover-report. Operation ID: 646108e391f59a3eea06c16c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered by structured data. The description adds nothing behavioral: no indication of what a cutover report contains, whether the runId must reference a completed run, error behavior for unknown runs, or response size. The 'describe_operation' pointer is a discovery hint rather than 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.

Conciseness2/5

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

The identical endpoint sentence is repeated verbatim twice, and the operation ID (646108e391f59a3eea06c16c) is already in the tool name, making both inclusions waste. No front-loaded statement of purpose in natural language; the useful content is a single trailing 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?

With no output schema and a nested 'params'/'query' structure at 0% description coverage, the description leaves the agent without a clear picture of the response or the query parameter's purpose. For a report-generation endpoint on a specialized ASC 842 reconciliation module, this is inadequate context to invoke confidently.

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, and it does not. The ':runId' placeholder implies the path parameter's role, but the free-form 'query' object parameter is entirely unexplained, and there is no clarification of accepted runId format or validation rules beyond the schema's minLength/maxLength.

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 raw path 'GET /api/asc842-reconciliation/runs/:runId/cutover-report' does identify a specific verb and resource (fetch the cutover report for a given reconciliation run), so the purpose is inferable. However, it is delivered as an unformatted URL rather than a stated intent, and the only differentiation from the many sibling asc842 run endpoints is the '/cutover-report' suffix buried in the path.

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 use this versus sibling tools such as get_asc842_reconciliation_runs_by_runId_d0a816fb... or the reconciliation-records endpoint. The only routing hint is that 'describe_operation provides native request schemas', which tells the agent where to get details, not when this tool is the right choice.

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

get_asc842_reconciliation_runs_by_runId_d0a816fb60007cd9d236b0ddasc842-reconciliation: GET /api/asc842-reconciliation/runs/:runIdC
Read-onlyIdempotent
Inspect

GET /api/asc842-reconciliation/runs/:runId. GET /api/asc842-reconciliation/runs/:runId. Operation ID: d0a816fb60007cd9d236b0dd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds no behavioral context beyond the raw route — nothing about what a reconciliation run record contains, whether the runId must come from the list endpoint, or what happens on an unknown ID.

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

Conciseness2/5

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

The same route sentence is duplicated verbatim, and an internal operation ID (d0a816fb60007cd9d236b0dd) is surfaced with no explanation of how an agent would use it. The content is short but the duplication and internal identifier consume space without adding information.

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, 0% parameter description coverage, and a nested 'query' object, the description carries the burden of explaining inputs and return shape — and it does neither. For a fetch-by-ID tool an agent needs at minimum what a 'reconciliation run' is and where runId comes from, neither of which is present.

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 two parameters (a required path param runId and an unexplained free-form 'query' object). The only semantic clue is the literal ':runId' placeholder in the route, which implies runId is a path identifier but not its format or source; the 'query' object is left completely undocumented.

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

Purpose2/5

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

The description only restates the HTTP route 'GET /api/asc842-reconciliation/runs/:runId' twice; the name/title already contains that string, so it is effectively a tautology. An agent can infer this fetches an ASC 842 reconciliation run by ID, but the description never says so in plain language and gives no way to distinguish it from the many sibling tools with nearly identical names (e.g. get_asc842_reconciliation_runs_by_runId_646108e3..., _fab4996b...).

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 to call this versus its near-duplicate siblings or the list endpoint get_asc842_reconciliation_runs_e4d8931a. The only indirect hint is that 'describe_operation provides native request schemas', which points at a companion tool for schema discovery but says nothing about selection criteria.

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

get_asc842_reconciliation_runs_by_runId_fab4996b5ed41c18edd51d07asc842-reconciliation: GET /api/asc842-reconciliation/runs/:runId/recordsC
Read-onlyIdempotent
Inspect

GET /api/asc842-reconciliation/runs/:runId/records. GET /api/asc842-reconciliation/runs/:runId/records. Operation ID: fab4996b5ed41c18edd51d07; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is fully covered structurally. The description adds nothing beyond that: no note on pagination, filtering behavior of the free-form 'query' object, error semantics for an unknown runId, or whether records are paged.

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

Conciseness2/5

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

The description is short but not concise in any useful sense: the identical sentence appears twice, and an opaque 'Operation ID: fab4996b...' is included that gives an agent no actionable information. Front-loading is a route string rather than an action statement.

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?

A nested-object parameter with 0% schema coverage, no output schema, and heavy sibling ambiguity means the description should carry real weight, yet it only echoes the endpoint. An agent could call it, but with no idea of what the 'query' object accepts or how results are shaped.

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 two parameters, one of which ('query') is a free-form object with additionalProperties and no documented keys at all. The description must compensate but provides none of that: nothing about runId format, nor which query fields (status, limit, offset, cursor) are accepted.

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

Purpose2/5

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

The description only repeats the raw route 'GET /api/asc842-reconciliation/runs/:runId/records' twice; the verb+resource can be inferred from the URL but is never stated in words (e.g. 'list reconciliation records belonging to a run'). Several siblings (get_asc842_reconciliation_records_by_re_*, two other runs_by_runId tools, get_asc842_reconciliation_runs_*) are not differentiated at all, so an agent cannot tell them apart from this text.

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 to use this tool versus the record-level sibling or the other runs_by_runId operations. The only directional hint is 'describe_operation provides native request schemas', which points at another tool for schema lookup, not at when this operation is the right choice.

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

get_asc842_reconciliation_runs_e4d8931aefa70556c813c20dasc842-reconciliation: GET /api/asc842-reconciliation/runsC
Read-onlyIdempotent
Inspect

GET /api/asc842-reconciliation/runs. GET /api/asc842-reconciliation/runs. Operation ID: e4d8931aefa70556c813c20d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description adds nothing behavioral: no pagination, no filter semantics, no result shape, no rate limits — the bar is lower with annotations but the description still contributes zero.

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

Conciseness2/5

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

The text is short but wasteful: the same endpoint string appears twice verbatim, and the operation ID plus meta-instruction consume the remaining space. Nothing is front-loaded except a path that is already implied by the tool name.

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 nested-object, zero-coverage schema with no output schema, the description leaves an agent unable to construct a valid call without first invoking describe_operation. It does at least name that escape hatch, which is the one genuinely useful piece of information present.

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 two nested-object parameters (query, params) with additionalProperties looseness. The description does not explain what can go in 'query' or 'params'; it only defers to describe_operation, which is a pointer rather than parameter meaning.

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

Purpose2/5

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

The description restates the raw HTTP path twice and adds nothing beyond the tool name, which already encodes 'get asc842 reconciliation runs'. An agent can infer this is a list endpoint from the path, but there is no stated verb, scope, or distinction from siblings such as get_asc842_reconciliation_runs_by_runId_*.

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 is given, and the sibling tools (the three by-runId variants, get_asc842_reconciliation_records_by_re*) are never mentioned. The only routing hint is the pointer to describe_operation for request schemas, which is about mechanics rather than tool selection.

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

get_asset_groups_2c31ee932fc71edcb66a09c2asset-groups: GET /api/asset-groupsC
Read-onlyIdempotent
Inspect

GET /api/asset-groups. GET /api/asset-groups. Operation ID: 2c31ee932fc71edcb66a09c2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own — no pagination, filtering, or scope information — beyond pointing at describe_operation for schemas.

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

Conciseness2/5

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

The text is short but wasteful: the identical sentence appears twice, and the operation ID is a machine artifact of little use to an agent choosing a tool. There is no front-loaded statement of purpose to justify the brevity.

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, 0% parameter description coverage, and nested objects, this definition should carry more explanatory weight than it does. The describe_operation hand-off partially mitigates the schema gap, but an agent still cannot tell what this call retrieves or how to shape the query.

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 nested parameters (a free-form 'query' object and an empty 'params' object), so the description must compensate and does not. It gives no indication of what belongs in 'query' or why 'params' is constrained to no properties, leaving the delegation to describe_operation as the only thread for the agent to pull.

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

Purpose2/5

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

The description restates the tool title verbatim ('GET /api/asset-groups') and repeats it, with no verb-level explanation of what an asset group is or what is returned. An agent learns only that this is a GET on the asset-groups resource, with no differentiation from siblings such as get_asset_groups_by_id_history_baa8444d4c960eb2b28a3031.

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 actionable guidance is the pointer that 'describe_operation provides native request schemas', which tells the agent where to look for request shape but not when to call this tool versus its siblings. There are no conditions, prerequisites, or exclusions stated.

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

get_asset_groups_by_id_history_baa8444d4c960eb2b28a3031asset-groups: GET /api/asset-groups/:id/historyD
Read-onlyIdempotent
Inspect

GET /api/asset-groups/:id/history. GET /api/asset-groups/:id/history. Operation ID: baa8444d4c960eb2b28a3031; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no indication of what a 'history' payload contains, whether it is paginated or versioned, or any retention/ordering behavior. The describe_operation pointer is the sole added value.

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

Conciseness2/5

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

It is short, but the same sentence is repeated twice, wasting the only content budget it has. Nothing is front-loaded beyond the raw endpoint, and the useful pointer to describe_operation is buried after the duplication.

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 a nested free-form query object at 0% schema coverage and no output schema, the description should explain the query surface and what history records are returned. It leaves both undocumented, so an agent cannot call it correctly without a separate describe_operation round-trip.

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%, so the description carries the full burden, yet it says nothing about the required 'id' path parameter (format, valid identifier type) or the free-form 'query' object (supported filters, pagination keys). The ':id' placeholder in the REST path is the only implicit mapping, leaving the nested query parameter entirely undocumented.

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

Purpose2/5

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

The description is a raw REST path 'GET /api/asset-groups/:id/history' duplicated verbatim, which largely restates the tool name and title. It does imply the resource (asset group history) and the id-scoped nature, but provides no plain-language statement of what the tool returns or how it differs from sibling get_asset_groups_2c31ee932fc71edcb66a09c2.

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 mention of alternatives such as the base get_asset_groups tool, and no prerequisites. The only actionable hint is the pointer to describe_operation for native request schemas, which is a schema-lookup instruction rather than usage guidance.

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

get_automation_workflows_6f9fdb7ed8887cc5a50d1b06automation-workflows: GET /api/automation-workflowsD
Read-onlyIdempotent
Inspect

GET /api/automation-workflows. GET /api/automation-workflows. Operation ID: 6f9fdb7ed8887cc5a50d1b06; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered structurally. The description adds nothing beyond those hints and the describe_operation pointer — no pagination behavior, response shape, or filtering semantics for a collection endpoint.

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

Conciseness2/5

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

It is short, but the brevity comes from duplication, not density: the same path string is printed twice and the operation ID adds no decision value. Nothing is front-loaded about behavior or scope.

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, no annotation gaps, and an unconstrained nested query object, the description leaves the agent unable to call the tool meaningfully without first invoking describe_operation. The delegation is a partial mitigation but does not make the definition self-sufficient.

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% across two parameters, including an open-ended nested 'query' object with free-form additionalProperties. The description neither names nor constrains any query parameter, deferring entirely to describe_operation, so an agent has no way to know what filters are legal without a second call.

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

Purpose2/5

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

The description is essentially the endpoint path restated twice plus an operation ID, which is a tautological restatement of the name/title. It does imply a list/collection read of automation workflows, but gives no indication of what the collection contains or how it differs from siblings such as get_automation_workflows_by_id, get_automation_workflows_instances, or get_automation_workflows_condition_fiel.

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 exclusions, and no comparison to the many sibling automation tools. The only actionable hint is that describe_operation 'provides native request schemas', which points at a discovery step but does not say when this tool should be chosen over the by-id or instances variants.

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

get_automation_workflows_by_id_94bb04fb1d7ddc7760397ae5automation-workflows: GET /api/automation-workflows/:idC
Read-onlyIdempotent
Inspect

GET /api/automation-workflows/:id. GET /api/automation-workflows/:id. Operation ID: 94bb04fb1d7ddc7760397ae5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The one genuinely additive line is that request schemas must be fetched via describe_tool / the operation ID (94bb04fb...), which tells the agent the input contract is not self-documenting here. Nothing contradicts 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.

Conciseness2/5

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

The description is short but wastes its entire first half on a verbatim duplicate of the same path string, which earns nothing. The remaining clause is a useful pointer but is buried behind the repetition.

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-by-ID endpoint with no output schema, the description should tell the agent what the returned workflow object represents and what happens on an unknown ID. It supplies neither, leaving the agent to discover everything through describe_operation.

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 2 parameters, one of which (params.id) is required, so the description must compensate and does not. The ':id' in the path weakly implies the required identifier, but there is no explanation of what kind of ID it is, its format, or the optional query object.

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

Purpose2/5

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

The description is the endpoint path repeated twice, which merely restates the tool name/title ('automation-workflows: GET /api/automation-workflows/:id'). It never says in plain language what the resource is, what a workflow contains, or what the agent gets back. It does implicitly distinguish the by-ID fetch from the list sibling, but only through the same path string the name already provides.

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 to call this versus the sibling list tool (get_automation-workflows_), the instances endpoints, or describe_operation. The single pointer to 'describe_tool provides native request schemas' hints at a workflow but not a usage condition.

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

get_automation_workflows_condition_fiel_b3c98b111f272701b1b62c96automation-workflows: GET /api/automation-workflows/condition-fieldsC
Read-onlyIdempotent
Inspect

GET /api/automation-workflows/condition-fields. GET /api/automation-workflows/condition-fields. Operation ID: b3c98b111f272701b1b62c96; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond them: no note on what the condition-field catalog contains, whether it is static per workspace, or whether it is cached. It also does not contradict them.

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

Conciseness2/5

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

The only substantive content is wasted: the endpoint path is printed twice, an opaque operation ID, and a generic pointer to describe_operation. Front-loading is absent because there is nothing meaningful to front-load.

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?

No output schema exists, so the description would need to convey what comes back — a list of condition fields, their types, and any grouping by entity. Instead the agent gets a path and an instruction to look elsewhere, which is inadequate for a tool whose entire purpose is undisclosed.

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?

Two parameters (a free-form 'query' object and an empty 'params' object) with 0% schema description coverage and no enum guidance. The description says nothing about what 'query' accepts — filters, pagination, entity type scoping — leaving the agent to infer everything from an open additionalProperties bag.

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

Purpose2/5

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

The description is a verbatim restatement of the HTTP path and title, repeating the identical line twice. It conveys no semantic meaning about what 'condition fields' are (field definitions available for building automation-workflow conditions, presumably) or how this differs from siblings like get_approvals_condition_fields. An agent learns only that it is a GET on that path.

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 exclusion criteria, and no mention of alternatives. The single directive — 'describe_operation provides native request schemas' — is a pointer to a schema-lookup sibling rather than a routing signal between tools.

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

get_automation_workflows_instances_9e577d22f7b78a9d70fdac4eautomation-workflows: GET /api/automation-workflows/instancesD
Read-onlyIdempotent
Inspect

GET /api/automation-workflows/instances. GET /api/automation-workflows/instances. Operation ID: 9e577d22f7b78a9d70fdac4e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds no behavioral context such as pagination, filtering, or what an 'instance' represents; the 'describe_operation provides native request schemas' note is the only added information and concerns discovery, not behavior.

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

Conciseness2/5

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

Short but wasteful: the identical path is printed twice, and the operation ID is noise for an agent. There is no front-loaded statement of purpose or return content.

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

Completeness1/5

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

A nested-object tool with 0% schema coverage, no output schema, and no annotations gap-filling leaves the agent without any information about request shape or response content. The description does not fill that void at all.

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 0% and the two parameters (a free-form 'query' object with additionalProperties and an empty 'params' object) are entirely undocumented. The description does not compensate; it only refers the agent to describe_operation, leaving the actual semantics unexplained.

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

Purpose2/5

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

The description is only the raw endpoint path 'GET /api/automation-workflows/instances' repeated verbatim, which restates the tool name and title rather than explaining what it returns. An agent can infer it lists automation workflow instances, but nothing distinguishes it from get_automation_workflows or get_automation_workflows_instances_by_id beyond the URL shape.

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

Usage Guidelines1/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 the sibling list/detail tools, no prerequisites, no exclusions. The only directive is a pointer to describe_operation for schemas, which is about parameters, not tool selection.

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

get_automation_workflows_instances_by_i_c5e77b47e510db81e9db01afautomation-workflows: GET /api/automation-workflows/instances/:idD
Read-onlyIdempotent
Inspect

GET /api/automation-workflows/instances/:id. GET /api/automation-workflows/instances/:id. Operation ID: c5e77b47e510db81e9db01af; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no mention of what a missing/invalid id returns, whether the instance payload is large, or any scoping rules.

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

Conciseness2/5

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

The same route sentence is duplicated back to back, which is pure waste, and the front-loaded content is a URL rather than a human-readable purpose. It is short but not economical or well-structured.

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

Completeness1/5

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

With no output schema, a nested free-form `query` parameter, 0% schema description coverage, and no explanation of the returned instance shape, the description leaves nearly everything an agent needs unanswered. The tool name in sibling list is also nearly identical to a list endpoint, making disambiguation essential and absent here.

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 both the nested `query` object and `params.id`. The path template `:id` weakly signals that `id` identifies the instance, but the description gives no format, source, or meaning for it and says nothing about the free-form `query` object.

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

Purpose2/5

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

The description is a verbatim restatement of the tool's HTTP route and title, repeated twice, plus an operation ID. A reader can infer it fetches one automation workflow instance by id, but the description itself never says so in plain language or distinguishes it from sibling get_automation_workflows_instances_9e577d22f7b78a9d70fdac4e (the list variant).

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 to use this endpoint versus the instances list, the workflow-by-id endpoint, or describe_operation. The only actionable pointer is that describe_operation holds the native request schemas, which is a schema hint rather than usage guidance.

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

get_billing_available_months_8b21a4f5387adafd837c1b68billing: GET /api/billing/available-monthsC
Read-onlyIdempotent
Inspect

GET /api/billing/available-months. GET /api/billing/available-months. Operation ID: 8b21a4f5387adafd837c1b68; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that—no note on what the response contains (a list of months? in what format?), no pagination or scope remarks—so it earns little credit on top of 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.

Conciseness2/5

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

The first sentence is duplicated verbatim, and the operation ID is noise for an agent. No value-bearing content is front-loaded; the text is short only because it says almost nothing.

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, no parameter documentation, and a nested free-form query object, the description would need to explain the return shape and filtering behavior. It instead defers entirely to describe_operation, leaving an agent unable to invoke the tool correctly without a second call.

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% with two free-form objects (query, params) whose contents are entirely undocumented. The description provides no parameter meaning at all, only a generic referral to describe_operation, 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.

Purpose2/5

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

The description simply restates the HTTP path 'GET /api/billing/available-months' twice, which is the title rather than an explanation of what the endpoint returns or is used for. An agent can infer it lists billing months, but nothing confirms that beyond the URL text, and there is no differentiation from the many sibling billing/subscription endpoints (e.g., get_billing_projected, get_subscription_billing_check).

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 to call this versus alternatives such as get_billing_projected or the subscription usage tools. The only actionable hint is the pointer to describe_operation for native request schemas, which is a discovery step rather than usage guidance.

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

get_billing_projected_d9edfc4ac0476285683bc57bbilling: GET /api/billing/projectedC
Read-onlyIdempotent
Inspect

GET /api/billing/projected. GET /api/billing/projected. Operation ID: d9edfc4ac0476285683bc57b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond that — no indication of what data is returned, aggregation level, or currency/period handling — only a pointer to describe_operation.

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

Conciseness2/5

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

The first sentence is duplicated verbatim, which is pure waste, and the operation ID hash is not useful to a selecting agent. What little content exists is not organized to front-load purpose.

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 nested objects, zero schema documentation, and no output schema, the description should carry the burden of explaining inputs and expected returns. It does neither, leaving the agent dependent on a separate describe_operation call before it can use this tool meaningfully.

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% with two opaque parameters (a free-form "query" object and an empty "params" object). The description offers no parameter meaning at all; the single pointer to describe_operation acknowledges the gap but does not compensate for it.

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

Purpose2/5

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

The description is the raw endpoint path repeated twice: "GET /api/billing/projected. GET /api/billing/projected." It never says in plain language what a projected billing figure is, what period it covers, or how it differs from siblings like get_subscription_billing_check or get_billing_available_months. This is essentially a restatement of the name/title.

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 to call this versus the many billing/subscription siblings. The only routing hint is that "describe_operation provides native request schemas," which tells the agent how to get schemas, not when this tool is the right one to invoke.

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

get_bulk_import_by_id_0a4de81d99c5615ef3f0dff2bulk: GET /api/bulk/import/:idC
Read-onlyIdempotent
Inspect

GET /api/bulk/import/:id. GET /api/bulk/import/:id. Operation ID: 0a4de81d99c5615ef3f0dff2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the description's silence on safety is acceptable, but it adds nothing beyond annotations. It says nothing about what the payload contains, whether missing ids 404, or how the response differs from the list sibling.

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

Conciseness2/5

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

The identical endpoint sentence is duplicated verbatim before the operation-ID boilerplate, which is pure waste and pushes the only slightly useful pointer to describe_operation to the end. There is no front-loaded statement of intent.

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, 0% parameter coverage, and a nested free-form `query` object, the description leaves an agent unable to know what an 'import' record represents or what the query object can hold. The describe_operation pointer offloads schema discovery but does not fill the semantic 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% and there are two parameters (an undocumented `id` path param and a free-form `query` object), so the description is obligated to compensate and does not. The ':id' placeholder in the URL is the only hint that `id` is a path identifier; the arbitrary query object is never mentioned.

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

Purpose2/5

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

The description only restates the endpoint path already embedded in the name and title, without a plain-language statement of what a 'bulk import' record is or what is returned. The ':id' path does imply a single-record retrieval and thereby distinguishes it weakly from the sibling get_bulk_imports (list), but that inference comes from the URL, not from explanation.

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: it never says to call this for a single import job versus get_bulk_imports for a listing, nor mentions prerequisites or that an id from the list endpoint is required. The only routing hint is a generic pointer to describe_operation for request schemas.

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

get_bulk_imports_67c8c30fbddf7862668d55e1bulk: GET /api/bulk/importsC
Read-onlyIdempotent
Inspect

GET /api/bulk/imports. GET /api/bulk/imports. Operation ID: 67c8c30fbddf7862668d55e1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing on top of that — no return shape, pagination, filtering behavior, or auth/scope requirements for a collection listing.

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

Conciseness2/5

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

It is short, but the first sentence is literally duplicated, and there is no front-loaded value statement — the operation ID and schema pointer lead instead of the tool's purpose.

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 collection GET with an open query object and no output schema, the agent needs to know what is listed and what query options exist. The description provides neither, leaving the only recourse a separate describe_operation call.

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 two parameters are an open-ended 'query' object plus an empty 'params' object, so the schema explains nothing. The description's only hint is that describe_operation provides native request schemas, which points at another tool rather than documenting any parameter.

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

Purpose2/5

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

The description is a raw restatement of the endpoint path and title ("GET /api/bulk/imports" repeated twice), not a plain-language statement of what the tool returns. It never says "list bulk imports" or what a bulk import is. The only differentiation from the sibling get_bulk_import_by_id_... is implicit in the path lacking an ID.

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 to use this collection endpoint versus get_bulk_import_by_id_..., get_pending_imports_..., or get_import_history_..., nor any prerequisites or filtering context. The only sibling reference is a pointer to describe_operation for schemas, which is about schema retrieval, not tool selection.

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

get_calendar_events_790f8bec65f62ffcfc3fca07calendar: GET /api/calendar/eventsC
Read-onlyIdempotent
Inspect

GET /api/calendar/events. GET /api/calendar/events. Operation ID: 790f8bec65f62ffcfc3fca07; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and non-destructive, so the safety profile is fully covered structurally. The description adds nothing behavioral beyond the endpoint string — no note on pagination, date-range defaults, or what an empty result means — so it contributes almost no context over 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.

Conciseness2/5

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

It is short, but wasteful: the same endpoint string is duplicated verbatim, and the operation-ID sentence is machine noise rather than agent-usable information. Nothing is front-loaded that explains the call's effect.

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 listing endpoint with a free-form nested query object, no output schema, and 0% parameter coverage, the description leaves an agent unable to construct a correct request or anticipate the response. The deferral to describe_operation is the only completeness support.

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 both parameters ('query' as an open additionalProperties object, 'params' with no defined properties) are entirely undocumented. The description does not compensate: it only defers to describe_operation instead of explaining what query filters are accepted.

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

Purpose2/5

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

The description only repeats the HTTP path 'GET /api/calendar/events' twice; it names a resource (calendar events) but restates the name/title rather than describing what the call returns or does. It gives an agent no plain-language statement of purpose or any distinguishing feature versus the many calendar/site/event 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 or when-not-to-use guidance. The single useful token is the pointer that 'describe_operation provides native request schemas', which hints at a companion tool, but it doesn't say when to pick this endpoint over get_calendar_payments or get_dashboard_upcoming_events.

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

get_calendar_payments_d68efb162f4105f5eb360d05calendar: GET /api/calendar/paymentsD
Read-onlyIdempotent
Inspect

GET /api/calendar/payments. GET /api/calendar/payments. Operation ID: d68efb162f4105f5eb360d05; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so safety is covered. The description adds nothing beyond that — no mention of pagination, date-range behavior, auth requirements, or what the response contains — even though it defers to describe_operation for request details.

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

Conciseness2/5

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

The same sentence is duplicated verbatim and padded with an opaque operation hash. It is short but the content is redundant and does not front-load anything useful about the endpoint.

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

Completeness1/5

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

For an undocumented open-ended query object with no output schema and no annotations describing return shape, the description supplies nothing about inputs or outputs. It is not sufficient for an agent to call the tool correctly without a follow-up describe_operation call.

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 free-form 'query' object accepts arbitrary properties with no documentation anywhere. The description provides zero meaning for either parameter, leaving the agent to guess at filter keys.

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

Purpose2/5

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

The description only restates the tool name as an HTTP path ('GET /api/calendar/payments') twice, which is a tautology rather than an explanation. It never says what these payments represent (lease payments? calendar-linked disbursements?), how they differ from get_calendar_events, or what scope they cover.

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 actionable sentence routes the agent to describe_operation for native request schemas, which is a pointer, not usage guidance. There is no statement of when to call this versus siblings like get_calendar_events or get_leases_by_id_payments.

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

get_cam_annual_budgets_by_id_schedule_12000db23a3aefb237c2ef9ccam: GET /api/cam/annual-budgets/:id/scheduleD
Read-onlyIdempotent
Inspect

GET /api/cam/annual-budgets/:id/schedule. GET /api/cam/annual-budgets/:id/schedule. Operation ID: 12000db23a3aefb237c2ef9c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world scope, so safety is covered. The description adds nothing beyond the route, not even that this returns the schedule lines for a single budget or what happens with an unknown id; the describe_operation pointer is the only added value.

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

Conciseness2/5

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

Two literally identical sentences, so half the content is pure waste. The remaining content is a route string with no front-loaded explanation of purpose.

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

Completeness1/5

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

A nested-object schema with 0% field descriptions, no output schema and no annotations gap filled by prose. For a tool whose only parameter is an opaque id, the agent is left without any notion of the return shape or the meaning of the path id, making the definition inadequate to invoke confidently.

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 the required 'params.id' or the free-form 'query' object. The agent learns neither what the id refers to nor what query parameters are accepted, so the description does not compensate for the schema gap at all.

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

Purpose2/5

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

The description is the raw route string 'GET /api/cam/annual-budgets/:id/schedule' repeated twice, which restates the title verbatim. It does identify a resource (annual budget schedule) and a read verb through the URL path, but offers no plain-language statement of what the operation returns or how it differs from the sibling get_cam_annual_budgets_c03116baf9909d96631ab195.

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 comparison to alternatives such as the annual budgets list tool. The only actionable hint is the pointer to describe_operation, which tells the agent how to get the request schema but not when to select this tool.

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

get_cam_annual_budgets_c03116baf9909d96631ab195cam: GET /api/cam/annual-budgetsD
Read-onlyIdempotent
Inspect

GET /api/cam/annual-budgets. GET /api/cam/annual-budgets. Operation ID: c03116baf9909d96631ab195; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description adds nothing about pagination, filtering semantics, or response shape, leaving behavior undisclosed 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.

Conciseness2/5

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

Very short, but the same sentence is duplicated, so half the text is pure waste. Brevity here reflects under-specification rather than efficient communication.

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

Completeness1/5

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

No output schema, no parameter documentation, and a description that is effectively a stub. An agent has no way to know what filters are valid or what the endpoint returns; the definition is inadequate for correct invocation.

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 both parameters are opaque (a free-form 'query' object with additionalProperties and an empty 'params'). The description says nothing about what query fields are accepted, so it 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.

Purpose2/5

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

The description only restates the endpoint path 'GET /api/cam/annual-budgets' and repeats itself verbatim. It conveys that annual budgets are retrieved but offers no scoping, filtering, or distinction from siblings such as get_cam_annual_budgets_by_id_schedule_...

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 guidance is a pointer that 'describe_operation provides native request schemas', which is a metadata hint rather than a when-to-use rule. There is no indication of which sibling list/detail endpoint to prefer or under what conditions.

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

get_cam_categories_51091e51282bed305fec1db2cam: GET /api/cam/categoriesC
Read-onlyIdempotent
Inspect

GET /api/cam/categories. GET /api/cam/categories. Operation ID: 51091e51282bed305fec1db2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond the path and an operation ID — no mention of pagination, filtering behavior, or result size, which is what would actually help here.

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

Conciseness2/5

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

It is short, but the first sentence is duplicated verbatim and the operation ID is opaque to an agent. Two of three sentences carry no decision-relevant information, so brevity here reflects under-specification rather than efficiency.

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, an undocumented nested query object, and no required parameters, the description would need to explain the query surface and return shape. It does neither, leaving the agent to call describe_operation or guess before it can invoke this tool usefully.

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 two top-level parameters, and 'query' is an unconstrained nested object with additionalProperties. The description never mentions what query keys are accepted or what 'params' (declared empty) is for, so the gap is left entirely unaddressed apart from a pointer to describe_operation.

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

Purpose2/5

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

The description only restates the endpoint path 'GET /api/cam/categories', which is already the tool name and title. It gives no indication of what a 'cam category' is, what fields are returned, or how it differs from siblings like get_cam_categories_by_id_cap_history or get_cam_landlord_category_mappings.

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 to use this list endpoint versus the many CAM-related siblings. The only routing hint is that describe_operation provides native request schemas, which points at a schema lookup rather than telling the agent when this tool is the right choice.

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

get_cam_categories_by_id_cap_history_55c452c9651c2cea757ef07ccam: GET /api/cam/categories/:id/cap-historyD
Read-onlyIdempotent
Inspect

GET /api/cam/categories/:id/cap-history. GET /api/cam/categories/:id/cap-history. Operation ID: 55c452c9651c2cea757ef07c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no statement about what the history contains, ordering, pagination, or whether it is scoped to the category only.

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

Conciseness2/5

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

It is short, but the single content sentence is duplicated verbatim, wasting half the text, and the operation-id boilerplate is front-and-center rather than any useful purpose statement.

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 zero parameter documentation, the description is the only place an agent could learn what this endpoint yields; it supplies none of that. Only the annotations rescue basic invocation safety.

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 schema gives no per-field documentation. The path template ':id' implicitly identifies the required id as a category identifier, which is the only semantic hint offered; the 'query' free-form object is left entirely unexplained.

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

Purpose2/5

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

The description only restates the tool name/title in URL form ('GET /api/cam/categories/:id/cap-history') and repeats it verbatim. It never says in plain language what a 'cap history' returns (cap allocations over periods?) or how it differs from siblings like get_cam_categories or get_cam_periods_by_periodId_caps_summary.

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

Usage Guidelines1/5

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

No when-to-use, when-not-to-use, or alternative is named. The only directive is 'describe_operation provides native request schemas,' which points elsewhere rather than telling an agent when to pick this tool over the many other CAM retrieval tools.

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

get_cam_clauses_by_clauseId_anchors_fb7448a97a06f09076b68ac3cam: GET /api/cam/clauses/:clauseId/anchorsC
Read-onlyIdempotent
Inspect

GET /api/cam/clauses/:clauseId/anchors. GET /api/cam/clauses/:clauseId/anchors. Operation ID: fb7448a97a06f09076b68ac3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no pagination, no ordering, no empty-result behavior, no auth scoping note, and the duplicated path sentence carries zero behavioral content.

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

Conciseness2/5

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

Two sentences, but the first is the identical path string printed twice — pure redundancy that pushes the one useful sentence (the describe_operation pointer) to the end rather than front-loading it.

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-only sub-resource GET with a nested untyped query object, 0% schema description coverage and no output schema, the description should at minimum say what anchors are returned and how to filter them. It supplies neither, leaving the agent dependent on describe_operation for anything actionable.

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 two parameters, one of which is a free-form nested 'query' object with additionalProperties. The ':clauseId' path token implies the required clause identifier, but the description never says what clauseId format to supply, what query keys are accepted, or what filtering the anchors endpoint supports.

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

Purpose2/5

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

The description is the URL path repeated verbatim twice, which only restates the tool name/title (cam: GET /api/cam/clauses/:clauseId/anchors). It never explains what an 'anchor' is on a CAM clause or how this differs from siblings such as get_document_anchors or get_cam_clauses_by_id_categories.

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 statement of when to use this over alternatives, no prerequisites, no exclusions. The only procedural hint is 'describe_operation provides native request schemas', which points at a sibling for schema lookup but gives no condition that selects this tool.

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

get_cam_clauses_by_id_categories_8ce710a2ffe320a12bfe0d11cam: GET /api/cam/clauses/:id/categoriesC
Read-onlyIdempotent
Inspect

GET /api/cam/clauses/:id/categories. GET /api/cam/clauses/:id/categories. Operation ID: 8ce710a2ffe320a12bfe0d11; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond the path: no indication of the return shape, whether the list is paginated or complete, or what an unknown clause id yields — and schema coverage is 0%, so nothing else compensates.

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

Conciseness2/5

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

The same endpoint string appears twice in a two-sentence description, which is pure redundancy rather than front-loading. Length is short, but the content is not structured to lead with purpose, usage, or parameters.

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 2-parameter, nested-object, zero-schema-documentation tool with no output schema, the description leaves an agent unable to predict parameters or results. The only useful elements are the implicit parent-id path and the redirect to describe_operation for the native request schema.

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 (query and params.id), so the description must carry the burden and does not. The ':id' segment of the path hints that id identifies the parent clause, but there is no explanation of accepted id format or of what the free-form 'query' object is for.

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

Purpose2/5

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

The description is the URL path printed twice with an operation ID; it restates the title rather than explaining what the operation does in plain terms. The path does imply 'fetch the categories of the CAM clause with this id', so the resource is inferable, but no verb or scope statement is written out and no sibling (e.g. get_cam_clauses_by_clauseId_anchors, get_cam_categories) is distinguished.

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 guidance is the pointer that 'describe_operation provides native request schemas', which tells the agent where to look for the request contract but not when this endpoint is the right one to call. There is no statement about when to prefer it over the other clause/category endpoints in the sibling list.

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

get_cam_compare_33c65b566fc94152aabbe9bacam: GET /api/cam/compareD
Read-onlyIdempotent
Inspect

GET /api/cam/compare. GET /api/cam/compare. Operation ID: 33c65b566fc94152aabbe9ba; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world scope, so the safety profile is covered structurally. Beyond that, the description contributes nothing — no return shape, no required identifiers, no cost or rate behavior — only the operation ID and a note that describe_operation carries the real schema.

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

Conciseness2/5

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

The text wastes its two sentences on a verbatim repeat of the endpoint path and an opaque operation ID. There is no front-loaded statement of purpose, so brevity here reflects under-specification rather than efficiency.

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

Completeness1/5

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

With 0% schema description coverage, no output schema, no annotations contradicted, and a nested free-form 'query' object, the definition gives an agent essentially nothing to act on. A reader cannot tell what is compared, what identifiers are needed, or what comes back.

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 two parameters are opaque wrappers ('query' as a free-form object, 'params' as an empty closed object). The description adds no meaning for either, offering only a redirect to describe_operation. That redirect is mildly useful but leaves the agent unable to construct a call from this definition alone.

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

Purpose2/5

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

The description only restates the endpoint path 'GET /api/cam/compare' twice — effectively a tautology of the tool name and title. It never states what is being compared (leases? periods? CAM pools?) or what the operation returns, so an agent cannot distinguish it from siblings such as get_versions_compare_by_id1_by_id2.

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 to use this tool versus alternatives like describe_operation, search_operations, or the many get_cam_* siblings. The only usable hint is the pointer to describe_operation for native request schemas, which is a schema-discovery instruction rather than usage guidance.

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

get_cam_landlord_category_mappings_107777d65eeee8c86bf66be3cam: GET /api/cam/landlord-category-mappingsC
Read-onlyIdempotent
Inspect

GET /api/cam/landlord-category-mappings. GET /api/cam/landlord-category-mappings. Operation ID: 107777d65eeee8c86bf66be3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description adds no behavioral context beyond that — no mention of scoping, pagination, response shape, or auth requirements — despite there being no output schema to fall back on.

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

Conciseness2/5

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

The only substantive sentence is duplicated verbatim, which is pure waste. The operation ID and the describe_operation pointer are the sole unique content, and neither is front-loaded as the purpose.

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, 0% parameter coverage, nested objects, and no annotations explaining returns, the description should explain what the endpoint yields and how to pass the free-form query. It instead offloads everything to describe_operation, leaving an agent unable to call it confidently from this text alone.

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?

There are 2 parameters (a free-form 'query' object and an empty 'params' object) at 0% schema description coverage, so the description must compensate and does not. Saying describe_operation provides native schemas defers the burden rather than explaining what 'query' accepts.

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

Purpose2/5

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

The description repeats the endpoint path verbatim twice, which is essentially a restatement of the title/name. It conveys only that this is a GET on cam landlord-category-mappings, with no elaboration on what a 'landlord category mapping' is or how it differs from the many other CAM retrieval tools in the sibling list.

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 such as get_cam_categories or get_account_mappings. The only hint is a pointer to describe_operation for request schemas, which is a schema lookup, not usage guidance or exclusion criteria.

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

get_cam_lease_allocations_by_leaseId_cd8dfba6525672b07c9b687acam: GET /api/cam/lease-allocations/:leaseIdC
Read-onlyIdempotent
Inspect

GET /api/cam/lease-allocations/:leaseId. GET /api/cam/lease-allocations/:leaseId. Operation ID: cd8dfba6525672b07c9b687a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is fully covered. The description contributes nothing beyond them — no note on what the allocation data includes, whether it is period-scoped, or how the free-form query object is interpreted. It does not contradict the annotations, but it adds no behavioral value.

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

Conciseness2/5

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

Short, but the first sentence is duplicated verbatim and the remainder is a machine-generated operation ID plus a pointer. It is not front-loaded with any useful information and contains wasted repetition rather than meaningful brevity.

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 endpoint with no output schema, 0% schema coverage, and a nested free-form query object, the description leaves the agent without enough to call it confidently. The one useful hint (describe_operation exposes native request schemas) does not compensate for the missing explanation of the returned allocation data.

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 provides no parameter documentation. The path template at least reveals that leaseId is a lease identifier, but the free-form 'query' object (the second parameter) is completely undefined in both schema and description, leaving the caller guessing what query options exist.

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

Purpose2/5

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

The description repeats the raw URL path twice ('GET /api/cam/lease-allocations/:leaseId') and adds nothing that explains what a CAM lease allocation is or what the response contains. It is essentially a restatement of the tool name/title, which is tautology territory, though the path does at least signal the resource is lease-scoped.

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 statement of when to use this versus the many sibling endpoints like get_cam_leases_by_leaseId_*, get_cam_periods_by_periodId_*, or execute_read. The only guidance is a pointer to describe_operation for native request schemas, which is about fetching schemas, not about choosing this tool.

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

get_cam_leases_by_leaseId_ai_benchmark__a4416f9baa56e846c86d016dcam: GET /api/cam/leases/:leaseId/ai-benchmark/cacheD
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/ai-benchmark/cache. GET /api/cam/leases/:leaseId/ai-benchmark/cache. Operation ID: a4416f9baa56e846c86d016d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already state readOnlyHint, idempotentHint, non-destructive, closed-world, so the safety profile is covered. The description adds nothing beyond that: it doesn't say whether the cache entry exists only after a benchmark has been run, whether a miss returns empty vs. 404, or what the payload contains — the very behavior an agent most needs for a cache-read endpoint.

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

Conciseness2/5

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

The same endpoint sentence is duplicated word-for-word, and the entire body is boilerplate boilerplate plus an opaque operation ID. Wasteful rather than informative; nothing is front-loaded with meaningful content.

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 endpoint with a nested free-form query object and no output schema, the description should at minimum explain what the cache holds and what query supports. Instead it gives a path echo and a pointer to another tool, leaving the agent unable to call it confidently.

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 carry the burden, but it explains neither the required 'leaseId' (beyond its appearance in the path) nor the free-form 'query' object with additionalProperties. An agent has no idea what query keys are meaningful or how leaseId is formatted.

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

Purpose2/5

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

The description does nothing but restate the title/endpoint path verbatim (twice) and add an operation ID. While 'GET' plus a path technically names a verb and a resource, 'ai-benchmark/cache' is opaque jargon with no explanation of what data is returned or what the cache represents, so an agent gains no real understanding beyond the name.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool, when not to, or how it relates to siblings like get_cam_leases_by_leaseId_unified_perio or describe_operation. The only pointer ('describe_operation provides native request schemas') is a meta-reference to another tool's schema, not a usage condition.

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

get_cam_leases_by_leaseId_ap_expenses_e99ada14a82b10f678df8741cam: GET /api/cam/leases/:leaseId/ap-expensesD
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/ap-expenses. GET /api/cam/leases/:leaseId/ap-expenses. Operation ID: e99ada14a82b10f678df8741; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no indication of return shape, whether results are per-period or lease-wide, pagination, or filtering behavior. Since the annotation bar is lower here, a 2 reflects a purely restated path with no added 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.

Conciseness2/5

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

Extremely short but not efficient: the same URL sentence appears twice back-to-back, and the operation-ID string is filler for an agent that already sees the tool name. Nothing is front-loaded in meaningful prose.

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?

No output schema, so the description should describe what comes back, and it does not. For a read endpoint nested under a specific lease with an untyped query parameter, an agent still cannot tell what data it will receive or how to shape the query, making the definition inadequate despite the simple two-parameter signature.

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 supplies zero parameter detail — it does not explain the required leaseId (beyond the path placeholder) nor the free-form 'query' object whose property names are unconstrained. With a low-coverage schema and an undocumented open-ended query bag, the description should compensate and does not.

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

Purpose2/5

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

The description is the URL path repeated verbatim twice: 'GET /api/cam/leases/:leaseId/ap-expenses.' It never states in prose what an AP expense record on a CAM lease is or how this differs from the many sibling lease sub-resource endpoints (clauses, disputes, notes, overrides, rent credits). Only the path tokens hint at the resource.

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 or when-not-to-use guidance is given; the only directive is 'describe_operation provides native request schemas,' which routes to a schema-discovery tool, not to a usage decision. With dozens of sibling get_cam_leases_by_leaseId_* endpoints, an agent gets no help choosing this one over e.g. get_cam_lease_allocations_by_leaseId or get_expenses_by_lease.

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

get_cam_leases_by_leaseId_clauses_activ_ee5d8afe19fca82e9bdf253fcam: GET /api/cam/leases/:leaseId/clauses/activeD
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/clauses/active. GET /api/cam/leases/:leaseId/clauses/active. Operation ID: ee5d8afe19fca82e9bdf253f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond an operation ID and a schema pointer—no detail on what 'active' means, filtering, or return shape.

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

Conciseness2/5

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

It is short, but the same path is duplicated verbatim, which is pure waste rather than concision. Front-loading is fine but the content is redundant and uninformative.

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 GET tool with a required path param and no output schema, the description should at least clarify what 'active clauses' returns and how the query object is used. With 0% param coverage and no output schema, this leaves significant gaps.

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 there are two parameters (params.leaseId required, query object). The description provides no meaning for leaseId or the query object, failing to compensate for the coverage gap.

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

Purpose2/5

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

The description is a verbatim restatement of the HTTP path, repeated twice. It does implicitly identify the resource (active clauses for a lease) via the path, which somewhat distinguishes it from the sibling get_cam_leases_by_leaseId_clauses_... (all clauses), but there's no natural-language statement of 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 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 listing all clauses or other lease sub-resource tools. The only pointer is to describe_operation for schemas, which addresses parameter discovery rather than usage conditions.

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

get_cam_leases_by_leaseId_clauses_d2276d195b59f2ecda19a5b9cam: GET /api/cam/leases/:leaseId/clausesC
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/clauses. GET /api/cam/leases/:leaseId/clauses. Operation ID: d2276d195b59f2ecda19a5b9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no information on the shape of the returned clause list, filtering/pagination behavior, or what happens when a lease has no clauses.

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

Conciseness2/5

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

It is short, but the single content sentence is duplicated verbatim, which is pure waste rather than conciseness. The remaining sentence is an operation-ID bookkeeping note that does not help an agent decide or call correctly.

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 nested-object tool with no output schema, 0% parameter description coverage, and many similarly named siblings, the description should at minimum explain the returned resource and the available query options. It supplies neither, leaving describe_operation as the only route to usable detail.

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, so the description carries the full burden and fails to meet it. The path fragment implies that 'leaseId' identifies the lease, but the free-form 'query' object is completely unexplained — no mention of supported filters, expansion options, or pagination keys.

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

Purpose2/5

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

The description is a verbatim restatement of the title/endpoint path ('GET /api/cam/leases/:leaseId/clauses') with the same sentence duplicated. It does imply that clauses for a given lease are retrieved, but it adds no plain-language statement of purpose and does not distinguish this tool from close siblings such as get_cam_leases_by_leaseId_clauses_activ_ee5d8afe19fca82e9bdf253f or get_cam_clauses_by_id_categories_8ce710a2ffe320a12bfe0d11.

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 to use this tool versus alternatives. The only directive — 'describe_operation provides native request schemas' — is a hint about retrieving parameter documentation, not about tool selection, so an agent is left to infer usage from the tool name alone.

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

get_cam_leases_by_leaseId_cycle_config_e979d4d2bc3cdad9b8948b3acam: GET /api/cam/leases/:leaseId/cycle-configD
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/cycle-config. GET /api/cam/leases/:leaseId/cycle-config. Operation ID: e979d4d2bc3cdad9b8948b3a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds almost nothing beyond that: it does not say what the cycle-config contains, whether it returns computed vs. stored values, or whether anything is materialized. The single useful addition is the describe_operation pointer, which is minimal.

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

Conciseness2/5

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

Short, but wastefully so: the same endpoint string is duplicated back-to-back with no additional information in the repetition. It is front-loaded only in the trivial sense that there is one sentence of content.

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

Completeness1/5

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

For a tool with a nested free-form query object, 0% parameter documentation, and no output schema, the description supplies nothing an agent needs to actually call it correctly. An agent would have to fall back to describe_operation for every invocation, which is exactly the gap the description should have filled.

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%: leaseId has only length constraints and the 'query' object is an unconstrained free-form bag. The description does not mention either parameter, let alone explain the expected leaseId format or what valid query keys exist. With low coverage the description was obligated to compensate and does not.

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

Purpose2/5

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

The description restates the tool title verbatim ("GET /api/cam/leases/:leaseId/cycle-config") twice and never explains what a lease 'cycle-config' actually is or what the response represents. It identifies a method and path but conveys no meaning about the resource beyond the opaque slug, so an agent cannot distinguish it from siblings like get_cam_leases_by_leaseId_unified_perio.

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 guidance is the pointer that 'describe_operation provides native request schemas', which is a schema-retrieval hint rather than a when-to-use rule. No conditions for selecting this tool over the many other cam/lease sub-resource getters are given, and no prerequisites (permissions, whether a lease must exist) are stated.

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

get_cam_leases_by_leaseId_disputes_ae4ae17bb5682fae05c8feb0cam: GET /api/cam/leases/:leaseId/disputesC
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/disputes. GET /api/cam/leases/:leaseId/disputes. Operation ID: ae4ae17bb5682fae05c8feb0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no mention of pagination, filtering behavior, the shape/nesting of the disputes result, or what an unknown leaseId yields. It does not contradict the annotations, but it contributes no behavioral context of its own.

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

Conciseness2/5

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

The same sentence is duplicated verbatim, which is pure waste, and the useful content (operation ID and the describe_operation pointer) is buried after the repetition. The text is short but under-specified rather than concise.

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?

The tool has a nested open-ended query object, 0% schema coverage, and no output schema, so the description carries a heavy burden and delivers almost none of it. It gives no indication of what a disputes collection contains or how to scope it, leaving an agent unable to call it correctly without first invoking describe_operation.

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 explains neither the required leaseId path parameter nor the free-form 'query' object (an open object with additionalProperties {}). The only signal, ':leaseId' inside the route string, merely restates the schema key. The 'describe_operation' pointer is a marginal compensating hint but leaves the agent without any semantics for filtering or query parameters.

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

Purpose2/5

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

The description is the raw route restated twice: 'GET /api/cam/leases/:leaseId/disputes.' It does hint at the resource (disputes scoped to a lease), but it reads as a tautological echo of the tool name/title rather than an explanation of what the tool returns or does. Nothing distinguishes it from the many sibling lease sub-resource getters beyond the literal path segment.

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 to call this versus alternatives such as get_cam_leases_by_leaseId_notes or the other lease sub-resource endpoints. The only actionable guidance is the pointer that 'describe_operation provides native request schemas', which tells the agent how to learn the request shape but not when this tool is the right choice.

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

get_cam_leases_by_leaseId_notes_199f2a8544fbfa60006061e7cam: GET /api/cam/leases/:leaseId/notesD
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/notes. GET /api/cam/leases/:leaseId/notes. Operation ID: 199f2a8544fbfa60006061e7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds essentially nothing beyond the boilerplate operation ID and a pointer to describe_operation — no mention of pagination, response shape, or permission requirements.

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

Conciseness2/5

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

The endpoint path is duplicated verbatim for no reason, and the remaining sentence is meta-boilerplate. There is no front-loaded explanation of purpose, so the text is wasteful rather than concise.

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

Completeness1/5

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

For a tool with a nested free-form query object, no output schema, and 0% parameter documentation, the description should explain the query filters and return shape. It does neither, leaving the agent dependent on separate describe_operation calls.

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 the leaseId path parameter and the free-form query object. The description does not explain what the query parameter accepts or that leaseId is the CAM lease identifier, so it 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.

Purpose2/5

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

The description only repeats the endpoint path 'GET /api/cam/leases/:leaseId/notes' twice, which restates the name and title rather than explaining what a 'note' is or what the response contains. An agent can infer it fetches notes for a lease, but nothing distinguishes it from sibling tools like get_cam_leases_by_leaseId_clauses_d2276d195b59f2ecda19a5b9 beyond the URL segment.

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 preconditions, no alternatives. The only actionable pointer is that 'describe_operation provides native request schemas', which is a general reference, not usage guidance for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_leases_by_leaseId_overrides_a43776c5a73fe15ff96bdf34cam: GET /api/cam/leases/:leaseId/overridesC
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/overrides. GET /api/cam/leases/:leaseId/overrides. Operation ID: a43776c5a73fe15ff96bdf34; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond that: no indication of what an 'override' record contains, whether results are paginated or filtered, or any volume/cost characteristics. The pointer to describe_operation is the sole added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence appears twice with zero added information, which is pure waste. The only non-redundant element, the describe_operation pointer, is buried at the end rather than front-loaded.

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, 0% parameter coverage, and a nested open-ended query object, the description carries the full explanatory burden and fails to meet it. It never says what an override is, what shape the response takes, or how the query object should be used.

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 parameters. The path template implicitly maps leaseId to params.leaseId, but the description never explains the identifier's format or scope. The free-form 'query' object accepts arbitrary additional properties and is completely undocumented, leaving an agent with no idea what filtering is supported.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the REST path repeated verbatim twice, which merely restates the name and title rather than explaining in plain language what the tool returns. An agent can infer that it fetches override records scoped to a CAM lease, but 'overrides' is never defined and no distinction from the many sibling lease sub-resource tools (allocations, clauses, cycle config, disputes) is drawn.

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 to call this tool versus the dozens of other get_cam_leases_by_leaseId_* endpoints. The only guidance offered is a redirect to describe_operation for request schemas, which is a discovery hint, not usage context or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_leases_by_leaseId_rent_credits_86d62af8f88a989bbdbf1b61cam: GET /api/cam/leases/:leaseId/rent-creditsC
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/rent-credits. GET /api/cam/leases/:leaseId/rent-credits. Operation ID: 86d62af8f88a989bbdbf1b61; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds no behavioral context such as pagination, the shape of rent-credit data, or error conditions. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is duplicated verbatim and padded with an opaque operation ID. It is short but wasteful rather than front-loaded with useful information.

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?

Given 0% parameter documentation, no output schema, a nested query object, and a very dense sibling set of CAM lease endpoints, the description leaves the agent with little to distinguish this tool or call it correctly beyond the raw path.

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 params (a free-form query object and required leaseId). The description only implies leaseId via the path template and says nothing about the query object or its expected keys, so it fails to compensate for the documentation gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description simply repeats the URL path twice, restating what the name and title already encode. The path does reveal the resource (rent credits for a CAM lease), but there is no verbal statement of what the tool actually does or returns.

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 guidance is a pointer that describe_operation provides native request schemas. There is no indication of when to use this versus the dozens of other cam/leases sub-resource endpoints in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_leases_by_leaseId_unified_perio_6b65120a79c7d59dacd917b3cam: GET /api/cam/leases/:leaseId/unified-periodsC
Read-onlyIdempotent
Inspect

GET /api/cam/leases/:leaseId/unified-periods. GET /api/cam/leases/:leaseId/unified-periods. Operation ID: 6b65120a79c7d59dacd917b3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed-world scope, so the safety profile is covered. The description adds nothing further: no mention of what unified periods represent, pagination, or whether results are scoped to a specific CAM year.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes one of its two sentences on an exact duplicate of the endpoint path. The remaining content is a pointer to describe_operation rather than substantive information.

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, 0% parameter coverage, and a nested free-form query object, the description should explain return shape and filtering. It defers everything to describe_operation, so an agent cannot call this correctly without a second round trip.

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 and does not. It never explains that leaseId is the path parameter nor what the free-form 'query' object accepts, leaving both parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the endpoint path twice and names no verb or outcome beyond 'GET'. It conveys the resource (unified periods for a lease) only indirectly through the URL template, matching the title verbatim rather than explaining what the operation returns.

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 differentiation from the many sibling get_cam_leases_by_leaseId_* tools. The only routing hint is a pointer to describe_operation for native schemas, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_line_items_by_lineItemId_expens_3df5385f2597d3e606350b4ecam: GET /api/cam/line-items/:lineItemId/expensesC
Read-onlyIdempotent
Inspect

GET /api/cam/line-items/:lineItemId/expenses. GET /api/cam/line-items/:lineItemId/expenses. Operation ID: 3df5385f2597d3e606350b4e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no pagination, filtering behavior, response shape, or auth context — and merely redirects to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is short but the first sentence is duplicated word-for-word, which is pure waste. Brevity here comes from omission, not from disciplined front-loading of useful information.

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 GET endpoint with a nested undocumented query object, no output schema, and 0% parameter description coverage, an agent has almost nothing to work with beyond the path. Pointing at describe_operation offloads the entire burden rather than completing the definition.

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 schema contains a nested free-form 'query' object plus a required 'params.lineItemId' with no documented meaning. The description only echoes the lineItemId path token and never explains what the query object accepts, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name/title verbatim as a REST path ('GET /api/cam/line-items/:lineItemId/expenses') with no plain-language statement of what it returns. The path implies expenses scoped to a single line item, which is marginally informative, but it is effectively a tautology of the name rather than a purpose statement.

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 use this tool versus the many CAM siblings (e.g. get_cam_leases_by_leaseId_ap_expenses, get_expenses_by_lease), and no mention of prerequisites or scope conditions. The only pointer is 'describe_operation provides native request schemas,' which describes a different tool, not when to select this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_periods_2dd78ed797a3dcb9f48dc89ecam: GET /api/cam/periodsC
Read-onlyIdempotent
Inspect

GET /api/cam/periods. GET /api/cam/periods. Operation ID: 2dd78ed797a3dcb9f48dc89e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered externally. The description adds no behavioral detail of its own — no return shape, pagination, filtering scope, or auth notes — and 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the opening sentence is duplicated verbatim, which is pure waste, and the operation ID is noise for an agent. Only the describe_operation clause earns its place.

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, an opaque two-parameter input, and nested objects, the description carries the full burden and falls well short: it never says what a period record contains, whether results are workspace-scoped, or how to page them. The describe_operation pointer is the sole substantive content.

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 two parameters: `query` is an unconstrained object and `params` is an empty closed object. The description does not name or explain either, offering only the redirect to describe_operation, which is useful but does not compensate for the missing semantics or give examples of valid query keys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP verb and path already present in the tool name and title ("GET /api/cam/periods"), with the path literally duplicated. It never says in plain language that this lists CAM reconciliation periods, nor how it differs from siblings like get_cam_periods_by_periodId_* or get_cam_leases_by_leaseId_unified_perio_*. This is tautology rather than a stated purpose.

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 versus a sibling. The only actionable pointer is that describe_operation provides native request schemas, which helps the agent learn the inputs but says nothing about selection criteria or preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_periods_by_periodId_approval_9b5eead1856faf760729e350cam: GET /api/cam/periods/:periodId/approvalC
Read-onlyIdempotent
Inspect

GET /api/cam/periods/:periodId/approval. GET /api/cam/periods/:periodId/approval. Operation ID: 9b5eead1856faf760729e350; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds nothing beyond that—no indication of what approval state is returned, whether it's a pending queue or historical record, or any auth/pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, wasting space, and the useful part ('describe_operation provides native request schemas') is buried after the redundancy. It is short but poorly structured and under-specified rather than concise.

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?

There is no output schema and no explanation of the response shape for an approval lookup, and the parameter documentation is absent. For a nested, path-parameterized read endpoint the description does not give enough to call it correctly without falling back to describe_operation.

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% for two parameters (periodId path param and an untyped query object). The description mentions neither, leaving the agent to infer the meaning of periodId and what query filters are accepted solely from the raw schema.

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 names the endpoint and resource (CAM period approval), which lets an agent infer it retrieves approval data for a period. It does not describe what an 'approval' object contains or how it relates to sibling endpoints like recalcs/statements, and the verb+resource is conveyed only via the URL rather than prose.

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 guidance is 'describe_operation provides native request schemas', which points to a sibling for schema lookup but gives no when-to-use condition, no alternatives among the many get_cam_periods_by_periodId_* siblings, and no prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_periods_by_periodId_caps_badge_9dc945d078892430348a97bdcam: GET /api/cam/periods/:periodId/caps-badgeD
Read-onlyIdempotent
Inspect

GET /api/cam/periods/:periodId/caps-badge. GET /api/cam/periods/:periodId/caps-badge. Operation ID: 9dc945d078892430348a97bd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile needs no repetition. The description adds nothing beyond those hints — no note on what a badge represents, whether it is computed on the fly, or its cost/side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint string is duplicated verbatim in back-to-back sentences, so space is wasted rather than earned. The operation ID and describe_operation pointer are metadata, not substance.

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?

No output schema exists, so the description should explain what the caps badge payload contains; it does not. For a nested-object request with an undocumented query parameter, the definition leaves the agent without enough to invoke it confidently.

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% with two parameters (query object and params.periodId), and the description provides no meaning for either. An agent must infer what the free-form query object accepts and what a periodId identifies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route (GET /api/cam/periods/:periodId/caps-badge) already present in the title, so it is effectively a tautology. It implies a resource (a caps badge for a CAM period) but never says what is returned or how it differs from sibling endpoints like get_cam_periods_by_periodId_caps_summar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this endpoint versus the many sibling CAM period endpoints (caps_summary, approval, recalcs, statements). The only pointer is to describe_operation for schemas, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_periods_by_periodId_caps_summar_6903344034cfeb196037981bcam: GET /api/cam/periods/:periodId/caps-summaryD
Read-onlyIdempotent
Inspect

GET /api/cam/periods/:periodId/caps-summary. GET /api/cam/periods/:periodId/caps-summary. Operation ID: 6903344034cfeb196037981b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that - no indication of what data is returned, side effects, auth scope, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes its single sentence on duplicating the same path string twice, then appends a boilerplate operation ID and schema pointer. No front-loaded purpose statement exists to earn the space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object tool with 0% schema coverage, no output schema, and dense sibling overlap in the CAM namespace, the description provides essentially nothing an agent needs to call it correctly or know what it returns.

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, including a required nested object with periodId. The description's only contribution is echoing the ':periodId' path placeholder, which at least maps the required param to a CAM period identifier, but it never explains period semantics or what the free-form 'query' object accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path and title verbatim ('GET /api/cam/periods/:periodId/caps-summary' twice) with no explanation of what a CAM caps summary actually contains. An agent cannot distinguish it from siblings like get_cam_periods_by_periodId_caps_badge or get_cam_periods_by_periodId without reading the tool names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this endpoint versus the many other cam/periods sub-resource tools. The only actionable hint is 'describe_operation provides native request schemas', which is a schema-lookup pointer, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_periods_by_periodId_f401cdb85f616cfd20f84341cam: GET /api/cam/periods/:periodIdC
Read-onlyIdempotent
Inspect

GET /api/cam/periods/:periodId. GET /api/cam/periods/:periodId. Operation ID: f401cdb85f616cfd20f84341; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, and the description confirms nothing beyond that. It does not disclose what the response contains, whether a missing ID errors or returns empty, or any permissions/rate-limit context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one substantive sentence is duplicated verbatim, and the operation ID and describe_operation pointer are boilerplate. Brevity is there, but every sentence is either repeated or administrative, so no information is front-loaded beyond the raw route.

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, the description carries the burden of saying what a CAM period object contains (period dates, lease scope, status) and it says nothing. For a nested-object, 0%-coverage, no-output-schema tool, the definition is not complete enough for confident selection or result interpretation.

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 adds nothing about periodId — no format (UUID vs. numeric), no source (where to obtain a period ID), and no mention of the optional free-form query object. Only the ':periodId' path token hints that it is a path parameter, which is minimal compensation for a 0%-coverage schema.

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 route string 'GET /api/cam/periods/:periodId' conveys a verb and resource, so the agent can infer this fetches a single CAM period by ID. But it is never stated in plain language, and nothing distinguishes it from siblings such as get_cam_periods_2dd78ed797a3dcb9f48dc89e (the collection) or the many get_cam_periods_by_periodId_* sub-resource endpoints.

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 use this tool versus the CAM periods list endpoint or the period sub-resource endpoints. The only actionable hint, 'describe_operation provides native request schemas', is a pointer to another tool for schema lookup, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_periods_by_periodId_recalcs_4088984088a23ebdd3d9a526cam: GET /api/cam/periods/:periodId/recalcsC
Read-onlyIdempotent
Inspect

GET /api/cam/periods/:periodId/recalcs. GET /api/cam/periods/:periodId/recalcs. Operation ID: 4088984088a23ebdd3d9a526; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered without the description. The description adds nothing beyond structured data — no note on returns, pagination, the enclosing 'query' object, or what 'recalc' rows contain. No contradiction with annotations, but no added value either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short but not concise in the useful sense: the same endpoint string is duplicated verbatim, and the second sentence is metadata (operation ID) that does not help selection. There is no front-loaded statement of purpose.

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 nested-object tool (params + free-form query) with no output schema and 0% parameter description coverage, the description leaves the agent without enough information to call it confidently — neither the meaning of the period scope nor the shape of accepted query filters is conveyed.

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 supplies no parameter meaning. The path template ':periodId' weakly maps to the required 'params.periodId', but the untyped free-form 'query' object is left entirely unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the literal path repeated twice: 'GET /api/cam/periods/:periodId/recalcs. GET /api/cam/periods/:periodId/recalcs.' This restates the name/title rather than explaining in words what a recalculation record is or what the response represents. It does signal a read of a period-scoped sub-resource, but no natural-language verb+resource statement distinguishes it from siblings like get_cam_recalcs_by_id or the other get_cam_periods_by_periodId_* 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?

No when-to-use guidance and no mention of alternatives, despite many close siblings (get_cam_recalcs_by_id, get_cam_periods_by_periodId_*, get_cam_periods). The only directional hint is 'describe_operation provides native request schemas', which points to a helper tool rather than explaining when this operation applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_periods_by_periodId_statements_34d33c9d5d08b46cc8b2a6fecam: GET /api/cam/periods/:periodId/statementsC
Read-onlyIdempotent
Inspect

GET /api/cam/periods/:periodId/statements. GET /api/cam/periods/:periodId/statements. Operation ID: 34d33c9d5d08b46cc8b2a6fe; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond them — no note on pagination, filtering behavior, or the shape of the underlying data for this period-scoped collection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is duplicated verbatim, wasting half the text, and the remainder is a mechanical operation-ID preamble. Nothing is front-loaded about purpose or behavior, so the structure fails to earn its space.

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?

Two parameters (one required), a nested open-ended query object, no output schema, and zero parameter descriptions leave the agent underinformed. For a collection-listing endpoint with a free-form query bag, the definition should explain accepted query keys or at least point to a concrete schema source beyond 'describe_operation'.

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 should carry the burden for the periodId path parameter and free-form 'query' object. Instead it says nothing about either; the free-form query object (additionalProperties with no constraints) is completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name and URL path twice without saying what a 'statement' is or what the retrieval returns. There is no verb beyond the implied GET, so an agent learns only that some endpoint exists.

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 and no differentiation from the many sibling get_cam_periods_by_periodId_* tools (approval, caps, recalcs, true_up). The only hint is a pointer to describe_operation for native request schemas, which is not a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_periods_by_periodId_true_up_pre_0e27c3ca87fd482df6d62bd4cam: GET /api/cam/periods/:periodId/true-up/previewC
Read-onlyIdempotent
Inspect

GET /api/cam/periods/:periodId/true-up/preview. GET /api/cam/periods/:periodId/true-up/preview. Operation ID: 0e27c3ca87fd482df6d62bd4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no mention of what the preview computes, whether it is a dry-run, or what it costs to invoke.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the single sentence duplicates the path verbatim and then appends an operation ID that conveys no meaning to an agent. Length is fine; the content is redundant and not front-loaded with any useful intent.

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?

There is no output schema and no description of the preview payload, and the query parameter surface is unknown, so an agent cannot predict what it gets back or how to filter. The read-only annotations are the only thing making this callable at all.

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 2 parameters, so the description carries the full burden and fails: the 'query' object is an open property bag whose accepted keys are completely undocumented. Only the periodId parameter is weakly inferable from the path itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the URL path restated twice, so the only signal about purpose comes from parsing the path ('true-up/preview' for a CAM period). It never says in prose what a true-up preview is or returns, making it a tautology rather than an explanation.

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 guidance is 'describe_operation provides native request schemas,' which routes the agent to a metadata tool rather than explaining when to call this endpoint. There is no differentiation from the many sibling get_cam_periods_by_periodId_* endpoints (approvals, caps, recalcs, statements) that an agent must choose between.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_pools_5f28e5cc03dff483853d635dcam: GET /api/cam/poolsC
Read-onlyIdempotent
Inspect

GET /api/cam/pools. GET /api/cam/pools. Operation ID: 5f28e5cc03dff483853d635d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that except the describe_operation pointer; it says nothing about filtering, pagination, or result shape that would help an agent anticipate behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the content is largely waste: the same endpoint path appears twice and the hex operation ID adds no decision-relevant information. There is no front-loaded statement of what the tool returns.

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-only list endpoint with no output schema and 0% parameter coverage, the description leaves the agent unable to know valid query fields or response contents without a second call to describe_operation. The pointer is helpful but the definition is not self-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?

Schema description coverage is 0% and there are two nested object parameters ('query' with free-form additionalProperties and an empty 'params'), neither of which is explained. The description's only mitigation is deferring to describe_operation for the native request schema, which is a genuine but minimal compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare restatement of the endpoint path 'GET /api/cam/pools' repeated twice, which conveys a verb and resource only via the URL. It does not say what a 'CAM pool' is, what the response contains, or how it differs from siblings such as get_cam_categories or get_cam_periods. This is closer to tautology than explanation.

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 actionable guidance is the pointer that 'describe_operation provides native request schemas', which tells an agent where to look for schema details but not when to choose this tool over alternatives. No when-to-use, when-not-to-use, or prerequisite context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_recalcs_by_id_f07f1fff7b70a9f914766c46cam: GET /api/cam/recalcs/:idC
Read-onlyIdempotent
Inspect

GET /api/cam/recalcs/:id. GET /api/cam/recalcs/:id. Operation ID: f07f1fff7b70a9f914766c46; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds no behavioral context of its own — no error behavior for a missing id, no auth or scope requirements, no note on what a "recalc" 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same route string appears twice, which is pure duplication, and the operation ID plus schema-pointer sentence adds little for the caller. It is short but wasteful rather than front-loaded with useful information.

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, 0% parameter description coverage, and a nested query object, the description needs to explain what is returned and how the id and query are used. Instead it only repeats the route, leaving an agent unable to call this correctly without falling back to describe_operation.

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 2 parameters, so the description must carry the burden and it does not. The route's ":id" only loosely implies that params.id is the recalculation identifier; the free-form `query` object is entirely unexplained in both schema and description, and no format, constraint, or example is offered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a literal restatement of the tool title and route ("GET /api/cam/recalcs/:id") repeated twice, plus an operation ID. It conveys only that this is a GET on a recalcs resource identified by an id, which is already fully encoded in the tool name; nothing distinguishes it from siblings such as get_cam_periods_by_periodId_recalcs.

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 is given, and no alternative is named. The only directional hint is that "describe_operation provides native request schemas," which points at a schema-discovery tool rather than explaining when to call this one versus the many sibling recalcs/period endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_reclassifications_e0692d544c3b4c737f530cb7cam: GET /api/cam/reclassificationsC
Read-onlyIdempotent
Inspect

GET /api/cam/reclassifications. GET /api/cam/reclassifications. Operation ID: e0692d544c3b4c737f530cb7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds nothing beyond that: no mention of pagination, filtering behavior, result volume, or what the reclassification records contain, so it contributes no behavioral context of its own.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is one sentence duplicated verbatim, so half the text is pure waste. It is short, but brevity here reflects under-specification rather than disciplined editing.

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 two parameters at 0% schema coverage, nested objects, and no output schema, the description needed to explain the query parameter shape and the nature of the returned records. Instead it defers entirely to describe_operation, leaving the agent unable to construct a meaningful call from this definition alone.

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 schema shows a free-form 'query' object plus an empty 'params' object, giving the agent no guidance on accepted query keys. The description does not compensate at all; it only tells the agent to call describe_operation for schemas, which is a workaround rather than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally 'GET /api/cam/reclassifications' repeated twice, which restates the name and title rather than explaining what reclassifications are or what the response represents. An agent can infer it reads a CAM reclassification resource, but nothing distinguishes it from the dozens of sibling cam GET 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 statement of when to use this versus alternatives, no prerequisites, and no exclusions. The only actionable guidance is a pointer to describe_operation for native request schemas, which is about schema discovery rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cam_statements_by_id_1f07dd5f97f96a438441afa3cam: GET /api/cam/statements/:idC
Read-onlyIdempotent
Inspect

GET /api/cam/statements/:id. GET /api/cam/statements/:id. Operation ID: 1f07dd5f97f96a438441afa3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, giving a clear safety profile. The description adds no behavioral context beyond that—no mention of permissions, error behavior, or what happens with invalid IDs—so it contributes almost nothing on this dimension.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes space by duplicating the exact same route string twice. The operation ID is technical noise for an AI agent, and the only useful content is the pointer to describe_operation, which is buried.

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 GET-by-ID tool with 0% schema coverage, no output schema, and nested objects, the description is far too thin. It does not explain what a CAM statement is, the return shape, or how to form the request beyond the obvious id in the path.

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 two parameters (query and params.id), but the description says nothing about them. The only implicit clue is ':id' in the route path, which hints at the required id parameter, but query is completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the HTTP route 'GET /api/cam/statements/:id' twice, which is essentially a restatement of the tool name and title. It names a verb and resource but does not explain what a CAM statement is or what the result represents, so an agent learns nothing beyond the endpoint path.

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 use this tool, what alternatives exist, or any prerequisite. The only pointer is that 'describe_operation provides native request schemas', which is a schema hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_check_request_templates_38069a382fe0c4228a46178ccheck-request-templates: GET /api/check-request-templatesC
Read-onlyIdempotent
Inspect

GET /api/check-request-templates. GET /api/check-request-templates. Operation ID: 38069a382fe0c4228a46178c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of pagination, filtering defaults, or what the collection contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes half of itself by repeating the identical endpoint path sentence twice. The operation ID is a machine artifact rather than useful content, and there is no front-loaded explanation of the tool's effect.

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, two undocumented parameters including a free-form nested 'query' object, and no annotations gap to lean on, the description should explain what the endpoint returns and how to shape the query. It only defers to describe_operation, leaving the agent unable to call this confidently.

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?

Two parameters (query, params) exist at 0% schema description coverage, with no property names or types documented. The single sentence about describe_operation providing native request schemas is a useful hint about where parameters live, but it conveys no actual semantics for query or params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path and title twice ('GET /api/check-request-templates'), giving no plain-language statement of what the tool returns or does. It doesn't distinguish this list endpoint from siblings like get_check_request_templates_by_id or get_check_request_templates_available_*, which share the same 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?

There is no statement of when to use this endpoint versus get_check_request_templates_by_id or the *_available variant. The only guidance is a pointer to describe_operation for schemas, which is about parameter discovery, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_check_request_templates_available_f_acbe3060abd9701ff8a3fcc7check-request-templates: GET /api/check-request-templates/available-fieldsD
Read-onlyIdempotent
Inspect

GET /api/check-request-templates/available-fields. GET /api/check-request-templates/available-fields. Operation ID: acbe3060abd9701ff8a3fcc7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no further behavioral context such as what the response contains, whether results are paginated, or any auth/permission requirements. It does not contradict the annotations, but it contributes nothing beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint sentence appears twice verbatim, wasting space, and the operation ID / describe_operation pointer are tacked on. It is short but not front-loaded with any purpose statement.

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?

No output schema exists, and the description does not explain the return shape (the available fields) or how to query them. For a listing endpoint with an unconstrained free-form query object, the description is far too thin for an agent to call it correctly.

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 the two parameters (a free-form 'query' object and an empty 'params' object). With nested/free-form input and no documentation of valid query keys anywhere, the description provides zero parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the raw endpoint path 'GET /api/check-request-templates/available-fields' twice without stating in plain language what it returns (e.g., 'List the fields available for check request templates'). An agent can infer a resource from the path, but it is essentially a tautology of the name/title and does not differentiate this from sibling tools like get_check_request_templates_38069a382fe0c4228a46178c.

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 versus the many sibling get_check_request_templates tools. The only actionable hint is 'describe_operation provides native request schemas,' which is a workflow pointer, not a when/when-not rule for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_check_request_templates_by_id_f09a6f53c1bf375288b0db7dcheck-request-templates: GET /api/check-request-templates/:idC
Read-onlyIdempotent
Inspect

GET /api/check-request-templates/:id. GET /api/check-request-templates/:id. Operation ID: f09a6f53c1bf375288b0db7d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing on top: no mention of what a check request template is, permission requirements, error behavior for a missing/invalid id, or response shape. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is duplicated verbatim, which is pure waste, and the remaining content is a generator artifact (operation ID hash) rather than information. It is short, but the brevity comes from omission rather than economy.

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?

No output schema exists, so the description carries the burden of indicating what comes back, and it says nothing. For a nested-object, 0%-coverage, single-record retrieval tool in a large sibling set, this is well short of what an agent needs to invoke 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% for 2 parameters (query and params.id), so the description must compensate and does not. The ':id' in the path hints that params.id identifies the template, but query parameters are entirely unexplained and the id's provenance/format is never described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text is just the raw endpoint path repeated twice ('GET /api/check-request-templates/:id'), which at best implies 'fetch a check request template by id'. It does not state the resource in plain language or distinguish this single-record fetch from the sibling list tool get_check_request_templates_38069a382fe0c4228a46178c beyond the ':id' token embedded in a URL.

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 to call this versus the sibling list/available endpoints, and no conditions or prerequisites. The only routing hint is a generic 'describe_operation provides native request schemas', which is a meta-pointer, not usage guidance for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clause_approvals_conditional_rules_cc484bec8d6b2a5d4f07e39cclause-approvals: GET /api/clause-approvals/conditional-rulesC
Read-onlyIdempotent
Inspect

GET /api/clause-approvals/conditional-rules. GET /api/clause-approvals/conditional-rules. Operation ID: cc484bec8d6b2a5d4f07e39c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavior beyond that—no mention of pagination, filtering semantics, or what the conditional-rule objects contain—and merely re-points at describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the opening sentence is duplicated verbatim, which is pure waste. The only substantive sentence (the describe_operation pointer) arrives last rather than being front-loaded.

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 nested free-form parameters, no output schema, and no documented fields, the description leaves nearly everything to describe_operation. An agent knows it is a read-only GET but not what a conditional rule is, how to filter, or what shape the response takes.

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 0% and both parameters are open-ended objects (free-form 'query' with additionalProperties and an empty 'params'). The description does not explain what keys 'query' accepts or how query filters map to conditional rules; it only delegates to describe_operation, which is a useful escape hatch but not compensation for the documentation gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title/URL path twice ('GET /api/clause-approvals/conditional-rules') rather than describing in plain language what the tool returns. An agent can infer it fetches conditional rules for clause approvals, but there is no verb+resource framing, no statement of scope, and no differentiation from siblings like get_clause_approvals_rules or get_clause_approvals_pending.

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 or when-not-to-use guidance, and no mention of the closely related clause-approvals list tools. The only actionable pointer is the note that describe_operation provides native request schemas, which routes the agent for schema discovery but says nothing about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clause_approvals_pending_bbd08a98522a45aa6bf026a9clause-approvals: GET /api/clause-approvals/pendingC
Read-onlyIdempotent
Inspect

GET /api/clause-approvals/pending. GET /api/clause-approvals/pending. Operation ID: bbd08a98522a45aa6bf026a9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no note on pagination, result ordering, what 'pending' means, or filtering/limit behavior — so it fails to add value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste, and the content is not front-loaded with purpose — it leads with a raw URL path rather than what the tool returns. The third clause is useful but the overall structure is filler-heavy for how little information is conveyed.

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?

No output schema exists, two undocumented parameters, and a nested free-form object; the description gives an agent nothing about return shape, pending-state semantics, or how to build the query. For a tool whose schema is this opaque, the description should carry far more burden than it does.

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 (query as a free-form object and an empty params object). The description compensates only by deferring to describe_operation for native request schemas, which is a hint at where to find the shape but adds no semantics about what query keys or params mean for this endpoint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path plus an operation ID, which is essentially tautological with the name and title. It does imply a read of pending clause approvals via the URL, but offers no verb-and-resource explanation, no scope, and no differentiation from siblings like get_clause_approvals_rules or get_clause_approvals_conditional_rules.

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 to use this tool versus the many clause-approval siblings, no prerequisites, and no exclusions. The only routing hint is a pointer to describe_operation for request schemas, which addresses schema lookup rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clause_approvals_rules_c1d80b275d1cbc766980a3ccclause-approvals: GET /api/clause-approvals/rulesD
Read-onlyIdempotent
Inspect

GET /api/clause-approvals/rules. GET /api/clause-approvals/rules. Operation ID: c1d80b275d1cbc766980a3cc; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: no statement of what a 'rule' is, whether results are paginated, or what filtering is possible. For a read endpoint with annotations, a 2 reflects near-zero added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two identical sentences plus an operation-ID clause: the duplication is pure waste, and no useful information is front-loaded. It is short, but that brevity comes from under-specification rather than discipline.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, an undocumented free-form 'query' object, and zero behavioral or return-value information in the description. Nothing tells an agent how to call this successfully or what it will get back.

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 the 'query' object (open-ended with additionalProperties: {}) or the empty 'params' object. With low coverage and no compensating text, the agent has no idea what to put in 'query'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description consists of the endpoint path repeated verbatim with no plain-English statement of what it returns. An agent can infer 'list clause approval rules' only from the URL segment, which is a tautological restatement of the title rather than an explanation.

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, prerequisites, or comparison against siblings such as get_clause_approvals_conditional_rules or get_approvals_rules is given. The only guidance is a pointer to describe_operation for native schemas, which is a schema-discovery hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clause_approvals_version_by_version_20c1bd5f11e3e04b847df054clause-approvals: GET /api/clause-approvals/version/:versionId/progressD
Read-onlyIdempotent
Inspect

GET /api/clause-approvals/version/:versionId/progress. GET /api/clause-approvals/version/:versionId/progress. Operation ID: 20c1bd5f11e3e04b847df054; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no note on what 'progress' contains, pagination, or the 404 case for an unknown versionId.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same URL string is duplicated back-to-back, which is pure waste rather than concision. The remaining clause about describe_operation is boilerplate appended after the redundancy.

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?

No output schema exists, so the description must explain what the progress payload looks like, and it does not. Combined with 0% parameter coverage and a nested/free-form query object, an agent cannot confidently construct a call or interpret the response from this definition.

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 the two parameters. The required versionId and the free-form query object (which allows arbitrary additional properties) are completely unexplained, leaving an agent with no idea what query keys are valid.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path repeated verbatim twice, which restates the tool name and title rather than explaining purpose. It does convey 'GET progress for a clause-approvals version' implicitly through the path segments, but gives no plain-language statement of what the returned progress represents or how it differs from the sibling get_clause_approvals_version_by_version_ae944e111692d3f11a94c0c4.

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 versus the many other clause-approvals endpoints (rules, pending, conditional rules, or the differently-hashed version sibling). The only hint is 'describe_operation provides native request schemas,' which points to a helper for schema discovery, not a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clause_approvals_version_by_version_ae944e111692d3f11a94c0c4clause-approvals: GET /api/clause-approvals/version/:versionIdC
Read-onlyIdempotent
Inspect

GET /api/clause-approvals/version/:versionId. GET /api/clause-approvals/version/:versionId. Operation ID: ae944e111692d3f11a94c0c4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description adds nothing beyond that — no note on whether the version must exist, whether the response is scoped to a workspace, or how large the payload is; only the pointer to describe_operation for schemas.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint string is duplicated verbatim, which is pure waste, and the operation ID hash is noise for a caller. It is short, but under-specified rather than concise.

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?

No output schema and zero schema description coverage on a nested-object input means the description bears full burden, and it delivers almost none: no return shape, no auth or scoping notes, and no differentiation from near-identical sibling version endpoints.

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 two parameters, yet the description never explains versionId (constraints are only minLength/maxLength in the schema) nor the free-form 'query' object. The URL template implies versionId is a path parameter, which is the only marginal value added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name and the raw endpoint path twice ('GET /api/clause-approvals/version/:versionId'), adding no plain-language statement of what a clause approval for a version actually is or what is retrieved. A sibling tool with the same base name (get_clause_approvals_version_by_version_20c1bd5f...) exists and the description gives no basis to tell them apart.

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, when-not-to-use, or alternative conditions are given. The only actionable hint is that 'describe_operation provides native request schemas', which points at a workflow step but not at selection between tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clauses_extracted_by_entityType_by__6aa5a8b4e140050cd9fa86daclauses: GET /api/clauses/extracted/:entityType/:entityIdD
Read-onlyIdempotent
Inspect

GET /api/clauses/extracted/:entityType/:entityId. GET /api/clauses/extracted/:entityType/:entityId. Operation ID: 6aa5a8b4e140050cd9fa86da; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds nothing beyond that — no note on pagination, result shape, or what 'extracted' clauses mean (AI-extracted vs. stored).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the path is duplicated verbatim and the operation ID plus a pointer to another tool consume most of the text — near-zero information per sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested, two-parameter endpoint with no output schema and 0% parameter coverage, an agent cannot determine valid entityType values or the response contents. The description leaves every question an agent would need answered to invoke it correctly.

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 there are two real path parameters (entityType, entityId) nested under 'params'. The description gives no enumeration or format hints for entityType (lease? contract? site?) and no clarification of entityId, so it fails to compensate for the schema's total lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path (twice) and the operation ID, which is a tautological restatement of the name/title. It never explains what 'clauses extracted by entity type' actually returns or why an agent would want it.

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 differentiation from the many sibling clause/list tools (get_cam_clauses_*, get_clause_approvals_*, get_clauses_field_mappings_*). The only directive is 'describe_operation provides native request schemas', which points at another tool rather than explaining selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clauses_field_mappings_by_entityTyp_1fdbae174a508709252a4da8clauses: GET /api/clauses/field-mappings/:entityTypeD
Read-onlyIdempotent
Inspect

GET /api/clauses/field-mappings/:entityType. GET /api/clauses/field-mappings/:entityType. Operation ID: 1fdbae174a508709252a4da8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered externally. The description adds nothing beyond the path echo and a pointer to describe_operation; it says nothing about return shape, auth needs, valid entityType values, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description wastes space by repeating the identical endpoint URL twice verbatim, a clear duplication failure. The only non-redundant content is the operation ID and the describe_operation pointer, and it is not front-loaded with any meaningful purpose statement.

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?

No output schema exists and params are undocumented, so the description carries the full explanatory burden—yet it provides no account of return values, entityType semantics, or usage context. For an operation with nested query params and a required path variable, the definition is far too thin.

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% for two parameters (a required entityType and a free-form query object), and the description does not compensate at all: it never states what values entityType accepts or what the query object is for. With zero schema-level documentation and no description help, the parameters are effectively undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description simply echoes the endpoint path 'GET /api/clauses/field-mappings/:entityType' twice, restating the title and name. It conveys a resource (field mappings) and a filter (entityType) but never explains in plain language what a field mapping is or what the operation returns, making it essentially a tautology of the structured 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?

There is no statement of when to use this versus the many sibling 'by entityType' tools (e.g., get_clauses_extracted_by_entityType, get_clauses_suggestions_by_entityType, get_ai_field_metadata_by_entityType). The only hint at another tool is the note that describe_operation provides native request schemas, which is about schema discovery, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_clauses_suggestions_by_entityType_b_fe64f9964fb70e4c77329cd3clauses: GET /api/clauses/suggestions/:entityType/:entityIdD
Read-onlyIdempotent
Inspect

GET /api/clauses/suggestions/:entityType/:entityId. GET /api/clauses/suggestions/:entityType/:entityId. Operation ID: fe64f9964fb70e4c77329cd3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond the operation ID and a pointer to describe_operation — no note on what suggestions mean, whether results are ranked, or what a valid entityType is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but the only content is the same path repeated two sentences in a row plus boilerplate. Nothing is front-loaded beyond the raw endpoint, so brevity here reflects under-specification rather than efficient structure.

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, 0% parameter documentation, and a nested params object, the description should explain the domain model and return shape. Instead it delegates to describe_operation, leaving the agent unable to call this correctly without a second lookup.

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 supplies no meaning for entityType or entityId. The schema only gives minLength/maxLength constraints on two untyped strings, so an agent cannot tell whether entityType is 'lease'/'contract' or what an entityId refers to — the description should carry this burden and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path, duplicated twice. It does encode 'GET' + 'clauses/suggestions' + ':entityType/:entityId', so the resource is nominally visible, but it never states in plain language what a 'suggestion' is or what it returns, which is the tautology pattern.

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 to use this versus siblings such as get_clauses_extracted_by_entityType_by__ or get_clause_approvals_* tools. The only routing hint is that 'describe_operation provides native request schemas', which points at a schema-lookup tool rather than explaining when this operation applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_coi_list_ed30d1b2a8b2a77da84e7363coi-list: GET /api/coi-listD
Read-onlyIdempotent
Inspect

GET /api/coi-list. GET /api/coi-list. Operation ID: ed30d1b2a8b2a77da84e7363; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered structurally. The description adds essentially nothing beyond restating the HTTP verb: no note on pagination, filtering semantics, or what the list contains. It does not contradict the annotations, but it fails to add value beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence 'GET /api/coi-list.' is duplicated verbatim, which is pure waste, and the operation ID adds no agent-facing meaning. The remaining information is front-loaded but thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list endpoint with two undocumented free-form parameters, no output schema, and numerous COI-related siblings, the description provides no resource identity, no filtering semantics, and no return-shape hints. An agent cannot confidently invoke it or tell it apart from alternatives.

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 0% and the two parameters are an untyped free-form 'query' object and an empty 'params' object, so the schema gives no help. The description only says describe_operation provides the native request schema, which points elsewhere rather than explaining what query keys are accepted or how filtering works.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely repeats the endpoint path 'GET /api/coi-list' twice and adds an opaque operation ID. It never says what a 'coi-list' actually is (certificates of insurance) or what entity scope it returns, so an agent cannot distinguish it from siblings like get_contracts_by_contractId_coi_information or get_leases_by_leaseId_coi_information. It is effectively a tautology of the title.

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 actionable hint is the pointer to describe_operation for request schemas, which is a meta-instruction rather than guidance on when to choose this tool over the many COI-related siblings. No conditions for use, prerequisites, 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.

get_coi_upload_tokens_0d7ac55036682933bc93824fcoi-upload-tokens: GET /api/coi-upload-tokensC
Read-onlyIdempotent
Inspect

GET /api/coi-upload-tokens. GET /api/coi-upload-tokens. Operation ID: 0d7ac55036682933bc93824f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing behavioral beyond that, and merely notes that describe_operation exposes native request schemas; it does not say whether results are paginated, scoped to a workspace, or filtered by contract/COI.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes its opening on a verbatim duplicate of the endpoint path, and the only substantive content is an operation ID plus a pointer to another tool. Brevity here reflects under-specification, not efficient expression.

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?

There is no output schema, zero schema description coverage, and no annotation-independent explanation of results. For a two-parameter read endpoint in a large sibling toolset, the description leaves an agent unable to know what it will get back or what the query/params objects should contain without first invoking describe_operation.

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 nested parameters (query, params) that are otherwise opaque object bags with additionalProperties. The description offers no parameter meaning at all, only a redirection to describe_operation, which 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw endpoint path 'GET /api/coi-upload-tokens' twice, which is a tautological restatement of the tool name/title. It conveys that this is a read of a 'coi-upload-tokens' collection but never says what an upload token is, what the response contains, or how it differs from siblings like get_coi_list.

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 or when-not-to-use guidance is given, and no alternative sibling is named other than the generic pointer to describe_operation. An agent knows only that it may call describe_operation for schemas, which is workflow plumbing rather than usage guidance for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_column_preferences_3a64717cfdb86472df10b48dcolumn-preferences: GET /api/column-preferencesD
Read-onlyIdempotent
Inspect

GET /api/column-preferences. GET /api/column-preferences. Operation ID: 3a64717cfdb86472df10b48d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that—no note on whose preferences are returned (user vs workspace), whether defaults are synthesized, or auth requirements. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The only content is a verbatim duplication of the endpoint string plus an opaque operation ID. It is short but entirely non-informative, so brevity comes at the cost of usefulness rather than from efficient editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with an entirely undocumented nested query/params object, no output schema, and no annotations explaining semantics, the description should carry the burden—instead it repeats the path twice and defers to 'describe_operation', which is not how the agent selects this tool.

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 both parameters (`query`, `params`) are untyped free-form objects with no documented semantics. The description does not mention them at all, leaving the caller with no idea what to pass—far below the baseline for a low-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP endpoint path 'GET /api/column-preferences' plus an operation ID. It identifies the resource (column preferences) but adds no verb-level explanation of what is retrieved, so it functions as tautology of the title rather than a purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to call this versus alternatives. With hundreds of sibling get_* tools (including get_view_layouts, get_saved_views, get_profile), the absence of any guidance on scope or selection criteria leaves the agent guessing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_comments_f4c37d690dc3849e975c2997comments: GET /api/commentsD
Read-onlyIdempotent
Inspect

GET /api/comments. GET /api/comments. Operation ID: f4c37d690dc3849e975c2997; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered without the description. The description contributes nothing beyond that — no pagination, no filtering behavior, no result shape — for a fundamentally undocumented 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are a verbatim duplicate, so roughly half the text is wasted and nothing is front-loaded beyond an HTTP path. Brevity here reflects under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no parameter documentation, yet the description explains neither the query semantics nor the response. For a nested-object (query/params) endpoint with zero schema coverage, the definition is not sufficient to invoke the tool correctly.

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?

Two parameters exist (query, params) with 0% schema description coverage and no prose about either. The description does not explain what 'query' holds or which path/entity the 'params' object scopes, leaving an agent unable to supply a meaningful request without calling describe_operation first.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally the title repeated twice ("GET /api/comments. GET /api/comments."). It conveys at most that this retrieves comments, but adds no scope, filters, or distinction from close siblings such as get_comments_mentions or get_comments_field_counts.

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 when a sibling tool would be preferable. The only routing hint ("describe_operation provides native request schemas") addresses schema discovery, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_comments_field_counts_b2747a6ffe0817af7936f782comments: GET /api/comments/field-countsC
Read-onlyIdempotent
Inspect

GET /api/comments/field-counts. GET /api/comments/field-counts. Operation ID: b2747a6ffe0817af7936f782; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that—no information on what the field counts represent, aggregation behavior, or any scoping/permission requirements—so with the lower bar set by annotations it still contributes no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first sentence is duplicated verbatim, which is pure waste. The remaining content (operation ID and a pointer to describe_operation) is front-loaded but carries almost no substance.

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?

No output schema exists, so the description is responsible for conveying what a 'field-counts' response looks like and what the nested query object accepts; it does neither. An agent would have to call describe_operation before it could invoke this tool with confidence, making the definition incomplete on its own.

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 two parameters (an open 'query' object and an empty 'params' object with additionalProperties=false). The description does not explain what belongs in query or params; the single hint that describe_operation holds the native request schema is a referral, not parameter semantics, so it only barely exceeds a total gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the REST path 'GET /api/comments/field-counts' twice, which restates the title rather than explaining what 'field counts' means in plain language (counts of which fields, scoped by what?). A verb and resource are present only in URL form; an agent cannot distinguish this from get_comments_f4c37d690dc3849e975c2997 or get_comments_mentions without guessing from the path.

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 statement of when to use this tool, when not to, or which sibling to prefer (get_comments, get_comments_mentions, get_comments_users all exist). The only actionable pointer is 'describe_operation provides native request schemas', which tells the agent where to look for parameters, not when to select this endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_comments_mentions_2075b2c997b7a7b4c1313af2comments: GET /api/comments/mentionsD
Read-onlyIdempotent
Inspect

GET /api/comments/mentions. GET /api/comments/mentions. Operation ID: 2075b2c997b7a7b4c1313af2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that — no information on filtering semantics, pagination, or expected result shape — apart from the note about describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wasteful: the same endpoint string appears twice verbatim and the operation ID adds no selection value. It is front-loaded only in the trivial sense of leading with a path, not with a meaningful purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a tool with nested objects, zero schema description coverage, and no output schema, so the description must carry the burden — yet it provides no purpose, parameter, or return-value context. It is essentially a raw path stub.

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 both parameters ('query' and 'params') are opaque open objects with no documented properties. The description provides no clarification of what these parameters accept or how they should be formed, leaving an agent with no usable parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely repeats the endpoint path twice ('GET /api/comments/mentions. GET /api/comments/mentions.') and gives an operation ID. The path implies a read of comment mentions, but nothing explains what a mention is, what it returns, or how it differs from sibling comment tools like get_comments_f4c37d690dc3849e975c2997 or get_comments_users_c01766529f8df832dd288354.

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 actionable hint is that 'describe_operation provides native request schemas,' which points to a schema-discovery workflow but says nothing about when to call this tool versus the other comments endpoints. No conditions, prerequisites, or alternatives are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_comments_users_c01766529f8df832dd288354comments: GET /api/comments/usersD
Read-onlyIdempotent
Inspect

GET /api/comments/users. GET /api/comments/users. Operation ID: c01766529f8df832dd288354; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds zero behavioral context (no pagination, filtering, or result shape), so it contributes nothing 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short but wasteful: the same endpoint string is repeated verbatim, and the sentence that follows is metadata (operation ID) rather than purpose. Nothing meaningful is front-loaded because nothing meaningful is stated.

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, no useful annotation gap-filling, and 0% parameter documentation, the description should explain at least what the endpoint returns and what the query envelope accepts. It provides none of that, only a routing hint to describe_operation.

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 both parameters are untyped catch-all objects (query, params), so the description carries the full burden of explaining them — and it says nothing. No meaning is added for either parameter, leaving the agent to guess at query syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path twice and the operation ID; it never says what the resource 'comments/users' represents or what the call returns. An agent learns nothing beyond the name itself and cannot distinguish it from siblings like get_comments_f4c37d690dc3849e975c2997 or get_comments_mentions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 conditions, and no named alternative among the many comment/user siblings. The only actionable hint, 'describe_operation provides native request schemas', is a pointer to another tool rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_compliance_rules_by_id_ff37b086c8015c691d8e6ab4compliance-rules: GET /api/compliance-rules/:idC
Read-onlyIdempotent
Inspect

GET /api/compliance-rules/:id. GET /api/compliance-rules/:id. Operation ID: ff37b086c8015c691d8e6ab4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds nothing beyond that — no indication of auth requirements, error behavior for a missing id, or what the payload contains; it only repeats the route.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the opening endpoint string is duplicated verbatim, which is pure waste, and the remaining content is an operation ID that is already in the tool name.

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 nested parameters, 0% schema description coverage, no output schema, and a single-record GET semantics, the description should explain the identifier and the response shape. Instead it defers entirely to describe_operation, leaving the agent dependent on a second call.

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 two parameters, including a nested 'params' object with a required 'id'. The description never mentions the id path parameter or the free-form 'query' object, leaving the agent with an opaque schema plus a pointer to another tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the raw endpoint 'GET /api/compliance-rules/:id' repeated twice, which restates the name and title rather than explaining in plain language what a compliance rule is or what is returned. It does not distinguish this single-record fetch from the sibling list tool get_compliance_rules_fd2420bbf97b37f576e660d3.

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 this vs alternatives' guidance at all. The only actionable sentence points at describe_operation for native request schemas, which is meta-instruction about schema discovery, not usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_compliance_rules_fd2420bbf97b37f576e660d3compliance-rules: GET /api/compliance-rulesC
Read-onlyIdempotent
Inspect

GET /api/compliance-rules. GET /api/compliance-rules. Operation ID: fd2420bbf97b37f576e660d3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing beyond a note that schemas live behind describe_operation — no filtering behavior, pagination, or auth/scope context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence appears twice, which is pure waste, and the useful hint about describe_operation is buried after the duplication. It is short but under-specified rather than concise.

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 wrapper endpoint with no output schema, undocumented nested query params, and generic annotations, the description should at least characterize the returned collection or accepted filters. Pointing to describe_operation is the only bridge, leaving the agent unable to call it correctly without a follow-up tool call.

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 (a free-form 'query' object and an empty 'params' object), so the description must compensate and does not. It only redirects to describe_operation for the native request schema, which is a pointer rather than semantics for query/path filtering.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the endpoint path 'GET /api/compliance-rules' twice, which merely restates the name and title rather than explaining what the call returns or its scope. An agent can infer it retrieves compliance rules, but nothing distinguishes a list endpoint from a search, and no sibling (e.g. get_compliance_rules_by_id) is referenced.

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 to use this tool versus get_compliance_rules_by_id or execute_read. The only actionable pointer is 'describe_operation provides native request schemas', which tells the agent how to fetch a schema, not when this operation applies or what constraints it has.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contacts_by_id_associations_9ebd957c5f7b83e931110669contacts: GET /api/contacts/:id/associationsC
Read-onlyIdempotent
Inspect

GET /api/contacts/:id/associations. GET /api/contacts/:id/associations. Operation ID: 9ebd957c5f7b83e931110669; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered externally. The description adds nothing beyond pointing at describe_operation; it does not say what associations are returned, whether pagination applies, or what the response shape is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and the operation ID is noise for an agent that already has the tool name. The useful content (pointer to describe_operation) is buried at the end.

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 an undescribed nested 'query' object and no output schema, the description should explain what associations are and how to filter them. Instead it defers entirely to describe_operation, leaving an agent unable to predict the response.

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 parameters. The description only echoes ':id' in the URL, which repeats what the schema's required 'id' already says, and says nothing about the free-form 'query' object or its expected keys.

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 URL path 'GET /api/contacts/:id/associations' conveys a verb (GET) plus a resource (associations for a contact), which does distinguish it from the sibling get_contacts_by_id. However, the description never states in plain language what an 'association' is or what the call returns, so it is only marginally more than a restated route.

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 to use this tool versus get_contacts_by_id, get_contacts_by_id_custom_fields_values, or any other contacts sibling. The only routing hint is 'describe_operation provides native request schemas', which is about schema discovery, not usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contacts_by_id_custom_fields_values_d2876ec8074dde6bff01bc7acontacts: GET /api/contacts/:id/custom-fields/valuesC
Read-onlyIdempotent
Inspect

GET /api/contacts/:id/custom-fields/values. GET /api/contacts/:id/custom-fields/values. Operation ID: d2876ec8074dde6bff01bc7a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered structurally. The description contributes nothing beyond that: no mention of what is returned, whether values are keyed by definition ID, or how missing values behave. Pure duplication of the endpoint string adds no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, then followed by an operation-ID fragment and a pointer to another tool. There is no front-loaded statement of purpose, so the structure wastes its only available space.

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?

Placeholder: re-evaluating. The tool has 2 parameters, one of them an unconstrained open object, no output schema, and a description that explains neither the query object nor the response. Against that complexity the description is far from 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%, so the description must compensate and does not. It implies the ':id' path parameter but says nothing about the free-form 'query' object (additionalProperties, no properties defined) — an agent has no idea what query keys are valid (e.g., definition IDs, pagination).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path in prose ('GET /api/contacts/:id/custom-fields/values') twice, which conveys the resource and verb only indirectly. It gives no natural-language statement like 'retrieve custom field values for a contact', and offers no differentiation from siblings such as get_contacts_by_id_dbf36acebdfb38a01cccfd33 or get_contacts_custom_fields_definitions.

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. The only directional hint is the boilerplate 'describe_operation provides native request schemas', which points at a different tool rather than explaining selection among the contact-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contacts_by_id_dbf36acebdfb38a01cccfd33contacts: GET /api/contacts/:idD
Read-onlyIdempotent
Inspect

GET /api/contacts/:id. GET /api/contacts/:id. Operation ID: dbf36acebdfb38a01cccfd33; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds zero behavioral context — no note on what is returned, error behavior for an unknown id, or whether nested data is expanded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Effectively one sentence duplicated, plus an internal operation ID that adds no value to an agent. It is not bloated, but it is under-specified rather than concise — near-zero information density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 0% schema description coverage, no output schema, and nested parameters, the description provides essentially nothing an agent needs beyond what the name and annotations already say.

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 carries the burden. It never mentions the required 'id' path parameter or the 'query' object; only the raw path template hints at 'id' implicit in the name. An agent must open the schema to learn anything about the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the tool name/title ('GET /api/contacts/:id') verbatim, twice, without explaining what a contact record contains or how this differs from siblings like get_contacts (list), get_contacts_by_id_associations, or get_contacts_by_id_custom_fields_values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no exclusions, no mention of alternatives. The only pointer is 'describe_operation provides native request schemas', which is a schema-lookup hint, not usage guidance for selecting this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contacts_c8659b8606e842788ba8d109contacts: GET /api/contactsC
Read-onlyIdempotent
Inspect

GET /api/contacts. GET /api/contacts. Operation ID: c8659b8606e842788ba8d109; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing on top: no pagination behavior, no filtering semantics, no indication of result size or shape for a free-form 'query' object. It repeats 'GET /api/contacts' twice, which conveys no additional information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes its entire length on a verbatim duplicate of the endpoint path ('GET /api/contacts. GET /api/contacts.'). There is no front-loaded statement of purpose, so the brevity reflects under-specification rather than economy.

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 listing endpoint with a nested free-form query object, no output schema, and zero documented parameters, the description should at minimum say what a contact is, what the query object accepts, and how results are ordered or paginated. It supplies none of that, offering only a reference to describe_operation.

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, and the 'query' object is a free-form additionalProperties bag while 'params' is an empty, closed schema — exactly the case where the description must compensate. Instead it only says describe_operation provides native request schemas, which outsources the explanation rather than providing it; the agent learns nothing about what keys go in 'query'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a restatement of the endpoint path and title ('GET /api/contacts') rather than an explanation of what contacts are or what listing them returns. It does convey that this is a read of the contacts collection, but that is inferred from the raw route rather than stated, and it does nothing to distinguish it from siblings like get_contacts_by_id, get_counterparty_contacts, or get_sites_by_siteId_contacts.

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 is given; the only actionable statement is a pointer to describe_operation for native request schemas. There is no mention of the related sibling tools (single-contact lookup, counterparty contacts, custom field definitions) or of when this collection endpoint is preferable to them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contacts_custom_fields_definitions_de5e13b0fd6f646f17f9c72acontacts: GET /api/contacts/custom-fields/definitionsD
Read-onlyIdempotent
Inspect

GET /api/contacts/custom-fields/definitions. GET /api/contacts/custom-fields/definitions. Operation ID: de5e13b0fd6f646f17f9c72a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no mention of filtering behavior, pagination, whether all definitions or a paginated page is returned, or any auth/scope requirements. A duplicate of the endpoint path is not behavioral information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is repeated verbatim, which is pure waste. The only marginally useful content, the operation ID and the describe_operation pointer, would stand fine on its own.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 0% parameter documentation, a nested params object, and no annotations beyond the flags, the description leaves everything an agent needs unresolved. It doesn't say what the response contains, how results are scoped, or what to pass in query.

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% for two parameters (query and params, the latter a nested empty object), so the description must compensate and it does not. Neither parameter is mentioned or explained; the agent gets no idea what to put in query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path, GET /api/contacts/custom-fields/definitions, which is already implied by the tool name and title. It never says in plain language what the tool returns (custom field definitions for contacts) or how it differs from siblings such as get_global_settings_custom_field_definitions or get_contracts_by_id_custom_fields_defin. This is close to tautology.

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 to use this versus alternatives, no prerequisites, and no exclusions. The only actionable hint is the pointer to describe_operation for native request schemas, which is a schema-discovery instruction rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_5151ceaf2866c7dcd09466efcontracts: GET /api/contractsC
Read-onlyIdempotent
Inspect

GET /api/contracts. GET /api/contracts. Operation ID: 5151ceaf2866c7dcd09466ef; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds nothing beyond that — no note on pagination, default limits, filtering behavior, or what the response contains, which matters for a 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Brief, but the same sentence is duplicated verbatim, so the small amount of text still contains waste. The useful pointer (describe_operation) is buried behind a repetition of the endpoint string.

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 zero-required-parameter list tool with an undocumented free-form query object and no output schema, the description should at least say what is returned and how filtering works. Delegating everything to describe_operation leaves the definition incomplete on its own.

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 0% and the two parameters (query, params) are opaque untyped objects. The description does not explain what query accepts or that params is empty — it merely defers to describe_operation, leaving an agent unable to construct a call from this definition alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the raw endpoint string 'GET /api/contracts' repeated twice, which restates the name and title rather than explaining what the tool returns or how it differs from the many contract-related siblings like find_contracts, get_contracts_by_id, or get_contracts_stats_overview.

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 list endpoint versus find_contracts, get_contracts_tags_search, or the per-contract getters. The only operator-facing pointer is to describe_operation for schemas, which is about invocation mechanics, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_contractId_coi_informa_66286e62d8b284210948cf58contracts: GET /api/contracts/:contractId/coi-informationC
Read-onlyIdempotent
Inspect

GET /api/contracts/:contractId/coi-information. GET /api/contracts/:contractId/coi-information. Operation ID: 66286e62d8b284210948cf58; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety behavior is covered by structured data. The description adds no further context — nothing about what COI information contains, pagination, or auth/scope requirements. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string is emitted twice back-to-back, wasting half the text, and an opaque operation ID is included with no explanatory value. There is no front-loaded statement of purpose or scope.

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 should ideally say something about the COI payload, and it does not. That said, annotations cover the safety profile and the schema fully constrains the required contractId, so an agent can invoke it mechanically — but it cannot predict what comes back.

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 carries the full burden of explaining the contractId path parameter and the free-form query object — and it explains neither. It gives no syntax, format, or filtering guidance for the untyped query object, leaving the agent to infer everything from the route template.

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 identifies a concrete verb and resource (GET a contract's COI information for a given contractId), so an agent can grasp the general purpose. However, it is a near-verbatim restatement of the title/route with the identical string repeated twice, and it never distinguishes this tool from close siblings such as get_leases_by_leaseId_coi_information or get_coi_list.

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 versus the many other COI-related or contract sub-resource tools. The only directional hint is the trailing note that describe_operation provides native request schemas, which implies a prerequisite step but does not state when this tool applies versus its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_contractId_documents_b_c29ef566cda0732b5952b9eccontracts: GET /api/contracts/:contractId/documents/:documentId/commentsC
Read-onlyIdempotent
Inspect

GET /api/contracts/:contractId/documents/:documentId/comments. GET /api/contracts/:contractId/documents/:documentId/comments. Operation ID: c29ef566cda0732b5952b9ec; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already state readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: it says nothing about whether pagination applies, what fields the comment records contain, or that the comment list is scoped to a single document.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The route string is duplicated verbatim in the first two sentences, wasting half the text. The operation ID and describe_operation pointer are useful but come after the redundancy.

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 two-parameter, nested-object endpoint with no output schema and 0% param documentation, the description should explain what a comment record is and how an agent should scope the query. Instead it leaves the agent reliant on describe_operation.

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 should compensate, but it does not. The path template does implicitly show that contractId and documentId are path segments, which is some help, but the 'query' object parameter and its allowed keys are completely undocumented in both schema and description.

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 only repeats the raw HTTP route twice, from which an agent can infer 'list comments on a document belonging to a contract'. It never states the purpose in words, and it does not distinguish this route from the very similar sibling get_contracts_by_contractId_documents_b_cd73216c02e24e786e583056.

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 about when to use this endpoint rather than the sibling document endpoints or the generic execute_read/find_contracts tools. The only routing hint is that describe_operation provides native request schemas, which is about schema lookup, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_contractId_documents_b_cd73216c02e24e786e583056contracts: GET /api/contracts/:contractId/documents/:documentId/redline-commentsC
Read-onlyIdempotent
Inspect

GET /api/contracts/:contractId/documents/:documentId/redline-comments. GET /api/contracts/:contractId/documents/:documentId/redline-comments. Operation ID: cd73216c02e24e786e583056; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered elsewhere. The description adds nothing beyond that – no note on pagination, comment shape, permissions, or what happens with a missing documentId.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two nearly identical sentences with zero added information – the duplication is pure waste, and the remaining Operation ID sentence is boilerplate that belongs in metadata, not prose.

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?

No output schema and two undocumented parameters mean the description carries the burden, yet it supplies no return-shape, error, or usage context. For a nested read endpoint in a crowded tool family this is inadequate.

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%, but the duplicated path template does at least map the two params (contractId, documentId) to their position in the URL, giving some semantic grounding. It still says nothing about format, length limits, or whether query filters are supported.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the title/endpoint path twice ('GET /api/contracts/:contractId/documents/:documentId/redline-comments') without naming the resource in plain language or saying what a redline comment is. It adds no differentiation from the very similar sibling 'get_contracts_by_contractId_documents_b_c29ef566cda0732b5952b9ec', so an agent must infer the difference from the ID suffix alone.

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 to call this instead of the many neighboring contracts/documents tools. The only routing hint is 'describe_operation provides native request schemas', which defers rather than guides.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_audit_logs_d58942e5771264d2b00d3525contracts: GET /api/contracts/:id/audit-logsC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/audit-logs. GET /api/contracts/:id/audit-logs. Operation ID: d58942e5771264d2b00d3525; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the read-only, idempotent, non-destructive, closed-world safety profile. The description adds no behavioral context beyond the endpoint path, such as pagination, rate limits, audit-log ordering, or what data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but poorly structured: it repeats the same endpoint sentence twice and includes an internal operation ID that adds no actionable value for an agent. The repetition wastes the limited space.

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?

The tool has no output schema, 0% parameter description coverage, and no explanation of return values or query options. Referring agents to `describe_operation` for schemas is helpful but does not make this definition complete enough on its own.

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 carry parameter meaning. It only implies that `id` is a contract identifier via the path template; the optional `query` parameter is entirely undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the endpoint path and operation ID, which is essentially a tautological restatement of the tool name and title. It does not explain in natural language what an audit log retrieval entails or how it differs from sibling audit-log 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 guidance on when to use this tool versus alternatives such as `find_contracts`, `get_contracts_by_id_*`, or `describe_operation`. The only directional hint is that `describe_operation` provides native request schemas, which is about schema discovery rather than usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_cc84e70b4cf1492de2196bc0contracts: GET /api/contracts/:idC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id. GET /api/contracts/:id. Operation ID: cc84e70b4cf1492de2196bc0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context of its own — no note on what is returned, error behavior for a missing ID, or permissions required — so it contributes almost nothing beyond the 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool is short, but the first sentence is duplicated verbatim, which is pure waste, and the remaining sentence is a pointer plus an opaque operation ID. Front-loading exists but the content is filler rather than substance.

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, 0% parameter description coverage, and a nested query object, the agent needs the description to explain the contract record's shape and the ID format — neither is present. The only completeness the definition offers is the annotation-level read-only guarantee.

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 carries the burden, yet it never explains what 'id' identifies (contract ID format, UUID vs slug) or what the free-form 'query' object accepts. The path fragment ':id' is the only hint, which the schema's 'params.id' already implies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint restated twice, mirroring the name and title verbatim. 'GET /api/contracts/:id' does hint at retrieving a contract by ID, but it never says what a contract record contains or distinguishes this from the many sibling sub-resource tools like get_contracts_by_id_documents or get_contracts_by_id_audit_logs.

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 beyond the implicit 'this is a GET'. The only routing hint is that describe_operation provides native request schemas, which points to a helper rather than telling the agent when to pick this tool over find_contracts or the sub-resource getters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_custom_fields_defin_0410ef08beed2e3f5f8f53e5contracts: GET /api/contracts/:id/custom-fields/definitionsC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/custom-fields/definitions. GET /api/contracts/:id/custom-fields/definitions. Operation ID: 0410ef08beed2e3f5f8f53e5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered structurally. The description adds nothing beyond that — no mention of what a 'definition' contains, whether definitions are scoped per contract vs. workspace, or any auth/pagination context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is repeated identically, which is pure waste, and the remaining content is an operation ID plus a redirect to another tool. There is no front-loaded statement of purpose.

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 annotation gaps to fill, the description still omits what the response contains (a list of custom field definitions with types/options?) and how the per-contract scope differs from global settings custom field definitions. An agent would have to call describe_operation or probe to use 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% for two parameters, so the description must compensate and it does not. The path text hints that :id is a contract identifier, but the free-form 'query' object parameter is entirely unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path, duplicated, which merely echoes the tool name and title. The path does imply 'read custom-field definitions for a contract', but no prose states the verb or resource explicitly, and nothing distinguishes it from sibling endpoints like get_contracts_by_id_custom_fields_value_acf9e9f03ec0449c6dc64b8d.

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 to use this tool versus alternatives such as the custom-fields *values* endpoint or the global custom field definitions endpoint. The only usable hint is the pointer that describe_operation provides native request schemas, which is a lookup instruction rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_custom_fields_value_acf9e9f03ec0449c6dc64b8dcontracts: GET /api/contracts/:id/custom-fields/valuesD
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/custom-fields/values. GET /api/contracts/:id/custom-fields/values. Operation ID: acf9e9f03ec0449c6dc64b8d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context such as response shape, pagination, or what 'custom field values' includes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but the first sentence is duplicated verbatim, which is pure waste, and the useful content (operation ID and the describe_operation pointer) is buried after the repetition rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nested parameters, zero schema description coverage, and no output schema, the description leaves the agent without any information about what 'query' accepts, what the response looks like, or how this differs from the sibling custom-fields definition endpoint. It is effectively incomplete.

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% for two parameters (a nested 'params.id' path parameter and a freeform 'query' object), and the description provides no explanation of either. Because the schema carries no descriptions, the description had to compensate and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just repeats the endpoint path 'GET /api/contracts/:id/custom-fields/values' twice, which restates the tool name and title rather than explaining what the operation returns or why an agent would call it. An agent can guess it reads custom-field values for a contract, but that comes from the path text, not from any stated purpose.

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 actionable guidance is a pointer to describe_operation for native request schemas, which implies the tool is a thin proxy. There is no statement of when to use this versus the many sibling tools such as get_contracts_by_id_custom_fields_defin or get_contracts_by_id_custom_sections.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_custom_sections_0e9daa415d5d11c7d4ac5905contracts: GET /api/contracts/:id/custom-sectionsC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/custom-sections. GET /api/contracts/:id/custom-sections. Operation ID: 0e9daa415d5d11c7d4ac5905; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing about the read itself — no note on what custom sections contain, whether results are paginated, or what an empty set means.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is wastefully duplicated and the raw operation ID (0e9daa415d5d11c7d4ac5905) consumes space without informing selection. Front-loading is fine, but the content itself is largely non-informative filler.

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?

No output schema exists, so the description must carry the burden of describing the return value — yet it says nothing about what a 'custom section' object looks like, its shape, or ordering. For a nested-object, query-parameterized endpoint this leaves the agent materially under-informed.

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 2 parameters. The path template hints that 'id' is a contract identifier, but the free-form 'query' object parameter is completely undocumented in both schema and description, leaving the agent to guess at supported filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the HTTP route repeated twice verbatim, which is essentially a restatement of the tool name ('get_contracts_by_id_custom_sections') and title. An agent can infer it fetches custom sections for a contract, but nothing distinguishes it from close siblings such as get_contracts_by_id_custom_fields_value or get_leases_by_id_custom_sections.

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 to use this tool, when to prefer a sibling, or what preconditions (e.g., a valid contract id) apply. The only routing-adjacent sentence points at describe_operation for schemas, which is meta-information rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_documents_9f3f52bceeb73878d5a6296ccontracts: GET /api/contracts/:id/documentsC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/documents. GET /api/contracts/:id/documents. Operation ID: 9f3f52bceeb73878d5a6296c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds nothing beyond routing metadata — no mention of what documents are returned, pagination, or auth needs — so it contributes no behavioral context over 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The route string is duplicated verbatim, wasting the only content present, then followed by an operation ID that adds no decision value. Short, but the duplication is pure noise rather than front-loaded usefulness.

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 nested-object tool with no output schema and 0% param coverage, an agent needs to know what documents structure to expect and how the query param filters. The description supplies none of this and defers entirely to describe_operation.

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 0% and the description gives no meaning for the two parameters. The `:id` path token loosely maps to the required id param, but the optional query object is entirely unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a REST route restated verbatim twice, which does convey the resource (documents for a contract by id) but is essentially a tautology of the title. It does nothing to distinguish this tool from the near-identical siblings like get_contracts_by_contractId_documents_b_c29ef566cda0732b5952b9ec and get_contracts_by_id_documents_ai_priori_6585b064b0d1e36530b1eb90.

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 use this vs the many sibling document tools. The only actionable hint is that describe_operation provides native request schemas, which points at a companion tool rather than describing selection conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_documents_ai_priori_6585b064b0d1e36530b1eb90contracts: GET /api/contracts/:id/documents/ai-priorityC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/documents/ai-priority. GET /api/contracts/:id/documents/ai-priority. Operation ID: 6585b064b0d1e36530b1eb90; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered elsewhere. The description adds nothing behavioral: no ordering semantics for 'ai-priority', no pagination, no note on what happens with an unknown contract id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint sentence is repeated verbatim, consuming half the text with zero added information. The remaining sentence is meta-information about another tool rather than front-loaded substance about this one.

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, zero parameter documentation, and a free-form nested 'query' object, the description should carry far more of the load than it does. It leaves the agent unable to determine supported query filters or return shape for a read tool on a heavily populated API surface.

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 explains the required 'id' path parameter or the untyped free-form 'query' object. The only hint is the ':id' placeholder embedded in the duplicated URL, which does not tell the agent what identifier form or query keys are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only echoes the tool title and the raw endpoint URL twice, restating the name rather than describing in plain language what the tool returns. An agent can infer it fetches AI-priority documents for a contract, but that inference comes from the endpoint string, not from any explanatory wording.

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 to use this tool versus the closely-named siblings such as get_contracts_by_id_documents_9f3f52bceeb73878d5a6296c or the lease equivalent. The only guidance is a pointer to describe_operation for request schemas, which is a schema lookup hint rather than a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_field_date_relation_54f26d1155de2c6406d73f71contracts: GET /api/contracts/:id/field-date-relationshipsC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/field-date-relationships. GET /api/contracts/:id/field-date-relationships. Operation ID: 54f26d1155de2c6406d73f71; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing behavioral beyond a duplicated path and an Operation ID; it does not say what the response looks like or whether the id must be a contract UUID.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes its entire first half on a verbatim duplicate of the same route string, so no sentence is front-loaded with useful information. Length is not the problem; zero informational yield from the repeated sentence is.

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, 0% schema description coverage, a nested 'query' object, and dozens of near-identical sibling contract endpoints, the definition needs to explain the resource and its parameters. It instead delegates entirely to describe_operation, leaving an agent unable to call it correctly from this definition alone.

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 only partially does: the literal ':id' in the path signals that the required 'id' parameter identifies a contract. The free-form 'query' object parameter is never mentioned, leaving half the parameter surface undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw route duplicated verbatim ('GET /api/contracts/:id/field-date-relationships' twice), which restates the tool name rather than explaining what a 'field date relationship' is or what the call returns. An agent can infer it reads date-relationship metadata for one contract, but nothing distinguishes its payload from siblings like get_leases_by_id_field_date_relationshi_* or get_contracts_by_id_cc84e70b4cf1492de2196bc0.

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 to use this versus alternatives; the only guidance is the procedural pointer that 'describe_operation provides native request schemas'. That tells the agent how to learn the schema, not when this endpoint is the right choice over the many sibling contract sub-resource getters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_notices_by_noticeId_dca0ea01bb51b8dc2960b4f1contracts: GET /api/contracts/:id/notices/:noticeId/pdf-urlC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/notices/:noticeId/pdf-url. GET /api/contracts/:id/notices/:noticeId/pdf-url. Operation ID: dca0ea01bb51b8dc2960b4f1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the path: no note on whether the returned URL is time-limited, requires authority to the resource, or triggers generation on demand — all material for a link-minting endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is duplicated exactly, wasting the most valuable position in the description. The remaining sentence is an operational pointer, so no informational content is front-loaded.

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?

No output schema exists, so the description should describe the return value (a URL string plus any expiration), but it does not. Combined with zero parameter documentation and a nested-object schema, an agent has too little to invoke this confidently beyond guessing from the path.

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 two required nested params (id, noticeId) are only surfaced through path templating that the name already implies. The description does not clarify that 'id' is the contract ID versus the notice ID, nor any format constraints, despite the schema carrying maxLength bounds only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the URL path repeated twice verbatim, which only implicitly conveys the action (fetch a PDF URL for a contract notice). It does not explain what a 'pdf-url' contains (signed link, expiry, format) or differentiate this from the sibling get_contracts_by_id_notices_ea65abd7caf52b9727785d1d, which lists notices instead.

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 or when-not-to-use guidance is given. The only actionable pointer is that describe_operation provides native request schemas, which is a generic redirect rather than a usage condition, and no alternative tool is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_notices_ea65abd7caf52b9727785d1dcontracts: GET /api/contracts/:id/noticesC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/notices. GET /api/contracts/:id/notices. Operation ID: ea65abd7caf52b9727785d1d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds only the operation ID and a pointer to describe_operation for native request schemas, which is a small but real piece of context beyond the annotations. No return behavior or pagination is described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded, but the duplicated identical sentence wastes half the text and the remainder is metadata rather than useful information. Brevity here reflects under-specification more than tight writing.

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?

No output schema exists, so the description should explain the shape of returned notices, pagination, and filtering via query; it explains none of these. For a nested-object request with 0% schema coverage, the definition is not sufficient to call the tool confidently.

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 2 parameters, so the description is responsible for compensating and it does not. The path string at least implies the required id is a contract identifier, but the free-form query object is completely undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path twice ("GET /api/contracts/:id/notices. GET /api/contracts/:id/notices."), which is effectively a tautology of the name and title. An agent can infer this lists notices for a contract, but nothing is said about what a notice is, scope, or how it differs from the sibling get_contracts_by_id_notices_by_noticeId_... tool.

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 such as get_notices_eb8326fe048fba69ff1fd44e (all notices) or the per-notice sibling. The only routing hint is the pointer to describe_operation for request schemas, which is about schema discovery, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_review_checklist_d7da2b6d283ef66f6458ce40contracts: GET /api/contracts/:id/review-checklistC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/review-checklist. GET /api/contracts/:id/review-checklist. Operation ID: d7da2b6d283ef66f6458ce40; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond the URL — no note on what the checklist contains, whether it is computed on read, or any auth/scope requirements. Repeating the path twice contributes no behavior information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste, and the remaining sentence is a generic operation-ID/describe_operation note. No front-loaded statement of what the call returns.

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, no parameter documentation, and nested/opaque query handling, the description should carry real burden — instead it gives only the endpoint path and an operation ID. An agent knows the route but not what the checklist payload represents or how to scope the id.

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 the two parameters (a free-form query object and a required params.id string with min/max length). The description only echoes the ':id' path token and explains neither what the id refers to nor what query options exist, so the 0% coverage gap is not compensated.

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 is a bare endpoint path, 'GET /api/contracts/:id/review-checklist', repeated twice. It conveys the resource (a contract's review checklist) and implies a read, but offers no plain-language verb or scope statement, and only distinguishes itself from the sibling get_leases_by_id_review_checklist by the word 'contracts' in the URL.

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 versus the many other contract endpoints (get_contracts_by_id_cc84..., get_review_entries_..., get_review_readiness_...). The only routing hint is a pointer to describe_operation for native request schemas, which is meta-instruction, not usage criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_by_id_summary_pdf_83b2bd1d0bd828cd76581a65contracts: GET /api/contracts/:id/summary-pdfC
Read-onlyIdempotent
Inspect

GET /api/contracts/:id/summary-pdf. GET /api/contracts/:id/summary-pdf. Operation ID: 83b2bd1d0bd828cd76581a65; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds nothing on top: no indication that the response is a binary PDF stream, whether generation is synchronous or job-based, latency, or size limits — all material for a document-generation 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?

Very short and front-loaded, but the first sentence is duplicated verbatim, which is pure waste, and the operation-ID sentence is boilerplate pointing at a sibling tool rather than describing this one.

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?

No output schema exists and the description does not say what comes back (PDF bytes, a presigned URL, a JSON envelope), nor does it explain the nested query object. For a PDF-generating endpoint with zero schema documentation, the definition leaves the agent unable to call it confidently.

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 2 parameters, so the description must compensate and does not. The only hint about `id` is the `:id` path token, and the `query` object is never addressed at all — an agent cannot tell which query options (template, locale, options) might be accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the endpoint path echoed twice ("GET /api/contracts/:id/summary-pdf") plus an operation ID. It nominally names a resource and verb, but adds no semantic content beyond the title — nothing about what the summary PDF contains, whether it is generated on demand, its format, or how it differs from sibling summary-PDF tools like get_leases_by_id_summary_pdf. This is tautology-level distinctiveness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance whatsoever about when to call this instead of get_contracts_by_id, get_leases_by_id_summary_pdf, or describe_operation. There are no conditions, prerequisites, or alternatives mentioned anywhere in the text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_critical_date_matrix_c33f2c39f4abb2aab46c282fcontracts: GET /api/contracts/critical-date-matrixC
Read-onlyIdempotent
Inspect

GET /api/contracts/critical-date-matrix. GET /api/contracts/critical-date-matrix. Operation ID: c33f2c39f4abb2aab46c282f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no information on what the matrix contains, whether query params are required, or how large the response may be. There is no contradiction with 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the opening sentence is duplicated verbatim, which is pure waste. The one useful clause (the describe_operation pointer) is buried at the end rather than front-loaded.

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 nested-object query endpoint with no output schema, no parameter documentation, and 0% schema coverage, the description provides almost nothing an agent needs to call it correctly. The describe_operation handoff partially mitigates this, but the definition itself is inadequate.

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: an unconstrained free-form `query` object and an empty `params` object. The description does not describe either parameter, only deferring to describe_operation, so an agent gets no syntax or meaning for the filter object it must supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the HTTP path verbatim, twice, without explaining what a 'critical date matrix' actually returns or how it differs from the sibling get_leases_critical_date_matrix. It is essentially a tautology of the tool name, leaving an agent to infer the resource semantics from the endpoint string alone.

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 actionable hint is that describe_operation provides native request schemas, which is a schema-lookup pointer rather than usage guidance. There is no statement of when to call this versus the near-identical leases critical-date-matrix sibling, and no mention of required context or filters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_stats_overview_8793c49b4ae560cb5d6ed77econtracts: GET /api/contracts/stats/overviewC
Read-onlyIdempotent
Inspect

GET /api/contracts/stats/overview. GET /api/contracts/stats/overview. Operation ID: 8793c49b4ae560cb5d6ed77e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so safety is covered structurally. The description adds nothing behavioral beyond noting describe_operation exposes native schemas — no aggregation window, filters, or result shape 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string appears twice with no additional information, which is pure noise rather than front-loaded clarity. The one useful sentence (operation ID / describe_operation pointer) is buried after the duplication.

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 stats-overview endpoint with an empty, fully-open query object, 0% schema description, and no output schema, the description should explain what the overview aggregates and how to scope it. Nothing an agent needs to call it meaningfully is present.

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 0% and both parameters (query, params) are undocumented; the description merely defers to describe_operation rather than explaining what goes in 'query' or confirming 'params' is empty. 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is only the raw endpoint path repeated verbatim twice, plus an operation ID. It implies a read of contract statistics but never says in plain language what statistics are returned or what the overview covers, so it largely restates the name/title.

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 to use this tool versus siblings such as get_contracts_5151ceaf, get_leases_stats_overview, or get_contracts_critical_date_matrix. The only routing hint is a pointer to describe_operation for request schemas, which is about format, not when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contracts_tags_search_74c5c7910a907887b9d0496bcontracts: GET /api/contracts/tags/searchD
Read-onlyIdempotent
Inspect

GET /api/contracts/tags/search. GET /api/contracts/tags/search. Operation ID: 74c5c7910a907887b9d0496b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond that: no mention of pagination, filtering behavior, or result shape for a search endpoint. The duplicated sentence is pure noise.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated, and the operation ID hash is not useful to an agent. Only the final clause about describe_operation earns its place; the rest wastes tokens.

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 a nested free-form query object, no output schema, and zero parameter documentation, the definition is far too thin for correct invocation. The pointer to describe_operation is the sole mitigating element, but it does not describe filters, pagination, or results.

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 schema is opaque: a free-form 'query' object (additionalProperties: {}) and an empty 'params' object. The description makes no attempt to explain how to pass tag search criteria, so an agent has no way to construct a valid call from either source.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path repeated verbatim ('GET /api/contracts/tags/search. GET /api/contracts/tags/search.'), which restates the name/title rather than explaining what the tool does or returns. Only the path tokens hint that it searches contract tags; nothing distinguishes it from get_leases_tags_search or get_tags_c8468dd084b7a8712f9da8e4.

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, when-not-to-use, or alternative guidance is given. The only actionable pointer is 'describe_operation provides native request schemas', which helps with parameter discovery but says nothing about choosing this tool over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterparties_4b4919172201a6bf5f32236fcounterparties: GET /api/counterpartiesC
Read-onlyIdempotent
Inspect

GET /api/counterparties. GET /api/counterparties. Operation ID: 4b4919172201a6bf5f32236f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds nothing beyond the mention that describe_operation exposes request schemas; it says nothing about pagination, filtering behavior, or what the counterparties payload contains for this openWorld=false, non-destructive read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded, but the first sentence is duplicated verbatim and the Operation ID adds no agent-relevant value, wasting the limited content on redundancy rather than substance.

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 nested-object, zero-coverage, no-output-schema list endpoint, the description should explain how to filter and what is returned. Instead it points vaguely to describe_operation, leaving the definition incomplete for correct invocation.

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?

Two parameters (query, params) with 0% schema description coverage and no descriptions in the schema; the description provides zero parameter meaning, so an agent cannot tell how query filters counterparties or what params accepts. Full compensation is required and absent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the tool name and HTTP endpoint twice ("GET /api/counterparties. GET /api/counterparties.") without adding scope, filters, or return info. It is effectively a tautology and does not differentiate from siblings like get_counterparties_by_id_da854dfbb88b182703805889 or get_counterparty_contacts.

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 guidance is a pointer that describe_operation provides native request schemas, which hints at a discovery path but says nothing about when to use this list endpoint versus the many counterparty-related siblings. No when-not or prerequisites stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterparties_by_id_contacts_8f148dd685a9f197918b2440counterparties: GET /api/counterparties/:id/contactsC
Read-onlyIdempotent
Inspect

GET /api/counterparties/:id/contacts. GET /api/counterparties/:id/contacts. Operation ID: 8f148dd685a9f197918b2440; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description adds nothing beyond the path and operation ID; the note about describe_operation supplying schemas is a marginal hint but discloses no behavior about what is returned or how results are scoped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is repeated verbatim, wasting half the text, and the remaining sentence is metadata (operation ID) rather than substance. Not front-loaded with any useful information beyond the path.

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 nested-parameter, zero-coverage read tool with no output schema, the description omits parameter meaning, return content, and pagination behavior. The describe_operation pointer is the only supplement, which is insufficient on its own to call the tool 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%, with two parameters including a required nested 'params.id' and an unconstrained 'query' object, yet the description explains neither. It only redirects to describe_operation for request schemas, leaving the agent without meaning for the id or the free-form query parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the raw endpoint path 'GET /api/counterparties/:id/contacts' duplicated verbatim, which restates the title rather than explaining the operation. An agent can infer that it retrieves contacts for a counterparty, but there is no prose stating the verb+resource in plain terms or distinguishing it from siblings like get_counterparty_contacts.

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 tool versus alternatives such as get_counterparty_contacts, get_contacts_by_id_associations, or get_counterparties_by_id_notices. The only actionable hint is that describe_operation provides native request schemas, which is a pointer to another tool, not usage guidance for this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterparties_by_id_da854dfbb88b182703805889counterparties: GET /api/counterparties/:idC
Read-onlyIdempotent
Inspect

GET /api/counterparties/:id. GET /api/counterparties/:id. Operation ID: da854dfbb88b182703805889; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that: no note on what is returned, whether the id is a UUID or numeric, or what happens on a missing record.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the content is a duplicated sentence plus an opaque operation ID. Nothing is front-loaded usefully because there is no substantive information to front-load.

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 single-record fetch with no output schema and a nested free-form `query` parameter, the description should at least characterize the returned resource and the meaning of `query`. Neither is present.

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 parameters. The `id` path segment is inferable from the ':id' template, but the `query` object (free-form additionalProperties) is completely unexplained in both schema and description, 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title and endpoint path verbatim ('GET /api/counterparties/:id' twice) without saying what a counterparty record contains or how this differs from close siblings like get_counterparties_4b4919172201a6bf5f32236f or get_counterparties_by_id_contacts. It is effectively a tautology of the 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?

No when-to-use guidance, no conditions, no exclusions. The only routing hint is that 'describe_operation provides native request schemas', which points at a schema-lookup tool rather than explaining when this tool should be chosen over the many other counterparty getters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterparties_by_id_documents_e6ef3c615f794b7c32ef6a95counterparties: GET /api/counterparties/:id/documentsC
Read-onlyIdempotent
Inspect

GET /api/counterparties/:id/documents. GET /api/counterparties/:id/documents. Operation ID: e6ef3c615f794b7c32ef6a95; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no note on pagination, result size, or what documents are included, and the duplicated path sentence contributes no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The output is two identical sentences back-to-back plus an operation ID and a cross-reference, so half the text is pure duplication. What remains is not front-loaded with any actionable meaning.

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, 0% parameter description coverage, and a nested `query` object, the description carries the full burden of explaining inputs and returns — and it does neither. An agent must call describe_operation first to use this tool safely.

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 gives no meaning for either parameter. It does not explain that `id` is the counterparty identifier (path param) nor what the arbitrary `query` object accepts (filters, pagination, sorting), only pointing at describe_operation for the underlying request schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the URL path repeated verbatim twice, which restates the tool name and title rather than describing the operation in prose. The path does implicitly encode 'list documents for a counterparty id', but nothing states what kind of documents, what the response contains, or how this differs from sibling document tools like get_contracts_by_id_documents or get_leases_by_id_documents.

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 use this tool versus the many sibling document endpoints (contract documents, lease documents, site documents, negotiation documents). The only routing hint is 'describe_operation provides native request schemas', which is about schema discovery, not about choosing this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterparties_by_id_notices_807be386d147707cedb021c2counterparties: GET /api/counterparties/:id/noticesD
Read-onlyIdempotent
Inspect

GET /api/counterparties/:id/notices. GET /api/counterparties/:id/notices. Operation ID: 807be386d147707cedb021c2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no return shape, no pagination behavior, no note that the result is scoped to a single counterparty. It does not contradict the annotations, it simply contributes no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the same endpoint path is duplicated verbatim, and the operation ID string adds no decision-relevant information for an agent. The one useful pointer (describe_operation for request schemas) is buried after the redundant content.

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?

A read tool with a nested free-form query object and no output schema needs at least a statement of what is returned (a list of notices) and how the query object is used. Neither is present, and the notices-vs-notifications distinction from a sibling tool is left unresolved.

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 two parameters, so the description carries the burden and fails: it never explains that 'id' is a counterparty identifier or what the free-form 'query' object is for (filters, pagination, expansion). Only the endpoint path hints that :id refers to a counterparty, which is marginal compensation for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description consists of the raw endpoint path repeated verbatim, which restates the tool name rather than explaining what the tool does in natural language. An agent can infer it fetches notices for a counterparty from the URL structure, but nothing distinguishes it from the near-identical sibling get_counterparties_by_id_notifications, which it never mentions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 conditions, and no named alternative. The only additional sentence points at describe_operation for schemas, which is a procedural hint rather than guidance on selecting this tool over get_counterparties_by_id, get_counterparties_by_id_contacts, or get_counterparties_by_id_notifications.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterparties_by_id_notifications_d8d839a79dd25e40608f5f9ecounterparties: GET /api/counterparties/:id/notificationsD
Read-onlyIdempotent
Inspect

GET /api/counterparties/:id/notifications. GET /api/counterparties/:id/notifications. Operation ID: d8d839a79dd25e40608f5f9e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description contributes nothing beyond that — no mention of result shape, ordering, pagination, or whether the counterparty must exist — and its only addition, the describe_operation pointer, is marginal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is stated twice verbatim, which is pure waste rather than concision. The only useful content, the operation ID and describe_operation pointer, is buried at the end instead of front-loaded.

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, undocumented nested/free-form query parameters, and hundreds of near-duplicate sibling tools, the description should clarify return contents and disambiguation. It instead supplies only a URL and a schema-lookup pointer, which is inadequate for correct invocation.

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% across two parameters, so the description carries the full burden and fails it entirely. It never mentions the required path parameter `id` (a counterparty identifier) nor the free-form `query` object, leaving an agent to guess what filtering is possible.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim duplication of the endpoint path in the tool title, which is a tautological restatement of the name rather than an explanation. An agent can infer 'list notifications for a counterparty' from the URL, but the description itself adds no articulation of what is returned or how it differs from siblings like get_counterparties_by_id_notices.

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 to use this tool versus alternatives such as get_notifications or get_counterparties_by_id_notices, nor any prerequisite or pagination guidance. The only actionable cue is the pointer to describe_operation, which is about fetching schemas, not about choosing this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterparty_contacts_5ca9d58365bed6484cb3e9c7counterparty-contacts: GET /api/counterparty-contactsC
Read-onlyIdempotent
Inspect

GET /api/counterparty-contacts. GET /api/counterparty-contacts. Operation ID: 5ca9d58365bed6484cb3e9c7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that—no mention of pagination, filtering behavior, response shape, or scoping—and the duplicated sentence is filler rather than disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description wastes its opening on the identical sentence twice and then an operation ID that offers no agent value. It is short but not front-loaded with useful information.

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 annotations gap (safety is covered) but zero schema coverage on two nested/free-form parameters and no output schema, an agent cannot tell what this returns or how to filter it. Pointing to describe_operation helps slightly but leaves the definition incomplete for a listing endpoint.

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% for two free-form parameters (query, params), so the description carries the burden. It points to describe_operation as the source of native request schemas, which is meaningful routing guidance even if it does not document the parameters inline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path twice ("GET /api/counterparty-contacts"), which is effectively a tautology of the title. The URL does imply retrieving counterparty contacts, but there is no verb+resource phrasing that distinguishes it from siblings like get_counterparties_by_id_contacts or get_counterparty_contacts_by_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the many sibling contact/counterparty tools. The only guidance is a pointer to describe_operation for schemas, which is about parameter discovery, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_counterparty_contacts_by_id_7f1df78fdc6b8bb3b06273a6counterparty-contacts: GET /api/counterparty-contacts/:idD
Read-onlyIdempotent
Inspect

GET /api/counterparty-contacts/:id. GET /api/counterparty-contacts/:id. Operation ID: 7f1df78fdc6b8bb3b06273a6; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered elsewhere. The description adds no additional behavioral context such as error behavior, authorization requirements, or what is returned, and it merely repeats the endpoint path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, which is pure waste. The operation ID and describe_operation pointer are front-loaded after that duplication, but the description does not use its limited space to add meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a retrieval tool with a nested input object, 0% schema description coverage, and no output schema, the description is completely inadequate. It does not explain what the endpoint returns or clarify the nested query parameter, leaving the agent with only the raw path.

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, including a nested params object with a required id and an unexplained query object. The path ':id' weakly signals that id identifies the contact, but the description provides no useful semantics for the query parameter or the ID format beyond what is already implied by the endpoint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a tautological restatement of the tool name and title: it repeats the raw endpoint path 'GET /api/counterparty-contacts/:id' twice and adds no plain-language explanation of what a counterparty contact is. It does at least imply retrieval by ID, but it does not distinguish this from the sibling list tool or explain the returned resource.

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 use this tool versus alternatives such as get_counterparty_contacts_5ca9d58365bed6484cb3e9c7 or the counterparties-by-id contacts endpoint. The only contextual pointer is 'describe_operation provides native request schemas,' which is not a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_custom_date_types_be2959a96007df3600e0f0c6custom-date-types: GET /api/custom-date-typesC
Read-onlyIdempotent
Inspect

GET /api/custom-date-types. GET /api/custom-date-types. Operation ID: be2959a96007df3600e0f0c6; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so safety is covered structurally. The description adds nothing beyond a pointer to describe_operation – no pagination behavior, no auth requirements, no shape of the response, and the duplicated sentence adds no information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same route sentence is duplicated verbatim, which is pure waste. What remains is an operation ID and a pointer sentence, so the description is both redundant and under-specified rather than concise and front-loaded.

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 0% schema coverage, a nested free-form 'query' object, and no output schema, the description would need to explain the request shape and response. It instead delegates entirely to describe_operation, leaving an agent unable to construct a call from this definition alone.

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% with two opaque parameters ('query' accepting arbitrary additional properties and an empty 'params' object). The description does not explain either parameter; it only redirects to describe_operation, which is a weak compensation for a fully undocumented nested-object schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description simply restates the endpoint path ('GET /api/custom-date-types') twice, which is already conveyed by the tool name and title. It never says what a custom date type is or what the operation returns, so an agent gains no purpose information beyond the route string.

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 actionable guidance is the pointer that 'describe_operation provides native request schemas', which is a schema-discovery hint rather than a when-to-use rule. There is no statement of when this read endpoint is appropriate versus the hundreds of sibling GET tools, and no preconditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_expense_breakdown_ae733676b220e44cd9dda4b3dashboard: GET /api/dashboard/expense-breakdownD
Read-onlyIdempotent
Inspect

GET /api/dashboard/expense-breakdown. GET /api/dashboard/expense-breakdown. Operation ID: ae733676b220e44cd9dda4b3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation is read-only, idempotent, non-destructive, and closed-world. The description adds no further behavioral context such as required permissions, date-scope behavior, aggregation rules, or pagination, though 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes its opening by repeating the endpoint path twice. It is front-loaded with a redundant path rather than a meaningful statement of purpose or usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dashboard breakdown endpoint with no output schema and no parameter documentation, the description does not explain what data is returned, what breakdown dimensions are available, or how to filter results. It is not sufficient for an agent to invoke the tool correctly beyond knowing the HTTP path.

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 provides no information about the query or params objects. With two undocumented parameters and a nested generic query object, the description completely fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely repeats the endpoint path twice and adds an operation ID. It implies the tool relates to dashboard expense breakdown, but it does not state a clear action or distinguish this from sibling dashboard tools such as expense trends or status breakdown.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to use it, or which alternative dashboard tool to choose. The only instruction points to describe_operation for request schemas, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_lease_expiration_timeline_f00b637c7137488dfcdd21cadashboard: GET /api/dashboard/lease-expiration-timelineC
Read-onlyIdempotent
Inspect

GET /api/dashboard/lease-expiration-timeline. GET /api/dashboard/lease-expiration-timeline. Operation ID: f00b637c7137488dfcdd21ca; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that: no mention of filtering behavior, default time window, pagination, or result shape. The one useful addition, that describe_operation exposes native request schemas, is a discovery aid rather than behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint path is repeated verbatim twice, and the opaque operation ID hash occupies a third of the text without helping selection or invocation. The front-loaded path is the only informative element; the rest is duplication and internal bookkeeping.

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 0% parameter documentation, no output schema, and nested undifferentiated query/params objects, the description should explain what the timeline returns and what query keys it accepts. It supplies neither, leaving the agent dependent on describe_operation before it can call this confidently.

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 both parameters ('query' and 'params') are generic pass-through objects with additionalProperties and no documented fields, so the description must compensate and does not. The single clause 'describe_operation provides native request schemas' at least tells the agent where to obtain parameter details, which is why this is not a 1.

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 path 'lease-expiration-timeline' under 'dashboard' conveys the resource broadly, and the GET verb is explicit, but the description never states in prose what the timeline contains (leases expiring over what horizon, per-site or portfolio-wide). It is a raw endpoint restatement rather than a purpose statement, though the path tokens do give an agent a workable guess and distinguish it from siblings like get_dashboard_metrics or get_dashboard_status_breakdown.

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 conditions, no exclusions versus the many other dashboard endpoints (get_dashboard_upcoming_events, get_dashboard_widgets, view_portfolio_dashboard). The only routing hint is a pointer to describe_operation for schemas, which is about mechanics, not about when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_metrics_d2c181f56869afde4e594fdedashboard: GET /api/dashboard/metricsD
Read-onlyIdempotent
Inspect

GET /api/dashboard/metrics. GET /api/dashboard/metrics. Operation ID: d2c181f56869afde4e594fde; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no note on auth/scope requirements, cost of the call, caching, or what data the endpoint aggregates. It does not contradict annotations, but it is purely a path echo.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same path sentence appears verbatim twice, which is pure waste, and the operation ID hash adds no decision value. The one useful pointer (describe_operation) is buried at the end of a run-on 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?

With no output schema, 0% param coverage, and a nested free-form 'query' object, the description would need to explain the return shape or the meaningful query keys. It only redirects to describe_operation, which is a partial mitigation but not enough for an agent to invoke this correctly without an extra tool call.

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?

Both parameters (query and params) have 0% schema description coverage, and 'params' has no declared properties at all. The description must compensate and instead says only that native schemas live in describe_operation, leaving an agent with no idea what query keys or filters are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the HTTP path 'GET /api/dashboard/metrics' twice, which is essentially a restatement of the tool name/title rather than a statement of what the metrics represent. It never says what is measured, over what scope, or how it differs from the many sibling dashboard tools (expense breakdown, status breakdown, recent activity, widgets).

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 actionable guidance is that 'describe_operation provides native request schemas', which is a pointer for schema discovery rather than a when-to-use rule. There is no mention of when this aggregate metrics endpoint should be preferred over get_dashboard_status_breakdown or get_dashboard_expense_breakdown, and no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_overdue_incentives_2cedf7736b5989db652690f9dashboard: GET /api/dashboard/overdue-incentivesC
Read-onlyIdempotent
Inspect

GET /api/dashboard/overdue-incentives. GET /api/dashboard/overdue-incentives. Operation ID: 2cedf7736b5989db652690f9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral context of its own — no scope of 'overdue', no time window, no aggregation semantics, no pagination or 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and the remaining content is an operation ID plus a pointer. Front-loaded yes, but the space that exists is not spent on anything that earns its place.

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 an aggregate dashboard endpoint with no output schema and two undocumented parameters, the description leaves the agent without the essential information — what 'overdue incentives' means, the data window, or how to build the query object — beyond suggesting describe_operation.

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 both parameters (query, params) are effectively opaque — 'query' is a free-form object with additionalProperties and 'params' is an empty object. The description only defers to describe_operation rather than compensating with any explanation of what can be filtered or passed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the endpoint path twice and adds nothing beyond what the tool name already conveys. It names no verb-object purpose (e.g., 'list overdue incentives across leases') and does not distinguish this dashboard endpoint from the many sibling dashboard tools such as get_dashboard_metrics or get_dashboard_status_breakdown.

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 guidance is the pointer that 'describe_operation provides native request schemas', which is a schema-discovery hint rather than a when-to-use rule. There is no indication of when an agent should call this instead of the other dashboard endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_recent_activity_ded354b397b267df9a80a89adashboard: GET /api/dashboard/recent-activityD
Read-onlyIdempotent
Inspect

GET /api/dashboard/recent-activity. GET /api/dashboard/recent-activity. Operation ID: ded354b397b267df9a80a89a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds essentially nothing behavioral — only a pointer that describe_operation provides native request schemas, with no note on what data is returned or how 'recent' is bounded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short but wasteful — the identical sentence is duplicated, and an opaque operation ID is given without purpose. It is not front-loaded with any actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nested/arbitrary query params, no output schema, and 0% schema description coverage, the description leaves the agent unable to know what 'recent activity' contains, its time window, or how to shape the query. It is functionally inadequate.

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 two parameters (a free-form `query` object and an empty `params` object) are undocumented. The description provides no parameter meaning; its only aid is redirecting to describe_operation for native schemas, which is marginal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the URL path 'GET /api/dashboard/recent-activity' repeated verbatim, which merely restates the tool name (get_dashboard_recent_activity) in path form. It conveys a resource ('recent activity') but no scope, content, or differentiation from dashboard siblings like get_dashboard_metrics or get_dashboard_upcoming_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 when to prefer this over the many other dashboard tools. An agent learns nothing about selection criteria from the text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_status_breakdown_870f1d393c62c313f039f0a9dashboard: GET /api/dashboard/status-breakdownD
Read-onlyIdempotent
Inspect

GET /api/dashboard/status-breakdown. GET /api/dashboard/status-breakdown. Operation ID: 870f1d393c62c313f039f0a9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and a closed world, so the safety profile is covered. The description adds no behavioral context of its own: no indication of what the breakdown contains, whether it is scoped to a portfolio/period, or how it is aggregated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the single sentence is duplicated verbatim with no additional information, and the remainder is boilerplate operation-ID metadata. Brevity here comes from under-specification rather than efficiency.

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 two undocumented nested parameters, no output schema, and no annotations explaining data shape, the description should carry real weight but says nothing about inputs or results. Only the describe_operation pointer hints at where an agent could recover the missing information.

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 query parameter is an open-ended object with additionalProperties, so the schema gives the agent nothing. The description does not mention any parameter, leaving the caller unable to know what filters are accepted; the referral to describe_operation is a deferral, not semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the endpoint path (twice) rather than explaining what a 'status-breakdown' is or what it returns. An agent learns only that some dashboard status data exists, with no distinction from siblings like get_dashboard_metrics or get_dashboard_expense_breakdown.

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 use this endpoint versus the other dashboard endpoints, nor any prerequisites or exclusions. The only directive is a generic pointer to describe_operation, which applies to every tool in this set and does not help selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_upcoming_events_bba7d3251c4e0f8bd5eaac43dashboard: GET /api/dashboard/upcoming-eventsC
Read-onlyIdempotent
Inspect

GET /api/dashboard/upcoming-events. GET /api/dashboard/upcoming-events. Operation ID: bba7d3251c4e0f8bd5eaac43; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered without help. The description adds one useful fact (native request schemas are retrievable via describe_operation) but nothing about scope, default time window, or result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are byte-identical duplicates of the endpoint path, wasting half the text. There is no front-loaded purpose statement because the description never states one.

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 0% schema description coverage, no output schema, and a free-form query object, the description should explain supported filters and expected payload. Instead it supplies only an operation ID and a generic discovery pointer, leaving an agent unable to construct a meaningful call without a second round trip.

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 0% and the two parameters (query, params) are undocumented free-form objects. The description does not name a single supported query key or explain the empty params object; directing the agent to describe_operation is the only mitigation and it shifts the burden elsewhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated twice plus an operation ID; it restates the name/title rather than saying what 'upcoming events' means (lease expirations? payment due dates? notices?) or what data comes back. An agent cannot distinguish this from dashboard siblings such as get_dashboard_recent_activity or get_calendar_events without reading the name alone.

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, when-not-to-use, or alternative is stated. The only actionable guidance is the pointer to describe_operation for request schemas, which is a discovery hint rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard_widgets_54bfd6c385c8c062c1b8437bdashboard: GET /api/dashboard/widgetsC
Read-onlyIdempotent
Inspect

GET /api/dashboard/widgets. GET /api/dashboard/widgets. Operation ID: 54bfd6c385c8c062c1b8437b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered structurally. The description contributes nothing beyond that — no return shape, no pagination, no scope or permission notes — and merely redirects to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, wasting roughly a third of an already tiny description. Nothing useful is front-loaded beyond the raw endpoint path.

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 an undocumented nested query object, no output schema, and no return-value description, an agent cannot tell what filters are supported or what comes back. The description leaves the two most important questions unanswered for this 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 description coverage is 0% and the two parameters are opaque generic containers (query, params) with no documented properties. The description's pointer to describe_operation for native request schemas is the only hint about parameter structure, which does not compensate for the complete absence of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path (twice) plus an operation ID, which is a tautology of the name and title. An agent learns it retrieves dashboard widgets only by parsing the URL, and gets no differentiation from siblings such as get_user_dashboards_5c0d64bbdb897d98b60a2b6c or get_user_dashboards_dynamic_widgets_90e08cce71a18a1630976150.

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 to call this versus the other dashboard or user-dashboard tools. The only actionable hint is that describe_operation exposes native request schemas, which is about how to build the call, not when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_departments_2202a406028b39999cd39cdadepartments: GET /api/departmentsC
Read-onlyIdempotent
Inspect

GET /api/departments. GET /api/departments. Operation ID: 2202a406028b39999cd39cda; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so safety is covered. The description adds nothing about pagination, filtering, default result size, or permission requirements — for a list endpoint, that missing operational context is the main gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful line is duplicated verbatim ('GET /api/departments. GET /api/departments.'), which is pure waste at this length. What remains is an operation ID and a pointer, with no informative content front-loaded.

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 nested parameters, zero schema coverage, and no output schema, the description must carry the explanatory load but does not. An agent cannot determine valid query fields or the shape of the response from anything provided.

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 both parameters (query, params, the latter a nested object) are undocumented. The description offers no field meaning and only defers to describe_operation, which does not tell the agent what can be passed here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP verb and path ('GET /api/departments') — effectively a tautology of the title and tool name. It never says what a department represents in this domain or how the result differs from sibling resources like sites or entities.

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 indication of when to call this instead of related list endpoints (get_sites, get_entities, get_users). The only directional hint is that describe_operation holds the native request schemas, which is a schema pointer, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_distribution_lists_bd37f2d3ba38848b5a08e75fdistribution-lists: GET /api/distribution-listsD
Read-onlyIdempotent
Inspect

GET /api/distribution-lists. GET /api/distribution-lists. Operation ID: bd37f2d3ba38848b5a08e75f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint/idempotent/non-destructive annotations already cover the safety profile, and the description adds nothing about scope, filtering, pagination, or auth. The one added fact, that describe_operation exposes the native schema, is a minor navigational aid rather than 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is duplicated verbatim, wasting space with zero informational gain. There is no front-loaded statement of what the tool does beyond the raw path.

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 two undocumented parameters, no output schema, and nested free-form objects, the description leaves critical gaps. An agent would have to fall back to describe_operation to call this correctly, which the description at least mentions.

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 two parameters (`query` and `params`) are opaque free-form objects with no documentation anywhere. The description provides no information about what goes into either, so an agent cannot construct a meaningful request from it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the HTTP method and path ('GET /api/distribution-lists') twice; it never says what a distribution list is or what the call returns. It also fails to distinguish this collection endpoint from its sibling get_distribution_lists_by_id.

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 endpoint versus alternatives such as get_distribution_lists_by_id or execute_read. The only operative hint is a pointer to describe_operation for request schemas, which is about mechanics rather than selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_distribution_lists_by_id_b035f3ae870c873665383ce5distribution-lists: GET /api/distribution-lists/:idD
Read-onlyIdempotent
Inspect

GET /api/distribution-lists/:id. GET /api/distribution-lists/:id. Operation ID: b035f3ae870c873665383ce5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. Beyond the operation ID and the pointer to describe_operation for native request schemas, the description adds nothing about response shape, not-found behavior, or pagination — minimal value on top of the 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first sentence is duplicated verbatim, which is pure waste, and the remaining text is metadata (operation ID) rather than information an agent can act on. Nothing is front-loaded beyond the route string.

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, the description would need to characterize the returned distribution-list record and failure modes; it does neither. The nested free-form query object plus a bare id parameter makes the definition too thin for correct invocation, especially among hundreds of near-identically named siblings.

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% for two parameters, so the description carries the full burden and it explains neither. The required 'id' (unspecified type context, 1-2000 chars) and the free-form nested 'query' object are entirely undocumented, leaving format, encoding, and allowed query keys unknown.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the HTTP route twice, which is merely a restatement of the name/title rather than an explanation of what the tool does. It never says what a distribution list is or what a fetched record contains, so an agent cannot distinguish this from the sibling get_distribution_lists_bd37f2d3ba38848b5a08e75f beyond guessing 'one vs many'.

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 exclusion against the sibling list tool; the only actionable sentence points at describe_operation for schemas, which is a schema-lookup hint rather than selection guidance. An agent gets no criteria for choosing this over the list endpoint or execute_read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_document_anchors_a89be2b895270f30e5084db4document-anchors: GET /api/document-anchorsC
Read-onlyIdempotent
Inspect

GET /api/document-anchors. GET /api/document-anchors. Operation ID: a89be2b895270f30e5084db4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond an internal Operation ID and a pointer to describe_operation — no rate limits, pagination, auth scoping, or result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The very short text is not concise so much as degenerate: 'GET /api/document-anchors' appears twice in immediate succession, and the Operation ID consumes space without informing an agent. Nothing is front-loaded beyond the endpoint path.

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 nested-object parameters, zero schema description coverage, and no output schema, the description should explain what the endpoint returns and how to shape the query object. It does neither, leaving the agent dependent on a second describe_operation call.

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 both parameters ('query' as a free-form nested object, 'params' as an empty closed object) are opaque. The description does not explain what filters belong in 'query' or what 'params' is for, though it does at least name describe_operation as the place to find the native request schema — a partial mitigation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the title/path ('GET /api/document-anchors') repeated twice. It never says what an anchor is, what resource it belongs to in domain terms, or how it differs from the hundreds of sibling get_* tools. Only the HTTP verb and path fragment carry any meaning.

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, when-not-to-use, or sibling routing guidance. The only actionable pointer is 'describe_operation provides native request schemas', which tells the agent how to fetch parameter info but not whether this tool is the right choice over, e.g., get_cam_clauses_by_clauseId_anchors or find_contracts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_document_folders_c52aeac8d6ae3d874a4f0cd9document-folders: GET /api/document-foldersC
Read-onlyIdempotent
Inspect

GET /api/document-folders. GET /api/document-folders. Operation ID: c52aeac8d6ae3d874a4f0cd9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that — no retry behavior, pagination, auth requirements, or response shape — and repeats the endpoint path twice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single informational sentence is duplicated verbatim ('GET /api/document-folders. GET /api/document-folders.'), which is pure waste. The operation ID and schema pointer are crammed into the same run-on sentence rather than front-loaded logically.

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 a nested, fully undocumented parameter object and no output schema, the description should explain at minimum what the query/params objects accept and what the response contains. It does neither, leaving the agent dependent on a separate describe_operation call.

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 both parameters ('query', 'params') are opaque free-form objects with no properties. The description offers no parameter meaning at all, only deferring to describe_operation, which forces an extra round trip before any call can be constructed.

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 states a verb and resource (GET /api/document-folders), so the agent can infer it lists document folders. But the same sentence is repeated verbatim, there is no explanation of what a document folder is in this domain, and nothing distinguishes it from the hundreds of other GET endpoints in the sibling list.

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 to use this tool versus alternatives, no prerequisites, and no exclusions. The only guidance is a pointer to describe_operation for native request schemas, which is a hint about a companion tool but not about when to select this endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_cpi_annual_change_a9c38f7394e7d2407465a248economic-data: GET /api/economic-data/cpi/annual-changeD
Read-onlyIdempotent
Inspect

GET /api/economic-data/cpi/annual-change. GET /api/economic-data/cpi/annual-change. Operation ID: a9c38f7394e7d2407465a248; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered without the description. The description adds no behavioral context at all — no mention of units, lag, pagination, or what the annual-change figure represents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the URL path is duplicated verbatim, which is pure waste. The one useful clause (describe_operation for schemas) is buried after the redundancy rather than front-loaded.

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 an opaque free-form query parameter and no output schema, the description should explain what the endpoint returns and how to shape the query. It does neither, leaving the definition inadequate for correct invocation despite the annotations covering safety.

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?

Both parameters (query and params) have 0% schema description coverage, and the description does not mention either. With a free-form 'query' object and an empty 'params' object, the description leaves the agent with no idea what can or should be passed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text is essentially a restatement of the tool name and title: it repeats the same URL path twice and adds only an operation ID. An agent can infer the resource (CPI annual change) from the path, but there is no verb-level explanation of what the call returns or does, and nothing that separates it from the many sibling CPI 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 statement of when to use this versus cpi_current, cpi_history, cpi_series, or cpi_calculate. The only actionable pointer is 'describe_operation provides native request schemas', which is a schema-discovery hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_cpi_calculate_3c4ebdda89e10bc6a12b0b29economic-data: GET /api/economic-data/cpi/calculateD
Read-onlyIdempotent
Inspect

GET /api/economic-data/cpi/calculate. GET /api/economic-data/cpi/calculate. Operation ID: 3c4ebdda89e10bc6a12b0b29; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond a pointer to describe_operation — no return shape, no calculation semantics, no parameter behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are identical restatements of the URL path — pure duplication rather than front-loaded information. The only value-bearing content is the trailing note about describe_operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with an opaque nested schema, no output schema, no parameter documentation, and many near-identical CPI siblings, the description omits everything an agent needs: what the calculation is, required inputs, and how to choose among alternatives.

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?

Two parameters exist (query and params) with 0% schema description coverage, and the schema is essentially opaque (additionalProperties, empty properties). The description supplies zero parameter meaning, leaving an agent with no way to construct a valid request without calling describe_operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the endpoint path repeated twice ('GET /api/economic-data/cpi/calculate') plus an operation ID. It hints at a CPI calculation but never states what is being calculated, from what inputs, or how it differs from siblings like get_economic_data_cpi_current or cpi_annual_change.

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, when-not-to-use, or alternative is given. The only actionable pointer is 'describe_operation provides native request schemas', which is a discovery hint rather than selection guidance against the many other CPI endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_cpi_current_076b8379b4ad2689f81bb764economic-data: GET /api/economic-data/cpi/currentD
Read-onlyIdempotent
Inspect

GET /api/economic-data/cpi/current. GET /api/economic-data/cpi/current. Operation ID: 076b8379b4ad2689f81bb764; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered elsewhere. The description adds nothing about what the response contains, freshness of the CPI figure, or any scoping constraints; it merely repeats the route.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, and the remainder is a pointer to another tool rather than front-loaded substance. Brevity here reflects under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/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 two undocumented parameters are left entirely unexplained, so an agent has no way to construct a correct call from this definition. For a tool with nested free-form input, this is wholly inadequate.

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% across two free-form nested objects ('query' with additionalProperties and an empty 'params'), and the description offers no explanation of what belongs in either. With parameters this opaque, the description must compensate and instead says nothing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the endpoint path twice and never converts it into a plain-language verb+resource statement. An agent can infer it fetches the current CPI figure, but the description itself is essentially a tautology of the title, and it does not distinguish this from cpi_current siblings like cpi_history, cpi_series, cpi_calculate, or prime_rate_current.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many other economic-data siblings. The only actionable sentence points at describe_operation for request schemas, which is a schema-lookup instruction, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_cpi_history_32348b7987b75c5a0b6dd6f2economic-data: GET /api/economic-data/cpi/historyD
Read-onlyIdempotent
Inspect

GET /api/economic-data/cpi/history. GET /api/economic-data/cpi/history. Operation ID: 32348b7987b75c5a0b6dd6f2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered structurally. The description adds nothing beyond those annotations except the name of a companion tool for schemas; it says nothing about response shape, date-range scope, or pagination of historical data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, wasting the only front-loaded opportunity. What remains is an operation ID and a pointer to another tool, with no substantive content.

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 0% schema coverage, nested objects, and no output schema, this description leaves an agent unable to construct a call without first invoking describe_operation. The pointer to that tool is the sole redeeming element and prevents a 1.

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 both parameters (a free-form 'query' object with additionalProperties allowed and an empty 'params' object) are undocumented. The description provides no parameter meaning at all, so an agent has no way to know what goes into 'query' without calling describe_operation separately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare restatement of the endpoint path, duplicating the title verbatim. It does imply retrieval of CPI history, which loosely distinguishes it from siblings like cpi_current or cpi_series, but it never explains what 'history' means versus those alternatives.

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 to use this over get_economic_data_cpi_series, cpi_current, or cpi_annual_change. The only quasi-guidance is the pointer that describe_operation provides native request schemas, which tells an agent how to get parameters but not when to pick this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_cpi_series_96aa55b11717a4b2f6c4e4b8economic-data: GET /api/economic-data/cpi/seriesC
Read-onlyIdempotent
Inspect

GET /api/economic-data/cpi/series. GET /api/economic-data/cpi/series. Operation ID: 96aa55b11717a4b2f6c4e4b8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral context beyond that — no indication of what the series data contains, granularity, pagination, or typical response size — only a procedural pointer to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, so half the text is waste rather than information. Brevity here reflects under-specification rather than disciplined 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?

For a tool with a nested, fully unconstrained query object and no output schema, the description leaves the agent unable to construct a call without first invoking describe_operation. Delegation to describe_operation is a legitimate pattern, but nothing here even states that calling it is required before this endpoint can be used.

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 'query' parameter is a free-form object with additionalProperties: {}, so the schema gives the agent essentially nothing about what query keys are accepted. The description does not compensate at all, offering only the generic instruction to consult describe_operation rather than naming any parameter, filter, or format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description consists of the endpoint path repeated twice, which effectively restates the title 'economic-data: GET /api/economic-data/cpi/series' without saying what a CPI series is or what the endpoint returns. It is marginally distinguishable from siblings such as get_economic_data_cpi_history or get_economic_data_cpi_current only by the word 'series' in the path, not by any explanatory verb+resource statement.

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 to use this endpoint versus the other CPI siblings (current, history, annual_change, calculate), which is the main selection problem an agent faces here. The only actionable guidance is the pointer that 'describe_operation provides native request schemas', which helps with invocation but not with tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_current_f1f9843f8dbe5c50146b76c7economic-data: GET /api/economic-data/currentD
Read-onlyIdempotent
Inspect

GET /api/economic-data/current. GET /api/economic-data/current. Operation ID: f1f9843f8dbe5c50146b76c7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and a closed-world profile, so the safety contract is covered elsewhere. The description adds nothing beyond that: no indication of what the response contains, freshness, or scope. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and the operation ID adds no decision value. The opportunity cost is high: the space that could have described purpose is spent on repetition.

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 0% parameter coverage, the description carries the burden of explaining behavior and inputs, and it delivers neither. Only the cross-reference to describe_operation keeps it from being entirely uninformative.

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 two parameters are untyped generic 'query' and 'params' objects with additionalProperties free-form. The description supplies no parameter meaning at all, leaving an agent unable to know what to send.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the endpoint path 'GET /api/economic-data/current' twice, which is a tautological restatement of the name rather than an explanation of purpose. It gives no hint of what 'current economic data' contains or how it differs from siblings like get_economic_data_cpi_current or get_economic_data_prime_rate_current.

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 actionable guidance is a pointer to describe_operation for request schemas, which is a workflow hint rather than a when-to-use statement. There is no mention of when to pick this endpoint over the CPI-current or prime-rate-current siblings, nor any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_prime_rate_calculate_e56d7ebf8c2aaf0fe22f050eeconomic-data: GET /api/economic-data/prime-rate/calculateD
Read-onlyIdempotent
Inspect

GET /api/economic-data/prime-rate/calculate. GET /api/economic-data/prime-rate/calculate. Operation ID: e56d7ebf8c2aaf0fe22f050e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, non-destructive and closed-world, so safety is covered. The description adds nothing about the calculation's behavior, required inputs, units, precision, or error conditions beyond the pointer to describe_operation; repeating the URL twice adds no context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short, but the opening sentence is duplicated verbatim, and no real information is front-loaded. Brevity here reflects under-specification rather than conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with zero schema description coverage, no output schema, and nested untyped parameters, the description leaves the agent unable to form a valid request without first calling describe_operation. Nothing about the calculation domain (prime rate input, periods, output shape) is conveyed.

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% with two nested-object params (query, params) and no enum hints, so the description must compensate. It only says describe_operation exposes native request schemas, giving no meaning to the query or params objects or their expected contents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path restated twice ('GET /api/economic-data/prime-rate/calculate'), which is tautological with the tool name. It never says what 'calculate' does (compute a prime-rate-based figure? what inputs/outputs?) or how it differs from the sibling prime_rate_current, prime_rate_history or the cpi_calculate tool.

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, when-not-to-use, or alternatives are given. The only actionable sentence points the agent at describe_operation for native request schemas, which is a retrieval hint rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_prime_rate_current_b418c377f9269c3341d1378ceconomic-data: GET /api/economic-data/prime-rate/currentD
Read-onlyIdempotent
Inspect

GET /api/economic-data/prime-rate/current. GET /api/economic-data/prime-rate/current. Operation ID: b418c377f9269c3341d1378c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no auth requirements, caching/staleness behavior, or freshness of the 'current' rate, which is the one behavioral trait that actually matters for a 'current' endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence appears twice with no additional information, which is pure waste. It is short, but brevity here comes from under-specification and duplication rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no parameter documentation, and no behavioral detail. For a tool whose only value is returning a specific numeric fact, the description leaves the agent unable to know what it will receive or how to call it correctly without first calling describe_operation.

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 both parameters (query and params) are untyped free-form objects with no properties. The description does not compensate at all; its only contribution is deferring to describe_operation for the native request schema, which leaves the agent guessing what to pass.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the endpoint path repeated verbatim, which restates the name and title rather than explaining what the tool returns. An agent can infer it fetches the current prime rate, but nothing states the payload's nature (rate value, effective date, source). It does not distinguish this from its siblings such as get_economic_data_prime_rate_history or get_economic_data_prime_rate_calculate.

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 zero guidance on when to call this versus get_economic_data_prime_rate_history or get_economic_data_prime_rate_calculate. The only usable hint is the pointer to describe_operation for request schemas, which is a discovery aid, not a when-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_data_prime_rate_history_157d5da56740a85c20fe31cdeconomic-data: GET /api/economic-data/prime-rate/historyC
Read-onlyIdempotent
Inspect

GET /api/economic-data/prime-rate/history. GET /api/economic-data/prime-rate/history. Operation ID: 157d5da56740a85c20fe31cd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, non-destructive, closed-world, so the safety profile is covered. The description adds nothing beyond a pointer to describe_operation, and does not disclose pagination, default time range, or response shape for what is presumably a large historical series.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The only substantive sentence is the endpoint path, and it is duplicated verbatim, wasting half the text. The operation-ID/describe_operation line is boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 0% parameter coverage, and a nested free-form query object, the description should explain expected query fields and return shape. It does neither, so an agent cannot call this correctly without a second describe_operation round-trip.

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 two parameters (a free-form 'query' object and an empty 'params' object) are entirely undocumented. The description only says describe_operation provides native request schemas, delegating the work rather than explaining that query params (e.g. date range) belong in 'query' and 'params' is empty.

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 is essentially the endpoint path repeated, which does name a resource (prime-rate history) and verb (GET), so an agent can infer it returns historical prime rate data. However, it offers no differentiation from close siblings like get_economic_data_prime_rate_current, get_economic_data_prime_rate_calculate, or get_economic_data_cpi_history, leaving scope ambiguous.

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 the current-rate or calculate variants, no mention of what window or granularity the history covers, and no preconditions. The agent must guess from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_entities_2aca933410d787b7517518b5entities: GET /api/entitiesD
Read-onlyIdempotent
Inspect

GET /api/entities. GET /api/entities. Operation ID: 2aca933410d787b7517518b5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description adds essentially nothing beyond a redirect to describe_operation — no pagination behavior, filtering semantics, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and contributes zero information. Brevity here comes from under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list endpoint with an opaque two-parameter schema, no output schema, and no annotations gap to lean on, the description omits everything an agent needs: what entities are, whether results are paginated, how to filter, and what a response looks like.

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 schema itself is almost opaque: 'query' is a free-form object with no defined properties and 'params' is an empty object. The description supplies no meaning for either parameter, leaving the agent with no way to know what to pass.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the HTTP method and path already present in the name and title ('GET /api/entities' appears twice) without saying what an entity is, what is returned, or how it differs from get_entities_by_id. It is effectively a tautology of the tool 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?

There is no guidance on when to call this versus siblings such as get_entities_by_id or the many other collection GETs. The only actionable pointer is that describe_operation supplies native request schemas, which hints at a prerequisite but does not describe usage conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_entities_by_id_900d051fb333d8cd54c98b38entities: GET /api/entities/:idD
Read-onlyIdempotent
Inspect

GET /api/entities/:id. GET /api/entities/:id. Operation ID: 900d051fb333d8cd54c98b38; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds no behavioral context beyond repeating the endpoint and pointing to describe_operation for request schemas; it says nothing about auth, error behavior, or what a successful read returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the endpoint line is duplicated verbatim ('GET /api/entities/:id. GET /api/entities/:id.'), and the remaining text is an operation ID plus a pointer to another tool rather than useful front-loaded information.

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 GET-by-id tool with no output schema and 0% parameter description coverage, the description should at least identify the resource being retrieved and clarify the id. Instead it only repeats the route and defers schema discovery to describe_operation, leaving the agent with minimal context.

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% across two parameters. The description does not mention the required id path parameter or the optional query object, so it provides no meaning beyond what the bare schema already shows.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name and title with an HTTP method and path ('GET /api/entities/:id'), so it is tautological rather than explanatory. It does not say what an entity is or how this differs from sibling listing/detail tools such as get_entities_2aca933410d787b7517518b5.

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 use this tool versus alternatives, no prerequisites, and no exclusions. The only nearby hint is that describe_operation provides native request schemas, which is schema discovery rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_04045e4028a17c7e5c6efb0aexpenses: GET /api/expensesD
Read-onlyIdempotent
Inspect

GET /api/expenses. GET /api/expenses. Operation ID: 04045e4028a17c7e5c6efb0a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no info on pagination, filtering, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short but wastes the opening on a duplicated verb+path and a raw operation ID hash, none of which help an agent. Brevity here comes from under-specification rather than efficient front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested free-form query object, 0% schema coverage, no output schema, and dozens of near-identical expense siblings, the description provides essentially nothing an agent needs to call it correctly.

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 there are 2 parameters including a free-form nested 'query' object with additionalProperties. The description gives zero information on what can go into 'query' or 'params', so it entirely fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the HTTP method and path repeated twice ('GET /api/expenses. GET /api/expenses.'), which restates the name/title rather than explaining what is returned or how it differs from the many sibling expense tools (get_expenses_summary, get_expenses_by_lease, get_expenses_trends, etc.). An agent cannot tell which expense endpoint to pick from this text.

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 or when-not-to-use guidance, and no mention of the numerous sibling expense tools that overlap. The only actionable pointer is 'describe_operation provides native request schemas', which is a schema-lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_by_lease_9358b91726a6513a61e40b98expenses: GET /api/expenses/by-leaseD
Read-onlyIdempotent
Inspect

GET /api/expenses/by-lease. GET /api/expenses/by-lease. Operation ID: 9358b91726a6513a61e40b98; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so nothing is added by saying 'GET'. The description discloses nothing about the lease scoping, required identifiers, filtering behavior, or response shape. No contradiction with annotations, but zero added behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short but wasteful: the endpoint string is duplicated verbatim and an internal operation ID is presented as if it were useful information. No front-loaded statement of purpose or parameter summary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Nested free-form query object, 0% schema coverage, no output schema, and no prose description of inputs or result. An agent cannot determine what to send or what it will receive; the pointer to describe_operation is the only lifeline and pushes all work elsewhere.

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 both parameters are untyped containers: a free-form 'query' object with additionalProperties and an empty 'params' object. The description must compensate, but it says nothing about what query keys by-lease expects (e.g. leaseId, period). This is the most consequential gap for an agent trying to call the tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/expenses/by-lease' (twice) and an opaque operation ID. It never states in prose what the tool returns or how it differs from the many sibling expense tools such as get_expenses_by_site or get_expenses_summary. Effectively a tautology of the name/title.

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, when-not-to-use, or sibling alternative is named, even though dozens of near-identical expense/lease tools exist. The single actionable hint is the pointer to describe_operation for native request schemas, which is a workaround rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_by_site_13670f6cb18e8d6d2206524dexpenses: GET /api/expenses/by-siteD
Read-onlyIdempotent
Inspect

GET /api/expenses/by-site. GET /api/expenses/by-site. Operation ID: 13670f6cb18e8d6d2206524d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world, so the safety profile is covered. The description adds nothing: no return shape, no aggregation semantics, no pagination or required context, and no explanation of what 'by-site' grouping means. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the brevity comes from repetition (the same path stated twice) rather than from packing in useful information. The content is not front-loaded with anything an agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 0% parameter documentation, a nested/free-form query object, no output schema, and no annotations about return values, the description leaves an agent with essentially no basis for calling the tool correctly. It should at minimum explain the site grouping and how to pass the site filter.

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 both parameters are opaque ('query' as free-form additionalProperties, 'params' empty object). The description supplies no meaning, format, or examples for either, and does not mention the site identifier that the endpoint name implies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the endpoint path 'GET /api/expenses/by-site' twice plus an opaque operation ID; it does not state in words what the tool returns (expenses grouped/rolled up by site) or how it differs from siblings like get_expenses_by_lease or get_expenses_summary. This is effectively a restatement of the name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to, or which sibling (e.g. get_expenses_04045..., get_expenses_by_lease, get_expenses_summary) covers adjacent needs. The only instruction, 'describe_operation provides native request schemas,' points at another tool rather than describing this one's usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_contract_expense_dashboard_0c75a41a40c5d4c8295b14ddexpenses: GET /api/expenses/contract-expense-dashboardC
Read-onlyIdempotent
Inspect

GET /api/expenses/contract-expense-dashboard. GET /api/expenses/contract-expense-dashboard. Operation ID: 0c75a41a40c5d4c8295b14dd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds nothing beyond that — no indication of what data is aggregated, what filters are supported, result volume, or whether the dashboard is scoped to a workspace/period.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, so half the text is pure waste. The remaining content (operation ID, describe_operation pointer) is terse but poorly front-loaded relative to what the agent needs first: what the tool does.

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?

No output schema exists, and the opaque open query object means the description carries the burden of explaining both inputs and returns — yet it explains neither. For a dashboard/aggregation endpoint with nested objects in the schema, an agent cannot determine what to pass or what to expect.

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 'query' parameter is a fully open object with additionalProperties {}, so the schema conveys essentially nothing. The description only says describe_operation provides native request schemas, which is a useful pointer but does not tell the agent what query keys exist or their formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw HTTP path and operation ID, which is a tautological restatement of the title. An agent can infer the resource is a 'contract expense dashboard' under expenses, but nothing states what the endpoint actually returns or how it differs from concrete siblings like get_expenses_contract_period_overview or get_dashboard_expense_breakdown.

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 exclusions, and no comparison to the many similarly named expense/dashboard siblings. The only actionable routing information is the pointer to describe_operation for native request schemas, which helps with schema discovery but not with tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_contract_period_by_contrac_d848302cd6d54380c1bc4c16expenses: GET /api/expenses/contract-period/:contractIdC
Read-onlyIdempotent
Inspect

GET /api/expenses/contract-period/:contractId. GET /api/expenses/contract-period/:contractId. Operation ID: d848302cd6d54380c1bc4c16; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description should add more context, but it doesn't. It says nothing about what data the response has, whether results are paginated, or how to handle a contract with no expenses, and the operation ID has no practical value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence appears twice word-for-word, so the text is bloated and repetitive rather than concise. The operation-ID boilerplate at the end adds no information, and nothing substantive is presented first.

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 two-parameter read endpoint with no output schema and 0% parameter documentation, the description needs to explain what entity is returned and what the query object accepts. It covers neither, so an agent cannot confidently invoke it or interpret the result.

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 should explain parameter meaning and still does not. contractId is visible only in the route template, and the 'query' object parameter has no formatting options, allowed keys, or expected values documented in either the schema or the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just repeats the tool name and title by pasting the HTTP route 'GET /api/expenses/contract-period/:contractId' twice. It doesn't say what an 'expenses contract period' is or what the call returns, and a nearby tool, get_expenses_contract_period_overview, covers a similar area, but the description doesn't distinguish this tool from it.

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?

Apart from a brief hint that 'describe_operation provides native request schemas', it gives no guidance on when to use this tool, when not to use it, or which of the many sibling expense or contract tools is the alternative. An agent must infer usage entirely from the route string.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_contract_period_overview_faad0a58ec3f06370e86823aexpenses: GET /api/expenses/contract-period-overviewD
Read-onlyIdempotent
Inspect

GET /api/expenses/contract-period-overview. GET /api/expenses/contract-period-overview. Operation ID: faad0a58ec3f06370e86823a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety behavior is covered by structured data. The only added behavioral information is the pointer to describe_operation for native request schemas, which is mildly useful for discovery but discloses nothing about scope, filters, or result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is a verbatim duplicate of the path in the title, repeated twice back to back, which is pure waste. The one informative clause (describe_operation pointer) is buried at the end after the redundancy.

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?

A two-parameter, nested-object tool with no output schema and zero parameter documentation needs its description to carry the burden, and this one does not. The only real information is the redirect to describe_operation, which pushes the essential detail out of band rather than completing the definition.

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 two parameters (an unconstrained 'query' object and an empty 'params' object) are entirely opaque. The description does not compensate at all beyond noting that describe_operation provides native request schemas, leaving the agent to make a separate call to learn what can be passed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw endpoint path twice; it never states in prose what a 'contract-period-overview' of expenses returns or how it differs from the very similar sibling get_expenses_contract_period_by_contrac... or get_expenses_period_overview. An agent can infer a read of expense data grouped by contract period, but that is inference from the path, not an articulated purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, no mention of prerequisites, and none of the many near-duplicate expense and contract-period siblings are named as alternatives. Nothing tells an agent why it would pick this over get_expenses_period_overview or get_expenses_contract_expense_dashboard.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_manual_by_id_9cb4508962a89698b662f630expenses: GET /api/expenses/manual/:idD
Read-onlyIdempotent
Inspect

GET /api/expenses/manual/:id. GET /api/expenses/manual/:id. Operation ID: 9cb4508962a89698b662f630; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description need not restate safety. It adds essentially nothing beyond announcing that describe_operation can supply native schemas, and says nothing about lookup failure behavior (missing id), response shape, or auth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same route string is printed twice back to back, which is pure waste, and the content is under-specified rather than concise. The only useful clause (describe_operation provides native schemas) is buried at the end.

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 parameterized single-record GET with no output schema and zero schema descriptions, the description leaves the agent unable to predict the return payload or the meaning of the id. It is technically sufficient to construct a call from the schema alone, but adds no understanding.

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, but it only echoes the ':id' path placeholder. The 'query' object parameter and the id's format/constraints (1-2000 chars, string) are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw HTTP route repeated verbatim ('GET /api/expenses/manual/:id'), which restates the tool name rather than explaining what a 'manual expense' record is or what the endpoint returns. It gives no differentiation from siblings such as get_expenses_04045e4028a17c7e5c6efb0a, get_expenses_summary, or get_recurring_expenses_by_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, when not to, or which sibling retrieves expenses differently. The only guidance is an internal pointer to describe_operation, which is about schema discovery, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_period_overview_a6e93448f684c42d690810d3expenses: GET /api/expenses/period-overviewD
Read-onlyIdempotent
Inspect

GET /api/expenses/period-overview. GET /api/expenses/period-overview. Operation ID: a6e93448f684c42d690810d3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing on top of that: no indication of what period is defaulted, whether results are aggregated, or what authorization/scope 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the only substantive sentence is duplicated verbatim ('GET /api/expenses/period-overview' appears twice), which is pure waste. Brevity here reflects under-specification rather than disciplined editing.

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, 0% parameter coverage, and a nested free-form 'query' object, the description carries the full explanatory burden and discharges none of it. The redirect to describe_operation is the only mitigation, leaving the agent unable to call this correctly without a second round trip.

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 two parameters ('query' as an open additionalProperties object and an empty 'params' object) are entirely undocumented. The description offers no parameter meaning at all, so an agent cannot know what belongs in 'query' for this endpoint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool title verbatim ('GET /api/expenses/period-overview'), giving no human-readable explanation of what a 'period overview' contains or returns. Against siblings like get_expenses_contract_period_overview, get_expenses_summary, and get_expenses_trends, an agent has no basis for choosing this one beyond the raw path string.

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 to use this endpoint versus the many other expense endpoints (summary, trends, dashboard, contract period overview). The only routing hint is a generic pointer that 'describe_operation provides native request schemas', which is an operational note, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_previous_period_by_leaseId_685833814972f3b11595178bexpenses: GET /api/expenses/previous-period/:leaseIdD
Read-onlyIdempotent
Inspect

GET /api/expenses/previous-period/:leaseId. GET /api/expenses/previous-period/:leaseId. Operation ID: 685833814972f3b11595178b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that: no statement of what 'previous period' means (relative to what cutoff, fiscal vs calendar), no note on pagination or empty results, and no auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and the remaining text is boilerplate about the operation ID and describe_operation. No front-loaded explanation of the resource, timeframe, or return shape; almost none of the text earns its place.

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?

A read tool with no output schema, an unconstrained nested query object, and 0% parameter documentation demands more from the description, not less. As written, an agent can only guess at the required path value and what the query object does, so the definition is materially incomplete.

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 does not mention a single parameter. Both the required `leaseId` path param and the free-form nested `query` object (additionalProperties: {}) are completely undocumented, leaving the agent no idea what filters the query object accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description does nothing but repeat the endpoint path 'GET /api/expenses/previous-period/:leaseId' twice, which restates the tool name rather than explaining it. An agent can infer it retrieves prior-period expenses for a lease, but only by parsing the URL, not from any stated purpose.

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 at all, despite numerous plausible alternatives in the sibling list (get_expenses_by_lease, get_expenses_period_overview, get_expenses_trends, get_expenses_contract_period_by_contract). The only actionable pointer is a generic 'describe_operation provides native request schemas', which addresses schema lookup rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_expenses_summary_c4522d922051601d0556df9fexpenses: GET /api/expenses/summaryD
Read-onlyIdempotent
Inspect

GET /api/expenses/summary. GET /api/expenses/summary. Operation ID: c4522d922051601d0556df9f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description should add aggregation semantics, the time window, and response shape. It adds none of these; the only non-redundant text is a pointer to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The path is repeated verbatim at the start of the description, which is pure waste; the operation ID and describe_operation pointer fill the rest of the space that could have gone to useful content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a free-form query object, no output schema, and no explanation of what a 'summary' returns, the description leaves an agent unable to tell what data to expect or how to scope the request. It is inadequate for the tool's complexity.

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 0% and both parameters (a free-form 'query' object and an empty 'params' object) are undocumented. The description doesn't explain what can go in 'query', but 'describe_operation provides native request schemas' does at least point the agent to where the schema lives, which is a small amount of compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just restates the tool name and path twice ('GET /api/expenses/summary') without saying what the summary contains (totals? by category? by period?). It doesn't differentiate this tool from close siblings like get_expenses_period_overview, get_expenses_trends, or get_dashboard_expense_breakdown.

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?

It doesn't say when to use this tool instead of the many sibling expense tools. The only pointer is to describe_operation for request schemas, which is guidance on how to inspect the operation rather than when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_files_bulk_document_import_parent_r_12e9c9e11463ea4ff1184ceafiles: GET /api/files/bulk-document-import/parent-recordsD
Read-onlyIdempotent
Inspect

GET /api/files/bulk-document-import/parent-records. GET /api/files/bulk-document-import/parent-records. Operation ID: 12e9c9e11463ea4ff1184cea; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that—no pagination, filtering, auth requirements, or return shape for a bulk-import-related endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description duplicates the identical endpoint path back-to-back and appends an opaque operation ID, which is under-specification dressed as content.

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?

No output schema exists and the input is a nested, untyped query object, yet the description gives no information about filters, response contents, or how parent records are paginated. For a nested-object endpoint with zero schema documentation, this is materially incomplete.

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 parameters are a free-form nested 'query' object with additionalProperties allowed and an empty 'params' object. The description provides no parameter names, formats, or filter semantics whatsoever, so it does not compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the raw endpoint path twice ('GET /api/files/bulk-document-import/parent-records') with no plain-language statement of what parent records are or what is returned. An agent can infer a read of bulk document import parent records from the path, but this is tautological rather than explanatory, and it does not distinguish itself from siblings like get_files_list or get_bulk_imports.

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 actionable cue is 'describe_operation provides native request schemas,' which points to a sibling for schema discovery rather than explaining when this tool should be used. There is no when-to-use, no exclusions, and no comparison to the many sibling list/get tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_files_bulk_extract_by_batchId_statu_4a79b0ea7aa731110579bc5afiles: GET /api/files/bulk-extract/:batchId/statusC
Read-onlyIdempotent
Inspect

GET /api/files/bulk-extract/:batchId/status. GET /api/files/bulk-extract/:batchId/status. Operation ID: 4a79b0ea7aa731110579bc5a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered elsewhere. The description adds nothing behavioral: it does not say whether the batchId must come from a prior bulk-extract call, what happens for an unknown or expired batch, or whether the status is terminal or needs repeat polling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is duplicated verbatim, wasting half the text, and the remaining clause is a generic cross-reference. There is no front-loaded statement of purpose, so nothing is gained from the brevity.

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, the description is the only source for what a status response contains (progress, completion state, errors) and how to act on it, and it supplies none of that. For a job-status polling endpoint in a large API surface, this leaves the agent unable to use the result meaningfully.

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 carry the burden, but it only echoes the ':batchId' path placeholder already visible in the name. The optional `query` object and its purpose are completely unexplained, leaving both parameters undocumented in prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally the same URL template as the title, repeated twice, with no plain-language statement of what the tool does. An agent can infer it polls the status of a bulk-extract job from the path segments, but nothing distinguishes it from siblings like get_files_extraction_status or get_files_bulk_document_import_parent_r_12e9c9e11463ea4ff1184cea.

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 to call this versus alternatives, no mention of polling cadence, and no condition for choosing between this and the other extraction-status siblings. The only pointer, 'describe_operation provides native request schemas,' is about retrieving schema detail, not about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_files_by_id_ca0c36306681b95abd70b02cfiles: GET /api/files/:idC
Read-onlyIdempotent
Inspect

GET /api/files/:id. GET /api/files/:id. Operation ID: ca0c36306681b95abd70b02c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond that — no mention of authorization requirements, whether a missing id errors or returns null, or what the payload looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the opening sentence is literally duplicated ('GET /api/files/:id. GET /api/files/:id.'), wasting the most prominent position on repetition rather than on purpose or guidance.

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 nested `query`/`params` objects and no output schema, the description should at minimum describe the returned resource and clarify the split between path params and query params. Instead it defers entirely to describe_operation, leaving the agent without enough information to call it correctly and interpret results.

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 explains neither the required `params.id` nor the free-form `query` object. The only implicit hint is that parameters mirror the native REST request, which the agent must chase via describe_operation — far short of compensating for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is only the REST path 'GET /api/files/:id' repeated twice plus an operation ID, which restates the title rather than explaining what the tool returns. It never says what a 'file' resource contains, so an agent cannot distinguish it from get_files_list, get_files_by_id_view, get_files_by_id_links, or get_files_by_id_extract_text.

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 or when-not-to-use guidance is given, and no sibling alternative is named. The only steer is 'describe_operation provides native request schemas', which points at another tool for schema info rather than telling the agent when this tool is the right call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_files_by_id_extract_text_88d897c98eee79b52e2baa2efiles: GET /api/files/:id/extract-textD
Read-onlyIdempotent
Inspect

GET /api/files/:id/extract-text. GET /api/files/:id/extract-text. Operation ID: 88d897c98eee79b52e2baa2e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing behavioral beyond noting describe_operation exists — no mention of whether extraction is synchronous or async, expected latency, or what happens if the file has no extractable text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint string is duplicated verbatim, which is pure waste, and the remaining content is a bare operation ID plus a schema pointer. There is no front-loaded explanation of capability.

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, no parameter documentation, and no behavioral annotations beyond safety hints, the description should explain what extraction returns. Instead an agent must call describe_operation to learn anything substantive, which is a real gap for a tool whose output shape is entirely unknown.

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% for a nested 2-parameter object (params.id plus an open-ended query object), and the description contributes zero meaning about either. The agent learns nothing about the id format or what the unbounded query object accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the same endpoint path twice and never explains what 'extract-text' does — whether it returns extracted text synchronously, queues a job, or errors when extraction is unavailable. It restates the title rather than elaborating on it, and offers no differentiation from near-siblings like get_files_by_id_search_text or get_files_extraction_status.

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 to call this versus the sibling extraction-status or search-text tools. The only guidance is a pointer to describe_operation for native request schemas, which is schema lookup, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_files_by_id_search_text_e2bbe04a5428b67c005061a5files: GET /api/files/:id/search-textD
Read-onlyIdempotent
Inspect

GET /api/files/:id/search-text. GET /api/files/:id/search-text. Operation ID: e2bbe04a5428b67c005061a5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the path: no indication of what search-text returns, how matching is performed, or whether results are paginated, so its incremental value is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but the leading content is the same string repeated verbatim, which is pure waste, followed by an operation UUID that carries no meaning for an agent choosing a tool.

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 nested objects in the schema, no output schema, and an untyped free-form query object, the description would need to carry the meaning of the request payload. It does not, so an agent cannot construct a correct call from this definition alone.

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 there are two parameters, including an opaque free-form `query` object with additionalProperties {} and a required `id`. The description compensates for none of this, leaving the shape and purpose of `query` entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path "GET /api/files/:id/search-text" twice, which is effectively a tautology of the tool name and title. It conveys the resource (a file) and a sub-resource (search-text) but never says what the operation actually does or how it differs from close siblings like get_files_by_id_extract_text or get_files_by_id_view.

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 use this tool versus extract_text, view, or links variants on the same file. The only routing hint is the trailing note that describe_operation provides native request schemas, which points at a schema-fetching tool rather than giving any use-case conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_files_by_id_view_3f7dac8522ec2d5e9331d385files: GET /api/files/:id/viewC
Read-onlyIdempotent
Inspect

GET /api/files/:id/view. GET /api/files/:id/view. Operation ID: 3f7dac8522ec2d5e9331d385; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing behavioral on top of that — no note about what the view renders, caching, or whether the file must be processed first. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint path is duplicated verbatim in consecutive sentences, wasting half the description. What remains (operation ID and a pointer to describe_operation) is boilerplate rather than front-loaded substance.

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 nested-object tool with zero schema documentation and no output schema, the description must explain the return shape and the query object; it does neither. An agent cannot predict what it will get back or how to shape the query, making this inadequate despite the annotations.

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 carries the burden and fails: the required path parameter 'id' is only implied by the ':id' token in the URL, and the free-form 'query' object (additionalProperties: {}) is not explained at all. An agent gets no clue what query keys the view endpoint accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the title restated: a raw REST path plus an opaque operation ID. It conveys a GET on a file sub-resource called 'view' but never says what a 'view' is (rendered file, thumbnail, metadata projection) or how it differs from the many sibling file endpoints such as get_files_by_id_ca0c36306681b95abd70b02c or get_files_by_id_links.

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 comparison to any of the ~30 sibling 'get_files_*' tools. The only actionable hint is that describe_operation exposes native request schemas, which is a discovery aid, not a selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_files_extraction_status_2dd4f102ce4adbc4944065e5files: GET /api/files/extraction-statusD
Read-onlyIdempotent
Inspect

GET /api/files/extraction-status. GET /api/files/extraction-status. Operation ID: 2dd4f102ce4adbc4944065e5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds no behavioral context such as scope (per-file vs batch vs tenant-wide), polling expectations, or freshness of status data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the opening sentence is repeated verbatim and the remainder is metadata (operation ID) rather than substance. It is front-loaded with a restatement instead of a useful purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a status endpoint with an empty, untyped parameter object and no output schema, the agent needs to know what status values or fields come back and what identifiers scope the query. None of that is provided, and nothing compensates for the zero schema coverage.

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 0% and both parameters ('query' and empty 'params') are undocumented containers. The description's mention that describe_operation supplies native request schemas is a useful hint but does not identify what filters or identifiers the parameters accept, leaving the agent to make an extra call to learn anything.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the endpoint path 'GET /api/files/extraction-status' twice without saying what the operation actually returns or what an 'extraction status' is. It does not distinguish this tool from close siblings like get_files_bulk_extract_by_batchId_statu_... or get_files_by_id_extract_text_....

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 statement of when to use this tool, when not to, or which sibling to prefer for extraction-related queries. The only guidance is a pointer that 'describe_operation provides native request schemas,' which is about how to inspect the tool, not when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_files_list_4a1f3ca127e35091ff34e669files: GET /api/files/listC
Read-onlyIdempotent
Inspect

GET /api/files/list. GET /api/files/list. Operation ID: 4a1f3ca127e35091ff34e669; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world scope, so safety is covered structurally. The description adds nothing beyond that — no pagination behavior, default page size, sorting, or result shape for what is clearly a 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, and the remaining content is an opaque operation ID plus a redirect. Short, but under-specified rather than efficient — the repetition wastes the most prominent position.

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?

A GET list tool with a nested free-form query object, no output schema, and no annotations gaps still needs to say what is listed and how to filter/paginate. The definition supplies neither, leaving the agent dependent on a second describe_operation call to do anything useful.

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 'query' parameter is a free-form additionalProperties object, so the schema conveys no semantics at all. The description's only compensation is telling the agent to call describe_operation, which shifts the burden rather than explaining the query filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/files/list' twice, which implies listing files but says nothing about what is listed, what is returned, or how it differs from siblings like get_files_by_id or get_files_extraction_status. An agent learns the HTTP verb and resource noun and nothing more.

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 use this tool versus alternatives, nor any prerequisites or exclusion. The only hint is a pointer to describe_operation for request schemas, which is schema discovery, not usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_form_agreement_templates_57b832b6107ac61603b47191form-agreement-templates: GET /api/form-agreement-templatesC
Read-onlyIdempotent
Inspect

GET /api/form-agreement-templates. GET /api/form-agreement-templates. Operation ID: 57b832b6107ac61603b47191; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond that, and the duplicated endpoint string conveys no behavioral context such as what is returned or whether results are paginated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is repeated verbatim, which is pure waste, and the content is not front-loaded with any useful information since the endpoint string merely duplicates the title. Brevity here comes from under-specification rather than tight editing.

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?

No output schema exists, both parameters are undocumented, and there are two close siblings, so the description should carry real weight. Instead it offers only an endpoint echo plus a pointer to describe_operation, leaving an agent unable to know what this call returns versus its siblings.

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 both parameters (query, params) are free-form objects with no documented properties. The description compensates only by pointing to describe_operation, which is a redirect rather than an explanation of what to put in query or params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just restates the endpoint path and operation ID already present in the name and title, adding no natural-language statement of what the tool returns. It does not distinguish this from siblings like get_form_agreement_templates_available or get_form_agreement_templates_by_id, so an agent must infer the difference from names alone.

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/when-not guidance and no mention of the two sibling template endpoints. The only actionable pointer is 'describe_operation provides native request schemas,' which is a lookup hint rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_form_agreement_templates_available__13bdcd476fcdfd61e648d6bbform-agreement-templates: GET /api/form-agreement-templates/available-fields/:entityTypeD
Read-onlyIdempotent
Inspect

GET /api/form-agreement-templates/available-fields/:entityType. GET /api/form-agreement-templates/available-fields/:entityType. Operation ID: 13bdcd476fcdfd61e648d6bb; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own — nothing about what the response contains, pagination, or required permissions — beyond pointing at describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful clause is duplicated verbatim, wasting roughly half the text, and the operation ID and meta-instruction are not front-loaded information about what the tool does. Short but not earning its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 0% parameter description coverage, a nested object parameter, and no annotations explaining return shape, the description needed to carry the load and instead gives only a URL. An agent cannot determine valid entityType values or the response structure from this definition.

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 schema itself carries no semantics, and the description does not compensate. The path template hints that entityType is a path parameter, but there is no mention of valid entity types, format constraints, or what the untyped `query` object is for, leaving both parameters largely opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the raw HTTP path repeated twice: 'GET /api/form-agreement-templates/available-fields/:entityType'. An agent can infer that it fetches available field definitions for a given entity type, but the description never states this in verbs or plain language, and it does nothing to distinguish it from siblings such as get_form_agreement_templates or the similarly named check-request 'available fields' tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 versus get_form_agreement_templates, get_ai_field_metadata_by_entityType, or the other 'available fields' endpoints. The only directive is 'describe_operation provides native request schemas', which is a pointer to another tool for schema retrieval, not a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_form_agreement_templates_by_id_7efcfbfbda57e99942e9b386form-agreement-templates: GET /api/form-agreement-templates/:idD
Read-onlyIdempotent
Inspect

GET /api/form-agreement-templates/:id. GET /api/form-agreement-templates/:id. Operation ID: 7efcfbfbda57e99942e9b386; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds nothing beyond the endpoint path and the operation-ID/describe_operation pointer; it does not say what is returned, whether a missing id errors, or how the lookup behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is duplicated verbatim, so half the content is pure waste. It is short enough not to be verbose, but the redundancy and lack of any front-loaded purpose statement make the structure poor.

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?

No output schema exists, and neither the parameters nor the return shape are explained anywhere in the description. For a lookup tool with nested params and 0% schema coverage, an agent cannot infer correct invocation from the description alone.

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 supplies no information about the required 'params.id' path parameter (format, length limits, where to obtain it) or the open-ended 'query' object. With two undocumented parameters at zero coverage and nested objects present, the description fully fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text is a raw endpoint path 'GET /api/form-agreement-templates/:id' repeated twice, which technically conveys verb and resource but only in URL form. It offers no plain-language statement that this retrieves a single form agreement template by its identifier, and does nothing to distinguish it from siblings like get_form_agreement_templates or get_form_agreement_templates_available.

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 to use this versus the list or 'available' variants of the same resource, nor any prerequisites. The only routing aid is a pointer that describe_operation provides native request schemas, which is a fallback rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gl_accounts_4672f2f496fa77a3254a35c3gl-accounts: GET /api/gl-accountsD
Read-onlyIdempotent
Inspect

GET /api/gl-accounts. GET /api/gl-accounts. Operation ID: 4672f2f496fa77a3254a35c3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing behavioral beyond the describe_operation pointer — no filtering behavior, no pagination, no result shape for what is presumably a collection endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes its limited space: "GET /api/gl-accounts" is duplicated verbatim, and an opaque hex operation ID is presented without explaining what the agent should do with it. Front-loading a real purpose statement would have cost the same characters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 0% schema coverage, nested free-form parameters, no output schema, and no annotations explaining return behavior, the description is the only place an agent could learn how to call this tool — and it provides nothing. An agent cannot correctly invoke this endpoint based on the definition as written.

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 two parameters (query, params) are undocumented free-form objects with additionalProperties. The description supplies no parameter meaning at all, leaving the agent no way to know what to put in query versus params for this endpoint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says "GET /api/gl-accounts", which is a verb+resource but is an exact restatement of the tool name and title rather than an explanation of what the tool does or returns. It gives no clue whether this lists GL accounts, returns a chart of accounts, or is paginated, and it does not distinguish this tool from siblings like get_gl_accounts_by_id or get_gl_accounts_charts.

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 actionable instruction is that "describe_operation provides native request schemas", which points at a prerequisite step but never says when to choose this tool over the many sibling GL/accounting endpoints. There is no when-to-use, when-not-to-use, or alternative routing information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gl_accounts_assignments_afa59726055b6684284e44ddgl-accounts: GET /api/gl-accounts/assignmentsC
Read-onlyIdempotent
Inspect

GET /api/gl-accounts/assignments. GET /api/gl-accounts/assignments. Operation ID: afa59726055b6684284e44dd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds essentially nothing beyond the endpoint path — no mention of what the assignments endpoint returns, whether results are paginated, or what scoping (book, chart of accounts, entity) applies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes half its content on an exact duplicate of the first sentence. Repetition without added information is a structural flaw, not conciseness; nothing is front-loaded about purpose or usage.

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, an entirely generic query parameter, and no meaningful prose, an agent has almost no basis to call this correctly without first invoking describe_operation. A free-form query object on a list endpoint demands at minimum an enumeration of the supported filters.

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 both parameters are opaque: 'query' is a free-form object with additionalProperties {} and 'params' is an empty object. The description provides zero guidance on which query keys are accepted (filter by account, book, entity?), so the agent must fall back to describe_operation. The only compensating value is the pointer to that helper.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool name and title ('GET /api/gl-accounts/assignments'), naming the HTTP method and resource path but never explaining what an 'assignment' is or what kind of records come back. It does not distinguish this tool from siblings like get_gl_accounts, get_gl_accounts_charts, or get_gl_accounts_types beyond the path suffix.

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 to use this tool, when not to, or which sibling to prefer. The only procedural hint is that 'describe_operation provides native request schemas', which tells the agent how to find the schema but not when this operation is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gl_accounts_by_id_ee71c0a64b4bb092d92306cagl-accounts: GET /api/gl-accounts/:idD
Read-onlyIdempotent
Inspect

GET /api/gl-accounts/:id. GET /api/gl-accounts/:id. Operation ID: ee71c0a64b4bb092d92306ca; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description contributes nothing additional about behavior, errors (e.g. 404 for unknown id), or what the fetched 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste, and the remaining content is an operation ID plus a redirect to another tool rather than front-loaded explanation of purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no parameter documentation, and no annotation-adjacent detail added, the definition leaves an agent unable to know what a GL account record contains or how to construct the id. Nothing beyond the raw path is communicated.

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% across two parameters, including a free-form 'query' object and a required 'id'. The description supplies no meaning for either, leaving the free-form query object completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the endpoint path 'GET /api/gl-accounts/:id' twice and the operation ID, which is essentially a restatement of the title. An agent can infer it fetches a single GL account by id, but there is no verb-level explanation of what is returned and no differentiation from siblings like get_gl_accounts or get_gl_accounts_assignments.

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 use this versus get_gl_accounts (list) or get_gl_accounts_assignments. The only pointer is 'describe_operation provides native request schemas', which is a meta-hint about schema discovery, not a selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gl_accounts_charts_62239039ef8bc361f4d98edcgl-accounts: GET /api/gl-accounts/chartsC
Read-onlyIdempotent
Inspect

GET /api/gl-accounts/charts. GET /api/gl-accounts/charts. Operation ID: 62239039ef8bc361f4d98edc; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond that — no mention of pagination, filtering behavior, or what a 'chart' contains — so it contributes no behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, which is pure waste, and the operation ID hash adds no meaning for an agent. What remains is short but consists of restated URL and internal metadata rather than useful front-loaded content.

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, 0% parameter coverage, and nested objects, the description needs to explain parameters and return shape, but it only points to describe_operation. That pointer helps but leaves the definition well short of what an agent needs to call this 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 two nested parameters (query, params) are undocumented. The description compensates only by deferring to describe_operation, giving no syntax, format, or meaning for either parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the raw HTTP endpoint ('GET /api/gl-accounts/charts') twice rather than stating in domain terms what the tool returns. An agent cannot distinguish it from siblings like get_gl_accounts, get_gl_accounts_types, or get_gl_accounts_assignments, since 'charts' is never explained.

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 or when-not-to-use guidance. The only actionable pointer is that describe_operation provides native request schemas, which aids invocation but says nothing about selecting this tool over its many gl-accounts siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_gl_accounts_types_36f735e3d7159f93cd4d15ddgl-accounts: GET /api/gl-accounts/typesD
Read-onlyIdempotent
Inspect

GET /api/gl-accounts/types. GET /api/gl-accounts/types. Operation ID: 36f735e3d7159f93cd4d15dd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered. The description adds nothing beyond that — no return shape (a list of GL account types?), no ordering, no pagination, no indication of what fields each type exposes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short but wasteful: the same route string is repeated verbatim in consecutive sentences, and an opaque operation hash consumes much of the text. Nothing is front-loaded except the endpoint path.

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, an unconstrained 'query' object, and no annotation gaps left to fill, the description should at minimum describe what a call returns and how to pass query filters. It provides neither, so an agent must call describe_operation or guess.

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 two parameters (a free-form 'query' object with additionalProperties: {} and an empty 'params' object) are completely undocumented. The description does not mention any parameter at all, not even that 'query' accepts arbitrary keys, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route 'GET /api/gl-accounts/types' twice. An agent can infer it lists GL account types from the URL, but that is inference from the name/title rather than a stated purpose, and it does nothing to differentiate it from sibling tools like get_gl_accounts or get_gl_accounts_charts.

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 to use this tool versus alternatives such as get_gl_accounts_4672f2f4, get_gl_accounts_charts, or get_gl_accounts_assignments. The only routing hint is 'describe_operation provides native request schemas,' which points at a lookup tool rather than saying when this endpoint is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_global_settings_ai_import_config_fa185b292666cfc696a08d28global-settings: GET /api/global-settings/ai-import-configC
Read-onlyIdempotent
Inspect

GET /api/global-settings/ai-import-config. GET /api/global-settings/ai-import-config. Operation ID: fa185b292666cfc696a08d28; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered elsewhere. The description adds only the endpoint path and a pointer to describe_operation; it discloses nothing about filtering behavior, response shape, or auth scope 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identical endpoint sentence appears twice, so half the text is pure duplication, and none of it is front-loaded with meaning. The operation ID is filler for an agent.

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, no parameter documentation, and an empty params object, the description leaves the agent unable to determine expected inputs or return shape. Only the redirect to describe_operation keeps it from being entirely unusable.

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 (a free-form 'query' object and an empty 'params' object), and the description says nothing about what goes in either. The pointer to describe_operation is the sole compensation, which is thin for a 0%-coverage nested schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare restatement of the HTTP method and path already present in the name and title ('GET /api/global-settings/ai-import-config'), repeated twice. It does not say in prose what the AI import configuration contains or how it differs from siblings such as get_global_settings_currency_config or get_global_settings_fiscal_config.

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 or when-not-to-use guidance and no named alternative among the many get_global_settings_* siblings. The only directional hint is 'describe_operation provides native request schemas', which tells the agent where to get schemas, not when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_global_settings_currency_config_9444d8555ac4509300808e98global-settings: GET /api/global-settings/currency-configD
Read-onlyIdempotent
Inspect

GET /api/global-settings/currency-config. GET /api/global-settings/currency-config. Operation ID: 9444d8555ac4509300808e98; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond the path and a pointer to describe_operation — no note on what the configuration contains, whether it is workspace-scoped, or any output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one substantive sentence is duplicated verbatim, which is pure waste, and the remaining content (operation ID) is a machine artifact rather than useful guidance. Being short does not make it concise when half the text is redundant.

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 a fully undocumented free-form query parameter, the description must carry the load, yet it never says what the currency configuration returns or what the endpoint's inputs mean. It is not sufficient for an agent to invoke the tool correctly.

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?

Two parameters exist (a free-form 'query' object with arbitrary keys and an empty 'params' object) and schema description coverage is 0%. The description says nothing about either parameter, so an agent has no idea what may be passed to 'query' — the exact case where the description needed to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is nothing but the raw endpoint path repeated twice, which merely restates the tool name/title (global-settings currency-config). It does identify a resource via the URL, but offers no explanation of what the returned currency configuration actually is or how it differs from sibling tools like get_global_settings_supported_currencie or get_global_settings_fiscal_config.

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 to use this tool versus the many global-settings siblings. The only routing hint is 'describe_operation provides native request schemas', which points to another tool for schema lookup, not to a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_global_settings_custom_field_defini_eb51ade9b17b3fe6391b2927global-settings: GET /api/global-settings/custom-field-definitionsC
Read-onlyIdempotent
Inspect

GET /api/global-settings/custom-field-definitions. GET /api/global-settings/custom-field-definitions. Operation ID: eb51ade9b17b3fe6391b2927; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own: no scoping to a workspace, no pagination or filtering behavior, no volume/auth expectations. Nothing contradicts 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, which is pure waste, and the content is an endpoint path rather than a front-loaded statement of purpose. The remaining clauses are an operation ID and a pointer to another tool.

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, 0% parameter coverage, and nested-object parameters, the description carries the full burden of explaining how to call this and what comes back — and it does none of that. The deferral to describe_operation for the request schema is the one mitigating element, but an agent gets no information about response shape or filtering here.

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 two parameters (a free-form `query` object and an empty `params` object) are entirely opaque. The description does not explain what belongs in `query` — filters, field names, pagination — and instead defers with 'describe_operation provides native request schemas'. That pointer is genuinely useful but it is a lookup instruction, not parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is only the raw endpoint path 'GET /api/global-settings/custom-field-definitions' repeated verbatim, which restates the tool name and title rather than explaining in plain language what a custom field definition is or what the call returns. It never distinguishes this from the many sibling custom-field endpoints (e.g. get_contacts_custom_fields_definitions, get_leases_by_id_custom_fields_definiti) or clarifies that this one is the global/workspace-level catalog.

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 to use this tool, when not to, or which sibling to prefer for related custom-field data. The only actionable hint is the pointer to describe_operation for native request schemas, which is a mechanical aid, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_global_settings_fiscal_config_6cbc1e2b9b8780779cc290f0global-settings: GET /api/global-settings/fiscal-configC
Read-onlyIdempotent
Inspect

GET /api/global-settings/fiscal-config. GET /api/global-settings/fiscal-config. Operation ID: 6cbc1e2b9b8780779cc290f0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds no behavioral context beyond the phrase 'describe_operation provides native request schemas,' which is a pointer, not a disclosure of behavior, scope, or return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim and the operation ID is machine-generated noise, so the content is not front-loaded with useful information. There is no wasted prose in length, but what little is there is redundant.

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?

The tool is annotated as a safe read but is a nested-object tool with no output schema and no documented parameter semantics. An agent still does not know what the fiscal config payload contains or what query filters are meaningful, so the description is inadequate for a non-trivial resource.

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 a tool with two generic object parameters (query and params with no documented properties). The description does not describe the query parameter's semantics. The only credit is directing the agent to describe_operation for the native schemas, which partly offsets but does not explain the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just repeats the operation path verbatim twice, which is a tautology of the title. It does not state in plain terms what the fiscal config resource contains or what business question it answers, though the path does at least imply retrieving fiscal configuration settings.

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 a single useful hint — that describe_operation provides native request schemas — but no explanation of when to call this versus siblings like get_global_settings_fiscal_cutovers or get_global_settings_currency_config. No exclusions or conditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_global_settings_fiscal_cutovers_by__617d40ebabbf1d77e30896bfglobal-settings: GET /api/global-settings/fiscal-cutovers/:idC
Read-onlyIdempotent
Inspect

GET /api/global-settings/fiscal-cutovers/:id. GET /api/global-settings/fiscal-cutovers/:id. Operation ID: 617d40ebabbf1d77e30896bf; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds only an operation ID and a pointer to describe_operation for native request schemas; it discloses nothing about authorization, error cases, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is duplicated verbatim, which is pure waste, and the remaining content is a generated operation ID plus a generic pointer. It is short but not front-loaded with anything an agent can act on beyond the path itself.

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 a nested query object, 0% schema coverage, no output schema, and no explanation of the returned fiscal-cutover record, the definition leaves an agent unable to predict either inputs or outputs. Annotations cover the read-only safety profile, but that alone is not enough for this shape of 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 description coverage is 0% for both the 'id' path parameter and the free-form 'query' object, so the description must compensate and does not. The path template only weakly implies that 'id' identifies a fiscal cutover; nothing is said about id format, allowed values, or what query parameters are supported.

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 repeats the path 'GET /api/global-settings/fiscal-cutovers/:id', which does convey a specific verb (GET) and a specific resource (a fiscal cutover addressed by id). However, it never explains what a fiscal cutover is or how this single-record fetch differs from the sibling list endpoint get_global_settings_fiscal_cutovers_e4b4db2eecb01959cf4a382d.

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 to use this tool versus the accompanying list endpoint, nor any prerequisite or context. The only hint is 'describe_operation provides native request schemas', which points at another tool for schema discovery rather than telling the agent when this call is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_global_settings_fiscal_cutovers_e4b4db2eecb01959cf4a382dglobal-settings: GET /api/global-settings/fiscal-cutoversC
Read-onlyIdempotent
Inspect

GET /api/global-settings/fiscal-cutovers. GET /api/global-settings/fiscal-cutovers. Operation ID: e4b4db2eecb01959cf4a382d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, closed-world, so the safety profile is fully covered by structured fields. The description adds nothing beyond that - no note on pagination, filtering behavior, empty-result behavior, or what a 'cutover' record looks like - so it contributes no behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are byte-identical duplicates of the endpoint path, which is pure waste, and the operation ID is internal plumbing of low value to an agent. The only useful sentence is the last one; the description is not long but is badly front-loaded and redundant.

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?

There is no output schema, 0% parameter description coverage, and nested-object parameters, so the description bears most of the explanatory burden - yet it provides only a path and a pointer to another tool. For a nested-object settings endpoint this leaves the agent unable to know what query filters or path params exist without a second round trip.

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 both parameters ('query' and 'params') are bare objects with additionalProperties, giving the agent no names, types, or meaning. The description does not compensate at all - it only says to consult describe_operation, which is a redirect rather than an explanation of what belongs in query versus params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the raw endpoint path 'GET /api/global-settings/fiscal-cutovers' repeated twice, which restates the name/title rather than explaining what the resource contains or what the call returns. An agent gets no more than 'it fetches fiscal cutover settings' from the URL slug, and no differentiation from the sibling 'get_global_settings_fiscal_cutovers_by__617d...' (cutover by id) or 'get_global_settings_fiscal_config'.

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 actionable pointer is 'describe_operation provides native request schemas', which is a delegation cue rather than usage guidance. There is no statement of when to call this versus the cutover-by-id sibling or the fiscal-config sibling, and no prerequisites such as workspace scoping.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_global_settings_intercompany_leases_0e0092ea8624facb1fe83019global-settings: GET /api/global-settings/intercompany-leasesC
Read-onlyIdempotent
Inspect

GET /api/global-settings/intercompany-leases. GET /api/global-settings/intercompany-leases. Operation ID: 0e0092ea8624facb1fe83019; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered structurally. The description adds nothing beyond the path — no scope, no pagination, no auth requirements, no statement of what settings are exposed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The very short text is wasteful rather than concise: the same endpoint path is duplicated verbatim, and the operation ID hash consumes space an agent cannot act on.

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?

No output schema and no annotation-derived context in prose, combined with an opaque free-form query parameter, means an agent cannot tell what this call returns or how to filter it. The description is incomplete for even a trivial read endpoint.

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% with two parameters: an unconstrained free-form `query` object and an empty `params` object. The description does not document any accepted query keys or filters, only redirecting to describe_operation, which leaves the caller unable to construct a query from this definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path 'GET /api/global-settings/intercompany-leases' twice; it never says in prose what this resource is or what reading it returns. The path does imply a global-settings read for intercompany leases, but among ~15 get_global_settings_* siblings there is no differentiation of when this one is the right one.

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, when-not-to-use, or alternative is named. The only guidance-like sentence points to describe_operation for request schemas, which is a parameter-discovery hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_global_settings_supported_currencie_5167a094979a045c159370f4global-settings: GET /api/global-settings/supported-currenciesC
Read-onlyIdempotent
Inspect

GET /api/global-settings/supported-currencies. GET /api/global-settings/supported-currencies. Operation ID: 5167a094979a045c159370f4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no indication of what the response contains (a currency list? codes plus symbols?), pagination, or caching/auth behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Brief, but the identical sentence is repeated verbatim twice, wasting half the text on duplication. The remaining token of value (the describe_operation pointer) is buried after the redundant line rather than front-loaded.

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?

No output schema, 0% parameter coverage, and no statement of what is returned. For an endpoint with a free-form query object, the description should at minimum say what the payload looks like and whether query accepts any options; it does neither.

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 provides no parameter guidance at all. The schema exposes a free-form `query` object and an empty `params` object, so an agent gets no signal about whether filtering, pagination, or any accepted query keys exist.

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 restates the endpoint path, which does convey the resource (supported currencies within global settings) and implies a read. However, it is essentially a tautology of the name/title and never states in plain language what the tool returns or how it differs from sibling global-settings tools like get_global_settings_currency_config.

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 use this versus related currency/global-settings tools. The only routing hint is 'describe_operation provides native request schemas', which points at a helper for schema discovery rather than explaining when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_impairment_tests_2f78a233dea7ff5599ec9f1cimpairment: GET /api/impairment/testsC
Read-onlyIdempotent
Inspect

GET /api/impairment/tests. GET /api/impairment/tests. Operation ID: 2f78a233dea7ff5599ec9f1c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere and there is no contradiction. The description adds only the operation ID and a pointer to describe_operation, saying nothing about pagination, filtering behavior, or what a list 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are verbatim duplicates of each other, which is pure waste. The only non-redundant content, the operation ID and the describe_operation pointer, is tacked on at the end rather than front-loaded.

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?

This is a list endpoint with a nested free-form query object, no parameter documentation and no output schema, so the description carries the full explanatory burden and delivers none of it. An agent would have to call describe_operation first to learn anything actionable.

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 schema itself is opaque: a free-form 'query' object with additionalProperties and an empty 'params' object. The description supplies no parameter meaning at all, merely redirecting the agent to describe_operation for native schemas, which leaves the agent unable to construct a correct call from this definition alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description does nothing but restate the endpoint path 'GET /api/impairment/tests' twice, and the title already says the same thing. An agent can infer it lists impairment tests rather than fetching one by ID, but that inference comes from the URL shape, not from any stated verb+resource in prose.

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 to call this versus the obvious sibling get_impairment_tests_by_id, nor any prerequisite or filter context. The only routing hint is the pointer to describe_operation for request schemas, which is meta-tooling advice rather than usage guidance for this operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_impairment_tests_by_id_9e093302744712a645885cc7impairment: GET /api/impairment/tests/:idD
Read-onlyIdempotent
Inspect

GET /api/impairment/tests/:id. GET /api/impairment/tests/:id. Operation ID: 9e093302744712a645885cc7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond the annotation set: no note on what the response contains, whether the test id is a UUID, or what happens when the id is unknown (404 vs empty).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one informative sentence is duplicated verbatim, and the remaining sentence is boilerplate about describe_operation. There is no front-loaded explanation of purpose or return value, so length is wasted rather than earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a nested-object, zero-coverage, no-output-schema tool, which puts the full explanatory burden on the description. The description covers none of it: not the id semantics, not the query bag, not the return shape or error behavior.

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 both parameters (a nested params.id object and a free-form query object) are undocumented in the schema. The description supplies no clarification at all about the id format, length limits, or what the query object accepts, leaving the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the title verbatim: "GET /api/impairment/tests/:id. GET /api/impairment/tests/:id." It conveys the resource path but is a tautological restatement of the name, not an explanation of what the tool returns or how it differs from the sibling list tool get_impairment_tests_2f78a233dea7ff5599ec9f1c.

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 or when-not-to-use guidance is given. The only routing signal is the boilerplate pointer to describe_operation for native request schemas, which implies a workflow but never says when this tool rather than the impairment tests list tool should be called.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_impairment_trigger_checklist_by_lea_a11d603640a237dd9fc39150impairment: GET /api/impairment/trigger-checklist/:leaseIdD
Read-onlyIdempotent
Inspect

GET /api/impairment/trigger-checklist/:leaseId. GET /api/impairment/trigger-checklist/:leaseId. Operation ID: a11d603640a237dd9fc39150; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The only added text is a pointer to describe_operation, which adds minor navigational value but no behavior about what is returned or what a missing lease yields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two nearly identical sentences, one of which is pure duplication, followed by an operation ID. Size is small but the space is wasted on repetition rather than front-loaded meaning.

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 two-parameter read with no output schema and no parameter documentation, the description should at minimum describe the returned checklist. It instead gives only a passthrough of the endpoint and a reference to describe_operation, leaving the agent to open another tool to learn anything.

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 adds nothing beyond embedding ':leaseId' in a path template. The optional 'query' object and the format/validation expectations for leaseId (1-2000 chars) are left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path twice; it never says in words what the tool returns (e.g., an impairment trigger checklist for a lease). An agent can infer the resource from the URL-ish string, but there is no verb-plus-resource statement and no hint of how it differs from the sibling get_impairment_trigger_checklists_886f50ebcc069793ef1e00b4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative guidance at all. Nothing tells the agent whether this single-lease lookup should be preferred over the list variant or the impairment test siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_impairment_trigger_checklists_886f50ebcc069793ef1e00b4impairment: GET /api/impairment/trigger-checklistsC
Read-onlyIdempotent
Inspect

GET /api/impairment/trigger-checklists. GET /api/impairment/trigger-checklists. Operation ID: 886f50ebcc069793ef1e00b4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered by structured data. The description adds nothing behavioral beyond redirecting to describe_operation; it doesn't say what the result contains, whether it's scoped to a workspace/lease, or how large result sets behave.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string is duplicated back-to-back, which is pure waste, and the operation ID hash consumes space without telling the agent anything. Brevity here reflects under-specification, not discipline.

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, no described parameters, and a nested-object input schema, the description should explain shape and scoping. An agent cannot tell what this returns or what filters are legal without first calling describe_operation.

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 0%: both `query` and `params` are open objects with no documented properties, so the description carries the burden and fails — it never names a single supported filter. The note that describe_operation provides native request schemas is marginally helpful but delegates rather than explains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name/title verbatim ("GET /api/impairment/trigger-checklists" twice) after an operation ID. It conveys the HTTP method and endpoint path, but never explains what a trigger checklist is or how this collection differs from the sibling get_impairment_trigger_checklist_by_lea... tool.

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 mention of the by-lease sibling that narrows the same resource, and no prerequisites or pagination/filtering expectations. The only actionable hint is the pointer to describe_operation for native request schemas.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_import_available_fields_by_module_1c494dbc4eb23da1bd856e87import: GET /api/import/available-fields/:moduleD
Read-onlyIdempotent
Inspect

GET /api/import/available-fields/:module. GET /api/import/available-fields/:module. Operation ID: 1c494dbc4eb23da1bd856e87; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no note on what the response contains, whether it is module-scoped or workspace-scoped, or any auth/rate-limit context. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is short but wasted: the same endpoint string is repeated twice verbatim, and the remaining sentence is machine boilerplate (operation ID) rather than front-loaded purpose. No information is lost by any sentence because no information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no parameter descriptions, and a nested query object, the description should explain the return shape and the module parameter domain. It provides none of this, so an agent cannot call the tool correctly without falling back to describe_operation.

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 carry the burden. It only echoes the `:module` path segment, giving no meaning for valid module values, format, or the undocumented `query` parameter. With 2 parameters and zero documented semantics, this is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw endpoint path twice ("GET /api/import/available-fields/:module") plus an operation ID. An agent can guess it lists available import fields for a module, but nothing in plain language states the purpose, and it is not differentiated from look-alike siblings such as get_import_field_options_by_module_by_f or get_import_template_by_module.

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 actionable hint is that describe_operation supplies native request schemas, which is schema guidance rather than usage guidance. There is no statement of when to call this tool, when to use the field-options or template siblings instead, or what preconditions exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_import_field_options_by_module_by_f_459be6d64347aea1866b2aefimport: GET /api/import/field-options/:module/:fieldD
Read-onlyIdempotent
Inspect

GET /api/import/field-options/:module/:field. GET /api/import/field-options/:module/:field. Operation ID: 459be6d64347aea1866b2aef; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, idempotent read operation. The description adds no behavioral context about the result shape, field-option semantics, or how module/field constrain the response; it mostly repeats the endpoint and points to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but contains a verbatim duplicate sentence and an operation ID that does not help tool selection. The one potentially useful sentence about describe_operation is buried after redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an endpoint whose purpose is unclear from its name, with 0% parameter coverage and no output schema, the description does not provide enough context to call it correctly. It only supplies a pointer to describe_operation, which does not compensate for missing purpose and parameter semantics.

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 does not explain the meaning, valid values, or constraints of module and field, despite those being the only required path parameters. Repeating ':module/:field' in the path template adds no semantic information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP method and path already encoded in the title and tool name. It never explains what an 'import field option' is, how it relates to importing, or why an agent would request one for a module/field pair.

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 comparison to nearby import tools such as get_import_available_fields_by_module or get_import_template_by_module. The only directional note is to use describe_operation for request schemas, which is not usage guidance for this endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_import_history_ac8738615e763c9de35998e0import: GET /api/import/historyC
Read-onlyIdempotent
Inspect

GET /api/import/history. GET /api/import/history. Operation ID: ac8738615e763c9de35998e0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond that: no mention of filtering, pagination, time range, or what the history records represent. The duplicated endpoint line consumes space without adding 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identical sentence appears twice, which is pure redundancy. The remaining clause is useful but the content is not front-loaded with any purpose or scope statement.

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?

A list/history endpoint with no output schema, 0% parameter documentation, and nested free-form query objects requires the description to explain what is returned and how to filter. Instead it offers a pointer to describe_operation, leaving the agent to make a second call just to learn the request shape.

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 0% for 2 parameters (a free-form 'query' object and an empty 'params' object), so the description must compensate. It only says describe_operation has the native request schemas, which defers the work rather than documenting accepted query keys or formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw path 'GET /api/import/history' repeated twice, which essentially restates the tool name rather than explaining what the history covers (imports? batches? field changes?). An agent cannot distinguish it from siblings like get_pending_imports, get_import_status_by_importId, or get_bulk_imports based on this text.

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 statement of when to use this tool versus the many sibling import tools. The only actionable hint is that describe_operation provides native request schemas, which is a pointer for schema discovery, not usage guidance or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_import_status_by_importId_3d9fe1b1e7661756198cd6b0import: GET /api/import/status/:importIdD
Read-onlyIdempotent
Inspect

GET /api/import/status/:importId. GET /api/import/status/:importId. Operation ID: 3d9fe1b1e7661756198cd6b0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered by structured data. The description adds essentially nothing beyond the route, not describing what status values are returned, polling behavior, or error cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two of the three sentences are a verbatim duplicate of the same route path, which is pure waste. The operation ID mention is boilerplate rather than useful content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a status-lookup endpoint with no output schema, an undocumented required identifier, and a nested-object query parameter; the description supplies none of the information needed to call it correctly or interpret the result.

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 2 parameters, and the description provides no explanation of the required importId (format, where it comes from) or the optional query object. With the schema carrying no descriptions, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route 'GET /api/import/status/:importId' twice, which does convey a verb and resource but is essentially tautological with the title. It gives no differentiation from closely-related siblings such as get_pending_imports, get_import_history, or get_ai_import_by_batchId.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives like the pending-imports or import-history endpoints. The only extra pointer is to describe_operation for native request schemas, which is not usage guidance for choosing this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_import_template_by_module_56ff23e59d698e42cb615ee1import: GET /api/import/template/:moduleC
Read-onlyIdempotent
Inspect

GET /api/import/template/:module. GET /api/import/template/:module. Operation ID: 56ff23e59d698e42cb615ee1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing further — no mention of what a returned template contains, whether it is module-specific scaffolding vs. a file download, or any error/authorization behavior. No contradiction with the annotations, but no value added either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the single substantive sentence is duplicated word-for-word, and the operation ID is filler from the agent's perspective. Brevity here comes from under-specification rather than disciplined editing.

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 a nested object parameter and zero schema description coverage, the description should define the module vocabulary and the role of `query`, and ideally clarify the return. None of that is present; the only recourse offered is to call describe_operation separately, which adds a round trip the description could have avoided.

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 2 parameters (required `module` string plus a freeform `query` object). The description only echoes that `module` is a path segment via the `:module` placeholder; it never says what valid module identifiers look like (a `list_modules` sibling exists) or what `query` is for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw endpoint path repeated verbatim ("GET /api/import/template/:module") plus an operation ID. It implies fetching an import template for a module, but that only comes from parsing the path string, not from any explanatory prose, and it never distinguishes itself from siblings like get_import_available_fields_by_module or get_rent_import_template.

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, when-not-to-use, or alternative routing is given. The only actionable hint is the pointer that "describe_operation provides native request schemas," which tells the agent how to discover the request shape, not when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_insurance_certificates_205a495dc1e780527beb6c4finsurance: GET /api/insurance/certificatesD
Read-onlyIdempotent
Inspect

GET /api/insurance/certificates. GET /api/insurance/certificates. Operation ID: 205a495dc1e780527beb6c4f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered elsewhere. The description adds nothing on top of that – no pagination behavior, no default result limit, no note about what scope of certificates (entity/workspace) is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the endpoint string is duplicated verbatim, which wastes half the text. The remaining sentences (operation ID, describe_operation pointer) are procedural metadata rather than useful information for an agent already reading the tool definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no parameter documentation, and a free-form query object mean the description carries the full explanatory burden – and it delivers none of it. An agent cannot determine what this returns or how to constrain the call without chaining into describe_operation first.

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 both parameters ('query', an unconstrained free-form object, and an empty 'params') are opaque. The description never clarifies what belongs in 'query' or how it maps to the native request schema; the pointer to describe_operation is the only crumb, and it defers rather than explains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw endpoint restated twice ('GET /api/insurance/certificates'), which is essentially tautological with the tool name and title. It does convey that this is an unfiltered GET over insurance certificates, but it says nothing about what a certificate record contains or how this differs from nearby siblings like get_insurance_policies or get_coi_list.

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 to use this tool versus get_insurance_policies, get_coi_list, or the generic execute_read. The only routing hint is 'describe_operation provides native request schemas', which tells the agent how to get a schema, not when this operation is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_insurance_policies_13cdd081dfe3602d78913602insurance: GET /api/insurance/policiesC
Read-onlyIdempotent
Inspect

GET /api/insurance/policies. GET /api/insurance/policies. Operation ID: 13cdd081dfe3602d78913602; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds only an operation ID and a pointer to describe_operation, saying nothing about authentication, pagination, filtering behavior, or what the list returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes space repeating the endpoint twice and including an opaque operation ID. The only useful sentence is the pointer to describe_operation, and it is not front-loaded relative to the repetition.

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 list endpoint with no output schema and two undocumented parameters, the description should convey what is returned, available filtering, and usage context. It instead provides only the URL and a pointer to another tool, leaving the agent under-informed.

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?

There are two parameters with 0% schema description coverage, and the description does not explain query or params semantics. Pointing to describe_operation is better than nothing but does not compensate for the complete lack of parameter meaning in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the title and endpoint path repeated twice, with no plain-language statement of what insurance policies are or how this list differs from siblings like get_insurance_certificates. It identifies the resource only through the URL, making it a near-tautology.

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?

It only points to describe_operation as a source of request schemas, which is an operational hint rather than guidance on when to use this tool versus alternatives. There is no when-to-use, when-not-to-use, or sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integrations_b405361088b53adc4ec4247bintegrations: GET /api/integrationsD
Read-onlyIdempotent
Inspect

GET /api/integrations. GET /api/integrations. Operation ID: b405361088b53adc4ec4247b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already fully describe this as a read-only, idempotent, non-destructive, closed-world operation. The description adds no behavioral context such as pagination, filtering behavior, or what the integrations list returns; it only repeats the endpoint path and gives an operation ID.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence appears twice, and the operation ID adds no practical value for an agent deciding how to call the tool. The text is short but poorly structured and not front-loaded with useful meaning.

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 nested objects, zero schema description coverage, and no output schema, the description should explain what the endpoint returns and how the query parameter works. Instead it delegates entirely to describe_operation while giving no descriptive content of its own.

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 does not explain the generic 'query' object or the empty 'params' object. Pointing to describe_operation for native request schemas is mildly useful, but it does not compensate for the missing parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path ('GET /api/integrations') twice and provides an operation ID. It does not explain in plain language what an 'integration' is or how this list endpoint differs from siblings like get_integrations_by_id or the many accounting integration tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this list endpoint versus get_integrations_by_id, sync log endpoints, or other integration-related tools. The only pointer is to describe_operation for native request schemas, which is schema discovery rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integrations_by_id_c8c51c1f2cfa913528e78a74integrations: GET /api/integrations/:idC
Read-onlyIdempotent
Inspect

GET /api/integrations/:id. GET /api/integrations/:id. Operation ID: c8c51c1f2cfa913528e78a74; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered without the description. The description adds nothing beyond that — no statement of what is retrieved, whether it 404s for unknown ids, or auth prerequisites. The only added value is the pointer to describe_operation for schemas.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the first two sentences are identical duplicates that carry zero incremental information. The only substantive content — the operation ID and the describe_operation pointer — is buried after the repetition.

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?

There is no output schema, so the description should convey at least what shape of data comes back; it does not. With a nested `params` object, an untyped `query` object, and zero schema descriptions, the definition leaves an agent unable to call this confidently beyond pasting an id.

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 is expected to compensate, and it largely does not. The ':id' in the repeated path hints that id is a path parameter, but the free-form `query` object parameter is never mentioned and neither is any format or constraint for the id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally the endpoint path repeated twice — 'GET /api/integrations/:id. GET /api/integrations/:id.' — which restates the title without saying what an integration is, what fields it returns, or how it differs from the sibling list tool get_integrations_b405361088b53adc4ec4247b or get_integrations_by_id_sync_logs. A reader can infer 'fetch one integration by id,' but only from the raw path, not from explanatory prose.

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 call this versus the sibling integrations-list tool or the sync-logs-by-id tool. The only routing hint is 'describe_operation provides native request schemas,' which points at a metadata tool rather than explaining use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integrations_by_id_sync_logs_406bcbf1b864ec74715f14e5integrations: GET /api/integrations/:id/sync-logsC
Read-onlyIdempotent
Inspect

GET /api/integrations/:id/sync-logs. GET /api/integrations/:id/sync-logs. Operation ID: 406bcbf1b864ec74715f14e5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds no behavioral context of its own — nothing about pagination, retention window, or what a sync log entry contains — so it earns little credit above the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated word-for-word, which is pure waste. The leading endpoint path is front-loaded, but the operation ID and describe_operation pointer consume the remaining budget without adding much.

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, 0% parameter description coverage, a nested free-form query object, and no annotations gap to lean on for input semantics, the description is well short of what an agent needs to call this correctly — particularly for the query parameter and expected log fields.

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 2 parameters, so the description must compensate and does not. The ':id' path segment implies the required params.id is an integration identifier, but the free-form 'query' object is left completely unexplained, and no format or filtering semantics are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool name/title as a raw HTTP path, which does convey 'fetch sync logs for an integration id' but only obliquely via the URL. It gives no natural-language statement of purpose and does nothing to distinguish this from the many sibling endpoints (get_integrations_by_id, get_accounting_integration_sync_jobs, get_redline_tasks_by_id_syncs).

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 or when-not-to-use guidance and no comparison to alternatives. The only actionable hint is the note that describe_operation exposes native request schemas, which is a procedural pointer rather than a selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_assignments_e36d538f58d5709621af67a4inventory: GET /api/inventory/assignmentsD
Read-onlyIdempotent
Inspect

GET /api/inventory/assignments. GET /api/inventory/assignments. Operation ID: e36d538f58d5709621af67a4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered externally. The description adds nothing beyond that — no pagination behavior, filtering behavior, or response characteristics for a 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short but not concise in a useful way: the same endpoint string appears twice, and the operation ID hash consumes space without informing an agent. Under-specification rather than economy.

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 nested-schema list operation with no output schema and no parameter documentation, the description should carry the burden; it only gestures at describe_operation. An agent cannot determine what is returned, how to filter, or what query accepts.

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% with two nested object parameters (query and params) whose properties are entirely undocumented, and the description supplies no parameter meaning, format, or examples to compensate. With a nested, opaque schema and zero coverage, this is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the HTTP method and path repeated verbatim ('GET /api/inventory/assignments' twice) plus an operation ID hash, which is a tautological restatement of the tool name/title. It never says what an 'assignment' is or how this differs from sibling inventory tools like get_inventory_items or get_inventory_locations.

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, when-not-to-use, or alternative routing is given. The only actionable hint is that describe_operation provides native request schemas, which is a lookup pointer rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_categories_by_id_e0598995cb1c6db226defd32inventory: GET /api/inventory/categories/:idC
Read-onlyIdempotent
Inspect

GET /api/inventory/categories/:id. GET /api/inventory/categories/:id. Operation ID: e0598995cb1c6db226defd32; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing behavioral beyond the annotations — no note on what is returned, whether missing IDs error out, or any scoping requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The route string is duplicated verbatim in the first two sentences, wasting roughly half the text, and the operation ID hash occupies space with no value to an agent selecting a tool. No information is front-loaded beyond the bare route.

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 nested-object schema with 0% description coverage and no output schema, the description should carry the burden of explaining the id and the untyped query object. It does neither, leaving the agent to call describe_operation to learn anything meaningful.

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. The ':id' path segment loosely implies params.id, but the 'query' object parameter is completely unexplained, and the description provides no format, constraint, or meaning for either parameter.

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 embeds the HTTP route 'GET /api/inventory/categories/:id', from which an agent can infer it fetches a single inventory category by identifier, and the ':id' segment distinguishes it from the sibling list tool get_inventory_categories. However, it never states in plain language that it retrieves one category, nor what a category contains, so the purpose is only implied by the raw route.

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 and no comparison to the many sibling inventory endpoints (get_inventory_categories, get_inventory_items_by_id, etc.). The only actionable pointer is 'describe_operation provides native request schemas', which is a schema-fetching instruction rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_categories_d943b3459484f2c05b3827a1inventory: GET /api/inventory/categoriesC
Read-onlyIdempotent
Inspect

GET /api/inventory/categories. GET /api/inventory/categories. Operation ID: d943b3459484f2c05b3827a1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is fully covered structurally. The description adds nothing beyond a pointer to describe_operation — no mention of pagination, filtering, or result shape — so it contributes almost no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is emitted twice verbatim, which is pure waste, and the operation ID is noise for an agent. Nothing is front-loaded except the endpoint path, so the structure fails to prioritize useful information.

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?

Given no output schema, zero schema description coverage, and a nested 'query' object accepting arbitrary properties, the description should explain what the categories list contains and how to constrain it. Instead it defers entirely to describe_operation, leaving the agent unable to call it correctly from this definition alone.

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 two parameters (query and params), and the description supplies no meaning for either. The single redeeming element is the note that describe_operation exposes native request schemas, which at least directs the agent toward discovering the parameter contract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool name and title ('GET /api/inventory/categories' twice) plus an operation ID. An agent can infer it lists inventory categories only by parsing a URL path, not from any prose statement of what the tool returns or does.

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 to use this instead of siblings such as get_inventory_categories_by_id or get_inventory_items. The only navigational hint is that describe_operation provides native request schemas, which tells the agent how to inspect it, not when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_items_92fa557cde18085a8df40ba7inventory: GET /api/inventory/itemsD
Read-onlyIdempotent
Inspect

GET /api/inventory/items. GET /api/inventory/items. Operation ID: 92fa557cde18085a8df40ba7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own — no pagination, filtering behavior, default result limits, or auth requirements — and merely repeats the route.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the size comes from duplication rather than efficiency — the same endpoint string appears twice verbatim. It is not front-loaded with anything actionable, so the brevity is under-specification rather than conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool takes two parameters with zero documented semantics, has no output schema, and exposes a free-form query object. Given that complexity, an agent cannot construct a valid or meaningful call from the description; it is forced to rely entirely on describe_operation.

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 schema itself is opaque: 'query' permits arbitrary additional properties and 'params' is an empty object with additionalProperties false. The description does not name a single supported query parameter or filter, so an agent has no way to know what can be passed; the pointer to describe_operation is the only mitigation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint string repeated twice: 'GET /api/inventory/items'. It restates the name and title rather than explaining what inventory items are returned, what the collection represents, or how it differs from siblings like get_inventory_items_by_id or get_inventory_stats. A read of a collection is implied, but nothing beyond the title is added.

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 exclusions, and no comparison to the many inventory siblings (assignments, categories, locations, stats, transactions). The only navigational hint is 'describe_operation provides native request schemas', which points at a schema lookup rather than telling the agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_items_by_id_b50de9a5f496dd83c329aa8finventory: GET /api/inventory/items/:idC
Read-onlyIdempotent
Inspect

GET /api/inventory/items/:id. GET /api/inventory/items/:id. Operation ID: b50de9a5f496dd83c329aa8f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world scope, so the safety profile is covered. The description adds nothing beyond that — no note on what is returned, whether missing ids error or return empty, or any auth/pagination context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the same route string is duplicated verbatim in the first two sentences, spending the only content budget on redundancy. The genuinely useful pointer (describe_operation) is buried at the end behind the repetition.

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?

There is no output schema, so the description should describe what a single inventory item lookup returns, but it does not. With two parameters at 0% schema coverage and no return-value context, an agent still cannot confidently predict the response shape or error 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%, so the description must compensate for two parameters (a free-form query object and a required params.id), and it does not. The ':id' path token weakly hints that params.id identifies the item, but nothing explains the format, allowed values, or purpose of the query object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route 'GET /api/inventory/items/:id' verbatim twice, which is essentially the tool title repeated. It implies retrieval of an inventory item by id but adds no verb-level explanation of what the operation actually returns or how it differs from siblings like get_inventory_items or get_inventory_categories_by_id.

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 exclusions, and no comparison to the sibling list tool get_inventory_items_92fa557cde18085a8df40ba7 is given. The only actionable pointer is that describe_operation exposes native request schemas, which is about schema discovery, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_locations_1f49f0273528c06b490b7bb7inventory: GET /api/inventory/locationsC
Read-onlyIdempotent
Inspect

GET /api/inventory/locations. GET /api/inventory/locations. Operation ID: 1f49f0273528c06b490b7bb7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing behavioral beyond that — no pagination, filtering, or result-size context, and its single added sentence just defers to another tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the first sentence is duplicated word-for-word, wasting half the text. What remains is an operation ID and a redirect, not front-loaded usefulness.

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 a nested, undocumented query object and no output schema, the description gives an agent nothing about accepted query shape or return contents. The describe_operation pointer is the only lifeline, so an agent cannot call this correctly from the definition alone.

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 schema itself is a bare query/params object with additionalProperties, so the description had to compensate and does not. It mentions no parameter names, formats, or supported filters; the only help is a delegation to describe_operation, which is indirect rather than explanatory.

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?

It does name a concrete HTTP verb and resource (GET /api/inventory/locations), so the resource is identifiable and distinguishable from get_inventory_locations_by_id. But that is raw endpoint notation with no plain-language statement of what a 'location' record contains or why an agent would list them; the sentence is repeated verbatim rather than elaborated.

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 exclusions, no comparison to siblings such as get_sitefolio_locations or get_inventory_locations_by_id. The only actionable text is a pointer to describe_operation, which is a schema-discovery redirect rather than a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_locations_by_id_465b9cf221efc20f4929ad84inventory: GET /api/inventory/locations/:idC
Read-onlyIdempotent
Inspect

GET /api/inventory/locations/:id. GET /api/inventory/locations/:id. Operation ID: 465b9cf221efc20f4929ad84; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed-world scope, so the safety profile is fully covered. The description contributes nothing further: no note on what is returned, what a missing/invalid id yields, or any auth/scope requirement. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same route string is printed twice, which is pure duplication, and the operation ID occupies space without value to an agent. There is no front-loaded statement of purpose, so the brevity is under-specification rather than concision.

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 simple read-by-id this could be short, and annotations plus schema do carry some weight, but with no output schema, zero parameter description coverage, and nested objects in the input, the description should at minimum explain the id and the query object. It currently leaves an agent to infer everything from the route.

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 nested 'params' object plus free-form 'query' object are undocumented. The only semantic hint is the literal ':id' path segment, which merely echoes the parameter name 'id' and says nothing about what identifier is expected or what 'query' does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw HTTP route repeated, which effectively restates the title ('inventory: GET /api/inventory/locations/:id'). It implies a by-id read of an inventory location, but adds no plain-language statement of what the tool does beyond the path, and gives no differentiation from siblings such as get_inventory_locations or get_inventory_categories_by_id.

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 mention of when to prefer this over the list endpoint (get_inventory_locations), and no prerequisites. The only actionable pointer is that 'describe_operation provides native request schemas', which is a schema-discovery hint rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_stats_0a9d09eae5acbcd0593dea61inventory: GET /api/inventory/statsC
Read-onlyIdempotent
Inspect

GET /api/inventory/stats. GET /api/inventory/stats. Operation ID: 0a9d09eae5acbcd0593dea61; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond that — no mention of what the stats aggregate, any scoping/filtering behavior, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first sentence is duplicated verbatim and the remaining sentence is boilerplate about operation IDs. Brevity here reflects under-specification rather than efficient front-loading.

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?

There is no output schema and no annotations covering return values, so the description needed to explain what inventory statistics are returned. For a nested-object, 2-parameter stats endpoint, the definition leaves an agent unable to predict the result or how to parameterize it without a separate describe_operation call.

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 0% and the schema is a generic query/params wrapper with no documented properties. The description does point to describe_operation as the source of the native request schema, which is the one useful piece of parameter context, but it does not explain any parameter's meaning or format itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/inventory/stats' twice plus an opaque operation ID. It names no business object fields or aggregation scope (what 'stats' means for inventory), so an agent cannot distinguish it from siblings like get_inventory_items or get_inventory_transactions by content, only by the raw URL fragment.

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 guidance is 'describe_operation provides native request schemas', which is a schema-discovery pointer, not a when-to-use rule. There is no statement of which questions this stats endpoint answers versus the many sibling inventory endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inventory_transactions_af69ee64ace72613a1258ac3inventory: GET /api/inventory/transactionsC
Read-onlyIdempotent
Inspect

GET /api/inventory/transactions. GET /api/inventory/transactions. Operation ID: af69ee64ace72613a1258ac3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond a repeated endpoint string; the sole value-add is noting describe_operation holds the native request schemas.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes a full sentence repeating the endpoint path verbatim, and the remaining sentence is a metadata pointer rather than substance. Front-loading is present only because the whole text is a stub.

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 nested-object params at 0% coverage, no output schema, and generic query/params objects, the definition is well short of what an agent needs to call it correctly. Only the describe_operation pointer prevents it from being entirely inadequate.

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% with two generic, undocumented parameters (query, params). The description compensates marginally by directing the agent to describe_operation for native request schemas, but it explains nothing about the parameters themselves.

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 identifies the resource via the endpoint path 'GET /api/inventory/transactions', so an agent can infer it lists inventory transactions. However it merely restates the title/endpoint twice with no explanation of what a transaction is or how it differs from siblings like get_inventory_items or get_inventory_assignments.

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 exclusions, and no mention of alternatives. The only navigational hint is pointing to describe_operation for schemas, which is about discovery, not usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_journal_entries_4e2a52706b38f69973605254journal-entries: GET /api/journal-entriesD
Read-onlyIdempotent
Inspect

GET /api/journal-entries. GET /api/journal-entries. Operation ID: 4e2a52706b38f69973605254; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only the pointer to describe_operation for native request schemas, and says nothing about pagination, default page size, or response shape for what is presumably a large 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, but the first is duplicated verbatim, which is pure waste rather than concision. The one genuinely informative clause (describe_operation pointer) is buried after system-generated noise like the operation ID hash.

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, 0% parameter coverage, and a nested free-form query object, the description must carry the load — and it does not. The single redeeming element is redirecting to describe_operation, which at least tells the agent where the missing schema lives, but nothing here explains the resource well enough to invoke confidently.

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 two parameters are opaque: a free-form 'query' object with additionalProperties {} and an empty 'params' object with additionalProperties false. The description does not name a single acceptable query key or explain why 'params' is empty and closed, so an agent cannot construct a valid filter without another round trip.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the name and title ('journal-entries: GET /api/journal-entries'), repeated twice. It never states what a journal entry is, what listing semantics apply (paging, filtering, fiscal period), or how it differs from close siblings like get_journal_entries_by_id or get_journal_entries_readiness.

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 directive is 'describe_operation provides native request schemas,' which is guidance about schema discovery, not about when to select this tool. No exclusions or alternatives are named, so the agent must infer selection purely from the tool name against hundreds of siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_journal_entries_by_id_981714fcb46cbbe9832c6509journal-entries: GET /api/journal-entries/:idC
Read-onlyIdempotent
Inspect

GET /api/journal-entries/:id. GET /api/journal-entries/:id. Operation ID: 981714fcb46cbbe9832c6509; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety behavior is covered. The description adds no context beyond the route and an operation ID — nothing about auth, error behavior when the id doesn't exist, or the shape of the returned entry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded, which is good, but the identical sentence is duplicated verbatim and the operation ID plus describe_operation note add no decision value for an agent already holding the schema.

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?

No output schema exists, so the description should explain what a retrieved journal entry contains, yet it does not. Combined with 0% parameter coverage and no usage framing, the definition is too thin for an agent to call it correctly without falling back to describe_operation.

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% for 2 params (one required nested 'id'), and the description says nothing about what 'id' refers to, its format, or what the optional 'query' object accepts. The pointer to describe_operation shifts the burden rather than compensating.

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 only restates the route 'GET /api/journal-entries/:id' twice; the verb+resource can be inferred as 'fetch a single journal entry by id', which does distinguish it from the list sibling get_journal_entries_4e2a52706b38f69973605254. But no prose sentence tells the agent what a journal entry is here or what the call 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus the sibling list tool or the other journal-entry endpoints (e.g. get_accounting_journal_entries_true_up, get_journal_entries_readiness). The only routing hint is 'describe_operation provides native request schemas', which is a schema-fetch instruction, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_journal_entries_readiness_cf0aa12bd1129665d5092397journal-entries: GET /api/journal-entries/readinessC
Read-onlyIdempotent
Inspect

GET /api/journal-entries/readiness. GET /api/journal-entries/readiness. Operation ID: cf0aa12bd1129665d5092397; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing about what is computed, whether it is a heavy aggregation, or what a 'not ready' result implies — behavior beyond the annotations is undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the first sentence is duplicated verbatim and the operation ID is opaque noise. Nothing is front-loaded that helps the agent decide anything, so the brevity reflects under-specification rather than economy.

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, an opaque nested-object input, and no annotations explaining semantics, the description is the only place to convey what readiness output contains — and it does not. The describe_operation pointer is the sole aid, which is insufficient for a purpose-built readiness endpoint.

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 both parameters (query, params) are opaque open objects with no documented properties. The description does not describe any expected keys, but the reference to describe_operation at least tells the agent where a real schema may be found — a partial compensation, not a full one.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path restated twice plus an operation ID; it never explains what 'readiness' for journal entries means (pending entries? close readiness? validation status?). The title already carries the same information, so the description adds no distinguishing semantics against siblings like get_journal_entries or get_review_readiness.

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 to call this versus get_journal_entries or get_review_readiness, and no preconditions. The only usable pointer is the note that describe_operation provides native request schemas, which is a workflow hint but not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lease_determination_by_leaseId_7c3a36b7647aacec41762d2flease-determination: GET /api/lease-determination/:leaseIdD
Read-onlyIdempotent
Inspect

GET /api/lease-determination/:leaseId. GET /api/lease-determination/:leaseId. Operation ID: 7c3a36b7647aacec41762d2f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no note on auth requirements, error behavior, or whether a determination can be missing/404 for an unknown lease.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single content sentence is duplicated verbatim, which is pure waste, and the remaining line is an operation ID plus a pointer to another tool rather than front-loaded purpose information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object, zero-coverage-schema tool with no output schema, the description leaves an agent unable to predict request shape or return content. It supplies neither parameter meaning nor the response structure that the absent output schema would otherwise provide.

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, so the description must compensate and does not. It never explains that leaseId is a path parameter with a 1-2000 char constraint, nor what the free-form 'query' object accepts (filters, expansion flags, version selectors).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the HTTP path in the title/name twice ('GET /api/lease-determination/:leaseId. GET /api/lease-determination/:leaseId.') without saying what a lease determination actually is or what the response contains. The verb is only the HTTP method, so an agent learns the resource name but nothing about its semantics or how it differs from sibling tools like get_lease_determination_by_leaseId_snap.

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 statement of when to use this tool, when not to, or which sibling to prefer. The only actionable hint is the pointer to describe_operation for native request schemas, which addresses schema discovery rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lease_determination_by_leaseId_snap_2d46b6a22add83eb9bee00a4lease-determination: GET /api/lease-determination/:leaseId/snapshotsD
Read-onlyIdempotent
Inspect

GET /api/lease-determination/:leaseId/snapshots. GET /api/lease-determination/:leaseId/snapshots. Operation ID: 2d46b6a22add83eb9bee00a4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds nothing beyond noting that describe_operation exposes native request schemas, and says nothing about whether snapshots are point-in-time historical records, ordering, or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, one of which is a verbatim duplicate of the other, and the non-duplicated sentence is a pointer to another tool. There is no wasted verbosity in the usual sense, but the content is under-specified rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, nested query object, 0% parameter coverage, and a completely opaque name — yet the description supplies none of the missing context. An agent cannot tell what it will receive or how to shape the query object.

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 tool has two parameters, including a free-form 'query' object with additionalProperties that is completely unspecified. The description does not mention leaseId, the query object, or any filtering capability, so it provides zero meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw HTTP route 'GET /api/lease-determination/:leaseId/snapshots' twice, which effectively restates the tool title. An agent can infer it retrieves snapshots for a lease, but there is no plain-language statement of what a 'lease determination snapshot' is or what the response contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no distinction from the sibling 'get_lease_determination_by_leaseId_7c3a36b7647aacec41762d2f' (the non-snapshot variant) or from 'describe_operation'/'execute_read'. The only actionable sentence points at describe_operation for schemas, not at when this tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leasehold_improvements_9c73090a5e86791b9b1ae00dleasehold-improvements: GET /api/leasehold-improvementsD
Read-onlyIdempotent
Inspect

GET /api/leasehold-improvements. GET /api/leasehold-improvements. Operation ID: 9c73090a5e86791b9b1ae00d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is fully covered without the description. The description adds nothing behavioral beyond pointing at describe_operation for schemas — no mention of pagination, filtering, or what the collection contains, despite being an openWorldHint=false list-style GET.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, which is pure waste. What remains is an operation ID and a cross-reference, so the length reflects under-specification rather than efficient structure.

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, two undocumented nested parameters, and a read-only collection endpoint, the description should explain what is returned and how to shape the query. The only partial compensation is the redirect to describe_operation, which leaves the agent unable to call this confidently from the description alone.

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 both parameters are opaque objects (a free-form 'query' with additionalProperties and an empty 'params'). The description supplies no parameter meaning at all; the sole mitigation is the generic pointer to describe_operation, which provides no in-place semantics for these two nested parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the endpoint path 'GET /api/leasehold-improvements' twice, which restates the tool name and title without saying what a leasehold improvement record is or what the response contains. It is a verb+resource, but nothing distinguishes it from siblings such as get_leases_by_leaseId_leasehold_improve_0f4adbfc or the other leasehold-improvement variants.

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 to use this endpoint versus the lease-scoped leasehold-improvement siblings, nor any prerequisite or filter context. The only actionable hint is 'describe_operation provides native request schemas', which tells the agent to look elsewhere for input details rather than when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lease_reassessments_869e75f386f3a30488016b42lease-reassessments: GET /api/lease-reassessmentsC
Read-onlyIdempotent
Inspect

GET /api/lease-reassessments. GET /api/lease-reassessments. Operation ID: 869e75f386f3a30488016b42; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered externally. The description adds nothing beyond that: no pagination behavior, no filtering semantics, no response shape, and no rate-limit or auth context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sentence is short, but the first sentence is duplicated verbatim and the operation ID carries no meaning for an agent. Under-specification, not verbosity, is the real problem, so brevity earns no credit here.

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?

This is a listing endpoint with nested-object parameters, no output schema, and no description of return contents, pagination, or the meaning of 'reassessment'. For a tool whose structured fields supply almost nothing, the description is far too thin for an agent to call it confidently.

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?

There are two undocumented parameters (a free-form 'query' object and an empty 'params' object) with 0% schema description coverage, and the description does not explain either. Pointing at describe_operation is a redirect to another tool rather than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just restates the endpoint path twice ('GET /api/lease-reassessments. GET /api/lease-reassessments.') and an opaque operation ID. It never says what a reassessment is, what it returns, or how it differs from siblings like get_leases_by_leaseId_reassessments or get_reassessments_pending.

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 exclusions, and no mention of the closely related reassessment siblings. The only actionable direction is that describe_operation provides native request schemas, which is a schema-lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_0c975b3ee292145149f87dadleases: GET /api/leases/:idC
Read-onlyIdempotent
Inspect

GET /api/leases/:id. GET /api/leases/:id. Operation ID: 0c975b3ee292145149f87dad; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing on return shape, error behavior (e.g., 404 for unknown id), or auth requirements, so it contributes no behavioral value 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and wastes the front-loaded position on a REST path rather than a purpose statement. The final clause about describe_operation is the only non-redundant content.

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?

No output schema exists, so the description should at least indicate what a lease record contains or how errors surface; it does neither. Combined with 0% parameter coverage and no differentiation from numerous sibling lease endpoints, an agent cannot confidently select this tool from the description alone.

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 does not mention either parameter. It never explains that the required `params.id` is the lease identifier, its expected format, or what the free-form `query` object is for (expansion/filtering?). With zero documented parameters, the description should compensate and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the title restated twice: "GET /api/leases/:id" carries no resource semantics beyond the raw REST path. It does not say what a lease is, what fields come back, or how this differs from the large family of sibling lease-by-id endpoints (documents, audit logs, rent schedules, etc.).

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 or when-not-to-use guidance is given; nothing distinguishes it from other get_leases_by_id_* siblings. The only routing hint is that describe_operation exposes native request schemas, which is a schema-lookup pointer rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_accounting_workbook_va_7c80d0fe18aa002d492655edleases: GET /api/leases/:id/accounting-workbook-validationD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/accounting-workbook-validation. GET /api/leases/:id/accounting-workbook-validation. Operation ID: 7c80d0fe18aa002d492655ed; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond them, and the only extra information, that an operation ID exists and that describe_operation provides native schemas, describes how the tool was generated rather than its runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the same endpoint string appears twice and the operation-ID sentence serves the tooling rather than the caller. There is no front-loaded statement of what the call returns.

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?

There is no output schema and no description of the response payload, so an agent has no idea what a validation result looks like or which fields it should read. Given that the purpose is an opaque 'validation' endpoint, that omission is material.

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 parameters include a nested object with an undescribed id. The description does not mention either the path param or the free-form query object, so it compensates for none of the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path and its own title verbatim, twice. It does convey that this reads an accounting-workbook-validation resource scoped by lease id, but it never explains in plain language what a 'validation' result contains, so an agent cannot distinguish it from siblings such as the many other get_accounting_leases_by_id_* tools in the sibling list.

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 this tool should be used rather than the other lease-accounting tools (amortization, classification, journal entries, measurement, etc.). The only actionable pointer is to describe_operation, which is a mechanism rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_audit_flags_fdedafe792f51a452dfe575eleases: GET /api/leases/:id/audit-flagsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/audit-flags. GET /api/leases/:id/audit-flags. Operation ID: fdedafe792f51a452dfe575e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds nothing behavioral: no indication of auth requirements, pagination, result shape, or what an audit flag represents. The operation ID string is identifier metadata, not 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is repeated twice verbatim, wasting half the text, followed by an opaque operation hash. There is no front-loaded purpose statement beyond the raw endpoint path.

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?

No output schema exists, so the description should describe the returned audit flags and the query-filter capability; it does neither. With a nested free-form query object and zero parameter documentation, an agent has no way to call this correctly beyond passing an id.

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 2 parameters, so the description must compensate and does not. The ':id' in the path weakly implies the required lease id, but the free-form 'query' object (additionalProperties with no documented keys) is left entirely unexplained.

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 echoes the REST path 'GET /api/leases/:id/audit-flags', which does encode a verb (fetch) and a resource (audit flags for a specific lease). But it is a verbatim restatement of the title and never explains in plain language what 'audit flags' are or how they differ from the sibling get_leases_by_id_audit_logs.

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 guidance offered is 'describe_operation provides native request schemas', which is a pointer to a schema-lookup helper, not a when-to-use rule. There is no statement of when this endpoint should be chosen over get_leases_by_id_audit_logs or get_leases_by_id_field_changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_audit_logs_8bc4abd67d83c766a42fb881leases: GET /api/leases/:id/audit-logsD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/audit-logs. GET /api/leases/:id/audit-logs. Operation ID: 8bc4abd67d83c766a42fb881; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is fully covered. The description adds no behavioral context of its own — no note on pagination, ordering, retention window, or the fact that the :id must be a lease id — offering nothing beyond the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identical endpoint sentence is duplicated verbatim, which is pure waste, and the only substantive information (operation ID, describe_operation pointer) is buried in a trailing clause rather than front-loaded.

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 an opaque untyped query object, no output schema, and 0% parameter documentation, the description leaves an agent unable to know what filters are supported or what the response contains. It also does not mention the sibling audit-log tooling an agent could confuse it with.

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% for two parameters (a free-form query object and params.id), so the description must compensate and does not. It never explains the query object's purpose despite the nested-object structure, nor does it state that :id is a lease identifier with any constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool name/title ('GET /api/leases/:id/audit-logs'), repeated twice. From the URL path an agent can infer it fetches audit logs for a given lease, but there is no plain-language statement of purpose and nothing distinguishing it from the dozens of sibling 'get_leases_by_id_*' sub-resource 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?

No guidance on when to use this versus alternatives (e.g. get_leases_by_id_field_changes or get_contracts_by_id_audit_logs). The only actionable pointer is that describe_operation carries the native request schemas, which is a discovery hint rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_common_control_2866a3004e0dda006428f41bleases: GET /api/leases/:id/common-controlC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/common-control. GET /api/leases/:id/common-control. Operation ID: 2866a3004e0dda006428f41b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no rate limits, no data freshness, no pagination, no note on what fields the endpoint returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the length comes at the cost of value: the same endpoint path is duplicated verbatim, and the second sentence is opaque boilerplate about describe_operation rather than information about this tool.

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, 0% parameter documentation, and an opaque resource name, the description should carry real explanatory burden but does not. An agent knows only the URL and that it is a read operation (from annotations), which is insufficient to confidently call it or interpret results.

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 either parameter. The path template hints that :id is a lease identifier, but the undocumented 'query' object parameter receives no explanation anywhere, 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw endpoint path 'GET /api/leases/:id/common-control' verbatim, twice. It never explains what 'common control' data is or what the response represents, so an agent cannot distinguish this from sibling tools like get_leases_by_id_common_control_terms or the many other per-lease sub-resource getters.

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 exclusions, and no mention of alternatives. The only actionable pointer is 'describe_operation provides native request schemas,' which is about schema discovery, not about when this tool should be chosen over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_common_control_terms_e135d79d3cec949dda91fa66leases: GET /api/leases/:id/common-control/termsD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/common-control/terms. GET /api/leases/:id/common-control/terms. Operation ID: e135d79d3cec949dda91fa66; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing about payload size, pagination, permissions, or what the terms response contains, and the duplicate path line adds no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identical endpoint sentence is pasted twice back-to-back, pure redundancy. What remains is a single metadata sentence about the operation ID and describe_operation, so there is no front-loaded purpose statement worth reading.

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 nested-object GET with an undocumented query parameter, no output schema, and no annotations explaining response shape, the description is not complete enough to call the tool confidently. It omits return value structure, filtering behavior, and error conditions entirely.

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 provides no parameter explanations. The ':id' path fragment only echoes the schema's already-named 'id' property, and the undocumented 'query' object parameter gets no mention at all, 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare restatement of the endpoint path, repeated twice, which essentially duplicates the tool name and title. It conveys only that this is a GET on a lease's common-control terms collection, with no explanation of what 'common control terms' are or what the resource contains.

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 actionable guidance is the pointer that describe_operation provides native request schemas, which is a schema-discovery hint rather than a when-to-use rule. Nothing distinguishes this tool from the many sibling lease sub-resource getters, and no alternatives or exclusions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_compliance_checklist_18502f7a2eac16d92abf868dleases: GET /api/leases/:id/compliance-checklistD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/compliance-checklist. GET /api/leases/:id/compliance-checklist. Operation ID: 18502f7a2eac16d92abf868d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds nothing about what the compliance checklist returns, its shape, or any scoping or permission behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short but due to under-specification rather than conciseness: the same endpoint sentence is duplicated verbatim, so one of the two sentences is pure waste.

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?

No output schema exists, yet the description never describes the return value, and it leaves the only required parameter and the query object entirely unexplained. For a domain-specific compliance read endpoint, this is well short of what an agent needs.

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%, so the description must compensate — instead it says nothing about the required 'id' path parameter or the free-form 'query' object. An agent gets no information about format, valid values, or filtering semantics from either source.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/leases/:id/compliance-checklist' twice and gives an operation ID. It conveys no purpose beyond the URL itself and offers nothing to distinguish it from near-identical siblings such as get_leases_by_leaseId_compliance_8109b0f17d43557bc39a933b.

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 call this versus alternatives. The single actionable hint is 'describe_operation provides native request schemas', which tells the agent where to look for schema info but not when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_custom_fields_definiti_8dc48ea197dab8b8b657400dleases: GET /api/leases/:id/custom-fields/definitionsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/custom-fields/definitions. GET /api/leases/:id/custom-fields/definitions. Operation ID: 8dc48ea197dab8b8b657400d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered elsewhere. The description adds nothing about what a 'definition' contains, whether query filtering/pagination is supported, or any auth/scope requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two identical sentences plus an operation-ID boilerplate line; the duplication is waste rather than emphasis, and there is no front-loaded explanation of behavior.

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 nested-object request with a free-form query parameter and no output schema, the description is far too thin: it explains neither the response shape of custom-field definitions nor how the query object constrains results.

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 two parameters (id and an untyped query object) are undocumented both in the schema and in the description. The path template ':id' hints the id is a lease identifier, but nothing explains the query object's accepted keys or the id's format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the URL path repeated verbatim, so it does technically name a verb and resource (GET custom-field definitions for a lease). But it is pure restatement of the tool name/title with no elaboration, and it does nothing to distinguish this from the many sibling tools such as get_leases_by_id_custom_fields_values or get_contacts_custom_fields_definitions.

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 is given. The only hint is that describe_operation provides native request schemas, which is a routing nudge but not a statement of when this tool should be chosen over the sibling definitions/values endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_custom_fields_values_ec216f2e5b0fb13c8d7420b5leases: GET /api/leases/:id/custom-fields/valuesC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/custom-fields/values. GET /api/leases/:id/custom-fields/values. Operation ID: ec216f2e5b0fb13c8d7420b5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no mention of pagination, response shape, or tenant/lease scoping; the only extra sentence is a meta-pointer to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first two sentences are byte-identical duplicates, so half the text is pure waste. The useful meta-guidance (operation ID, describe_operation) is tacked on at the end rather than front-loaded.

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 zero parameter descriptions, a nested free-form `query` object, and no output schema, this description is materially incomplete — an agent cannot tell what the query bag is for or what comes back without calling describe_operation. It is essentially a machine-generated stub.

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 input schema documents neither `params.id` (a plain string of length 1-2000) nor the free-form `query` object. The description does nothing to compensate: it never explains that `id` is the lease identifier or what filters `query` accepts, even though `query` is an additionalProperties:{} bag whose semantics are entirely undiscoverable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool name/title path, 'GET /api/leases/:id/custom-fields/values', repeated twice. It never says in prose that this returns the custom-field values for a specific lease, nor does it distinguish it from siblings like get_leases_by_id_custom_fields_definiti_8dc48ea197dab8b8b657400d, which returns definitions rather than values.

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 guidance is a pointer that 'describe_operation provides native request schemas', which tells the agent how to inspect the operation, not when to call this tool versus the dozens of other leases sub-resource GETs. No exclusions, prerequisites, or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_custom_sections_b735ccb05f081531cc5d54f7leases: GET /api/leases/:id/custom-sectionsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/custom-sections. GET /api/leases/:id/custom-sections. Operation ID: b735ccb05f081531cc5d54f7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no return shape, no pagination behavior, no note on whether custom sections are ordered or nested, and no auth/entitlement caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is very short, but the first sentence is duplicated verbatim and the operation ID adds no decision-relevant information for an agent. Short yet wasteful rather than tight.

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 a nested free-form query object, 0% schema coverage, and no output schema, the description leaves the agent unable to predict what is returned or how to shape the query. The pointer to describe_operation is the only compensating element, and it offloads rather than informs.

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 two parameters, including a free-form nested 'query' object with additionalProperties. The description contributes only the URL template, which weakly signals that 'params.id' is a lease identifier; it says nothing about the query object, filtering, or field selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just repeats the URL path verbatim, twice, and the same string is already the tool title. It implies 'fetch custom sections for a lease', but it adds no scoping, no distinction from the many sibling lease sub-resource readers (e.g. get_leases_by_id_custom_fields_values, get_leases_by_id_common_control), and no statement of what a 'custom section' is.

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 or when-not-to-use guidance. The only procedural hint is that describe_operation 'provides native request schemas', which tells the agent how to get a schema, not when this tool is the right choice versus the dozens of other leases-by-id endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_date_relationships_3f7a9d92f645c121903dab0cleases: GET /api/leases/:id/date-relationshipsD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/date-relationships. GET /api/leases/:id/date-relationships. Operation ID: 3f7a9d92f645c121903dab0c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds no behavioral context at all (no pagination, filtering, or shape of the returned relationship data), leaving it entirely redundant with 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful sentence is duplicated verbatim, and the opaque operation ID plus schema pointer consume the rest of the text. There is no front-loaded explanation of what is returned, so the length is repetition rather than information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/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 was the only place to explain what a 'date relationship' record contains, and it does not. Combined with 0% parameter documentation and a nested query object, an agent cannot determine what it will receive or how to shape the call.

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 is responsible for compensating and does not. The required `params.id` and the free-form `query` object (additionalProperties with no constraints) are entirely undocumented; only the URL path implicitly hints that `id` is a lease id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path verbatim (twice), so it adds nothing beyond the tool name. An agent can infer 'fetch date relationships for a lease id', but the term 'date-relationships' is never defined and there is no differentiation from the many sibling lease sub-resource getters (e.g. get_leases_by_id_field_date_relationshi...).

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; the only directional hint is that describe_operation 'provides native request schemas', which points to another tool for schema detail rather than to usage context. No prerequisites, no exclusions, no described scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_documents_ai_priority_66c08aa95522a6907e752ed3leases: GET /api/leases/:id/documents/ai-priorityD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/documents/ai-priority. GET /api/leases/:id/documents/ai-priority. Operation ID: 66c08aa95522a6907e752ed3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations fully declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered elsewhere. The description adds nothing beyond the path—no auth requirements, no pagination, no explanation of what 'ai-priority' ordering means or whether the query object filters results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wasted: the same sentence is duplicated verbatim, and an internal operation ID (66c08aa95522a6907e752ed3) is surfaced with no user-facing value. Nothing is front-loaded beyond the raw path.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object, 0%-documented-params tool with no output schema, the description should explain the id, the query object, and what ai-priority documents are. It does none of this, leaving the agent to guess entirely.

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 explains neither the required 'id' path parameter nor the free-form 'query' object with additionalProperties. With low coverage and no compensating text, an agent gets no semantic guidance on how to shape the query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path twice (GET /api/leases/:id/documents/ai-priority) and gives an opaque operation ID. It never explains in prose that this retrieves AI-priority-ranked documents for a lease, nor how it differs from the many sibling document endpoints (e.g. get_leases_by_id_documents_fe5db3a4d9cfb76ab99ac616). The raw path carries the only signal.

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, no prerequisites, no exclusions. The only actionable hint is 'describe_operation provides native request schemas,' which points to a sibling tool but does not tell the agent when to pick this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_documents_by_documentI_27c61aad1a54eff9a88847fcleases: GET /api/leases/:id/documents/:documentId/counterparty-coiC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/documents/:documentId/counterparty-coi. GET /api/leases/:id/documents/:documentId/counterparty-coi. Operation ID: 27c61aad1a54eff9a88847fc; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: no mention of what COI payload is returned, whether the document must exist, or any error/permission behavior for a read that is scoped to both a lease and a document.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful line is duplicated verbatim, which is pure waste, and the remaining content is a machine ID plus a pointer to another tool. Nothing is front-loaded in human-readable terms about what the call returns.

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 read-only, annotated, parameterless-output endpoint the bar is modest, and the path does encode the resource hierarchy (lease → document → counterparty COI). Still, with 0% schema coverage and no output schema, an agent gets no information about the response shape or the meaning of the document-scoped COI, leaving a real 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%, so the description must compensate but does not. The path template implies 'id' is a lease ID and 'documentId' a document ID, but there is no clarification of formats, whether these are UUIDs or external IDs, or how the optional 'query' object is used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the URL path verbatim twice, which is essentially a restatement of the tool name/title rather than an explanation. 'counterparty-coi' implies a certificate-of-insurance document scoped to a lease, but the description never says so in plain language or distinguishes this from the many sibling lease-document endpoints.

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 and no alternatives named. The only pointer is 'describe_operation provides native request schemas', which is a schema-lookup hint, not usage context — and it defers the caller to another tool rather than explaining when this endpoint is appropriate versus e.g. get_leases_by_leaseId_documents_by_docu_*.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_documents_fe5db3a4d9cfb76ab99ac616leases: GET /api/leases/:id/documentsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/documents. GET /api/leases/:id/documents. Operation ID: fe5db3a4d9cfb76ab99ac616; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is fully covered without help. The description adds nothing beyond that — no note on whether results are paginated, whether documents include metadata or links, or how many are returned. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but it wastes a full sentence duplicating the route verbatim and front-loads an opaque URL rather than a meaningful statement of what is returned.

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?

No output schema exists and parameters are undocumented, so the description should carry the burden of explaining return shape and filtering; it does neither. The only real information conveyed is the read-only safety profile, which annotations already supply.

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 tool has two parameters (a free-form `query` object and `params.id`). The path fragment implies `:id` is a lease identifier, but the description never explains what `query` accepts or what the id refers to, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the route twice ("GET /api/leases/:id/documents. GET /api/leases/:id/documents.") without translating it into plain-language purpose. An agent can infer it reads documents belonging to a lease, but nothing distinguishes it from the many sibling document endpoints such as get_leases_by_id_documents_by_documentI... or get_leases_by_id_documents_ai_priority....

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 versus the sibling document tools. The only routing hint is that describe_operation 'provides native request schemas,' which is a generic pointer rather than a use case or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_field_changes_6300c04056b471a5a828d43bleases: GET /api/leases/:id/field-changesC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/field-changes. GET /api/leases/:id/field-changes. Operation ID: 6300c04056b471a5a828d43b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of result shape, pagination, or scope of returned changes — and the duplicated path line carries no behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first and second sentences are identical restatements of the path, so a full sentence is wasted. The operation ID and the describe_operation pointer are the only non-redundant content, and they are not front-loaded as the primary information.

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-only endpoint with a nested 'query' object and no output schema, the description should clarify what field changes are returned and how the query bag is used. Instead it repeats the path and defers all substantive info to another tool, leaving an agent unable to call it correctly without an extra lookup.

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 explains neither the required 'id' path param nor the open-ended 'query' object. It only redirects to describe_operation for schemas rather than adding meaning, which slightly mitigates but does not compensate for the documentation gap.

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 twice restates the HTTP path 'GET /api/leases/:id/field-changes', which conveys a specific verb and resource (field-change history for a lease). However, it never elaborates what a 'field change' record is, and among hundreds of get_leases_by_id_* siblings it offers no distinguishing phrasing beyond the path itself.

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 to use this vs. the many other lease sub-resource tools, nor any exclusions or prerequisites. The only navigational hint is that describe_operation holds the request schemas, which is a reference, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_field_date_relationshi_9cd94ad3b67909d9051fa234leases: GET /api/leases/:id/field-date-relationshipsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/field-date-relationships. GET /api/leases/:id/field-date-relationships. Operation ID: 9cd94ad3b67909d9051fa234; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond the operation ID and a generic describe_operation pointer — no pagination, no return shape, no scoping notes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identical endpoint sentence is duplicated verbatim, wasting half the text. The remaining content (operation ID, describe_operation pointer) is boilerplate rather than front-loaded substance.

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 an undescribed 'query' catch-all, no output schema, no annotations gaps, and no explanation of what field-date relationships contain, the description is insufficient. An agent cannot tell what it will receive or how to shape the query without calling describe_operation.

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 parameter is described in the description: the required lease 'id' and the free-form 'query' object are undocumented. The describe_operation pointer is a weak compensating hint but leaves the agent needing a second call to understand inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path restated twice plus an operation ID. It names a resource ('field-date-relationships' under a lease id), which is marginally better than a pure tautology, but it never explains what these relationships are or how they differ from the near-identical sibling get_leases_by_id_date_relationships_3f7a9d92f645c121903dab0c.

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 to use this tool versus the many lease sub-resource siblings. The only actionable hint is the pointer to describe_operation for native request schemas, which is a schema-discovery aid rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_notices_by_noticeId_pd_74a08f96a6915b4a6b4d5877leases: GET /api/leases/:id/notices/:noticeId/pdf-urlC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/notices/:noticeId/pdf-url. GET /api/leases/:id/notices/:noticeId/pdf-url. Operation ID: 74a08f96a6915b4a6b4d5877; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond a pointer to describe_operation — it does not say whether the returned pdf-url is signed, time-limited, requires auth, or whether it returns a redirect vs a JSON body. For a URL-minting endpoint, those traits matter and are undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The only substantive content is the endpoint path, which is duplicated verbatim, plus an opaque operation ID hash that adds no meaning for an agent. There is no front-loaded statement of what the caller gets back.

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?

No output schema exists, so the description was the only place to explain what a 'pdf-url' response looks like (URL format, expiry, whether it is a JSON field or direct download). With 0% param coverage and a nested query object, the definition leaves the agent guessing on nearly everything except HTTP verb and path.

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 with low coverage the description must compensate and it does not. The path template at least maps :id and :noticeId to their roles (lease id, notice id), but no format, examples, or constraints (minLength 1, maxLength 2000) are explained. The 'query' object parameter is not mentioned at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description consists of the raw endpoint path repeated twice ('GET /api/leases/:id/notices/:noticeId/pdf-url'), which effectively restates the tool name and title. An agent can infer it fetches something PDF-URL-related for a notice on a lease, but there is no verb+resource phrasing that distinguishes it from siblings like get_leases_by_id_notices_e11d3590 or get_contracts_by_id_notices_by_noticeId. This is closer to tautology than to a stated purpose.

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 use this tool versus the many sibling notice/lease tools. The only actionable pointer is 'describe_operation provides native request schemas', which is a schema lookup aid rather than usage context. No prerequisites, no when-not-to-use, no alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_notices_e11d3590a621a977b7e8294bleases: GET /api/leases/:id/noticesC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/notices. GET /api/leases/:id/notices. Operation ID: e11d3590a621a977b7e8294b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds no behavioral context of its own — no pagination, filtering, auth, or return-shape notes — beyond pointing to describe_operation for request schemas.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Only two clauses, and one is an exact duplicate of the other, so half the text is wasted. Front-loading is irrelevant when the leading content is a raw endpoint path with no explanatory value.

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?

No output schema exists, so the description would need to carry return-shape expectations, and with 0% parameter coverage it should also explain the nested `params.id` and `query` bag. It does neither, leaving only a redirect to describe_operation; for a lease-scoped listing tool this is well short of 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 explains neither the required `id` path parameter nor the free-form `query` object. The single clause about describe_operation providing 'native request schemas' at least tells the agent where to look for parameter detail, which keeps this above a 1, but the description itself contributes no parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the title/endpoint path, repeated twice, with no plain-language statement of purpose. An agent can infer 'fetch notices for a lease' from the path, but nothing distinguishes this from the many sibling notice tools (e.g. get_leases_by_id_notices_by_noticeId_pd_..., get_notices) or explains what a 'notice' contains in this context.

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, when-not-to-use, or alternative-tool guidance. The only guidance-like sentence points at describe_operation for request schemas, which is a schema-resolution hint rather than usage selection guidance against the numerous notice-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_option_remeasurement_g_4fd9dd1b5686ac5ccea7aff8leases: GET /api/leases/:id/option-remeasurement-gapsD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/option-remeasurement-gaps. GET /api/leases/:id/option-remeasurement-gaps. Operation ID: 4fd9dd1b5686ac5ccea7aff8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that - no note on scoping, filtering, pagination, or what a 'gap' result contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are a verbatim duplicate of the same endpoint string, which is pure waste rather than efficient front-loading. The only substantive content is the operation ID and the describe_operation pointer.

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 no output schema and fully undocumented nested parameters, the description supplies only a pointer to describe_operation. An agent can construct the URL but has no idea what the response represents or how to constrain the query object.

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 explains neither the required 'id' path parameter nor the free-form 'query' object. With two undocumented parameters including a nested open-ended object, the description completely fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name/path ('GET /api/leases/:id/option-remeasurement-gaps') twice. It adds no verb-level explanation of what an option remeasurement gap is or why an agent would fetch it, which is effectively tautological beyond the URL itself.

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 sole guidance is a pointer to describe_operation for 'native request schemas', which is a delegation, not a when-to-use statement. No alternatives among the many lease sub-resource siblings (e.g., get_leases_by_id_options_by_optionId_*) are mentioned, and no preconditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_options_by_optionId_ac_f023f1f410087f1922832bbeleases: GET /api/leases/:id/options/:optionId/accounting-eventsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/options/:optionId/accounting-events. GET /api/leases/:id/options/:optionId/accounting-events. Operation ID: f023f1f410087f1922832bbe; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no mention of what the accounting events represent, whether results are paginated or sorted, or how much data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint sentence is duplicated verbatim, wasting the front-loaded slot on repetition. What remains (operation ID, describe_operation pointer) is metadata rather than purpose, and the actual description content is only two short lines.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read endpoint with zero parameter documentation, a free-form query object, and no output schema, the description should explain what accounting events are returned and how the query object narrows them. It does none of this; an agent cannot know what a call will yield without calling describe_operation first.

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 two nested path parameters (id, optionId) plus an untyped free-form query object. The description only hints at their placement inside the URL template and gives no meaning, format, or example for either identifier, so it 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description exposes the raw endpoint path, from which an agent can infer it retrieves accounting events for a lease option. However, it is the URL restated verbatim rather than a stated purpose, and with hundreds of near-identical 'leases by id ... by optionId' siblings the specific scope (accounting events for a lease option) is only implicit in the path segments.

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 statement of when to use this versus the many sibling lease-option tools, nor any prerequisite or exclusion. The only guidance is a pointer that describe_operation provides native request schemas, which is about schema retrieval, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_options_by_optionId_sc_6ad2df750266b09bb9226dd3leases: GET /api/leases/:id/options/:optionId/schedulesC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/options/:optionId/schedules. GET /api/leases/:id/options/:optionId/schedules. Operation ID: 6ad2df750266b09bb9226dd3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds no behavioral context of its own — nothing about what the schedules response contains, ordering, pagination, or error conditions for an unknown lease/option pair.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same path string is duplicated in consecutive sentences, which is pure waste, and the description is not front-loaded with any human-readable purpose. The only sentence that earns its place is the describe_operation pointer.

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 nested-object, two-path-parameter read tool with 0% schema coverage and no output schema, the description should explain what a 'schedule' is and what the call returns. Instead it gives a path echo and a pointer to another tool, leaving an agent unable to know what it will get back.

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 'id' nor 'optionId' is documented in the schema. The only compensation the description offers is the URL template, which implies these are path identifiers for a lease and an option respectively, but it adds no format, constraint, or sourcing guidance beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path, repeated twice, which is essentially the tool name and title echoed back. It does imply the resource (schedules for a lease option), but there is no natural-language statement of purpose and no differentiation from the near-identical sibling get_leases_by_id_options_by_optionId_ac_f023f1f410087f1922832bbe.

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 actionable sentence points at describe_operation for native request schemas, which is a schema-lookup hint rather than guidance on when to use this tool versus alternatives. Nothing tells the agent when this endpoint is the right choice over other lease-option or schedule-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_payment_requests_63e69e55363a306051c18702leases: GET /api/leases/:id/payment-requestsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/payment-requests. GET /api/leases/:id/payment-requests. Operation ID: 63e69e55363a306051c18702; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety and mutability are fully covered. The description adds nothing beyond that — no pagination, filtering behavior, permission requirements, or result shape — so it earns only the minimum for not contradicting 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description literally repeats the same sentence twice ('GET /api/leases/:id/payment-requests. GET /api/leases/:id/payment-requests.'), wasting half its length. What remains is a path dump plus a boilerplate operation-ID note, with no front-loaded explanation of what a payment request is.

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?

There is no output schema, and the description does not describe what a payment request contains or how results are returned, so the agent has no model of the response. With zero parameter documentation and an unexplained free-form query object, the definition is not sufficient to call the tool confidently without first invoking describe_operation.

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 documents neither the required `id` (implicitly the lease id from the path) nor the free-form `query` object. The path token ':id' gives a faint hint about the required parameter, but nothing about what query options are accepted, which is a real gap for a 2-parameter tool with a nested free-form object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim copy of the title, itself just a raw HTTP path. It does convey that this retrieves payment requests scoped to a lease, but it restates the name/title rather than describing the operation in human terms, and it offers no differentiation from the hundreds of other lease-subresource GET 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 guidance on when to use this versus a sibling like get_leases_by_id_payments or the accounting lease payment-schedule endpoints. The only routing hint is that describe_operation 'provides native request schemas,' which is a schema-fetch pointer, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_payments_746e3bea7497b0ebecff762eleases: GET /api/leases/:id/paymentsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/payments. GET /api/leases/:id/payments. Operation ID: 746e3bea7497b0ebecff762e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond annotations — no mention of pagination, filtering, empty-result behavior, or response shape for what is presumably a 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same path string is duplicated verbatim with no content between them, wasting the small budget the description does have. It is short but not front-loaded with information beyond the raw endpoint path.

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 two-parameter, nested-object GET with 0% schema coverage and no output schema, the description leaves an agent without enough to call the tool correctly. The describe_operation pointer is the only bridge and it shifts the real documentation burden elsewhere.

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 two parameters (a nested required 'id' plus a free-form 'query') are undocumented. The description does not explain what 'id' refers to or what the arbitrary 'query' object supports, though it does point to describe_operation as the place to obtain native request schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool title/path ("GET /api/leases/:id/payments") repeated twice. It technically implies fetching payments for a lease, but it adds no purpose beyond the name and draws no distinction from the many neighboring lease sub-resource 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 guidance on when to use this versus siblings such as get_leases_by_id_payment_requests or the accounting lease payment schedule endpoints. The only actionable hint is the pointer to describe_operation for native schemas, which is a schema-access note rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_payout_config_4f1de96b464174c163fbfd76leases: GET /api/leases/:id/payout-configD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/payout-config. GET /api/leases/:id/payout-config. Operation ID: 4f1de96b464174c163fbfd76; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that – no note on what the payout config contains, whether a missing config returns 404 vs empty, or any auth details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste in a two-sentence description. The remaining operation-ID and describe_operation pointer is front-loaded only by accident.

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 nested-object, 0%-coverage schema with no output schema and no explanation of the returned payout configuration, the definition is too thin. It tells the agent the endpoint exists but not what it yields or how to shape the request.

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 2 parameters. The path string hints that 'id' is a lease identifier, but the description never states the lease-id format or what the free-form 'query' object accepts, leaving the agent dependent on undocumented schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the title's path notation twice ('GET /api/leases/:id/payout-config') and adds an operation ID. It names the verb and resource but is effectively a restatement of the name/title, with no differentiation from the many sibling lease sub-resource getters (e.g. get_payment_portal_payout_configs_33088d2a9f9701efdf217a0b).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The only actionable sentence points at describe_operation for request schemas, which is a schema-lookup hint rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_rent_collection_review_e4051956f18040ca2039f04aleases: GET /api/leases/:id/rent-collection-reviewsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/rent-collection-reviews. GET /api/leases/:id/rent-collection-reviews. Operation ID: e4051956f18040ca2039f04a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint and openWorldHint, so the safety profile is covered. The description adds nothing beyond that — no scoping, pagination, or result-shape context — leaving the lower bar set by the annotations essentially unfilled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two consecutive identical sentences plus an operation-ID suffix — the repetition is pure waste and nothing is front-loaded because there is no explanatory content to front-load. Brevity here reflects emptiness, not efficiency.

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, 0% parameter description coverage, and a nested free-form query object, the description would need to do real work. Instead it is a stub, so an agent cannot know what filters are supported or what the response contains without falling back to describe_operation.

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, and it does not. The path token ':id' loosely implies the id is a lease identifier, but the free-form 'query' object parameter is entirely undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the URL path repeated verbatim twice, which restates the name and title rather than explaining in plain language what the tool returns. It does convey via the path that this reads rent-collection reviews for a specific lease, but there is no verb-object framing and no differentiation from the near-identical sibling get_leases_by_id_rent_collection_review_f0c8a7dfd749b5fecb44e5c3.

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 mention of the duplicate sibling endpoint, and no preconditions. The only directive is 'describe_operation provides native request schemas,' which points at a meta-tool rather than explaining selection between the two rent-collection-review operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_rent_collection_review_f0c8a7dfd749b5fecb44e5c3leases: GET /api/leases/:id/rent-collection-reviews/:period/cash-journalD
Read-onlyIdempotent
Inspect

GET /api/leases/:id/rent-collection-reviews/:period/cash-journal. GET /api/leases/:id/rent-collection-reviews/:period/cash-journal. Operation ID: f0c8a7dfd749b5fecb44e5c3; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description adds nothing behavioral: no return shape, no pagination, no indication of what the cash journal contains or what a 'period' must look like. The mention of describe_operation is the only added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the same sentence is duplicated and then followed by an operation-ID note, so the text is boilerplate rather than information. Nothing is front-loaded because there is no substantive content to front-load.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested query object, a required free-form 'period' path parameter, no output schema, and 0% schema description coverage, the description leaves essentially every operational question unanswered. It is not sufficient for an agent to invoke it correctly without falling back to describe_operation.

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 supplies zero information about 'id' or 'period' beyond the raw path placeholders. The critical ambiguity — the expected format of 'period' (month? accounting period id? ISO date?) — is left entirely unresolved, which is exactly what the description should compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title/path verbatim, twice, with no explanation of what a 'cash journal' for a rent collection review actually is. It does identify the resource hierarchy, but an agent learns nothing beyond what the tool name already encodes, and there is no differentiation from the sibling get_leases_by_id_rent_collection_review_e4051956... which presumably returns the parent review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this tool, when not to, or which sibling to prefer (e.g. the rent-collection-review tool vs. this cash-journal tool, or describe_operation for schema discovery). The only hint is that describe_operation provides native request schemas, which is a routing note rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_rent_context_ddb7211e355a9a1aa74dbb30leases: Read rent sources, option boundaries and accounting-impact indicatorsB
Read-onlyIdempotent
Inspect

Read rent sources, option boundaries and accounting-impact indicators. GET /api/leases/:id/rent-context. Operation ID: ddb7211e355a9a1aa74dbb30; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is fully covered externally. The description adds the HTTP route and operation ID for traceability but says nothing about what the 'accounting-impact indicators' actually mean, whether results are paginated, or what happens for an unknown lease id.

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 sentences, with the content description front-loaded before the route and operation metadata. The operation ID string is boilerplate but ties directly into the describe_operation pointer, so it earns modest keep.

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 read-only GET with no output schema, the definition says what domain of data comes back but not its shape, granularity, or the meaning of the three named indicator groups. Combined with zero parameter documentation, an agent can call it but cannot predict or interpret the response 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?

Schema description coverage is 0%, so the description carries the burden, yet it never explains the parameters. The route /api/leases/:id/rent-context implies the required id is a lease identifier, but the separate `query` object parameter is entirely undocumented in both schema and text.

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 (Read) and a concrete resource set (rent sources, option boundaries, accounting-impact indicators) and pins it with the route GET /api/leases/:id/rent-context. It distinguishes itself from the many other lease sub-resource siblings only implicitly through the route, not through an explicit 'unlike X' statement.

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 to reach for this versus near neighbours such as get_leases_by_id_rent_schedules_by_sche or get_accounting_leases_by_id_measurement_. The only forward pointer is to describe_operation for request schemas, which is format help rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_rent_schedules_by_sche_be108413d3eed66a6fa7b16dleases: GET /api/leases/:id/rent-schedules/:scheduleId/paymentsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/rent-schedules/:scheduleId/payments. GET /api/leases/:id/rent-schedules/:scheduleId/payments. Operation ID: be108413d3eed66a6fa7b16d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so a 2 fits. The description adds nothing behavioral: no statement of whether it paginates, filters, or what the caller gets back.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint path is printed twice verbatim, which is pure waste, followed by an operation-ID note. No front-loaded plain-language statement of what the call returns.

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?

No output schema exists, so the description must at least sketch the return shape, and it omits that entirely. Combined with an undocumented free-form query parameter and no pagination/filtering context, it's inadequate for a nested-object endpoint.

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 two path params plus a free-form 'query' object. The path template implies id=lease id and scheduleId=schedule id, but the query object is completely undocumented in both schema and description, leaving the caller guessing.

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 repeated URL path does identify the resource being fetched (payments for a specific rent schedule on a lease), so an agent can infer purpose. However it restates the raw endpoint rather than describing it in plain language, and offers no differentiation from the huge set of sibling lease sub-resource getters.

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 guidance is the note that 'describe_operation provides native request schemas', which hints at a lookup flow for the request shape but says nothing about when to use this endpoint versus the many alternatives. No prerequisites 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.

get_leases_by_id_rent_schedules_pending_43f4ce188ae504c9f15fb515leases: GET /api/leases/:id/rent-schedules/pendingC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/rent-schedules/pending. GET /api/leases/:id/rent-schedules/pending. Operation ID: 43f4ce188ae504c9f15fb515; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no note on what 'pending' means, whether results are paginated, or what determines pending status.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same path sentence is duplicated back-to-back, and an opaque Operation ID is included, which is noise for an agent. There is no front-loaded statement of what the tool returns or when to call it.

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, 0% parameter description coverage, and a nested/free-form 'query' object, the description should carry the burden of explaining the identifier and query semantics — it does none of that. An agent could construct the call but would not know what 'pending' filters or what shape to expect.

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 2 parameters (a required string 'id' and an untyped free-form 'query' object). The only semantic hint is the ':id' placeholder in the URL, implying the lease identifier, but neither 'id' format nor the accepted 'query' keys are explained anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path and title verbatim ('GET /api/leases/:id/rent-schedules/pending' appears twice). An agent can infer 'fetch pending rent schedules for a lease' only from the raw URL tokens, not from any explanatory sentence. It does not distinguish this from the many sibling lease rent-schedule tools (e.g. get_leases_by_id_rent_schedules_by_sche...).

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 to use this tool versus the numerous other lease rent-schedule and pending-item siblings (get_reassessments_pending, get_terminations_pending, etc.). The only routing hint is 'describe_operation provides native request schemas', which points to a discovery tool rather than giving usage criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_review_checklist_557ae4a24707e555764f49e8leases: GET /api/leases/:id/review-checklistC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/review-checklist. GET /api/leases/:id/review-checklist. Operation ID: 557ae4a24707e555764f49e8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context of its own — no note on permissions, pagination, or what the checklist payload represents — and merely duplicates the path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string appears twice verbatim, and the remaining sentence is an operation-ID pointer — there is essentially one sentence of content padded to three, with no front-loaded explanation of the tool's value.

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 nested-object tool with no output schema and 0% parameter documentation, the description should explain the id and query inputs and what the checklist returns; instead it provides only the raw route and a redirect to describe_operation.

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. The path template ':id' weakly implies the 'id' param is a lease identifier, but the 'query' object is completely unexplained 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare repetition of the HTTP path, which does convey 'GET the review checklist for a lease by id', but it is essentially a restatement of the title with no explanation of what a review checklist contains or how it differs from the sibling get_leases_by_id_compliance_checklist or get_contracts_by_id_review_checklist.

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 is given; the only actionable sentence points at describe_operation for request schemas, which helps with invocation mechanics but says nothing about choosing this tool over the many other lease sub-resource tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_summary_pdf_df82d1cad979fbcf76784fdcleases: GET /api/leases/:id/summary-pdfC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/summary-pdf. GET /api/leases/:id/summary-pdf. Operation ID: df82d1cad979fbcf76784fdc; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — it does not state that the response is a PDF (binary/content-type), whether the PDF is generated on demand, or any latency/size considerations, which are the behaviors an agent actually needs here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two identical sentences back-to-back waste half the text, and the remaining line is an operation-ID/describe_operation pointer. Nothing is front-loaded beyond the endpoint string.

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 PDF-returning read endpoint with a nested params/query schema and no output schema, the description omits return type, parameter meaning, and any alternative-route guidance. It is not wrong, but it is far from sufficient to invoke confidently.

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 gives no parameter information at all — it does not explain that params.id is the lease identifier or that the free-form query object exists. With a nested-object schema and no coverage, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a literal restatement of the tool name/endpoint path, repeated twice. It does convey the resource (a lease's summary PDF keyed by id), but only because the endpoint path itself does, not because the description adds explanation of what the call returns or produces.

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 and no comparison to the many sibling lease tools (e.g., get_leases_by_id_0c975b3ee292145149f87dad, get_contracts_by_id_summary_pdf_83b2bd1d0bd828cd76581a65). The only actionable hint is 'describe_operation provides native request schemas', which is a pointer, not a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_id_tracking_suggestions_4b0fddd4e628d9ad57c1d28dleases: GET /api/leases/:id/tracking-suggestionsC
Read-onlyIdempotent
Inspect

GET /api/leases/:id/tracking-suggestions. GET /api/leases/:id/tracking-suggestions. Operation ID: 4b0fddd4e628d9ad57c1d28d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered. The description adds nothing beyond repeating the path: no mention of auth requirements, result shape, pagination, or what tracking suggestions contain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single endpoint line is duplicated verbatim, and the remaining sentence is generic boilerplate shared across operations. No information is front-loaded because there is essentially no informational content to structure.

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 nested objects, a free-form query parameter, no output schema and no annotation-independent description, much is missing: what a tracking suggestion is, how the query object is used, and how it differs from its many siblings. Only the descriptive annotations keep this from being completely inadequate.

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 explains neither the required 'id' path parameter nor the free-form 'query' object. The ':id' in the URL path weakly signals a lease identifier at best, leaving an undocumented query parameter that would require reading the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the raw endpoint path 'GET /api/leases/:id/tracking-suggestions' repeated verbatim, which essentially restates the title and tool name. An agent can infer it fetches tracking suggestions for a lease, but there is no natural-language statement of what a 'tracking suggestion' is or how the result differs from the many sibling get_leases_by_id_* 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 guidance on when to use this tool versus the dozens of similar leases-by-id endpoints, nor any prerequisites. The only forward reference is the boilerplate note that describe_operation provides native request schemas, which is a schema-lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_accounting_histor_35d90a80d4acb9346b658a7eleases: GET /api/leases/:leaseId/accounting-historyC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/accounting-history. GET /api/leases/:leaseId/accounting-history. Operation ID: 35d90a80d4acb9346b658a7e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing behavioral beyond pointing at describe_operation for request schemas — no mention of the time window covered by 'history', result volume, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are identical duplicates, wasting half the text. The remaining sentence is a generic pointer to describe_operation that appears on many sibling tools and carries little tool-specific information.

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 0% parameter description coverage, the description should explain the shape of an accounting-history response and the accepted query parameters. Instead it only restates the endpoint, leaving a nested-object parameter undocumented and the return value entirely opaque.

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 2 parameters, so the description must compensate and does not. The 'leaseId' path segment is inferable from the URL, but the free-form 'query' object (additionalProperties, unrestricted) is left entirely unexplained — an agent cannot tell what filters or paging keys belong there.

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 repeats the REST path 'GET /api/leases/:leaseId/accounting-history' verbatim twice, which does convey a specific verb and resource (accounting history for a single lease). However, it never explains what 'accounting history' contains, and it does not distinguish this tool from the near-identical sibling get_leases_by_leaseId_accounting_histor_36f63bb15511bf11747bd283. Purpose is identifiable but only at the level of the raw endpoint.

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 prefer this over siblings such as get_accounting_leases_by_id_accounting__* or describe_operation. The only directional hint is 'describe_operation provides native request schemas,' which addresses schema lookup, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_accounting_histor_36f63bb15511bf11747bd283leases: GET /api/leases/:leaseId/accounting-history/compareD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/accounting-history/compare. GET /api/leases/:leaseId/accounting-history/compare. Operation ID: 36f63bb15511bf11747bd283; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing about the comparison semantics, which is the key behavioral unknown for this endpoint — what is compared against what, and whether it requires multiple periods to exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The duplicated endpoint sentence wastes the entire first half of the description. Structure is technically front-loaded but the content is redundant filler rather than substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A comparison endpoint with an unconstrained free-form query object, no output schema, and no annotation-independent explanation is left essentially undefined. An agent has no basis for constructing a correct call.

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 provides no parameter information at all. The free-form 'query' object and required 'leaseId' path param are undocumented anywhere, leaving the agent to guess what query options the compare endpoint accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path and title verbatim, twice. It never explains what an accounting-history 'compare' returns — which periods are compared, what dimensions, or how it differs from the sibling get_leases_by_leaseId_accounting_histor_35d90a80d4acb9346b658a7e. An agent cannot distinguish the two without opening both schemas.

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 the near-identical sibling. The only actionable pointer is 'describe_operation provides native request schemas', which tells the agent to go elsewhere for input details rather than when to pick this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_amendment_manual__84b24667736b7238bbbeb50cleases: GET /api/leases/:leaseId/amendment/manual/drafts/:draftIdC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/amendment/manual/drafts/:draftId. GET /api/leases/:leaseId/amendment/manual/drafts/:draftId. Operation ID: 84b24667736b7238bbbeb50c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, destructive=false, openWorld=false, so safety is covered elsewhere. The description adds zero behavioral context beyond the path — no note on draft lifecycle/state, permissions, or what happens to non-existent drafts. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint sentence is duplicated verbatim, wasting half the text, and the remaining content is a machine ID plus an indirection to another tool. Brevity is achieved through under-specification rather than density.

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?

No output schema exists, so the description should explain what a draft fetch returns, yet it says nothing about the draft object or its relationship to lease amendments. With 0% param coverage and nested input objects, the definition is not sufficient to call the tool confidently without a second lookup.

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 both required path params (leaseId, draftId) are undocumented in the schema. The description does not compensate at all — the path template merely echoes the parameter names with no format, constraint, or sourcing guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name/path twice ('GET /api/leases/:leaseId/amendment/manual/drafts/:draftId') plus an opaque operation ID. It conveys no plain-language statement of what a 'manual amendment draft' is or what retrieving it accomplishes, so the agent learns nothing beyond what the title already shows.

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 distinction from the other amendment/manual siblings (a33db819..., a885bf41...), and no prerequisites. The only pointer is the generic 'describe_operation provides native request schemas', which is a schema-lookup instruction, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_amendment_manual__a33db819d67e382aabc57f12leases: GET /api/leases/:leaseId/amendment/manual/draftsD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/amendment/manual/drafts. GET /api/leases/:leaseId/amendment/manual/drafts. Operation ID: a33db819d67e382aabc57f12; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond pointing at describe_operation for request schemas; it says nothing about what a draft is, whether drafts are versioned, or how results are ordered/paged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, but the first is duplicated verbatim, and the second is metadata bookkeeping. There is essentially no content for the size allotted; nothing is front-loaded because there is nothing substantive to front-load.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 2-parameter endpoint with 0% schema description coverage, no output schema, and a nested/free-form query object — this definition supplies none of the missing context. Everything needed to call it correctly is absent from both the schema and the description.

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 neither parameter is documented in the schema. The description mentions no parameters at all — not the required leaseId, and not the free-form 'query' object (additionalProperties: {}), which is exactly the kind of opaque parameter the description should explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path and the title ('GET /api/leases/:leaseId/amendment/manual/drafts'), repeated twice. An agent can infer it lists manual amendment drafts for a given lease from the path, but there is no plain-language statement of what it returns and no differentiation from the closely-named siblings on the same path (…amendment_manual__84b24667, …a885bf41), which are presumably other HTTP methods 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 Guidelines1/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. The only actionable instruction is 'describe_operation provides native request schemas', which is a lookup pointer, not usage criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_amendment_manual__a885bf4162284f3875fe26ealeases: GET /api/leases/:leaseId/amendment/manual/termsD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/amendment/manual/terms. GET /api/leases/:leaseId/amendment/manual/terms. Operation ID: a885bf4162284f3875fe26ea; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that: no mention of error conditions (e.g. unknown leaseId), no pagination or filtering, no indication of what the 'terms' object includes. With annotations carrying the safety story the bar is lower, but the description contributes essentially nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the single sentence is duplicated verbatim, so half the text is pure repetition. The operation-ID note is useful metadata; the doubling is waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, the schema documents neither parameter, and the name is unrecoverably generic within a family of hundreds of sibling endpoints. For a parameterized GET on a write-adjacent concept ('amendment manual terms'), the description should at minimum define the resource and the leaseId path binding; it does neither.

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 leaseId parameter or the free-form query object. The only parameter signal is the ':leaseId' placeholder embedded in the repeated URL, which at least tells the agent a lease identifier is required, but nothing about its valid values or how query filters are applied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the raw endpoint path twice and adds nothing semantic: it never explains what 'amendment manual terms' are or what the response contains. Because the sibling list contains two near-identically named tools (get_leases_by_leaseId_amendment_manual__84b246..., ...a33db8...), an agent gets no basis for telling this one apart. Only the HTTP verb in the path hints at a read operation.

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, when-not-to-use, or sibling routing guidance. The single useful pointer is 'describe_operation provides native request schemas', which tells the agent where to go for a fuller schema but not when to select this operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_amendments_audit__e872f20a97473af581b2f998leases: GET /api/leases/:leaseId/amendments/audit-logC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/amendments/audit-log. GET /api/leases/:leaseId/amendments/audit-log. Operation ID: e872f20a97473af581b2f998; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no pagination behavior, ordering of audit entries, or response shape — and merely repeats the path twice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short but wastes half its content on a verbatim duplicate of the same endpoint path, and the operation-ID blurb is procedural noise rather than front-loaded purpose.

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?

A read tool with a nested free-form query param, no output schema, and 0% schema coverage needs the description to explain parameters and return content. Instead the description defers to describe_operation, leaving the definition largely incomplete for an agent.

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%: leaseId and the free-form query object are both undocumented. The description does not compensate with any explanation of what query accepts or what leaseId refers to, only offloading that to describe_operation.

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 only repeats the REST path 'GET /api/leases/:leaseId/amendments/audit-log', from which an agent can infer it retrieves the audit log for a lease's amendments. It never states the purpose in plain language and does not distinguish it from siblings such as get_leases_by_id_audit_logs or get_contracts_by_id_audit_logs.

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 tool versus the many other lease/audit-log endpoints. The only hint is the pointer to describe_operation for request schemas, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_coi_information_789dbeb54474a38b1c8f5d7bleases: GET /api/leases/:leaseId/coi-informationD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/coi-information. GET /api/leases/:leaseId/coi-information. Operation ID: 789dbeb54474a38b1c8f5d7b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds nothing beyond that: no statement of what the endpoint returns, whether it 404s for missing leases, or any auth/tenancy requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the one substantive sentence is duplicated verbatim, and the operation ID hash is noise for an agent. Nothing is front-loaded about what the call actually yields.

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 a nested free-form query parameter, the description needs to carry the burden of explaining the payload and filter surface, and it does not. Given the annotations cover safety, the missing pieces are purpose, return shape, and query semantics — all essential here.

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 the two parameters. It does not explain that leaseId is a required path identifier, nor what the free-form 'query' object (additionalProperties: {}) accepts — a significant gap for an open-ended query bag with no enum or property hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the route 'GET /api/leases/:leaseId/coi-information' twice, which is a tautology of the name and title. It never says in plain language what COI (certificate of insurance) information is returned or how that differs from the many sibling COI/insurance tools such as get_coi_list or get_insurance_certificates.

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 among the 400+ siblings, including the closely related get_contracts_by_contractId_coi_informa_66286e62d8b284210948cf58. The only actionable pointer is that describe_operation supplies native request schemas, which is a schema lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_compliance_8109b0f17d43557bc39a933bleases: GET /api/leases/:leaseId/complianceC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/compliance. GET /api/leases/:leaseId/compliance. Operation ID: 8109b0f17d43557bc39a933b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds nothing about response behavior, pagination, or what compliance data is included beyond the safety traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, wasting space. The operation ID and describe_operation note are appended without adding useful front-loaded context about the tool's purpose.

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 a 0%-covered parameter schema, the description should carry more weight. It does not explain the response shape, what compliance data is returned, or how query parameters affect results.

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 does not explain the required leaseId or the optional query object. It merely shows leaseId in the URL template, offering no additional semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path and repeats it twice. It identifies the resource (leases + compliance), but does not explain what compliance information is returned or distinguish this from siblings like get_leases_by_id_compliance_checklist.

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 use this tool versus the many related lease-compliance or accounting tools. The only directional note is that describe_operation provides native request schemas, which is procedural rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_documents_by_docu_36dbbdba8b280ddbb69a0c92leases: GET /api/leases/:leaseId/documents/:documentId/commentsC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/documents/:documentId/comments. GET /api/leases/:leaseId/documents/:documentId/comments. Operation ID: 36dbbdba8b280ddbb69a0c92; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds nothing beyond that—no pagination, no result ordering, no permission/auth notes, nothing an agent couldn't get from 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, wasting half the text, and the remaining sentence is metadata boilerplate. No real content is front-loaded because there is no substantive content.

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 nested two-parameter resource lookup with no output schema and 0% schema description coverage, the definition supplies no information about return shape, ordering, or identifier sourcing. It is not sufficient for an agent to call this confidently without falling back to describe_operation.

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 leaseId and documentId, so the description must compensate, and it does not—it never explains what either identifier refers to or where it comes from. The path template only echoes the parameter names already visible in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the raw HTTP path plus title restated twice, so an agent must infer that this returns comments on a specific document attached to a lease. It does not state a plain-language verb+resource or distinguish this from the near-identical sibling get_leases_by_leaseId_documents_by_docu_3c2e047d083f349580beb7ee.

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 navigational guidance is 'describe_operation provides native request schemas,' which points at a schema-fetching sibling rather than explaining when to use this endpoint versus its variants. There is no if/when/when-not statement or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_documents_by_docu_3c2e047d083f349580beb7eeleases: GET /api/leases/:leaseId/documents/:documentId/redline-commentsC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/documents/:documentId/redline-comments. GET /api/leases/:leaseId/documents/:documentId/redline-comments. Operation ID: 3c2e047d083f349580beb7ee; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile needs no restating. The description contributes nothing beyond that—no mention of what redline comments look like, whether they are paginated, or whether they include resolved/deleted items. It only redirects to describe_operation for schemas, which is a schema pointer, not 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is duplicated word-for-word, which is pure waste, and the content is not front-loaded with any purpose statement. The operation ID is a machine artifact that adds no value to an agent deciding whether to call the tool.

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?

There is no output schema, so the description should say something about the returned comment objects; instead it defers everything to describe_operation. For a nested-parameter, zero-coverage, no-output-schema tool, this leaves the agent needing a second tool call just to understand the request and return shape.

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 two path parameters (leaseId, documentId) live inside a nested 'params' object with no descriptions. The description's only contribution is the URL template, which weakly implies leaseId and documentId are path identifiers—but it offers no format, constraints, or examples to compensate for the empty schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a duplicate of the title and tool name: the endpoint path is repeated twice verbatim, with no explanation of what redline comments are or what the response contains. An agent can infer 'fetch redline comments for a lease document' from the path segments, but the description itself adds no distinguishing information beyond the resource already named in the title.

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 siblings such as get_leases_by_leaseId_documents_by_docu_36dbbdba8b280ddbb69a0c92, get_negotiation_documents_by_documentId_*, or the redline analytics tools. The only forward reference is 'describe_operation provides native request schemas', which points to another tool for schema lookup rather than explaining selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_leasehold_improve_0f4adbfcd33d53d098d5d354leases: GET /api/leases/:leaseId/leasehold-improvements/:improvementId/scheduleC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/leasehold-improvements/:improvementId/schedule. GET /api/leases/:leaseId/leasehold-improvements/:improvementId/schedule. Operation ID: 0f4adbfcd33d53d098d5d354; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no note on what the schedule covers, whether an empty schedule is possible, or whether the improvement must exist — and merely repeats the path with an operation ID.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but wasteful: the same endpoint string appears twice verbatim, and the 'Operation ID' is already embedded in the tool name. Nothing is front-loaded as an explanation, so the brevity reflects under-specification rather than efficiency.

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?

The tool has a nested params object, no output schema, and zero parameter documentation, so the description carries the full explanatory burden — and it does not meet it. An agent still cannot tell what the schedule endpoint returns or how it differs from the sibling leasehold-improvements endpoint.

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 both parameters (leaseId, improvementId) are undocumented in the schema. The path template implicitly reveals that the two required parameters are path segments, which is the only added meaning; the description never states format, whether IDs are internal UUIDs or external references, or what happens with an invalid improvementId.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw endpoint path stated twice, which only restates the tool name and title rather than explaining in plain language what a leasehold-improvement schedule is or what the response contains. It does not distinguish this tool from the sibling get_leases_by_leaseId_leasehold_improve_685198e6168a3b9054f8d0ab, leaving the agent to guess which of the two leasehold-improvement endpoints returns the schedule.

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 to call this versus the sibling leasehold-improvement tool or the describe_operation/execute_read helpers. The only guidance is a pointer that describe_operation provides native request schemas, which is a hint about discovery rather than about usage conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_leasehold_improve_685198e6168a3b9054f8d0ableases: GET /api/leases/:leaseId/leasehold-improvementsD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/leasehold-improvements. GET /api/leases/:leaseId/leasehold-improvements. Operation ID: 685198e6168a3b9054f8d0ab; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the endpoint path and the pointer to `describe_operation`, such as auth requirements, pagination, or what kind of leasehold improvement data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description repeats the same endpoint sentence twice, creating redundancy rather than clarity. It is short but not front-loaded with useful selection or invocation guidance.

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?

There is no output schema, and the description does not describe the return value or the unconstrained query object. Pointing to `describe_operation` for native request schemas is a small aid, but for a two-parameter collection endpoint with 0% schema coverage, the description leaves too much unspecified.

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 schema has 0% description coverage across two parameters, so the description must compensate, but it does not. The `:leaseId` path segment indicates that `leaseId` is required, but the unconstrained `query` object is completely unexplained and the meaning of `leaseId` is not elaborated beyond the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path repeated twice. It identifies the resource as leasehold improvements for a specific lease, but it is tautological against the title and does not distinguish this tool from the nearly identical sibling `get_leases_by_leaseId_leasehold_improve_0f4adbfcd33d53d098d5d354` or the general `get_leasehold_improvements_9c73090a5e86791b9b1ae00d`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to use it, or which sibling tool to choose instead. The agent is left to infer everything from the endpoint path and tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_locations_a33500aa7ab52baeec62bdfaleases: GET /api/leases/:leaseId/locationsD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/locations. GET /api/leases/:leaseId/locations. Operation ID: a33500aa7ab52baeec62bdfa; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered outside the description. The description adds almost nothing beyond that - only the note that describe_operation provides native request schemas, which is mildly useful but concerns invocation mechanics rather than behavior of this call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and the second is an internal operation ID plus a generic pointer to describe_operation, so the content is largely filler rather than front-loaded, useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two parameters (one nested, fully undocumented) and no output schema, the description should explain what is returned and how to constrain the query object; it does neither. Nothing an agent needs in order to call this correctly is present beyond what the name and annotations already convey.

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 compensates for nothing: it never mentions the required leaseId or the free-form 'query' object, nor what filtering/sorting/field-selection that query object accepts. The path template implies leaseId, but that merely repeats the tool name rather than adding meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the URL path restated twice verbatim ('GET /api/leases/:leaseId/locations. GET /api/leases/:leaseId/locations.'), which is essentially a tautology of the title. It implies retrieving locations for a lease, but never explains what a 'location' is here (premises, sites, address records) or how it differs from the numerous sibling lease sub-resource 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?

No when-to-use guidance is given, no exclusions, and no named alternatives. The sibling list contains dozens of closely related GET-by-leaseId sub-resource tools, so an agent is left to infer selection from the path alone; the only pointer is to describe_operation, which is a schema lookup, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_modifications_2b8f1411a1dd80141aaf093aleases: GET /api/leases/:leaseId/modificationsD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/modifications. GET /api/leases/:leaseId/modifications. Operation ID: 2b8f1411a1dd80141aaf093a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no pagination, filtering behavior, response shape, or permission/auth notes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the size comes from duplication: the endpoint path is stated twice and a boilerplate note about operation IDs follows. No information is front-loaded because there is essentially no information.

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 two undocumented parameters, a nested query object, no output schema, and 0% schema coverage, the description should explain the resource and parameter intent. Instead it defers everything to describe_operation, leaving the agent dependent on a second call.

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%, so the description carries the full burden, yet it says nothing about the required leaseId or about the free-form query object. An agent cannot tell from this text what the query parameter accepts or how to shape it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description reproduces the endpoint path verbatim and then repeats it word-for-word; this is essentially the title restated, not an explanation of what lease modifications are or how the result differs from siblings such as get_modifications_by_modificationId or get_modifications_pending.

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 or when-not-to-use guidance is given. The only actionable hint is that describe_operation exposes native request schemas, which tells the agent how to fetch metadata, not when to choose this tool over the many other lease/modification endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_reassessments_4f3cb6dde3f16a9cb0ae7c7cleases: GET /api/leases/:leaseId/reassessmentsD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/reassessments. GET /api/leases/:leaseId/reassessments. Operation ID: 4f3cb6dde3f16a9cb0ae7c7c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no pagination behavior, no result shape, no ordering or filtering semantics — despite the schema providing no such detail either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the single meaningful sentence is duplicated verbatim, which is pure waste. The operation ID suffix is noise for an agent. Brevity here reflects under-specification, not efficiency.

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, 0% schema description coverage, and an unstructured nested query object, the description should carry substantial weight. It does not: nothing indicates what the endpoint returns or what the query bag accepts, leaving the agent unable to invoke it confidently beyond the required leaseId.

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% across both parameters ('leaseId' in params and a free-form 'query' object), and the description never mentions either. The free-form query bag is especially opaque — no hint about supported query keys — so the description provides zero compensation for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw endpoint path 'GET /api/leases/:leaseId/reassessments' twice. It names a resource (reassessments) and a leaseId scope, but conveys no plain-language statement of what the tool returns or what a reassessment is, so it reads as a restatement of the name/title rather than an explanation.

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 guidance is a pointer that 'describe_operation provides native request schemas', which is a meta-instruction, not a when-to-use rule. No mention of how this differs from siblings such as get_lease_reassessments_869e75f386f3a30488016b42, get_reassessments_by_id_*, or get_portfolio_reassessments_summary, leaving selection entirely to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_009d4aa744224a06546ae386leases: GET /api/leases/:leaseId/supplemental-rentC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent. GET /api/leases/:leaseId/supplemental-rent. Operation ID: 009d4aa744224a06546ae386; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no auth requirements, no pagination, no note about what supplemental rent data comprises — apart from the describe_operation breadcrumb.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same REST path sentence is repeated twice verbatim, which is pure waste; only the operation ID and the describe_operation pointer add anything. Front-loading is fine but the duplication signals auto-generation rather than deliberate drafting.

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 nested-object, 0%-coverage, no-output-schema read tool, the description should explain what supplemental rent records contain and how the query object is used. It instead defers entirely to describe_operation, leaving the agent unable to call the tool confidently without a second round trip.

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 two parameters, so the description carries the full burden and fails. The path template implies leaseId is a lease identifier, but the free-form 'query' object is never explained, and no constraints or accepted filters are given.

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 is the raw REST path 'GET /api/leases/:leaseId/supplemental-rent', which does convey a verb and a resource (supplemental rent data scoped to one lease). It never states in plain language what the endpoint returns or how it differs from the many other supplemental-rent siblings, so the agent must infer purpose from syntax alone.

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 guidance is that 'describe_operation provides native request schemas' — that is a pointer for schema discovery, not a when-to-use rule. There is no indication of when to prefer this over the 10+ sibling get_leases_by_leaseId_supplemental_rent_* tools or view_supplemental_rent_dashboard.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_1a6115fbb9df917ffa7c3055leases: GET /api/leases/:leaseId/supplemental-rent/:id/periodsC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/periods. GET /api/leases/:leaseId/supplemental-rent/:id/periods. Operation ID: 1a6115fbb9df917ffa7c3055; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds nothing beyond that — no note on what a supplemental-rent period represents, whether results are scoped to an active lease version, ordering, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are identical duplicates, and the third is internal metadata (operation ID) plus a pointer to another tool. There is almost no content, yet it is still padded by repetition rather than front-loading useful information.

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?

No output schema exists, so the description should say what a list of supplemental-rent periods contains and how the nested path (lease → supplemental-rent → periods) resolves. With two undocumented path params and no return-value guidance, an agent cannot confidently distinguish this call from neighboring period/schedule endpoints.

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 both required path parameters, so the description must compensate. The path template at least shows leaseId = lease and id = supplemental-rent record, but there is no explanation of what those identifiers resolve to or what the free-form 'query' object accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated verbatim twice, which is already the title and largely restates the tool name. An agent can infer 'GET the periods of a supplemental-rent record for a lease' from the path, but the description itself adds no articulation of what a 'period' is or how it differs from the many sibling supplemental_rent endpoints.

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 / when-not-to-use guidance and no comparison against the ~12 sibling supplemental_rent tools. The only routing hint is 'describe_operation provides native request schemas', which points at a helper tool rather than describing appropriate caller scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_205c182d110678ce5f82dfbeleases: GET /api/leases/:leaseId/supplemental-rent/:id/reconciliationC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/reconciliation. GET /api/leases/:leaseId/supplemental-rent/:id/reconciliation. Operation ID: 205c182d110678ce5f82dfbe; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds no behavioral context at all — not what a reconciliation record contains, whether it can be missing, or whether the id refers to the reconciliation or the supplemental-rent record.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The only substantive sentence is duplicated word-for-word, which is pure waste rather than front-loading. The operation-ID/describe_operation note is useful but buried after the repetition.

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, a nested params object, 0% parameter documentation, and a dense sibling namespace of near-identical supplemental-rent GETs, the description leaves the agent unable to distinguish this call or interpret its ids. Only the annotations and the describe_operation pointer prevent a floor score.

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 required path parameters, and the description does not compensate. It never explains that leaseId is the lease identifier nor disambiguates the ':id' — it is unclear whether that id identifies the reconciliation, the supplemental-rent line, or a period.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw endpoint path repeated verbatim, which merely restates the tool name and title rather than explaining what a supplemental-rent reconciliation resource is or what reading it yields. An agent learns nothing beyond the URL shape already encoded in the 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?

There is no guidance on when to fetch this reconciliation versus the many sibling supplemental-rent endpoints (portfolio, import targets, dashboard) or versus describe_operation/search_operations. The only hint is the trailing pointer to describe_operation for request schemas, which is a schema-location note, not a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_2117dba830e00d75db6cb82dleases: GET /api/leases/:leaseId/supplemental-rent/:id/reporting-calendarC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/reporting-calendar. GET /api/leases/:leaseId/supplemental-rent/:id/reporting-calendar. Operation ID: 2117dba830e00d75db6cb82d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond the route and an operation ID, and does not mention response shape, pagination, or any endpoint-specific behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short and front-loaded, but the endpoint path is duplicated verbatim, which wastes space. The operation ID and pointer to describe_operation provide some utility, but the repetition weakens structure.

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 an endpoint with no output schema and undescribed nested parameters, the description is not complete enough. It does not explain what the reporting calendar returns or how the parameters affect the result, leaving the agent dependent on describe_operation.

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 would need to compensate by explaining leaseId, id, and the optional query object. It only mirrors the path parameters and says nothing about their meaning or about the query parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the endpoint path already present in the title and tool name, rather than explaining in plain language what the reporting-calendar resource represents. It does identify the verb and route, but adds no meaningful purpose beyond the name/title.

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 use this tool versus the many sibling supplemental-rent tools. The only related instruction is to use describe_operation for native request schemas, which does not explain usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_23bcb18b6706c597778b1028leases: GET /api/leases/:leaseId/supplemental-rent/:id/sales-defaultsC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/sales-defaults. GET /api/leases/:leaseId/supplemental-rent/:id/sales-defaults. Operation ID: 23bcb18b6706c597778b1028; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no note on what the response contains, whether supplemental rent records must exist first, or any access constraints specific to sales defaults.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but the identical path sentence is duplicated verbatim, wasting half its length on a repeat. There is no front-loaded purpose statement beyond the mechanical endpoint echo.

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?

There is no output schema and no parameter documentation, so the description is the only source of meaning — yet it provides none about return shape, nested 'sales defaults' content, or error conditions. For a nested-object, zero-coverage tool this leaves the agent materially under-informed.

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 required params, so the description carries the full burden and fails: it never explains that leaseId scopes to a lease or what the second `id` identifies (supplemental rent record vs. sales-default record). Only the URL template implied by the repeated path gives any hint about the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path (GET /api/leases/:leaseId/supplemental-rent/:id/sales-defaults), which duplicates the tool name and title rather than explaining what 'sales defaults' are or what the call returns. With dozens of near-identically named sibling tools under get_leases_by_leaseId_supplemental_rent_*, an agent gets no basis to distinguish this one from the others.

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 actionable guidance is the pointer that 'describe_operation provides native request schemas', which is a workflow hint but not a when-to-use rule. Nothing says when this sales-defaults endpoint should be called instead of the other supplemental-rent endpoints, and no prerequisites 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.

get_leases_by_leaseId_supplemental_rent_33a6a00a3a6e0828c89b617aleases: GET /api/leases/:leaseId/supplemental-rent/:id/salesD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/sales. GET /api/leases/:leaseId/supplemental-rent/:id/sales. Operation ID: 33a6a00a3a6e0828c89b617a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered externally. The description adds no behavioral context such as pagination, authorization requirements, or what the sales records represent, so it contributes nothing 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes its first two sentences by repeating the identical endpoint path verbatim. The only non-duplicated content is a schema pointer, so nothing is front-loaded except the raw route.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a nested-object, undocumented-parameter read tool with no output schema and many confusingly similar siblings. A description that only restates the route and refers vaguely to describe_operation leaves the agent without enough information to invoke it confidently.

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% for two required path parameters plus an untyped query object, and the description provides no semantics for leaseId, id, or allowed query filters. It merely echoes the path template, leaving the agent to infer what each parameter identifies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely repeats the endpoint path twice and gives an operation ID; it does not explain what 'sales' data is or what the tool returns. It does convey the verb (GET) and resource path, but the purpose is effectively a tautology of the name and title.

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 use this tool versus the eleven sibling supplemental-rent GET tools or the supplemental-rent dashboard. The only pointer is that 'describe_operation provides native request schemas,' which is a schema hint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_63d1171a19f5cbdc9747328cleases: GET /api/leases/:leaseId/supplemental-rent/:id/client-fiscal-reportC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/client-fiscal-report. GET /api/leases/:leaseId/supplemental-rent/:id/client-fiscal-report. Operation ID: 63d1171a19f5cbdc9747328c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond that — no indication of permissions required, whether the report is computed on the fly, or what happens with an invalid leaseId/id combination. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The defining sentence is duplicated verbatim, and the operation ID hash adds no meaning for an agent. Brevity here reflects under-specification rather than efficiency — nearly every sentence is either a repeat or a machine-generated identifier.

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?

This is a parametrized GET with a nested params object, 0% schema description coverage, and no output schema, so the description must do real work. Instead it supplies no information about the returned report, its scope, or the ambiguity between the two string identifiers, leaving an agent able to find the endpoint but not to use it confidently.

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 carries the full burden, yet it only implicitly echoes the two path placeholders (:leaseId and :id) that already appear in the title. It never clarifies what 'id' identifies (a supplemental-rent record id vs. a report id) or what the free-form 'query' object supports, leaving the nested params object under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path restated twice ('GET /api/leases/:leaseId/supplemental-rent/:id/client-fiscal-report'), which is a tautology of the title rather than an explanation of purpose. An agent can infer the resource is a client fiscal report tied to a lease and a supplemental-rent record, but nothing explains what that report contains or how it differs from the dozen sibling tools sharing the same supplemental-rent prefix.

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 actionable guidance is a pointer to describe_operation for native request schemas, which is a schema-retrieval instruction rather than a when-to-use rule. There are no conditions for selecting this tool over the many sibling supplemental-rent and fiscal-report endpoints, and no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_7d81cec5acdd1e36aaddb57eleases: GET /api/leases/:leaseId/supplemental-rent/:termId/complianceC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:termId/compliance. GET /api/leases/:leaseId/supplemental-rent/:termId/compliance. Operation ID: 7d81cec5acdd1e36aaddb57e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds nothing beyond them: no mention of what the compliance payload contains, whether it requires a specific lease/term state, or error behavior for unknown termId.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint sentence appears twice back-to-back, which is pure waste; the useful content is a single fragment about `describe_operation`. There is no front-loaded statement of what the call is for.

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?

No output schema exists, so the description should explain what a 'compliance' result contains, yet it says nothing. For a nested-parameter, domain-specific endpoint in a large API surface, an agent is left without enough to call it confidently.

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 does not explain what `leaseId` and `termId` identify beyond their position in the path template. With two undocumented path parameters, the description should have compensated but only mirrors the URL pattern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the tool title repeated verbatim: a raw REST path plus operation ID. The path does encode resource nouns (leases, supplemental-rent, compliance), so an agent can guess it retrieves compliance data for a supplemental rent term, but nothing states that in words or distinguishes it from the many sibling `get_leases_by_leaseId_supplemental_rent_*` endpoints.

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 to use this endpoint versus the dozen-plus other supplemental-rent siblings. The only routing hint is that `describe_operation` provides native request schemas, which is a schema-lookup instruction, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_90b4bcd733617c20e4d358fcleases: GET /api/leases/:leaseId/supplemental-rent/:id/summaryC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/summary. GET /api/leases/:leaseId/supplemental-rent/:id/summary. Operation ID: 90b4bcd733617c20e4d358fc; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing about the response shape, permissions, or errors — only the pointer to describe_operation — so it contributes almost no behavioral context beyond structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string is repeated verbatim twice before any other content, which is pure waste, and the remaining text is an operation ID plus a pointer to another tool. Nothing is front-loaded as a human-readable purpose statement.

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 two-parameter read tool with no output schema and 0% parameter documentation, the description should at least characterize what the summary contains and disambiguate 'id'. With annotations only covering safety and no return description, an agent knows the route but not the payload or when this is the right call among dozens of supplemental-rent siblings.

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 carries the burden for the two path parameters. The URL template does positionally indicate that leaseId scopes to a lease and id identifies a supplemental-rent record, but neither is named in prose and no format, uniqueness, or lookup semantics are given.

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 is essentially the raw endpoint path, which does encode a clear verb (GET) and resource (supplemental-rent summary for a given lease and record id), so an agent can distinguish it from sibling supplemental-rent endpoints by the trailing 'summary'. However, it never explains in plain language what a 'supplemental rent summary' returns, leaving the purpose to be inferred from URL structure.

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 choose this over the many sibling supplemental-rent tools (e.g., the other supplemental_rent variants or the portfolio/dashboard tools). The only actionable hint is that describe_operation can supply native request schemas, which is a workflow note rather than a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_d42d164054b15860d725f5bcleases: GET /api/leases/:leaseId/supplemental-rent/:id/rent-reporting-sourcesC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/rent-reporting-sources. GET /api/leases/:leaseId/supplemental-rent/:id/rent-reporting-sources. Operation ID: d42d164054b15860d725f5bc; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description adds nothing about the response shape, whether it paginates, or what 'reporting sources' means, leaving the behavioral burden entirely on 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two identical sentences back to back, which is pure waste, followed by a boilerplate pointer to describe_operation. Nothing is front-loaded beyond the path itself.

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, no parameter descriptions, and no explanation of the resource, an agent cannot tell what it will receive or how to interpret the two path IDs. The definition is far too thin for a nested-object, two-path-parameter GET.

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, but it only echoes the path placeholders (:leaseId, :id) without explaining what identifiers are valid or what the optional 'query' object is for. The nested-parameter semantics remain undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is only the raw endpoint path repeated twice, so it merely restates the tool name rather than explaining what a 'rent-reporting-sources' resource is. An agent can infer it retrieves rent reporting sources for a supplemental rent record under a lease, but the definition adds no clarification beyond the URL.

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 guidance is that 'describe_operation provides native request schemas,' which points to a helper rather than stating when to use this tool versus the many sibling supplemental-rent endpoints. No exclusions, prerequisites, or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_d9158728860a421e1e574a1dleases: GET /api/leases/:leaseId/supplemental-rent/:id/monthly-salesC
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/monthly-sales. GET /api/leases/:leaseId/supplemental-rent/:id/monthly-sales. Operation ID: d9158728860a421e1e574a1d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered externally. The description adds nothing beyond a pointer to describe_operation for request schemas; it does not describe what data is returned or any behavioral nuance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is duplicated verbatim, so half the text is pure waste, and the remaining content (operation ID, describe_operation pointer) is not front-loaded with any explanation of purpose.

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 0% schema coverage, no output schema, nested query object, and an ambiguous 'id' parameter, the description should carry substantial explanatory weight but delivers only the endpoint path. An agent cannot confidently invoke this correctly without first calling describe_operation.

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 parameter is described anywhere. The path mentions ':leaseId' and ':id', but the description never explains what 'id' refers to (a supplemental rent record id?) or the relationship between the two identifiers, leaving both parameters semantically ambiguous.

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 is essentially the raw endpoint path 'GET /api/leases/:leaseId/supplemental-rent/:id/monthly-sales' repeated verbatim twice. It does identify the resource (monthly sales under a lease's supplemental rent) and distinguishes it from siblings like the other supplemental_rent sub-resources by path, but it offers no plain-language statement of what the operation returns or does.

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 use this tool versus the ~11 sibling supplemental-rent tools or 'describe_operation'/'search_operations'. The only directive is 'describe_operation provides native request schemas', which is a schema-fetch hint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_by_leaseId_supplemental_rent_f1528c0faba1b163ec3ab9a2leases: GET /api/leases/:leaseId/supplemental-rent/:id/fiscal-accrualsD
Read-onlyIdempotent
Inspect

GET /api/leases/:leaseId/supplemental-rent/:id/fiscal-accruals. GET /api/leases/:leaseId/supplemental-rent/:id/fiscal-accruals. Operation ID: f1528c0faba1b163ec3ab9a2; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile requires no description support. The description adds no behavior beyond that—no pagination, filtering, or return-shape context—only a referral to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string appears twice back-to-back, which is pure duplication, and the one genuinely useful clause (the describe_operation referral) is buried at the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object tool with 0% schema description coverage and no output schema, the description supplies nothing an agent needs—no parameter meaning, no response expectation, no distinction from its many near-identical siblings.

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 required path parameters. The URL template at least reveals that `leaseId` is a lease identifier and `id` is a supplemental rent record identifier, which is some semantic value, but no formats, constraints, or query-object usage are explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool title/endpoint path, duplicated twice with no natural-language explanation. The path does imply 'fetch fiscal accruals for a supplemental rent record under a lease', but nothing states the purpose in words an agent can reason about.

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 endpoint versus the dozens of sibling `get_leases_by_leaseId_supplemental_rent_*` tools. The only guidance is a pointer to `describe_operation` for the native schema, which is about payload shape, not usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_critical_date_matrix_629543489b3e10419d0bff65leases: GET /api/leases/critical-date-matrixC
Read-onlyIdempotent
Inspect

GET /api/leases/critical-date-matrix. GET /api/leases/critical-date-matrix. Operation ID: 629543489b3e10419d0bff65; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is fully covered structurally. Beyond that the description adds nothing about scoping, filtering behavior, or result shape for a matrix-style aggregate endpoint — the only added information is the pointer to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The route string is duplicated verbatim, wasting the description's most prominent position. Only the final clause about describe_operation carries any information.

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, 0% parameter coverage, and a permissive nested query object, the description should explain what the matrix returns and how to pass filters. It does neither, leaving an agent unable to construct a meaningful call without falling back to describe_operation.

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% with two free-form object parameters (query, params), including a nested additionalProperties query object. The description supplies no parameter names, formats, or supported query keys, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just repeats the HTTP route 'GET /api/leases/critical-date-matrix' twice, which is a tautological restatement of the name/title. It never explains what a 'critical date matrix' contains or how it differs from the sibling get_contracts_critical_date_matrix.

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 actionable sentence is 'describe_operation provides native request schemas', which points at a discovery sibling but gives no when-to-use guidance, no exclusions, and no differentiation from the many other lease GET tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_eeab45c45fa700898de650feleases: GET /api/leasesC
Read-onlyIdempotent
Inspect

GET /api/leases. GET /api/leases. Operation ID: eeab45c45fa700898de650fe; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no pagination behavior, no result-size limits, no tenancy/scoping notes, no indication of what the free-form 'query' object can do. It does not contradict the annotations, but it contributes no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the opening sentence is duplicated verbatim and the operation ID hash is noise for an agent. There is no front-loading of useful information because there is no useful information beyond the describe_operation pointer.

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 listing endpoint with a free-form query object, no output schema, and no response documentation, the description leaves nearly everything unspecified. The single redeeming element is routing the agent to describe_operation for native schemas, which is insufficient on its own for correct invocation.

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 two parameters are opaque: 'query' is an unrestricted additionalProperties:{} object and 'params' allows no properties at all. The description names neither, so an agent has no idea what filter syntax or keys are accepted; the only mitigation is the pointer to describe_operation, which is a workaround rather than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally the tool title restated twice ('GET /api/leases. GET /api/leases.'), which is a tautology rather than an explanation. It does not say that this lists leases, what a lease record contains, or how it differs from the many siblings such as get_leases_by_id_0c975b3ee292145149f87dad, get_leases_stats_overview_82de3f4c87612d02fdf2953c, or get_lease_hold_improvements.

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, when-not-to-use, or alternative-selection guidance is given. The only actionable hint is 'describe_operation provides native request schemas', which points at the describe_operation sibling but does not say when an agent should call this listing endpoint versus the id-scoped or stats lease siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_stats_overview_82de3f4c87612d02fdf2953cleases: GET /api/leases/stats/overviewD
Read-onlyIdempotent
Inspect

GET /api/leases/stats/overview. GET /api/leases/stats/overview. Operation ID: 82de3f4c87612d02fdf2953c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds only that describe_operation exposes native request schemas, with no mention of what the stats endpoint aggregates, scoping, or freshness/period behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the same sentence is repeated verbatim, so space is wasted rather than earned. The operation ID and describe_operation pointer are useful metadata but the rest is redundant.

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, no documented parameters, and a nested free-form query object, the description should explain what the stats overview returns and how to scope it. It does none of that, leaving only the describe_operation pointer as a fallback.

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 two parameters (query, params) are entirely opaque. The description provides no parameter meaning, format, or example, and defers entirely to describe_operation rather than compensating.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint URL, which duplicates the title and tool name exactly. It implies a read of lease statistics but never states what the overview contains (counts, totals, breakdowns) or what distinguishes it from siblings like get_leases_eeab45c45fa700898de650fe or get_leases_critical_date_matrix.

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, when-not-to-use, or alternative is named. The only routing hint is a pointer to describe_operation for request schemas, which is about schema discovery, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leases_tags_search_ff87f1f5bb0b6088c5f00222leases: GET /api/leases/tags/searchD
Read-onlyIdempotent
Inspect

GET /api/leases/tags/search. GET /api/leases/tags/search. Operation ID: ff87f1f5bb0b6088c5f00222; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed-world scope, so the safety profile is fully covered without the description. The text adds nothing further — no pagination, matching semantics, or result shape — and merely repeats the path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the single sentence is duplicated verbatim and an opaque operation-ID hash is surfaced with no value to the caller. Brevity here reflects under-specification rather than efficiency.

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 a nested free-form query object, 0% schema description coverage, and no output schema, the description supplies no information about accepted query structure or what a result contains. Only the annotations cover the read-only/idempotent behavior, which is not enough for correct invocation.

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 'query' parameter is an unconstrained nested object while 'params' declares no properties at all. The description contributes zero meaning about what keys 'query' accepts or how filtering is expressed, leaving the agent with a documented-but-opaque free-form object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path already present in the title ('GET /api/leases/tags/search'), twice, plus an operation ID. It never says what the operation actually does — whether it searches lease tags by text, lists tags for leases, or resolves tag-to-lease mappings — so an agent cannot distinguish it from siblings like get_tags or get_contracts_tags_search beyond the bare URL.

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 to use this tool, when not to, or which sibling to prefer for tag lookups on leases vs contracts. The only actionable pointer is that describe_operation exposes native request schemas, which is a discovery hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lease_summary_templates_04ffdc11f1103cc0220bae13lease-summary-templates: GET /api/lease-summary-templatesC
Read-onlyIdempotent
Inspect

GET /api/lease-summary-templates. GET /api/lease-summary-templates. Operation ID: 04ffdc11f1103cc0220bae13; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is covered. The description adds nothing beyond that: no mention of pagination, filtering, result ordering, or what a 'template' contains. The operation ID is metadata, not 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is a verbatim duplicate of the same URL sentence, wasting half the text without adding information. It is short, but the space is spent on repetition and an opaque operation ID rather than a front-loaded statement of purpose.

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 2-parameter list endpoint with 0% schema description coverage and no output schema, the description should explain the query surface and the shape of the returned template list. It does neither, leaving the agent dependent on a separate describe_operation call before it can call this tool 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 both parameters ('query' and 'params') are untyped free-form objects with no property descriptions. The one useful clue — that the native request schema must be obtained via describe_operation — is present but does not say what belongs in 'query' versus 'params' or give any filter examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the REST path 'GET /api/lease-summary-templates' twice, which restates the title verbatim rather than explaining what the tool returns. An agent can infer it lists lease summary templates, but nothing distinguishes it from the sibling get_lease_summary_templates_by_id_31c0499dc0bb0d7124130cc8 beyond the raw URL.

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 to use this tool versus the many siblings (e.g. getting a single template by id, or the tenant-logo variant). The only routing hint is 'describe_operation provides native request schemas', which is a schema-lookup pointer, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lease_summary_templates_by_id_31c0499dc0bb0d7124130cc8lease-summary-templates: GET /api/lease-summary-templates/:idC
Read-onlyIdempotent
Inspect

GET /api/lease-summary-templates/:id. GET /api/lease-summary-templates/:id. Operation ID: 31c0499dc0bb0d7124130cc8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no mention of return shape, not-found behavior, permissions, or why the route is duplicated. Its only contribution is pointing at describe_operation, which is a workflow hint rather than 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description wastes its limited length repeating the identical route sentence twice and appending an opaque internal operation ID. Only the final clause about describe_operation carries any value, and it is buried at the end rather than front-loaded.

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, a nested `query` object, and 0% schema description coverage, the definition should explain the id semantics and the response, but it does not. The single useful pointer (describe_operation) is insufficient to call this tool confidently.

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 carry the param burden and does not: it never mentions the required `id` path parameter or the free-form `query` object. The schema at least fixes the `id` type and length bounds, so it is not a complete void, but no semantic meaning (e.g., what the id refers to) is added anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the title/route ("GET /api/lease-summary-templates/:id") with no added semantics about what a lease summary template is or what this fetch returns. An agent can infer 'retrieve one lease summary template by id', but only because the title already says so, not because the description explains it. Nothing distinguishes this from the similarly named 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 and no named alternative; the sibling get_lease_summary_templates_04ffdc11... (collection list) is never referenced. The only routing hint is the trailing note that describe_operation provides native request schemas, which implies a lookup step but not when this tool should be chosen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lease_summary_templates_tenant_logo_1ca275f8012f1af7e07876b1lease-summary-templates: GET /api/lease-summary-templates/tenant-logoD
Read-onlyIdempotent
Inspect

GET /api/lease-summary-templates/tenant-logo. GET /api/lease-summary-templates/tenant-logo. Operation ID: 1ca275f8012f1af7e07876b1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that - no mention of what the endpoint returns (a binary image? a URL?), authentication needs, or content type, which matters for a logo retrieval endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is duplicated verbatim, which is pure waste, and the remaining sentence is a generic boilerplate pointer to describe_operation. No front-loaded purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, a nested free-form object parameter with no documentation, and no description of the endpoint's response or behavior. For a tool whose input contract is essentially opaque, the description provides almost nothing an agent needs to invoke 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% for the two parameters: 'query' is a free-form object with additionalProperties and 'params' is an empty object. The description does not compensate at all - it only says describe_operation has native schemas, leaving an agent no way to know what query keys are valid without another call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool name/title ('GET /api/lease-summary-templates/tenant-logo'), repeated twice. It does imply fetching a tenant logo for lease summary templates, but that is inferred from the URL path rather than explained, and there is no differentiation from the many sibling lease-summary-template 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?

No guidance on when to use this tool versus alternatives like get_lease_summary_templates_by_id or the general execute_read. The only hint is a pointer to describe_operation for request schemas, which is a fallback mechanism rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_letterheads_977a29a398e4972da9b7746eletterheads: GET /api/letterheadsC
Read-onlyIdempotent
Inspect

GET /api/letterheads. GET /api/letterheads. Operation ID: 977a29a398e4972da9b7746e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds nothing beyond that except the describe_operation pointer; it does not describe what is returned, whether results are scoped to the caller's workspace, or any rate/size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the one substantive sentence is duplicated verbatim, and the internal operation ID adds noise rather than information. There is no front-loaded statement of what the call does.

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?

No output schema and no documentation of the free-form query object, so an agent cannot tell what fields exist to filter on or what shape the response takes. For an open-ended list endpoint, the description leaves the essential calling information missing.

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?

Two parameters (query, params) with 0% schema description coverage and an open-ended additionalProperties object; the description offers no parameter names, formats, or filtering semantics. With coverage this low, the description needed to compensate and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the endpoint path "GET /api/letterheads" twice, which is essentially a tautology of the name and title. It never says in plain language that this lists/returns letterhead resources, what a letterhead is, or how it differs from the many other GET list 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?

The only routing hint is that "describe_operation provides native request schemas," which points at a sibling but gives no condition for choosing this tool or for when not to use it. There is no guidance on prerequisites, filtering, or pagination.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_modifications_by_modificationId_d80020ea84cd086e05835296modifications: GET /api/modifications/:modificationIdC
Read-onlyIdempotent
Inspect

GET /api/modifications/:modificationId. GET /api/modifications/:modificationId. Operation ID: d80020ea84cd086e05835296; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds nothing beyond that: no mention of 404/not-found behavior, permission requirements, or what the payload contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first two sentences are an exact duplicate, which is pure waste and suggests boilerplate generation rather than deliberate authoring.

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?

Two parameters with zero schema descriptions and no output schema, yet the description does not compensate with any detail about the response shape or the id parameter. A read-by-id tool this thin leaves the agent dependent on describe_operation.

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 only surfaces ':modificationId' as part of the URL path. It adds no meaning about where the id comes from (e.g., from the modifications list or a lease's modifications), nor about the untyped 'query' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name/title: 'GET /api/modifications/:modificationId' repeated verbatim. It implies a retrieve-by-id operation, but provides no statement of what a 'modification' is or how this differs from siblings like get_modifications_pending or get_leases_by_leaseId_modifications.

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, no alternatives named. The only pointer is 'describe_operation provides native request schemas', which directs the agent to another tool rather than explaining selection logic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_modifications_pending_f2012ba79b93c1cf98760596modifications: GET /api/modifications/pendingC
Read-onlyIdempotent
Inspect

GET /api/modifications/pending. GET /api/modifications/pending. Operation ID: f2012ba79b93c1cf98760596; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered externally. The description adds no behavioral context of its own — nothing about pagination, result volume, or whether 'pending' means unapproved or unscheduled. The claim of a GET read operation is consistent with annotations, so no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are identical duplicates — pure waste. The only content-bearing clause is the operation ID and the describe_operation pointer, and none of it is front-loaded meaningfully.

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?

No output schema exists, so the description would need to characterize the return shape of a list endpoint, and it does not. For a tool with a nested-object query parameter and zero schema documentation, an agent is left unable to call it correctly without first consulting describe_operation.

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?

Two parameters (query, params) exist with 0% schema description coverage, so the description must compensate and does not. Pointing to describe_operation and 'native request schemas' offers a route to the information but supplies no meaning for the generic query object or the empty params object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim repeat of the endpoint path 'GET /api/modifications/pending', which is already the title. It implies retrieval of pending modification records but never states in plain language what the tool returns or how it differs from the sibling get_leases_by_leaseId_modifications or get_modifications_by_modificationId.

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. The only actionable cue is the pointer to describe_operation for request schemas, which is a schema-lookup hint rather than a usage condition or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_by_entity_by_id_current_bee00bb26fe3a6337afcc1c5negotiation: GET /api/negotiation/:entity/:id/currentC
Read-onlyIdempotent
Inspect

GET /api/negotiation/:entity/:id/current. GET /api/negotiation/:entity/:id/current. Operation ID: bee00bb26fe3a6337afcc1c5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered by structured data. The description adds nothing beyond a duplicated route string — no mention of what 'current' resolves to, whether it 404s when no current version exists, or what the payload looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, which is pure waste, and the front-loaded content is a raw URL rather than a human-readable statement of effect. It is short, but the brevity comes from under-specification rather than efficiency.

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?

There is no output schema and 0% parameter coverage, so the description must carry the burden of explaining the returned 'current' negotiation object and its path parameters — it does neither. For a tool in a dense family of near-identical negotiation getters, this leaves the agent unable to distinguish or correctly call it.

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 two nested params (entity, id) have no documented meaning in the schema. The description's ':entity/:id' placeholders at least imply both are path parameters, but it never says what 'entity' denotes (entity type? contract/lease?) or the expected id format, 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the raw route 'GET /api/negotiation/:entity/:id/current' plus an operation ID, which is essentially a restatement of the title/name. It never explains what the 'current' negotiation resource is (current version? current state of the negotiation?) or how it differs from sibling endpoints like get_negotiation_by_entity_by_id_draft, _redline, and _version.

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 to use this tool versus the many sibling negotiation endpoints (draft, redline, version, versions history). The only actionable guidance is the pointer that 'describe_operation provides native request schemas', which is a schema-lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_by_entity_by_id_draft_395d1527c4cfcec1ca869bbfnegotiation: GET /api/negotiation/:entity/:id/draftC
Read-onlyIdempotent
Inspect

GET /api/negotiation/:entity/:id/draft. GET /api/negotiation/:entity/:id/draft. Operation ID: 395d1527c4cfcec1ca869bbf; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds no behavioral context of its own — no auth requirements, no note on what the draft contains or whether it may be absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, which is pure waste rather than front-loading. The remaining content is an operation ID and a pointer to another tool.

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 nested-params GET with no output schema and no documented parameters, the description leaves the agent unable to predict what the draft endpoint returns or how it differs from its three siblings. The describe_operation pointer is the only thing preventing a score of 1.

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 carry parameter meaning, and it does not. The path template :entity/:id only echoes the two required parameter names; it never explains what values 'entity' accepts (e.g., lease, contract) or what 'id' identifies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw endpoint path repeated twice, which merely restates the name and title. Nothing explains what a 'draft' negotiation resource is, so an agent cannot distinguish this from the sibling tools get_negotiation_by_entity_by_id_current, _redline, and _version.

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 to use the draft variant versus current, redline, or version. The only usable pointer is 'describe_operation provides native request schemas', which directs the agent to a schema lookup tool rather than explaining selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_by_entity_by_id_redline_b35ff5490288ba255be07a82negotiation: GET /api/negotiation/:entity/:id/redline-statusD
Read-onlyIdempotent
Inspect

GET /api/negotiation/:entity/:id/redline-status. GET /api/negotiation/:entity/:id/redline-status. Operation ID: b35ff5490288ba255be07a82; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is known without the description. The description adds nothing beyond that — no indication of whether redline status is computed on the fly, whether it requires a specific entity type, or what shape the response takes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same HTTP path sentence is printed twice verbatim, which is pure redundancy rather than front-loaded information. Nothing is lost by deleting half of the text, and nothing informative remains either.

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 nested params, zero schema coverage, no output schema, and a large family of near-identically named negotiation siblings, the definition should clarify the entity domain and what redline status represents. It leaves both open, so an agent cannot confidently choose or parameterize this call.

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 carry the burden of explaining 'entity' and 'id', yet it only echoes them as path segments. Critically, it never enumerates valid 'entity' values (e.g. lease vs. contract), which is needed to call the tool correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the raw HTTP path and operation ID, so the agent learns nothing about what 'redline-status' actually returns. It does not distinguish this tool from close siblings such as get_negotiation_by_entity_by_id_current, _draft, _version, or get_negotiation_versions_by_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this endpoint, when not to, or which sibling covers the same ground. The lone pointer to 'describe_operation' is a schema-lookup hint, not usage guidance for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_by_entity_by_id_version_cdfdc4952dc2303db5690a7anegotiation: GET /api/negotiation/:entity/:id/versionsD
Read-onlyIdempotent
Inspect

GET /api/negotiation/:entity/:id/versions. GET /api/negotiation/:entity/:id/versions. Operation ID: cdfdc4952dc2303db5690a7a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no indication of what the version list contains, ordering, pagination, or permission requirements — so it fails to exploit the lower bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, so half the content is waste. The remaining sentence is a generic pointer to describe_operation rather than tool-specific information.

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?

The tool has a nested params object, no output schema, and zero parameter documentation, yet the description explains nothing about inputs or expected results. Pointing at describe_operation is a partial mitigation for schema lookup but leaves an agent unable to call this tool confidently from the definition alone.

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 merely echoes the path placeholders ':entity' and ':id' without explaining what entity types are valid or which identifier 'id' refers to. With two nested, undocumented parameters, the description needed to compensate and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the raw endpoint path repeated twice ('GET /api/negotiation/:entity/:id/versions'), which restates the title rather than explaining what the tool returns or what a 'version' of a negotiation is. It gives no basis for distinguishing it from the many sibling endpoints such as get_negotiation_versions_by_id or get_negotiation_by_entity_by_id_current.

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 to use this endpoint rather than the current/draft/redline negotiation siblings or get_negotiation_versions_by_id. The only forward-looking hint is a pointer to describe_operation for request schemas, which is schema discovery, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_documents_by_documentId_4d65afc7e81f80ab712b1e48negotiation: GET /api/negotiation/documents/:documentId/latestC
Read-onlyIdempotent
Inspect

GET /api/negotiation/documents/:documentId/latest. GET /api/negotiation/documents/:documentId/latest. Operation ID: 4d65afc7e81f80ab712b1e48; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond that: it doesn't clarify what 'latest' means (latest version, latest redline, latest draft), nor the shape or size of the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same route string is repeated verbatim in the first two sentences, which is pure waste, and the operation-ID boilerplate is not front-loaded information an agent needs. No sentence explains the tool's behavior.

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, the description must convey what is returned, and it does not—an agent cannot tell whether it gets a document body, metadata, or a URL. For a nested-parameter GET with zero schema coverage, the definition is under-specified.

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 does not compensate. The path template hints that documentId is a path identifier, but there is no explanation of the free-form 'query' object or what a valid documentId looks like, leaving both parameters largely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the raw route 'GET /api/negotiation/documents/:documentId/latest' twice, which is essentially a tautology of the title. The path implies retrieving the latest document for a negotiation, but no plain-language verb+resource statement distinguishes it from siblings like get_negotiation_versions_by_id or get_negotiation_by_entity_by_id_current.

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 use this versus the many negotiation-version siblings, nor any prerequisites. The only actionable pointer is 'describe_operation provides native request schemas', which is about schema discovery, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_versions_by_id_1ddaf6241135a023a3eaf560negotiation: GET /api/negotiation/versions/:idC
Read-onlyIdempotent
Inspect

GET /api/negotiation/versions/:id. GET /api/negotiation/versions/:id. Operation ID: 1ddaf6241135a023a3eaf560; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered structurally. The description contributes nothing beyond that — no mention of pagination, response shape, error behavior (e.g., 404 for unknown version), or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint path is printed twice in adjacent sentences, which is pure waste. What remains is an operation ID and a pointer to describe_operation, so there is no front-loaded substance.

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?

This is a simple read-by-id endpoint with no output schema, so the description must at least convey what is returned and how the identifier is obtained. It does neither, and the nested 'query' object remains unexplained, leaving the agent to call describe_operation first.

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 2 parameters, so the description carries the burden and does not meet it. The ':id' placeholder weakly implies the path parameter is a version identifier, but the 'query' object parameter and the id's format/limits (minLength 1, maxLength 2000) are undocumented anywhere in prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path twice ('GET /api/negotiation/versions/:id'), which is a tautology of the title and name rather than a plain-language statement of what the tool returns. An agent can infer 'fetch a negotiation version by id' from the path, but the description adds no distinguishing detail versus siblings like get_negotiation_versions_by_versionId_* or get_versions_by_id_*.

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 statement of when to use this tool, when to prefer a sibling, or what prerequisites exist. The only directional hint is the note that describe_operation provides native request schemas, which is a meta-instruction rather than usage guidance for choosing this endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_versions_by_id_comments_18b3ddc0ca4011c91bf4a792negotiation: GET /api/negotiation/versions/:id/commentsC
Read-onlyIdempotent
Inspect

GET /api/negotiation/versions/:id/comments. GET /api/negotiation/versions/:id/comments. Operation ID: 18b3ddc0ca4011c91bf4a792; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered without the description. The description adds nothing beyond a pointer to describe_operation: no pagination, filtering, or result-shape context for a comments listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the first sentence is duplicated verbatim, which is pure waste rather than concision. Front-loading the path is fine, but the repetition signals auto-generation with no editorial value added.

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 0% parameter coverage, the description should explain the identifier and the query object; instead it defers entirely to describe_operation. An agent cannot call this correctly from the definition alone.

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 (a required path-like 'id' and an untyped 'query' bag), so the description carries the full burden and fails to explain either. The ':id' path fragment hints at an ID, but nothing clarifies what it identifies or what the free-form query object accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a raw REST path repeated twice; it encodes the resource (comments of a negotiation version) but only by restating the tool name/title in URL form rather than prose. No verb, scope, or sibling differentiation is provided beyond what the name already implies.

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 guidance is 'describe_operation provides native request schemas', which routes to another tool for schema discovery but says nothing about when to use this endpoint versus the many sibling negotiation tools (e.g. get_negotiation_versions_by_versionId_c..., get_negotiation_versions_by_id_1ddaf...).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_versions_by_versionId_c_ab38b02a013e51319e8d8cc1negotiation: GET /api/negotiation/versions/:versionId/changesD
Read-onlyIdempotent
Inspect

GET /api/negotiation/versions/:versionId/changes. GET /api/negotiation/versions/:versionId/changes. Operation ID: ab38b02a013e51319e8d8cc1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, non-open-world, so the safety profile is covered without the description. The description adds only the meta-detail that describe_operation supplies the native request schema; it says nothing about pagination, response shape, or what 'changes' are tracked against.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the same sentence is duplicated verbatim, so a third of the content is pure waste. Nothing is front-loaded about purpose or behavior; the operation ID adds no value to an agent choosing the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, a free-form query object, and 0% schema coverage, the agent cannot tell what this endpoint returns or what filters are valid. The single useful element is the redirect to describe_operation, which is insufficient for a parameterized version-scoped read endpoint.

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 2 parameters, including a free-form nested 'query' object with additionalProperties, so the description must compensate and does not. The path template only echoes the required versionId that the schema already marks required, and the free-form query filters remain entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the name/title ('GET /api/negotiation/versions/:versionId/changes') twice, with no plain-language statement of what a 'change' is or what the call returns. It does not differentiate this tool from its very close sibling get_negotiation_versions_by_versionId_d_aadb975315bfc2f5d2fe7dc6 or from get_negotiation_versions_by_id_comments.

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 to call this versus the other negotiation version sub-resource endpoints. The only actionable guidance is a pointer that describe_operation provides native request schemas, which is schema-discovery advice, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_negotiation_versions_by_versionId_d_aadb975315bfc2f5d2fe7dc6negotiation: GET /api/negotiation/versions/:versionId/diff/:compareVersionIdC
Read-onlyIdempotent
Inspect

GET /api/negotiation/versions/:versionId/diff/:compareVersionId. GET /api/negotiation/versions/:versionId/diff/:compareVersionId. Operation ID: aadb975315bfc2f5d2fe7dc6; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world, so the safety profile is fully covered structurally. The description adds nothing behavioral beyond that: no indication of what the diff response contains, whether it requires the versions to be in a particular state, or how large a diff may be. Not misleading, but zero added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the single meaningful sentence is duplicated verbatim, wasting half the text. The only actionable element — the describe_operation pointer — is buried at the end after the repetition.

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 nested-object, query-capable endpoint with no output schema and 0% parameter documentation, the description should explain what the diff returns and what the optional query object can carry. The describe_operation pointer helps slightly, but an agent still cannot predict the response shape or filtering behavior from this definition.

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 nested path parameters, so the description must compensate. Embedding the URL template does at least establish that versionId is the base version and compareVersionId the version to compare against, but it gives no format, ordering, or same-entity constraints for the two IDs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a raw endpoint path echoed twice, which restates the tool name and title rather than explaining the operation in natural language. An agent can infer from 'diff/:compareVersionId' that this compares two negotiation versions, but it must do that inference itself; the description never says 'compare two versions of a negotiation document and return the differences'.

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 to use this tool rather than the numerous sibling version endpoints (e.g. get_negotiation_versions_by_id_comments, get_negotiation_versions_by_id_1ddaf624, get_negotiation_by_entity_by_id_version). The only guidance is a pointer to describe_operation, which concerns request schemas, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notices_eb8326fe048fba69ff1fd44enotices: GET /api/noticesC
Read-onlyIdempotent
Inspect

GET /api/notices. GET /api/notices. Operation ID: eb8326fe048fba69ff1fd44e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is fully covered elsewhere. The description adds nothing beyond that — no pagination behavior, no filtering semantics for the opaque 'query' bag, and no indication of result volume.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but the first sentence is literally repeated twice ('GET /api/notices. GET /api/notices.'), so half the content is pure waste. The only substantive clause — the describe_operation pointer — is buried at the end rather than front-loaded.

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?

Given two undocumented parameters, a nested free-form object, and no output schema, the description should carry substantial weight but does not. The describe_operation hand-off is the sole mitigation, leaving the agent without enough information to form a request without a second call.

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 both parameters are opaque: 'query' is a free-form object with additionalProperties {} and 'params' is an empty object. The description does not explain a single query key or format, only deferring to describe_operation, which forces an extra round-trip before this tool can be invoked correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool's route verbatim ('GET /api/notices'), which duplicates the name and title rather than explaining what a 'notice' resource is or what shape the response takes. There is no differentiation from siblings such as get_notices_stats or get_contracts_by_id_notices — an agent must guess that this is a list endpoint.

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 call this versus get_notices_stats, get_contracts_by_id_notices, or the many other notice-related siblings. The only actionable hint is the pointer to describe_operation for request schemas, which is a prerequisite note rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notices_stats_3d98791057143efe61dc2703notices: GET /api/notices/statsC
Read-onlyIdempotent
Inspect

GET /api/notices/stats. GET /api/notices/stats. Operation ID: 3d98791057143efe61dc2703; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is fully covered by structured data. The description adds nothing beyond that - no aggregation semantics, no scoping (workspace/portfolio?), no pagination or caching behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and the operation ID is already in the tool name. The only non-redundant content is the describe_operation pointer, which is buried at the end.

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 explanation of the returned statistic shape, plus undocumented query parameters, an agent cannot predict what this call returns or how to filter it. For a stats/aggregation endpoint, that is a material 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?

Two parameters exist with 0% schema description coverage: an untyped 'query' object with free-form additionalProperties and an empty 'params' object. The description gives no hint about what query keys are accepted or what filters the stats endpoint supports, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path already given in the title, repeated twice. It conveys that this is a GET for notices statistics, but says nothing about what statistics (counts, by status, by date range) or how it differs from the sibling get_notices_eb8326fe048fba69ff1fd44e.

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 actionable cue is 'describe_operation provides native request schemas', which points at a sibling tool but does not say when to prefer this tool over get_notices or the other stats endpoints. No conditions, no exclusions, no alternatives for the actual task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notifications_3e2fd487df2985adff762e58notifications: GET /api/notificationsC
Read-onlyIdempotent
Inspect

GET /api/notifications. GET /api/notifications. Operation ID: 3e2fd487df2985adff762e58; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered without the description. Beyond that, the text adds no behavior: no pagination, ordering, filter scope, or volume expectations for a list endpoint. The pointer to describe_operation is the only added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes half its length on a verbatim duplicate of the endpoint path. The one useful clause (describe_operation for native schemas) is buried after the repetition and the opaque operation ID hash.

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 list endpoint with an untyped free-form query object, no output schema, and no required parameters, the description should at minimum sketch what the query object accepts and what a response contains. It provides neither, offering only a redirect to describe_operation, which leaves the agent unable to call it correctly in one step.

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 both parameters (a free-form `query` object with additionalProperties:{} and an empty `params` object) are entirely undocumented. The description does not compensate — it only defers to describe_operation rather than naming any accepted query keys, so an agent cannot construct a filtered call from either source without an extra step.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally the HTTP path repeated twice: "GET /api/notifications. GET /api/notifications." It restates the tool title rather than explaining what notifications are returned (current user's inbox? workspace-wide feed?) or how it differs from siblings like get_notifications_unread_count or get_notification_settings.

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 or when-not-to-use guidance, and no mention of the closely related notification tools. The only routing hint is that describe_operation exposes native request schemas, which helps find parameters but says nothing about selecting this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notification_settings_by_id_369fdd733eb0be3eee617526notification-settings: GET /api/notification-settings/:idD
Read-onlyIdempotent
Inspect

GET /api/notification-settings/:id. GET /api/notification-settings/:id. Operation ID: 369fdd733eb0be3eee617526; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered elsewhere. The description adds nothing about what the response contains, whether the record is workspace-scoped, or what happens when the id is absent (it doesn't mention 404 behavior or auth needs).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful sentence is duplicated verbatim, and the operation-ID pointer is noise for an agent selecting a tool. It's short, but the shortness comes from under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, no parameter documentation, and no behavioral context, so an agent has essentially nothing beyond the endpoint path and the annotations. For a nested-object, 0%-coverage tool this is completely inadequate.

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 provides no parameter information at all. With two parameters — a nested required 'params.id' (string, 1-2000 chars) and an untyped 'query' object — the description needed to explain the id format and what query filters are supported, and it does neither.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name and HTTP path ('GET /api/notification-settings/:id') twice, which is tautological rather than explanatory. It does not clarify what a 'notification setting' contains or how this record differs from the sibling get_notification_settings and get_notification_settings_preview endpoints.

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 call this versus siblings such as get_notification_settings_f43b492a9011960665a90046, get_notification_settings_preview, or get_notifications_preferences. The only pointer is to describe_operation for request schemas, which is a schema hint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notification_settings_f43b492a9011960665a90046notification-settings: GET /api/notification-settingsC
Read-onlyIdempotent
Inspect

GET /api/notification-settings. GET /api/notification-settings. Operation ID: f43b492a9011960665a90046; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no mention of auth requirements, pagination, filtering behavior, or what the collection contains. No contradiction with 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is literally duplicated, which is pure waste, and no substantive information is front-loaded. Brevity here reflects under-specification rather than 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?

No output schema exists and the two parameters are structurally opaque (a free-form query object and an object with no properties), so the description carries the burden of explaining them. Instead it offers only the endpoint path and an operation ID, leaving an agent unable to call it correctly without a separate describe_operation round-trip.

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 'query' free-form object or the empty 'params' object. The only compensation is the redirect to describe_operation for native schemas, which is a pointer rather than an explanation of how to structure a query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the endpoint path twice ('GET /api/notification-settings. GET /api/notification-settings.') which is essentially a tautology of the tool name. It does not say what data is returned or distinguish this tool from close siblings such as get_notification_settings_by_id, get_notification_settings_preview, or get_notifications_preferences.

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 use this list endpoint versus the by-id, preview, or preferences variants. The only actionable hint is 'describe_operation provides native request schemas', which points at a different tool but does not establish selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notification_settings_preview_59e19ca6c60eef03384ccc16notification-settings: GET /api/notification-settings/previewC
Read-onlyIdempotent
Inspect

GET /api/notification-settings/preview. GET /api/notification-settings/preview. Operation ID: 59e19ca6c60eef03384ccc16; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so safety and idempotency are covered structurally. The description adds nothing beyond that — no indication of what 'preview' computes, whether it reflects unsaved changes, or whether any input is required. It does not contradict the annotations, but it carries no extra behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes half its length repeating the identical endpoint sentence twice, and the operation ID adds no selection value to an agent. It is under-specified rather than concise, with no front-loaded statement of purpose.

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 0% parameter coverage, a nested free-form query object, no output schema, and a highly ambiguous name, the description leaves too much unresolved. The single useful element is the pointer to describe_operation, which is insufficient to tell an agent what this endpoint does or which inputs it accepts.

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 two parameters, including a nested 'query' object with additionalProperties {} whose accepted keys are entirely undocumented. The description only redirects the agent to describe_operation for schemas, giving no meaning, format, or constraint for any parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a restatement of the title and HTTP path ('GET /api/notification-settings/preview' repeated twice), so it is tautological rather than explanatory. It conveys only that something called a 'preview' of notification settings is retrieved, without saying what a preview returns or how it differs from siblings like get_notification_settings_f43b492a9011960665a90046 or get_notification_settings_by_id_369fdd733eb0be3eee617526.

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 to use this tool instead of the many adjacent notification-settings tools. The only actionable hint is that describe_operation provides native request schemas, which is a procedural pointer rather than usage guidance, and no exclusions or preconditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notification_settings_templates_561949b9a50c60256c7e03f5notification-settings: GET /api/notification-settings/templatesC
Read-onlyIdempotent
Inspect

GET /api/notification-settings/templates. GET /api/notification-settings/templates. Operation ID: 561949b9a50c60256c7e03f5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond that – no mention of pagination, filters, result shape, or scoping for a list-like GET endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, wasting half the description, and the operation ID is low-value metadata for an agent. No useful information is front-loaded because there is effectively no content beyond the path.

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 GET endpoint with nested-object parameters, 0% schema coverage, and no output schema, the description should clarify at least what the templates are and what the query object can filter on. The only bridge offered is a reference to describe_operation, leaving the agent with gaps that must be resolved by calling another tool first.

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 both parameters (a free-form 'query' object and an empty 'params' object) are undocumented, so the description carries the full burden. It only says describe_operation provides native request schemas, which is a pointer for discovery but does not explain what keys the query object accepts or how they shape the response.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw HTTP path repeated twice ('GET /api/notification-settings/templates'), which essentially restates the title and operation ID rather than stating what a notification settings template is or what the call returns. It does not distinguish this tool from siblings such as get_notifications_templates, get_notification_settings_f43b492a9011960665a90046, or get_notification_settings_preview_59e19ca6c60eef03384ccc16.

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 use this versus the many other notification-related sibling tools. The only actionable hint is that describe_operation provides native request schemas, which is a schema-discovery pointer rather than usage context, and no prerequisites 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.

get_notifications_preferences_756c665a826637fececddbc5notifications: GET /api/notifications/preferencesD
Read-onlyIdempotent
Inspect

GET /api/notifications/preferences. GET /api/notifications/preferences. Operation ID: 756c665a826637fececddbc5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description contributes nothing further: no indication of auth requirements, scope (current user vs workspace), or what shape the preference payload takes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short but wasteful: the same endpoint string is repeated verbatim in back-to-back sentences, and the only substantive content (the operation ID and describe_operation pointer) is relegated to the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, a free-form nested params object, and zero schema coverage, the description carries the full burden and delivers none of it — no return shape, no scope, no auth, no distinction from the many sibling notification 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% and both parameters (query and a nested free-form params object) are completely opaque; an agent cannot tell what belongs in query versus params. Pointing at describe_operation for native request schemas is marginally useful but doesn't compensate for the total lack of parameter guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name/title as a raw endpoint path (GET /api/notifications/preferences) twice. It never says what the endpoint actually returns or whose preferences they are, so it adds no information beyond the title an agent already sees.

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 mention of a related sibling such as get_notification_settings, and no exclusions. The only actionable hint is that describe_operation provides native request schemas, which is a schema-discovery pointer rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notifications_rules_270eeb18a51ad050da950989notifications: GET /api/notifications/rulesD
Read-onlyIdempotent
Inspect

GET /api/notifications/rules. GET /api/notifications/rules. Operation ID: 270eeb18a51ad050da950989; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond the path — no mention of pagination, result shape, filtering behavior, or auth requirements for an endpoint whose query object is fully opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are literally identical duplicates of the endpoint path, and the operation ID adds no selection value. Space is used on repetition rather than on the information an agent actually lacks.

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?

There is no output schema, so the description should at least sketch what a rules listing contains, whether it is paginated, and how the free-form query object is shaped. Instead an agent gets only the route, leaving the return contract and filtering semantics entirely unknown.

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%: 'query' is an unconstrained additionalProperties object and 'params' has no properties at all. The description mentions no parameters whatsoever, so it fails to compensate for a schema that documents nothing about what filters or pagination fields are expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path and title ('GET /api/notifications/rules'), which only implies a list operation on notification rules. It gives no refinement beyond the name, and nothing distinguishes it from siblings like get_notifications_rules_by_id or get_notification_settings_f43b492a9011960665a90046.

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 actionable sentence points to describe_operation for native request schemas, which is a weak routing hint rather than guidance on when to call this tool versus get_notifications_rules_by_id or the notification-settings tools. No conditions, prerequisites, 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.

get_notifications_rules_by_id_0f6b05d2d1de477cfe817a56notifications: GET /api/notifications/rules/:idC
Read-onlyIdempotent
Inspect

GET /api/notifications/rules/:id. GET /api/notifications/rules/:id. Operation ID: 0f6b05d2d1de477cfe817a56; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only a pointer to describe_operation and does not mention authentication, return shape, or any behavior beyond what annotations already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint string is repeated verbatim twice, which is pure waste, and the operation ID is unlikely to help an agent select or invoke the tool. The relevant information is front-loaded but under-specified rather than concisely informative.

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?

This is a read-only by-id retrieval tool, so annotations handle safety, but the description never says what a notification rule is, what the response contains, or how the id is used. With no output schema and zero schema parameter descriptions, the description should carry more context than it does.

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 only required parameter is 'id'. The path template ':id' weakly signals that id is a path parameter, but the description does not explain what id identifies, nor does it mention the 'query' object parameter at all. With two parameters and no schema descriptions, this leaves meaningful gaps.

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 restates the HTTP endpoint 'GET /api/notifications/rules/:id', which does identify a specific verb and resource with an id. However, it is essentially a duplicate of the tool name/title and never states in plain language that this retrieves a single notification rule, nor how that differs from the sibling list tool get_notifications_rules.

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 use this tool instead of get_notifications_rules, get_notification_settings, or other notification-related siblings. The only directive is to use describe_operation for native request schemas, which is schema discovery, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notifications_templates_80fca28fc8886c9bd7f588d1notifications: GET /api/notifications/templatesC
Read-onlyIdempotent
Inspect

GET /api/notifications/templates. GET /api/notifications/templates. Operation ID: 80fca28fc8886c9bd7f588d1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed world, so safety is covered. The description adds nothing beyond that: no mention of return shape, pagination, filtering, or what a 'template' contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, which is pure waste. The only substantive content (operation ID and the describe_operation pointer) is boilerplate rather than front-loaded meaning.

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 two-parameter list endpoint with no output schema and no described parameters, the description should explain what is returned and how to filter. Instead it supplies only an operation ID and a pointer to another tool, leaving the agent unable to call it meaningfully without a second lookup.

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 both parameters ('query' and 'params') are untyped open objects. The description does not explain either one; it only redirects to describe_operation for the native request schema, which is minimal compensation for a total documentation gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the HTTP endpoint repeated verbatim twice ('GET /api/notifications/templates. GET /api/notifications/templates.'), which essentially restates the tool name and title. An agent can infer it lists notification templates, but nothing distinguishes it from close siblings such as get_notifications_templates_by_id or get_notifications_templates_applicable.

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 to use this versus the several sibling template-listing tools. The only actionable sentence points to describe_operation for request schemas, which is a schema-discovery hint rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notifications_templates_applicable_46782f986af11458296529c1notifications: GET /api/notifications/templates/applicableD
Read-onlyIdempotent
Inspect

GET /api/notifications/templates/applicable. GET /api/notifications/templates/applicable. Operation ID: 46782f986af11458296529c1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that — no auth requirements, no scoping rules for 'applicable', no pagination or response shape notes. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the content is a duplicated URL path, so the length is wasted rather than efficient. Nothing is front-loaded that helps an agent decide or invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 0% param coverage, and nested free-form objects, the description carries the full burden and provides none of it. An agent cannot tell what this endpoint returns or how to construct the query object.

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 both parameters (query, params) are free-form objects with no documented semantics. The description supplies zero parameter information, leaving the agent with no idea what query keys or path params are expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is only the raw URL path repeated twice plus an operation ID. It does imply a GET on notification templates with 'applicable' scope, but it's essentially a restatement of the name/title with no explanation of what 'applicable' means or what is returned, and no differentiation from siblings like get_notifications_templates_80fca28fc8886c9bd7f588d1.

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 contrast with the closely named templates siblings. The only actionable pointer is that describe_operation provides native request schemas, which hints at a workflow but not when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notifications_templates_by_id_f76ad676f259faea5ef2aa4cnotifications: GET /api/notifications/templates/:idC
Read-onlyIdempotent
Inspect

GET /api/notifications/templates/:id. GET /api/notifications/templates/:id. Operation ID: f76ad676f259faea5ef2aa4c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered elsewhere. The description adds nothing beyond that boilerplate — no note on 404 behavior for an unknown id, whether the response includes template body/variables, or any access constraint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two identical sentences back to back is pure duplication, and neither is front-loaded with information beyond the endpoint. The operation-id string and the describe_operation pointer are boilerplate that could be a single compact line.

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?

No output schema exists, so the description should describe what comes back (template shape, fields), and with 0% parameter coverage it should explain the id. Neither is present, leaving the agent with an endpoint path and nothing else for a nested-object request.

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 is expected to compensate and it does not. It never mentions the required 'id' (minLength 1, maxLength 2000) or the arbitrary 'query' object; only the ':id' template in the path hints at the parameter's meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated verbatim twice, so it restates the name/title rather than explaining what the tool returns. An agent can infer 'fetch one notification template by id' from the path, but no verb+resource statement or scope is actually given, and nothing distinguishes it from get_notifications_templates or get_notifications_templates_applicable.

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 the obvious siblings (list vs. applicable templates). The only forward-looking cue is 'describe_operation provides native request schemas', which is a generic boilerplate pointer, not usage guidance for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notifications_unread_count_35034232bb11d0bcbabde05anotifications: GET /api/notifications/unread-countC
Read-onlyIdempotent
Inspect

GET /api/notifications/unread-count. GET /api/notifications/unread-count. Operation ID: 35034232bb11d0bcbabde05a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is clear. The description adds no further behavioral context, such as what the count represents or any scoping effects, and 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes space by duplicating the same endpoint sentence and including a long operation ID. It is not front-loaded with useful information about the result or usage.

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 simple unread-count read endpoint, the description should at least state the return value or filtering behavior. With no output schema and no parameter descriptions, the current text leaves important context missing, even though annotations cover the safety profile.

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 does not explain the query object or empty params object. Saying describe_operation has native request schemas is a pointer, but it does not provide parameter meaning itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the HTTP endpoint twice and gives an opaque operation ID; it never explains in plain language that this returns the number of unread notifications. The path implies the resource, but the text is essentially tautological with the name/title.

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 use this tool versus nearby siblings like get_notifications, get_notification_settings, or notification preferences. The only pointer is that describe_operation provides native schemas, which is not a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_partners_construction_d381c13f069071f1da9310abpartners: GET /api/partners/constructionD
Read-onlyIdempotent
Inspect

GET /api/partners/construction. GET /api/partners/construction. Operation ID: d381c13f069071f1da9310ab; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no return shape, no pagination, no scoping caveats — only the describe_operation pointer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint path is duplicated verbatim in consecutive sentences, wasting the most prominent position. What remains (operation ID, describe_operation pointer) is boilerplate rather than front-loaded substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nested object parameters, zero schema coverage, and no output schema, the description supplies no information an agent could use to construct a call. It provides neither request semantics nor expected results, leaving only a redirect to another 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 description coverage is 0% and both parameters (a free-form 'query' object and an empty 'params' object with additionalProperties=false) are undocumented. The description compensates only by deferring to describe_operation for 'native request schemas', which points at the gap without filling it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/partners/construction' twice, which is a tautology of the title. It never says what resource is returned or what the tool is for, so an agent cannot tell it apart from the many other partners/construction-adjacent 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 statement of when to use this tool versus alternatives like find_sites, find_contracts, or execute_read. The single useful hint is that describe_operation provides native request schemas, which implies a prerequisite call, but no usage condition is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_payment_portal_bank_accounts_698ac28782cefbfcc9eb0efbpayment-portal: GET /api/payment-portal/bank-accountsD
Read-onlyIdempotent
Inspect

GET /api/payment-portal/bank-accounts. GET /api/payment-portal/bank-accounts. Operation ID: 698ac28782cefbfcc9eb0efb; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered without description help. The description adds nothing beyond the endpoint path and an operation ID — no scoping, auth, pagination, or result-shape context. It does not contradict annotations, but contributes no behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short, but the brevity comes from duplication — the same endpoint path appears twice with zero front-loaded intent. The bytes spent on repetition would have been better used on a single sentence of scope or usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, nested free-form parameters, zero schema description coverage, and no annotations explaining return content. The description leaves an agent unable to determine what the endpoint returns or how to shape the query object, which is inadequate for this complexity.

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 tool has two parameters (a free-form 'query' object and an empty 'params' object). The description explains neither, and even the nested free-form query object is undocumented, so an agent cannot know what filters or query keys are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path 'GET /api/payment-portal/bank-accounts' twice, which is essentially a tautology of the tool name. It does reveal the resource (bank accounts in the payment portal) but gives no verb-level intent such as whether it lists, searches, or summarizes them, and does nothing to distinguish it from sibling endpoints like get_payment_portal_payout_configs or get_payment_portal_dashboard.

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 to use this tool, no prerequisites, and no exclusion or alternative routing. The only actionable pointer is that describe_operation provides native request schemas, which is a schema hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_payment_portal_collection_overview_869ea0bab16fded323be0c67payment-portal: GET /api/payment-portal/collection-overviewD
Read-onlyIdempotent
Inspect

GET /api/payment-portal/collection-overview. GET /api/payment-portal/collection-overview. Operation ID: 869ea0bab16fded323be0c67; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the description adds nothing on the safety or mutation profile. It also omits what the response covers, whether it is scoped to a workspace or date range, and any pagination or cost characteristics. No annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but structurally wasteful: the endpoint path is repeated twice verbatim, and the operation ID adds no actionable information for an agent. Only the final clause about describe_operation carries signal, and it is buried at the end.

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 nested-object parameter with zero schema coverage and no output schema, the description needed to state what the overview returns and what the query object accepts. It supplies neither, offering only a redirect to describe_operation, which is a starting point but leaves the definition materially incomplete.

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 single meaningful parameter is a free-form 'query' object with additionalProperties unrestricted, so the schema itself conveys no parameter meaning. The description does not mention the query object at all, let alone which filters or date ranges it accepts. With two opaque parameters and no compensating text, this is a full miss.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name and title verbatim ('GET /api/payment-portal/collection-overview' twice) without explaining what a 'collection overview' contains or what it is for. An agent learns only that this is an HTTP GET on a payment-portal endpoint, which it already knew from the name. No differentiation from siblings such as get_payment_portal_dashboard or get_payment_portal_payout_configs.

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 to use this versus the many sibling payment-portal endpoint tools. The single instruction, 'describe_operation provides native request schemas,' is a pointer for schema discovery, not usage guidance. An agent cannot tell from this text whether to call this or get_payment_portal_dashboard for a given question.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_payment_portal_dashboard_7a1199111060e890568a4f7epayment-portal: GET /api/payment-portal/dashboardD
Read-onlyIdempotent
Inspect

GET /api/payment-portal/dashboard. GET /api/payment-portal/dashboard. Operation ID: 7a1199111060e890568a4f7e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no indication of whether results are workspace-scoped, cached, or expensive to compute. The describe_operation pointer is a minor value add.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, which is pure waste, and there is no front-loaded explanation of purpose. Size is short, but brevity here is under-specification rather than efficiency.

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 a schema that documents zero parameter semantics, the description needed to carry the burden and does not. An agent knows only the path and that it is a safe read — not what the payload contains or what to pass in query.

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 schema itself is opaque — 'query' is a free-form object with additionalProperties {} and 'params' has no properties. The description offers no hint about what query keys or filters are accepted, so the ambiguity is unresolved anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the HTTP path 'GET /api/payment-portal/dashboard' twice, which restates the title rather than explaining what the dashboard returns (metrics, balances, KPIs?). No distinction from siblings such as get_payment_portal_collection_overview or get_payment_portal_lessor_leases is offered, so an agent cannot tell what data this endpoint surfaces.

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 versus the many other payment-portal or dashboard tools. The only actionable sentence, 'describe_operation provides native request schemas,' is a pointer to another tool, not a usage condition or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_payment_portal_lessor_leases_1d098a7cc938a6318d23bdeepayment-portal: GET /api/payment-portal/lessor-leasesD
Read-onlyIdempotent
Inspect

GET /api/payment-portal/lessor-leases. GET /api/payment-portal/lessor-leases. Operation ID: 1d098a7cc938a6318d23bdee; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured metadata. The description adds nothing beyond that — no pagination behavior, no auth/permission requirements, no indication of result size or default ordering for a 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the brief text is wasted: the endpoint path is duplicated verbatim in the first two sentences. The only genuinely useful content (the describe_operation pointer) is buried at the end instead of being front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list endpoint with a fully opaque free-form query object, 0% schema coverage, no output schema, and no annotations explaining returns, the description does almost nothing to make the call actionable. It offloads the entire request contract to a separate describe_operation call without saying when that call is needed.

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 two parameters (a free-form `query` object and an empty `params` object) carry no documented meaning. The description compensates only by telling the agent that "describe_operation provides native request schemas," which is a pointer to another tool rather than any explanation of what `query` accepts or how filters should be formed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the tool name and the endpoint path twice ("GET /api/payment-portal/lessor-leases"), which is a tautology rather than an explanation. An agent can infer it lists lessor leases in the payment portal, but nothing states what a "lessor lease" contains, what scope or filters apply, or how it differs from get_leases_eeab45c45fa700898de650fe or get_payment_portal_collection_overview_869ea0bab16fded323be0c67.

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, when-not-to-use, or alternative routing is given. The only actionable sentence points the agent at describe_operation for request schemas, which is a schema-discovery hint rather than guidance on selecting this tool over its many payment-portal and lease siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_payment_portal_payout_configs_33088d2a9f9701efdf217a0bpayment-portal: GET /api/payment-portal/payout-configsC
Read-onlyIdempotent
Inspect

GET /api/payment-portal/payout-configs. GET /api/payment-portal/payout-configs. Operation ID: 33088d2a9f9701efdf217a0b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully carried by structured data. The description adds nothing beyond the path — no note on pagination, filtering scope, or what the config list contains. With the burden lifted by annotations, this is only mildly deficient rather than harmful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but not efficient: the endpoint line is duplicated verbatim and the operation ID is a machine identifier with no decision value for an agent. Front-loading is absent because there is essentially no substance to front-load.

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 two opaque free-form parameters, no output schema, and no documented response shape, the description should explain what the configs are and how to narrow them. Instead it defers entirely to describe_operation, leaving the agent unable to call this correctly without a second round trip.

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 both parameters (a free-form 'query' object with additionalProperties and an empty 'params' object) are undocumented. The description offers no field names, no accepted filter keys, and no format hints, so an agent cannot construct a query from it. Its one useful contribution is pointing at describe_operation as the source for the native request schema, which is a genuine but partial mitigation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim echo of the title and the raw HTTP path, repeated twice. It identifies the resource (payment-portal payout configs) only implicitly through the URL slug, with no plain-language statement of what the operation returns or why an agent would call it. It is closer to tautology than to a stated purpose, though the path does disambiguate it from other payment-portal 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 and no mention of alternatives such as get_payment_portal_stripe_config or get_leases_by_id_payout_config, which cover adjacent concepts. The only routing hint is 'describe_operation provides native request schemas', which tells the agent about a companion tool, not about when this tool itself applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_payment_portal_stripe_config_d0fab3943a9ddae52b0283ecpayment-portal: GET /api/payment-portal/stripe-configC
Read-onlyIdempotent
Inspect

GET /api/payment-portal/stripe-config. GET /api/payment-portal/stripe-config. Operation ID: d0fab3943a9ddae52b0283ec; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds nothing beyond that: no note on what configuration fields are exposed, whether secrets are redacted, or whether it requires specific portal/Stripe setup, and it contains no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the opening sentence is duplicated verbatim, which is pure redundancy, and the remaining content (operation ID, schema pointer) is boilerplate rather than front-loaded useful information.

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, no parameter documentation, and no annotation gaps to fill, the description still leaves the agent without a plain-language account of what is returned or how to form the query. The deferral to describe_operation partially mitigates but does not make the definition self-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?

Schema description coverage is 0% and the two parameters (a freeform 'query' object and an empty 'params' object) are undocumented. The description does not explain what query keys are accepted or that params must be empty, only deferring generically to describe_operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/payment-portal/stripe-config' twice, which is essentially a tautology of the tool name and title. It never states in plain language that it retrieves the Stripe payment-portal configuration (keys, mode, capabilities, etc.), so an agent must infer purpose from the URL slug alone.

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 use this versus siblings such as describe_operation, execute_read, or the other payment-portal getters (bank_accounts, payout_configs, dashboard). The only hint is the pointer that describe_operation provides request schemas, which is not a when-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pbc_requests_a993d7f29f56d09cf0cb4347pbc-requests: GET /api/pbc-requestsD
Read-onlyIdempotent
Inspect

GET /api/pbc-requests. GET /api/pbc-requests. Operation ID: a993d7f29f56d09cf0cb4347; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that: no pagination behavior, no filtering semantics, no note on response shape or limits. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, wasting the only structural emphasis available. There is no front-loaded statement of intent beyond the raw path.

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 generic REST-wrapper endpoint with an untyped query object, no output schema, and 0% parameter coverage, the description should explain at minimum what resource is listed and what can be filtered. The delegation to describe_operation covers request schemas but leaves the agent without enough to call this correctly.

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 both parameters ('query' and 'params') are opaque open objects with no property documentation. The description provides no parameter meaning whatsoever, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally 'GET /api/pbc-requests' twice, which restates the tool name and title without explaining what a PBC request is or how this list endpoint differs from siblings like get_pbc_requests_by_id or get_pbc_requests_summary. An agent learns only that it is an HTTP GET on that path.

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 or when-not-to-use guidance is given. The single actionable hint is the pointer to describe_operation for native request schemas, which is a discovery aid rather than selection guidance between this and the many sibling pbc/request tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pbc_requests_by_id_89ba7f56f66edcfad8e85987pbc-requests: GET /api/pbc-requests/:idC
Read-onlyIdempotent
Inspect

GET /api/pbc-requests/:id. GET /api/pbc-requests/:id. Operation ID: 89ba7f56f66edcfad8e85987; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond a pointer to describe_operation — no note on what happens when the ID does not exist, whether expansions or includes are supported, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint sentence is repeated verbatim, then an operation ID is appended — the length is padding rather than information. Nothing is front-loaded as actionable guidance; the only real content is the trailing describe_operation pointer.

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, 0% parameter documentation, and a nested 'query' object, the description leaves the agent without the information needed to construct a correct call or interpret the result. The describe_operation pointer is the sole useful context.

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 two parameters (path param 'id' and a free-form 'query' object). The description mentions ':id' only as part of the URL string and says nothing about the 'id' format, length constraints, or the semantics of the 'query' object, so it does not compensate for the undocumented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/pbc-requests/:id' twice, which duplicates the tool title 'pbc-requests: GET /api/pbc-requests/:id' rather than explaining the purpose in agent-facing language. An agent can infer it fetches a single PBC request by ID, but there is no statement of what a PBC request is and no differentiation from siblings like get_pbc_requests (list) or get_pbc_requests_summary.

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 use this tool versus get_pbc_requests (list), get_pbc_requests_summary, or execute_read. The only routing hint is 'describe_operation provides native request schemas', which points to a schema-discovery sibling but says nothing about selection conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pbc_requests_summary_ca935ad2ef71c3f97e9b1150pbc-requests: GET /api/pbc-requests/summaryD
Read-onlyIdempotent
Inspect

GET /api/pbc-requests/summary. GET /api/pbc-requests/summary. Operation ID: ca935ad2ef71c3f97e9b1150; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no mention of aggregation semantics, filtering defaults, pagination, or result shape for what is presumably a rollup endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the first sentence is duplicated verbatim and the remaining text is bookkeeping (operation ID) rather than information. Brevity here reflects under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, the parameters are undocumented, and the description provides no return-value description for a summary/aggregation endpoint whose output shape is entirely unknown. An agent cannot confidently call or interpret this tool from the definition alone.

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?

With 0% schema description coverage and two nested object parameters (query, params) containing empty/undefined shapes, the description must compensate but does not. The pointer to describe_operation is a marginal mitigation, yet no accepted query filters or param keys are named.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the HTTP path already encoded in the tool name/title ("GET /api/pbc-requests/summary" twice). It never states in prose what a 'pbc requests summary' returns or how it differs from siblings such as get_pbc_requests. This is effectively a restatement of the name, not an explanation of purpose.

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 versus get_pbc_requests or get_pbc_requests_by_id. The only routing hint is that "describe_operation provides native request schemas," which points at a helper tool rather than explaining selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pending_imports_35de5e1fb42a10d549a1ca45pending-imports: GET /api/pending-importsC
Read-onlyIdempotent
Inspect

GET /api/pending-imports. GET /api/pending-imports. Operation ID: 35de5e1fb42a10d549a1ca45; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. Beyond that the description adds nothing behavioral: no indication of pagination, filtering defaults, result volume, or whether 'pending' means awaiting approval, awaiting processing, or errored.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The path sentence is literally duplicated, and the operation ID adds noise. The one useful sentence (the describe_operation pointer) is buried at the end rather than front-loaded.

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?

No output schema exists, so the description should explain the shape of returned pending imports, yet it says nothing. Combined with an opaque nested query object and no return-value or filtering context, an agent cannot confidently invoke this tool from the definition alone.

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?

With two parameters at 0% schema description coverage and a free-form 'query' object with additionalProperties, the description must compensate — instead it offers only 'describe_operation provides native request schemas'. That is a pointer, not parameter semantics; supported filters, pagination keys, and the empty 'params' object are left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the tool name and HTTP path ('GET /api/pending-imports') twice, never explaining what a pending import is (queued import batches? files awaiting processing?) or what the listing returns. It differentiates from siblings only implicitly via the endpoint path, and the operation ID is an internal identifier with no semantic value to an agent.

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 call this versus closely related siblings such as get_pending_imports_stats, get_pending_imports_by_batchId, or get_import_history. The one actionable hint is that describe_operation provides native request schemas, which is a schema-discovery pointer rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pending_imports_by_batchId_9f0bfc5370899fc26d2f936apending-imports: GET /api/pending-imports/:batchIdC
Read-onlyIdempotent
Inspect

GET /api/pending-imports/:batchId. GET /api/pending-imports/:batchId. Operation ID: 9f0bfc5370899fc26d2f936a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing behavioral beyond the route — no indication of what a 'pending import' record contains, whether a missing batchId 404s, or result size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is duplicated verbatim, wasting the reader's attention, and the remaining content is an operation ID plus a pointer rather than front-loaded substance. Short but not economical.

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?

No output schema exists, so the description should explain return values, and it does not; it also gives no vocabulary for 'pending import' records. The one redeeming element is the explicit pointer to describe_operation, which tells the agent where to obtain the real request schema, but overall it leaves the tool's behavior underspecified.

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%, with two parameters (including a nested params object) and no field documentation anywhere. The description never explains what batchId refers to, its format, or what the optional query object is for, so it fails to compensate for the coverage gap; the redirect to describe_operation is only a partial mitigation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route 'GET /api/pending-imports/:batchId' twice, which is essentially a tautology of the name/title rather than a statement of what the tool returns or why an agent would call it. It also fails to differentiate from close siblings such as get_pending_imports_by_batchId_percenta..., get_pending_imports_by_batchId_rent_tie..., and get_pending_imports_by_batchId_source_d..., which all share the same batchId path shape.

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 guidance is 'describe_operation provides native request schemas', which is a pointer to a sibling, not a when-to-use rule. There is no statement of when this general batch lookup is preferred over the percentage/rent-tie/source-detail siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pending_imports_by_batchId_percenta_ba6827ae6a73cce2f8058b64pending-imports: GET /api/pending-imports/:batchId/percentage-rent-termsC
Read-onlyIdempotent
Inspect

GET /api/pending-imports/:batchId/percentage-rent-terms. GET /api/pending-imports/:batchId/percentage-rent-terms. Operation ID: ba6827ae6a73cce2f8058b64; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond a duplicate path and the describe_operation reference — no information about permissions, response shape, or behavior specific to percentage rent terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint sentence is repeated verbatim, wasting space, and the substantive content is only a pointer to another tool. Front-loading is absent; it is redundant rather than concise.

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 nested-object GET with no output schema and 0% parameter coverage, the description is far too thin. The describe_operation pointer is the only useful element, leaving an agent unable to understand scope or response without a follow-up call.

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, but it says nothing about what batchId identifies or how the freeform query object is used. It points to describe_operation for native schemas, which offloads the burden rather than adding meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the endpoint path 'GET /api/pending-imports/:batchId/percentage-rent-terms' twice. While the path implies fetching percentage rent terms for a given batch, there is no natural-language statement of purpose or differentiation from sibling tools like get_pending_imports_by_batchId_rent_tie or source_d.

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 tool versus sibling pending-imports endpoints. The only routing hint is the pointer to describe_operation for request schemas, which is a technical note rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pending_imports_by_batchId_rent_tie_31df7213b569e9b8b505c23dpending-imports: GET /api/pending-imports/:batchId/rent-tiersC
Read-onlyIdempotent
Inspect

GET /api/pending-imports/:batchId/rent-tiers. GET /api/pending-imports/:batchId/rent-tiers. Operation ID: 31df7213b569e9b8b505c23d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered for free. The description adds nothing beyond that: no note on pagination, response shape, or whether the batch must already exist or be in a particular state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the same sentence is literally duplicated and the operation ID plus the describe_operation pointer consume the remainder. Every token repeats structured fields the agent already has; nothing earns its place.

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 simple read endpoint this is nearly empty: it omits what data the tool returns, how rent tiers relate to a pending import batch, and any required lifecycle state. Nested 'query' support and the sibling sprawl around pending imports make the omission more costly than the tool's low complexity suggests.

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 (params.batchId and a free-form query object), so the description needed to compensate and does not. The ':batchId' path token weakly implies batchId is a path-scoped identifier, but neither its format nor the purpose of the untyped query object is explained anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path, which does encode a verb (GET) and resource (rent-tiers for a batch), but adds no explanation of what 'rent tiers' are or what the call returns. It does nothing to differentiate this tool from near-identical siblings like get_pending_imports_by_batchId_percenta_..., get_pending_imports_by_batchId_source_d..., or get_rent_import_workbook_by_batchId.

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 versus the other pending-imports or rent-import siblings, and no prerequisites stated. The only routing hint is that describe_operation exposes native request schemas, which is a schema-discovery pointer rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pending_imports_by_batchId_source_d_c0dcdd5ac7c1931c74929b81pending-imports: GET /api/pending-imports/:batchId/source-date-termsD
Read-onlyIdempotent
Inspect

GET /api/pending-imports/:batchId/source-date-terms. GET /api/pending-imports/:batchId/source-date-terms. Operation ID: c0dcdd5ac7c1931c74929b81; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds nothing beyond the path: no indication of what the source-date-terms payload represents, whether results are paginated, or what an empty/unprocessed batch looks like. The mention that describe_operation holds native request schemas is the sole added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, but the first is duplicated verbatim - pure waste - and the second is a housekeeping pointer. Brevity here comes from under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested freeform query object, 0% schema coverage, and no output schema, the description supplies no callable information: no path example, no query semantics, no return shape. An agent cannot determine how to construct a correct call from this definition alone.

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 parameters. The required 'batchId' has no documented format or provenance (which batch IDs are valid, where to obtain them), and the freeform 'query' object is completely unexplained. With an untyped additionalProperties query object, the description is the only place meaning could have been added, and it is absent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated twice: 'GET /api/pending-imports/:batchId/source-date-terms.' That restates the name and title rather than stating in plain language what data is returned (e.g. source date terms attached to a pending import batch). An agent can infer the resource from the URL, but nothing distinguishes it from sibling pending-imports endpoints.

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 to call this versus get_pending_imports_by_batchId_9f0bfc5370899fc26d2f936a, get_pending_imports_by_batchId_percenta_ba6827ae6a73cce2f8058b64, or get_pending_imports_by_batchId_rent_tie_31df7213b569e9b8b505c23d. The only directive is a pointer to describe_operation for request schemas, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pending_imports_stats_43ac73c15c95e633f22e7b0dpending-imports: GET /api/pending-imports/statsD
Read-onlyIdempotent
Inspect

GET /api/pending-imports/stats. GET /api/pending-imports/stats. Operation ID: 43ac73c15c95e633f22e7b0d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the description is not needed for the safety profile and adds no behavioral context of its own (aggregation granularity, scoping, freshness, auth requirements). The only extra content is the pointer to describe_operation, which is a discovery hint rather than behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single content sentence is repeated twice verbatim, which is pure waste, and the remaining text is a bare operation ID. There is no front-loaded statement of intent, so the definition is both redundant and under-specified rather than concise.

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, no parameter documentation, and free-form nested query/params objects, the description should explain the response shape (what 'stats' means) and the query contract. Instead it defers entirely to describe_operation, leaving the agent without enough to invoke the tool confidently beyond a parameterless call.

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 both parameters ('query' and 'params') are untyped free-form objects with no enumerated keys, so the description must compensate — yet it says nothing about what can go in query or params. The 'describe_operation' pointer is the only indirect help, which is far below what an agent needs to construct a valid call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path, which duplicates the title and tool name verbatim ('pending-imports: GET /api/pending-imports/stats'). There is no statement of what the stats contain or what question the tool answers, so the agent cannot distinguish it from siblings such as get_pending_imports_35de5e1fb42a10d549a1ca45 or get_pending_imports_by_batchId_percenta_ba6827ae6a73cce2f8058b64 beyond guessing from the URL.

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 or when-not-to-use guidance is given, and no alternative tool is named. The only actionable hint is that 'describe_operation provides native request schemas', which tells the agent to consult another tool but not when this particular endpoint is the right choice over the sibling list/count endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_matrix_38a8614a3c0a69d282e82f75portfolio-matrix: GET /api/portfolio-matrixD
Read-onlyIdempotent
Inspect

GET /api/portfolio-matrix. GET /api/portfolio-matrix. Operation ID: 38a8614a3c0a69d282e82f75; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no scoping, pagination, filtering, or data-freshness context — and merely repeats the endpoint string.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are an exact duplicate of the tool title, which wastes the only front-loaded position. The only useful content, the describe_operation pointer, is buried after the repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 0% parameter documentation, an empty `params` object, and a very large sibling set of similarly named portfolio tools, the description leaves the agent unable to determine what the tool returns or how to invoke it correctly. It should at minimum explain the matrix contents and how to specify the query.

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 two parameters (query, params) are opaque: `query` is an unconstrained object of arbitrary properties and `params` accepts nothing at all. The description provides zero parameter meaning, leaving the agent with no way to know what to pass.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP method and path ("GET /api/portfolio-matrix") twice, which is a tautology of the name/title. It never says what a portfolio matrix is, what data it returns, or how it differs from the many portfolio siblings (get_portfolio_rollups_metrics, get_portfolio_matrix_rollforward, view_portfolio_dashboard).

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 single actionable sentence points to describe_operation for native request schemas, which is a schema-retrieval hint rather than guidance on when to call this tool versus alternatives like get_portfolio_matrix_rollforward or view_portfolio_dashboard. No conditions, exclusions, or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_matrix_rollforward_c5675ebbe70e59d8eb93d1faportfolio-matrix: GET /api/portfolio-matrix/rollforwardD
Read-onlyIdempotent
Inspect

GET /api/portfolio-matrix/rollforward. GET /api/portfolio-matrix/rollforward. Operation ID: c5675ebbe70e59d8eb93d1fa; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered elsewhere. The description adds only a pointer to describe_operation; it says nothing about filtering, aggregation, pagination, or what the rollforward actually covers 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first sentence is duplicated verbatim, which is waste rather than economy. Nothing is front-loaded about purpose or usage; only the schema-pointer sentence carries information.

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, an untyped free-form query parameter and 0% schema coverage, the description leaves the agent unable to construct a correct call without first invoking describe_operation. The nested/opaque parameter shape plus the dense sibling set demands far more context than this provides.

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 both parameters ('query' as a free-form additionalProperties bag and an empty 'params' object) are opaque, so the description must compensate and does not. No mention of which query keys are meaningful, date ranges, entity scoping, or why 'params' exists and is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the endpoint path twice ('GET /api/portfolio-matrix/rollforward'), which restates the title rather than explaining what a rollforward is or what it returns. It does convey a read operation on a portfolio-matrix rollforward resource, but gives no notion of scope or content, and offers nothing to distinguish it from get_portfolio_matrix_38a8614a3c0a69d282e82f75 or the get_portfolio_rollups_* 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 or when-not-to-use guidance. The one actionable pointer — 'describe_operation provides native request schemas' — tells the agent how to learn the contract, but not when this endpoint is the right one versus the many portfolio/rollup siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_reassessments_materiality_e65ee814a4ade95673dc61a8portfolio-reassessments: GET /api/portfolio-reassessments/materialityC
Read-onlyIdempotent
Inspect

GET /api/portfolio-reassessments/materiality. GET /api/portfolio-reassessments/materiality. Operation ID: e65ee814a4ade95673dc61a8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond that: no note on whether results are paginated, whether the response is a portfolio-level rollup versus per-lease rows, or whether write/auth scope matters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint string is duplicated verbatim, which is pure waste. The remaining sentence is a boilerplate operation-ID line. There is no front-loaded explanation of purpose, so the few tokens present are not earning their place.

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?

The tool has nested/free-form input, no output schema, and no parameter documentation anywhere, so the description should explain the response shape and the accepted query filters. Neither is covered. The only compensating element is the redirect to describe_operation for the native request schema.

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 two free-form parameters ('query' accepting arbitrary keys and an empty 'params' object), so the description carries the burden of explaining what filters are accepted. It says nothing, offering only the generic pointer to describe_operation. That pointer is mildly useful but does not explain the query surface.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated twice: 'GET /api/portfolio-reassessments/materiality'. It names a resource and HTTP verb, but at the level of the name/title rather than explaining in prose what the tool returns (materiality thresholds? reassessment materiality determinations for the portfolio?). It does not distinguish itself from nearby siblings such as get_portfolio_reassessments_summary or get_reassessments_by_id.

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 to use this versus get_portfolio_reassessments_summary or get_lease_reassessments. The only routing value is the note that 'describe_operation provides native request schemas', which points at an alternative tool for schema discovery but says nothing about task selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_reassessments_summary_c94e8d97d175effbf2ce7c58portfolio-reassessments: GET /api/portfolio-reassessments/summaryD
Read-onlyIdempotent
Inspect

GET /api/portfolio-reassessments/summary. GET /api/portfolio-reassessments/summary. Operation ID: c94e8d97d175effbf2ce7c58; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered structurally. The description adds nothing beyond that — no indication of what the summary aggregates, whether it is scoped to a portfolio or the current user, or how expensive the call is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the content is a duplicated endpoint string rather than front-loaded meaning. Brevity here comes from under-specification, not efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no parameter documentation, and an untyped free-form query object — the description should carry the burden of explaining accepted filters and the shape of the summary, and it provides none of that.

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?

Two parameters (query, params) with 0% schema description coverage and the description says nothing about either. An agent cannot tell which filter keys are accepted in the free-form 'query' object or why 'params' is empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text repeats the raw endpoint path twice plus an operation ID; it never states in plain language what a 'portfolio reassessments summary' contains (counts, aggregates, per-lease rows). The name/title already conveys the same path, so this is effectively tautological.

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 routing hint is that describe_operation exposes native request schemas, which is a pointer for schema discovery rather than when-to-use guidance. It does not distinguish this from siblings such as get_portfolio_reassessments_materiality_e65ee814a4ade95673dc61a8, get_lease_reassessments_869e75f386f3a30488016b42, or get_reassessments_pending_543634d03377f7b8399b1d63.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_rollups_entities_f34de4f0c5c4d582c18cdde1portfolio-rollups: GET /api/portfolio-rollups/entitiesC
Read-onlyIdempotent
Inspect

GET /api/portfolio-rollups/entities. GET /api/portfolio-rollups/entities. Operation ID: f34de4f0c5c4d582c18cdde1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is fully covered elsewhere. The description adds nothing about aggregation semantics, scoping, pagination, or volume for an entity-level rollup endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are verbatim duplicates of the same endpoint path, which is pure waste. What remains is a pointer sentence; brevity here reflects under-specification rather than efficient communication.

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 nested-parameter endpoint with no output schema and no parameter documentation, an agent cannot tell what entities are returned, what query supports, or how to shape the request. The description leaves nearly all of that to a follow-up call.

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 both parameters (query as a free-form nested object, empty params object) are undocumented. The description does not explain what query filters are valid or give examples; it only defers to describe_operation, which is a pointer rather than semantic content.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the HTTP path already present in the title and operation ID; it never says what a 'portfolio rollup entity' is or what the call returns. It is effectively a tautology of the name, distinguishing it from siblings like get_portfolio_rollups_metrics or get_portfolio_rollups_snapshots not at all.

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 to use this versus the many sibling portfolio/dashboard tools. The only actionable hint is that describe_operation exposes native request schemas, which is a how-to-discover-params note, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_rollups_history_6837fa87254a31aedb92edaeportfolio-rollups: GET /api/portfolio-rollups/historyC
Read-onlyIdempotent
Inspect

GET /api/portfolio-rollups/history. GET /api/portfolio-rollups/history. Operation ID: 6837fa87254a31aedb92edae; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing about what the history covers (time range, granularity, pagination, ordering) or what 'history' returns, beyond redirecting to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste, and the operation ID adds no decision value. Nothing about purpose or behavior is front-loaded because there is no real content to front-load.

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 a nested free-form query object, no output schema, and 0% parameter documentation, the description is far too thin to call this endpoint correctly. The describe_operation redirect is a partial mitigation, but an agent still cannot tell what history window, grouping, or entity scope is expected without an extra round trip.

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 0% and the two top-level parameters are a free-form nested 'query' object with additionalProperties allowed plus an empty 'params' object, so the schema conveys essentially no semantics. The description does not compensate; it only points at describe_operation for native schemas, leaving the agent to make a second call to learn anything about filtering or paging.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name and endpoint path ("GET /api/portfolio-rollups/history") twice, with no verb-and-resource explanation of what the response contains or what a 'rollup history' means. An agent learns nothing beyond the URL segment, and nothing distinguishes it from siblings like get_portfolio_rollups_metrics or get_portfolio_rollups_snapshots.

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 to use this endpoint versus the other portfolio-rollup siblings (entities, metrics, snapshots) or vs. execute_read. The only actionable hint is that describe_operation can supply native request schemas, which is a prerequisite instruction rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_rollups_metrics_525297e10bb0200d0f5de5e8portfolio-rollups: GET /api/portfolio-rollups/metricsD
Read-onlyIdempotent
Inspect

GET /api/portfolio-rollups/metrics. GET /api/portfolio-rollups/metrics. Operation ID: 525297e10bb0200d0f5de5e8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of what a rollup is, granularity, aggregation semantics, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that duplicate the same endpoint path verbatim, plus an operation ID — noise rather than information. Nothing is front-loaded because nothing substantive is said.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A GET endpoint with a nested free-form query object, 0% parameter coverage, and no output schema leaves an agent unable to know what to send or what comes back. The single hint to consult describe_operation does not compensate for the total absence of behavioral or parameter detail.

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 free-form `query` object gives no clue what filters are valid. The description's only contribution is redirecting to describe_operation for native schemas, which is modest value but leaves the parameters essentially undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is effectively a restatement of the tool name and endpoint path ("GET /api/portfolio-rollups/metrics") twice. It never says what the metrics are, what they measure, or how they differ from siblings like get_portfolio_rollups_history or get_portfolio_rollups_snapshots.

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 use this tool versus the nearby rollup tools (entities, history, snapshots) or portfolio_matrix. The only pointer is that describe_operation exposes native request schemas, which is a schema aid, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portfolio_rollups_snapshots_f31ba5fc9adc696e65383a9cportfolio-rollups: GET /api/portfolio-rollups/snapshotsC
Read-onlyIdempotent
Inspect

GET /api/portfolio-rollups/snapshots. GET /api/portfolio-rollups/snapshots. Operation ID: f31ba5fc9adc696e65383a9c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds nothing beyond a pointer to describe_operation: no mention of scope, filtering, pagination, or what a 'snapshot' record represents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint path is literally repeated verbatim, which is pure waste, and the operation ID adds nothing for an agent. The one genuinely useful sentence (describe_operation provides native schemas) is buried last.

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?

No output schema, a nested free-form query object, zero schema coverage, and dozens of adjacent portfolio-rollups tools. For this complexity level the description should at minimum say what the snapshots list contains and how to filter it; it does neither.

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 two parameters, one a free-form 'query' object with additionalProperties and no documented keys. The description gives no parameter meaning at all and only redirects to describe_operation, which leaves an agent unable to construct a useful request without a second call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description simply restates the endpoint path 'GET /api/portfolio-rollups/snapshots' twice, which is a tautology of the tool name. There is no verb or explanation of what a 'snapshot' is or how this differs from close siblings such as get_portfolio_rollups_history, get_portfolio_rollups_metrics and get_portfolio_rollups_entities.

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 statement of when to use this tool versus the many other portfolio-rollups endpoints. The only actionable guidance is a meta-hint to call describe_operation for native request schemas, which is procedural rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_premises_types_32cae051c07f706e41896a2apremises-types: GET /api/premises-typesC
Read-onlyIdempotent
Inspect

GET /api/premises-types. GET /api/premises-types. Operation ID: 32cae051c07f706e41896a2a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that: no note on pagination, filtering, permissions, or result shape. It does not contradict the annotations, but it contributes no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but largely wasted: the endpoint path is stated twice verbatim. Structure is not front-loaded with purpose or constraints, and the one useful sentence (the describe_operation pointer) is buried at the end.

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, 0% parameter coverage, and a nested free-form query object, the description needs to explain inputs and expected returns; it explains neither. The redirect to describe_operation is the only thing preventing a 1, but it leaves the agent unable to call this tool confidently from the definition alone.

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 both parameters are nested objects (a free-form `query` with arbitrary keys and an empty `params`). The description does not name a single accepted query key or explain the query/params split, so an agent must fall back to describe_operation or guess. Only the generic pointer to native schemas provides any value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a bare restatement of the title and endpoint path ("GET /api/premises-types"), duplicated twice. It names no business meaning for "premises types," no scope, and offers nothing to distinguish it from the hundreds of other GET endpoints in the sibling list. It is effectively a tautology of the 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?

There is no statement of when to call this versus alternatives such as describe_operation, search_operations, or execute_read. The only actionable hint is that describe_operation supplies native request schemas, which is a pointer to another tool rather than usage guidance for this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_profileConnected LeaseCommand ProfileA
Read-onlyIdempotent
Inspect

Identify the authenticated user’s connected organization. The opaque profile ID is stable across token refresh and reconnection and differs between users and organizations. This tool never selects another user or organization.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
idYes
emailNo
nicknameNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new behavioral facts: the ID is opaque and stable across token refresh and reconnection, and it differs per user and per organization — useful for caching and identity-matching decisions that annotations cannot convey.

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 sentences, front-loaded with the identity statement, then the stability caveat, then the scope limitation. Nothing is padded; the only marginal sentence is the final scope disclaimer, which still earns its place by preventing misuse.

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-only identity tool with a full output schema and complete annotations, the description covers what it returns (organization identity plus a stable opaque profile ID) and what it cannot do. Nothing needed 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?

The tool takes zero parameters, so the baseline applies and there is no schema semantics to compensate for. The description correctly avoids fabricating parameter talk and instead clarifies that no user/org identifier is accepted.

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 concrete verb ('Identify') and a precisely scoped resource ('the authenticated user's connected organization'), which is unmistakable against the hundreds of get_* siblings that fetch leases, contracts, or accounting records. It stops short of naming a contrasting sibling, but the 'authenticated user' framing already excludes the generic entity lookups.

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?

There is no explicit statement of when to call this versus alternatives such as get_users or describe_operation. The final sentence ('never selects another user or organization') functions as an implicit exclusion, telling the agent not to attempt fetching a different user's profile with it, but the guidance 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.

get_reassessments_by_id_54f727e5a93a0bdde9b57452reassessments: GET /api/reassessments/:idD
Read-onlyIdempotent
Inspect

GET /api/reassessments/:id. GET /api/reassessments/:id. Operation ID: 54f727e5a93a0bdde9b57452; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds nothing beyond that — no note on what a missing ID returns, no pagination or expansion behavior, no indication of the response payload.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The very first sentence is duplicated verbatim and the operation ID hash is noise for an agent. What remains is a single useful clause, so the text is both redundant and under-informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With two parameters (one nested query object) at 0% schema coverage, no output schema, and no annotations explaining return shape, the description provides nothing an agent needs to call the tool correctly. It falls far short of what a bare GET-by-ID tool requires.

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 explains the required 'id' path parameter or the free-form 'query' object. The only hint is the ':id' token embedded in the path string, leaving both parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path repeated twice: 'GET /api/reassessments/:id' plus an operation ID. It implies a fetch of a reassessment by ID, but never states in words what the tool returns or how it differs from siblings like get_reassessments_pending or get_lease_reassessments.

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 guidance is a pointer that 'describe_operation provides native request schemas', which is a reference to a sibling tool rather than a when-to-use rule. There is no statement of when to pick this over the many other reassessment-related getters in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reassessments_by_id_current_schedul_c1f1fd4983e0312dbd12ca5dreassessments: GET /api/reassessments/:id/current-scheduleC
Read-onlyIdempotent
Inspect

GET /api/reassessments/:id/current-schedule. GET /api/reassessments/:id/current-schedule. Operation ID: c1f1fd4983e0312dbd12ca5d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no mention of what the schedule contains, pagination, or whether the schedule may be absent for some reassessments. It does not contradict the annotations, but it contributes no 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains the same sentence twice verbatim, which is pure waste with no front-loaded value. The only substantive content is a pointer to describe_operation, buried after the duplication. Short does not equal concise here because the repetition earns nothing.

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, no parameter documentation, and a nested-object query parameter, the description should explain what the endpoint returns and how to scope it. Instead it delegates everything to describe_operation and repeats the path. For a tool in a dense sibling namespace, this is insufficient to call correctly without further exploration.

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 carries the full burden of explaining the two parameters. It only echoes ':id' from the path, adding no meaning to the required 'id' parameter (format, source, constraints) and never mentions the free-form 'query' object at all. This leaves an agent guessing about both parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path, which is already embedded in the tool title and name. While the path hints that this retrieves a reassessment's 'current schedule', the description never explains what a current schedule is or how it differs from the sibling get_reassessments_by_id or get_reassessments_by_id_rate_rule. This is tautology rather than clarification.

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 versus the many sibling reassessment tools (get_reassessments_by_id, get_reassessments_by_id_document_types, get_reassessments_by_id_rate_rule). The only directional hint is 'describe_operation provides native request schemas', which points to another tool for schema discovery rather than explaining usage conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reassessments_by_id_document_types_c11c8bf546dfde1b4cc839ffreassessments: GET /api/reassessments/:id/document-typesC
Read-onlyIdempotent
Inspect

GET /api/reassessments/:id/document-types. GET /api/reassessments/:id/document-types. Operation ID: c11c8bf546dfde1b4cc839ff; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no indication of what is returned, whether results are paginated or filtered, or what happens for an unknown id — so it earns little credit above the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the first sentence is duplicated word-for-word, which is pure waste. The remaining content is two fragments of machine-generated metadata rather than an explanation.

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 zero parameter description coverage, the description would need to explain the return shape and the query object; it does neither. For a nested-object schema with an undocumented free-form query parameter, this leaves the agent guessing.

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 only echoes the ':id' path placeholder, telling the agent nothing about format, validity, or what the free-form 'query' object accepts. It does not compensate for the schema gap, though ':id' at least anchors the required parameter to a reassessment.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a literal restatement of the endpoint path and repeats it verbatim, which is only marginally more informative than the title itself. An agent can infer it fetches document types for a reassessment id, but nothing states what a 'document type' means here or how this differs from sibling reassessment endpoints like get_reassessments_by_id_54f727e5a93a0bdde9b57452.

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 guidance given is that describe_operation provides native request schemas, which is a meta-pointer rather than a when-to-use rule. There is no statement of when to call this versus the other reassessment sub-resource tools, nor any prerequisite or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reassessments_by_id_rate_rule_db76e537c2a9e901d37c37b9reassessments: GET /api/reassessments/:id/rate-ruleD
Read-onlyIdempotent
Inspect

GET /api/reassessments/:id/rate-rule. GET /api/reassessments/:id/rate-rule. Operation ID: db76e537c2a9e901d37c37b9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond an operation ID and the describe_operation pointer — nothing about what the rate rule contains or any access constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short but wastes half its length by duplicating the same path string verbatim, and the remaining sentence is boilerplate rather than front-loaded substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested query object, zero schema coverage, and no output schema, the description provides nothing an agent needs to invoke it correctly — no parameter meaning, no return shape, no selection criteria.

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 does not explain the 'id' path parameter (which entity it identifies — a reassessment) or the free-form 'query' object at all. With two undocumented parameters and a nested object, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the raw HTTP path 'GET /api/reassessments/:id/rate-rule' twice, effectively echoing the tool name and title without explaining in plain language what a rate rule for a reassessment is or what is returned.

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 statement of when to use this versus siblings such as get_reassessments_by_id or get_lease_reassessments. The only actionable hint is a pointer to describe_operation for native request schemas, which is procedural rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reassessments_pending_543634d03377f7b8399b1d63reassessments: GET /api/reassessments/pendingD
Read-onlyIdempotent
Inspect

GET /api/reassessments/pending. GET /api/reassessments/pending. Operation ID: 543634d03377f7b8399b1d63; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds nothing beyond a pointer to describe_operation — no pagination behavior, filtering semantics, or what 'pending' means operationally (awaiting approval? not yet processed?).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence 'GET /api/reassessments/pending' is duplicated verbatim, which is pure waste rather than conciseness. The operation ID and describe_operation pointer are the only non-redundant content, and neither is front-loaded as useful information.

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?

Given a list endpoint with an open query object and no output schema, the description should explain what is returned and how to filter. Neither is provided, leaving the agent dependent on calling describe_operation or guessing; only the annotations supply any usable context.

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 both parameters (query, params) are untyped open/additional-property objects with no documented properties. The description makes no attempt to explain what belongs in query or params, so it fails entirely to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path and operation ID, effectively paraphrasing the tool name. It implies the resource is 'pending reassessments' but never says what a reassessment is, what the pending list represents, or how it differs from siblings like get_leases_by_leaseId_reassessments or get_portfolio_reassessments_summary.

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 mention of when this list endpoint should be preferred over the per-lease or portfolio reassessment siblings, and no preconditions. The only actionable pointer is that describe_operation has the native request schemas, which is a fallback instruction rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_deadlines_d9d260f89cd4da56d069f205recon: GET /api/recon/deadlinesC
Read-onlyIdempotent
Inspect

GET /api/recon/deadlines. GET /api/recon/deadlines. Operation ID: d9d260f89cd4da56d069f205; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds essentially nothing: no scope, no pagination, no auth requirements, no mention of what the deadline list contains or how it is ordered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but only because it is under-specified, and the first sentence is duplicated verbatim, which is pure waste. The operation ID and schema-pointer note are the only non-redundant content and are not front-loaded as guidance.

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, 0% parameter coverage, and nested free-form objects, the description must carry the burden — yet it provides no return shape, no filter semantics, and no usage context. The pointer to describe_operation is the sole mitigating element.

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 two parameters ('query' and 'params') are untyped catch-all objects with no documented fields. The description does not name a single parameter or explain the query object, and only deflects to describe_operation for the real request schema, leaving the agent without usable parameter semantics here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the title/name: 'GET /api/recon/deadlines' appears twice with an operation ID appended. It does not say in natural language what a recon deadline is, what it returns, or how it differs from siblings like get_recon_issues or get_recon_docs_statements. An agent learns the HTTP path but not the meaning of the resource.

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 call this versus alternatives, no prerequisites, no filtering context. The only actionable hint is 'describe_operation provides native request schemas', which points to a sibling for schema discovery but is not a when-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_docs_audit_packages_9a11f08117e5e4b557d495e9recon-docs: GET /api/recon-docs/audit-packagesC
Read-onlyIdempotent
Inspect

GET /api/recon-docs/audit-packages. GET /api/recon-docs/audit-packages. Operation ID: 9a11f08117e5e4b557d495e9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond restating 'GET' and pointing at describe_operation: no pagination, filtering defaults, result ordering, or response shape is disclosed for a collection endpoint that likely paginates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence 'GET /api/recon-docs/audit-packages' appears twice back to back, which is pure waste, and the operational ID adds no decision value. The description is short but poorly structured rather than efficient.

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 two-parameter, nested-object collection endpoint with no output schema and 0% schema coverage, the description should explain what the query object accepts and what the listing returns. Instead it delegates entirely to describe_operation, leaving the agent unable to construct a call without a second tool hop.

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 'query' parameter is an unconstrained object with additionalProperties {}, so the schema tells the agent nothing about supported filters. The description does not compensate at all — it neither names any query fields nor explains what 'params' is for, only deferring to describe_operation.

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 names the verb and resource (GET /api/recon-docs/audit-packages), so the agent knows it lists audit packages, but the same sentence is repeated verbatim and never explains what an audit package is or what the listing contains. It implicitly distinguishes itself from the sibling get_recon_docs_audit_packages_by_id, but only through the URL rather than explicit routing language.

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 to use this list endpoint versus the by-id sibling, no prerequisite or scope conditions. The only usable guidance is the pointer that describe_operation provides native request schemas, which is about schema discovery rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_docs_audit_packages_by_id_2e6746fec4b4bd0c68cff37drecon-docs: GET /api/recon-docs/audit-packages/:idC
Read-onlyIdempotent
Inspect

GET /api/recon-docs/audit-packages/:id. GET /api/recon-docs/audit-packages/:id. Operation ID: 2e6746fec4b4bd0c68cff37d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing about auth requirements, error behavior (e.g. 404 for an unknown id), or the response payload; the sole useful addition is the note that describe_operation carries native request schemas.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint path is duplicated word-for-word in the first two sentences, wasting half the text. The one genuinely informative clause (operation ID and the describe_operation pointer) is buried at the end rather than front-loaded.

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?

There is no output schema, so the description should hint at the returned resource, but it says nothing about the audit-package object or its parts. Combined with 0% parameter documentation in a nested-object schema, an agent cannot call this correctly without first invoking describe_operation.

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 (query and a nested params.id with no description at all), so the description must compensate and does not — it gives no format, constraints, or meaning for the id. Pointing at describe_operation for native request schemas partially offsets this but still forces an extra tool call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated verbatim, which merely restates the title. It never says what an 'audit package' is or what retrieving one returns, so an agent facing hundreds of sibling GET-by-id tools has nothing to distinguish this one beyond the URL segment.

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 to use this tool versus the collection sibling (get_recon_docs_audit_packages_9a11f08117e5e4b557d495e9) or the templates endpoint, nor any prerequisite or exclusion. The only routing hint is the pointer to describe_operation for schemas, which is about request shape, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_docs_share_log_01416d644c318f2974432764recon-docs: GET /api/recon-docs/share-logC
Read-onlyIdempotent
Inspect

GET /api/recon-docs/share-log. GET /api/recon-docs/share-log. Operation ID: 01416d644c318f2974432764; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond pointing at describe_operation for schemas — no pagination, filtering, or return-shape context. No contradiction with annotations, but very little added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is printed twice verbatim, which is pure waste in an already minimal description. The remaining content is front-loaded but contains almost no information, so brevity here reflects under-specification rather than tight writing.

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 zero-required-parameter, nested-object tool with no output schema and 0% parameter documentation, an agent cannot tell what a 'share log' returns or what to pass in the opaque query/params objects. The describe_operation pointer is the only lifeline, and it is not enough to call this tool correctly on first attempt.

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 two top-level parameters (query, params), and 'params' is an empty closed object with additionalProperties:false, which is genuinely confusing. The description's only compensation is deferring to describe_operation; it gives no meaning for query vs params, no expected fields, no examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/recon-docs/share-log', which is already encoded in the tool name and title. It names a resource (share log for recon docs) but no verb-level intent, no statement of what the log contains, and no differentiation from the many other recon-docs siblings (audit-packages, statements, templates). This is close to tautology.

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 to call this versus alternatives such as execute_read or the other get_recon_docs_* tools. The single actionable hint is 'describe_operation provides native request schemas', which weakly implies a prerequisite step but says nothing about selection or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_docs_statements_4ed6288266380988f6b29ec4recon-docs: GET /api/recon-docs/statementsC
Read-onlyIdempotent
Inspect

GET /api/recon-docs/statements. GET /api/recon-docs/statements. Operation ID: 4ed6288266380988f6b29ec4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds nothing beyond that — no mention of pagination, filtering behavior, or response shape for a list endpoint, so it does not earn credit for extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim, wasting half the text. The one useful clause (describe_operation provides native request schemas) is buried after a redundant repetition and an opaque operation ID.

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, 0% parameter coverage, nested objects, and a huge sibling set of recon-docs tools, the description should explain inputs and what is returned. Instead it points at describe_operation and leaves every substantive question unanswered.

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 two parameters: 'query' is an unconstrained free-form object and 'params' is an empty closed object, with no explanation of what they accept. The description does not compensate; the sole hint is to call describe_operation for the native schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path 'GET /api/recon-docs/statements', which is essentially the tool name/title repeated. It never says in plain language what a 'statement' is here or how this list endpoint differs from the sibling get_recon_docs_statements_by_id.

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/when-not guidance and no routing to alternatives such as get_recon_docs_statements_by_id_aeb76d55db876da12d8696b9. The only actionable hint is that describe_operation supplies native request schemas, which is a schema-lookup pointer rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_docs_statements_by_id_aeb76d55db876da12d8696b9recon-docs: GET /api/recon-docs/statements/:idC
Read-onlyIdempotent
Inspect

GET /api/recon-docs/statements/:id. GET /api/recon-docs/statements/:id. Operation ID: aeb76d55db876da12d8696b9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description adds nothing beyond the path and an operation ID; it says nothing about what is returned or permission requirements. Repeating the path verbatim is not 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is repeated verbatim, which is pure waste, and the only other content is an operation ID and a pointer to another tool. Nothing is front-loaded beyond the path itself.

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 nested-object tool with a required path parameter and no output schema, the description is far too thin: it omits what is returned, the meaning of the id, and error behavior. Annotations carry the safety profile, but the call semantics remain 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 coverage is 0%, so with 2 parameters (including a required 'id' path parameter) the description should compensate, but it never mentions the id parameter or any format constraints. The reference to describe_operation provides a possible fallback but does not document the parameter itself.

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 restates the HTTP path (GET /api/recon-docs/statements/:id), which does identify the verb and resource, but it is a tautological repetition of the title rather than an independent explanation. It gives no indication of what a 'statement' is or why one would fetch it, and it doesn't distinguish this from the sibling get_recon_docs_statements (list) tool.

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 use this versus the list endpoint get_recon_docs_statements or describe_operation. The only hint is that describe_operation provides native request schemas, which is a pointer to another tool, not usage criteria for this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_docs_templates_audit_package_15e4c233cc9470a4e0f6d0d7recon-docs: GET /api/recon-docs/templates/audit-packageC
Read-onlyIdempotent
Inspect

GET /api/recon-docs/templates/audit-package. GET /api/recon-docs/templates/audit-package. Operation ID: 15e4c233cc9470a4e0f6d0d7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds nothing beyond that — no note on pagination, filtering behavior, what the template list contains, or auth scoping. It neither contradicts nor enriches 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string is repeated verbatim as two consecutive sentences, wasting the only content slot. There is no front-loaded explanation, just a path echo plus an operation ID reference.

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?

No output schema exists, both parameters are undocumented, and the description supplies no return-shape or behavior information, leaving an agent unable to call this correctly without first invoking describe_operation. For a nested-object, 2-parameter endpoint this is insufficient.

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 both parameters (a free-form 'query' object and an empty 'params' object) are completely undocumented. The description adds no parameter meaning at all; the pointer to describe_operation is the only, indirect, compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path and name ('GET /api/recon-docs/templates/audit-package') twice, without explaining what an audit-package template is or what a GET on it returns. An agent can infer the resource from the path but gets no verb-level intent beyond the raw HTTP method. This is close to tautology rather than a stated purpose.

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 mention of the sibling get_recon_docs_templates_statement or of get_recon_docs_audit_packages, and no prerequisites. The only routing hint is that describe_operation 'provides native request schemas', which points to a discovery step but not to selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_docs_templates_statement_de18afef4f553fd5ea07e380recon-docs: GET /api/recon-docs/templates/statementD
Read-onlyIdempotent
Inspect

GET /api/recon-docs/templates/statement. GET /api/recon-docs/templates/statement. Operation ID: de18afef4f553fd5ea07e380; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no mention of pagination, filtering behavior, or the shape of returned statement templates. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes its opening sentence by duplicating the endpoint path verbatim, then repeats the same phrase a second time. The one informative element (the describe_operation pointer) is buried at the end rather than front-loaded.

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 0% schema coverage, a nested free-form query object, and no output schema, the description carries the full burden of explaining inputs and behavior but supplies essentially none. An agent knows only that it is a read on a statement-template endpoint and must fall back to describe_operation for anything usable.

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 two parameters are opaque: 'query' is a free-form object with additionalProperties and 'params' has no defined properties. The description provides no information about what query keys are accepted or what these parameters do, leaving an agent unable to construct a meaningful call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path, which itself just echoes the title. An agent can infer 'read statement templates for recon docs' from the URL segments, but no plain-language statement of what a statement template is or contains is offered, and there is no differentiation from sibling template tools such as get_recon_docs_templates_audit_package.

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, when-not-to-use, or alternative guidance is present. The only directive is a pointer that describe_operation provides native request schemas, which is a useful routing hint but does not tell the agent when this tool is the right choice over the many other recon-docs and template getters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_issues_54383fd24a5dec1c0d6f6b13recon: GET /api/recon/issuesC
Read-onlyIdempotent
Inspect

GET /api/recon/issues. GET /api/recon/issues. Operation ID: 54383fd24a5dec1c0d6f6b13; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context of its own — no mention of pagination, default result limits, or filtering behavior for an endpoint that presumably returns a collection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but front-loads a verbatim duplicate ('GET /api/recon/issues. GET /api/recon/issues.'), which is pure waste. Removing the repetition would leave only the operation ID and the describe_operation pointer.

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-gap read tool with an undocumented nested 'query' parameter and no output schema, the description should describe what the endpoint returns and how to filter. The describe_operation pointer offers a partial escape hatch, but nothing else an agent needs to invoke this correctly is present.

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?

With 0% schema description coverage on two parameters (a free-form 'query' object and an empty 'params' object), the description carries the compensation burden. Its single useful contribution is routing the agent to describe_operation for native request schemas, but it explains nothing about what 'query' accepts or what 'params' is for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint route already present in the tool name ('GET /api/recon/issues' twice), which is a tautology rather than a natural-language statement of what the resource contains or returns. An agent learns it reads something called 'recon issues' but nothing about scope, filters, or how it differs from siblings like get_recon_issues_by_id or get_recon_deadlines.

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 to use this tool versus alternatives such as get_recon_issues_by_id or get_recon_deadlines, nor any prerequisites. The only actionable hint is 'describe_operation provides native request schemas', which is a documentation pointer rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recon_issues_by_id_26c60d2e817941cb309cf8f4recon: GET /api/recon/issues/:idC
Read-onlyIdempotent
Inspect

GET /api/recon/issues/:id. GET /api/recon/issues/:id. Operation ID: 26c60d2e817941cb309cf8f4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds nothing beyond that: no definition of what a 'recon issue' contains, no not-found/error behavior, no scoping or permission notes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short but not concise in any useful sense: the same sentence appears twice verbatim, followed by an opaque operation UUID. Space is spent on duplication rather than on front-loading anything informative.

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, no documented parameters, and a nested free-form object, the description should explain at minimum what a recon issue is and what the response roughly contains. It supplies none of that, leaving the agent unable to predict the result of the call.

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 two parameters, including a free-form nested 'query' object, so the description carries the burden and does not meet it. It never names 'id' or its constraints, nor explains what the 'query' object is for; only the raw path hint ':id' weakly maps to the required param.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the title repeated verbatim twice ("GET /api/recon/issues/:id") plus an operation ID. The HTTP path does imply the resource (recon issues) and a by-id lookup, but the text adds no stated purpose and does not distinguish this from the sibling list tool get_recon_issues_54383fd24a5dec1c0d6f6b13 — it is effectively a tautology.

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, when-not-to-use, or alternative is given. The only actionable hint is that describe_operation provides native request schemas, which is a procedural pointer rather than usage guidance, and it never tells the agent to prefer this tool over the list endpoint when it has a single ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recurring_expenses_512adadc5684c46099999affrecurring-expenses: GET /api/recurring-expensesC
Read-onlyIdempotent
Inspect

GET /api/recurring-expenses. GET /api/recurring-expenses. Operation ID: 512adadc5684c46099999aff; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no return shape, no pagination, no scoping behavior for what is presumably a collection endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is duplicated verbatim, which is pure waste rather than front-loaded structure. It is short, but the content is redundant operation-ID boilerplate.

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 nested, free-form query object with zero schema descriptions and no output schema, the description should explain what query parameters are available or expected. Instead it defers entirely to describe_operation, leaving an agent unable to call it correctly without a second 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 0% and the two parameters are an unconstrained free-form `query` object plus an empty `params` object, so the schema explains nothing. The description's only compensation is pointing at describe_operation for native schemas, leaving the actual query semantics undocumented here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name/title ("GET /api/recurring-expenses") twice, which is tautological rather than explanatory. It does imply a list-style read of recurring expenses, but gives no scope, filters, or differentiation from the sibling get_recurring_expenses_by_id.

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 list endpoint versus get_recurring_expenses_by_id or execute_read. The only actionable pointer is "describe_operation provides native request schemas," which is a discovery hint, not 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.

get_recurring_expenses_by_id_687f84a78ca8f6fe3f5ef0bdrecurring-expenses: GET /api/recurring-expenses/:idD
Read-onlyIdempotent
Inspect

GET /api/recurring-expenses/:id. GET /api/recurring-expenses/:id. Operation ID: 687f84a78ca8f6fe3f5ef0bd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The only added content is a pointer that describe_operation provides native request schemas, which has modest navigational value but discloses nothing about behavior, errors (e.g. 404 on unknown id), or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful sentence is duplicated word-for-word, wasting half the description. The remaining sentence is metadata (operation ID) that does not help an agent decide or call correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object, two-parameter lookup tool with 0% schema description coverage and no output schema, the description supplies nothing about what the returned recurring expense looks like or how to form the request. Annotations cover only safety, so the description's silence leaves the definition substantively incomplete.

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 explains that `params.id` is the recurring-expense identifier or what the free-form `query` object is for. The lone '`:id`' fragment in the path is the only hint, and 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the raw endpoint path repeated verbatim twice: "GET /api/recurring-expenses/:id". This signals a fetch-by-identifier for the recurring-expenses resource, but it is a restatement of the title rather than an explanation. There is no differentiation from the sibling get_recurring_expenses_512adadc5684c46099999aff (the list endpoint) or any statement of what a recurring expense record contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative-tool guidance is provided. An agent gets no help choosing between this tool and the plural list tool or the execute_read/describe_operation wrappers in the same family.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_analytics_clause_summary_by_948238f0808399b41579f134redline-analytics: GET /api/redline-analytics/clause-summary/:clauseTypeD
Read-onlyIdempotent
Inspect

GET /api/redline-analytics/clause-summary/:clauseType. GET /api/redline-analytics/clause-summary/:clauseType. Operation ID: 948238f0808399b41579f134; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered without the description. The description contributes nothing beyond that — no note on what the summary aggregates, whether missing clause types return empty results, or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but padded with pure redundancy: the URL is repeated twice and the operation ID duplicates the tool name suffix. No meaningful content is front-loaded, so the brevity comes from under-specification rather than economy.

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 zero parameter documentation, the description needs to carry substantial weight and does not. It offers only a pointer to describe_operation, which partially excuses the schema gap but does nothing to explain the response shape or the clauseType domain.

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 does not mention either parameter. The key parameter 'clauseType' (the only required one) is undocumented — there is no hint about valid values, enum options, or format, leaving an agent unable to populate it correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the title/path verbatim twice ('GET /api/redline-analytics/clause-summary/:clauseType') with no elaboration on what a clause summary contains. Because the name and title already encode this endpoint, the content is effectively tautological and gives no differentiation from siblings like get_redline_analytics_summary or get_redline_analytics_kpis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, no prerequisites, and no mention of alternatives such as get_redline_analytics_risk_dashboard or get_redline_analytics_summary. The only pointer is the generic 'describe_operation' note, which is a meta-instruction rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_analytics_high_risk_contrac_ec9f69a8b764b8669011de61redline-analytics: GET /api/redline-analytics/high-risk-contractsD
Read-onlyIdempotent
Inspect

GET /api/redline-analytics/high-risk-contracts. GET /api/redline-analytics/high-risk-contracts. Operation ID: ec9f69a8b764b8669011de61; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and closed-world, so the safety profile is covered. The description adds nothing beyond that — no indication of filtering behavior, pagination, aggregation semantics, or data freshness for this analytics read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the space is spent on a duplicated URL string and an operation ID rather than a front-loaded purpose statement. Brevity here reflects under-specification, not efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A parameterized analytics endpoint with a nested free-form query object, no output schema, and no documented parameters needs the description to explain what is returned and how to filter; none of that is present, so an agent cannot invoke it correctly without falling back to describe_operation.

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 supplies no parameter meaning at all. The two parameters (a free-form 'query' object with arbitrary properties and an empty 'params' object) remain completely opaque — an agent cannot know what query keys are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text is the URL path for /api/redline-analytics/high-risk-contracts repeated verbatim, which is essentially a restatement of the name and title rather than an explanation. 'High-risk-contracts' hints at the resource, but there is no verb or statement of what is computed/returned, and nothing distinguishes it from siblings like get_redline_analytics_risk_dashboard or get_redline_analytics_kpis.

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, when-not-to-use, or sibling comparison is given. The only actionable hint is 'describe_operation provides native request schemas', which routes the agent to another tool for schema discovery but says nothing about when this endpoint is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_analytics_kpis_7e73a13d0a47ba291d2c64b0redline-analytics: GET /api/redline-analytics/kpisC
Read-onlyIdempotent
Inspect

GET /api/redline-analytics/kpis. GET /api/redline-analytics/kpis. Operation ID: 7e73a13d0a47ba291d2c64b0; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description contributes nothing beyond that, not even what the KPI set covers or whether results are scoped to a workspace/document set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three clauses, one of which is an exact duplicate of the first. The redundancy is pure waste and the useful content (the describe_operation pointer) is buried at the end rather than front-loaded.

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?

No output schema, a nested open-ended query object, and no return-value or filter information anywhere. For an analytics endpoint with a free-form query parameter, the definition leaves an agent unable to construct a correct call without a second tool call.

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 two parameters include an untyped free-form 'query' object with additionalProperties: {}, so the schema explains almost nothing. The description does not compensate at all — no mention of supported filters, date range, or expected query keys; it only defers to describe_operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path 'GET /api/redline-analytics/kpis' twice, adding no verb-and-resource framing beyond the tool name. It never says what a 'KPI' payload contains or how it differs from siblings like get_redline_analytics_summary or get_redline_analytics_risk_dashboard.

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 sole guidance is a pointer: 'describe_operation provides native request schemas.' That is discoverability help, not when-to-use guidance — no condition, no exclusions, no comparison against the four sibling redline-analytics endpoints an agent must choose between.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_analytics_risk_dashboard_5e53483b00d90e67e2393e48redline-analytics: GET /api/redline-analytics/risk-dashboardC
Read-onlyIdempotent
Inspect

GET /api/redline-analytics/risk-dashboard. GET /api/redline-analytics/risk-dashboard. Operation ID: 5e53483b00d90e67e2393e48; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that: no mention of what the dashboard aggregates, whether results are scoped to the caller's workspace, or how the free-form 'query' object is interpreted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste, and the operation-ID sentence carries no agent-facing meaning. Only the last clause about describe_operation earns its place.

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 nested, free-form-query endpoint with no output schema, an agent needs at least the shape of the query object and what the dashboard reports. Neither is present, and the referral to describe_operation is the sole bridge across the 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 coverage is 0% for two parameters, one of which is a free-form object with additionalProperties allowed and the other an empty, closed object. The description does not explain what belongs in 'query' versus 'params'; the only compensation is the pointer that describe_operation holds the native request schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the URL path 'GET /api/redline-analytics/risk-dashboard' twice, which is a restatement of the name and title rather than an explanation of what the endpoint returns. There are several sibling redline-analytics endpoints (kpis, summary, clause-summary, high-risk-contracts) and nothing here distinguishes this risk dashboard from 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?

No indication of when to call this versus get_redline_analytics_kpis, get_redline_analytics_summary, or get_redline_analytics_high_risk_contrac. The only actionable sentence points to describe_operation as a schema source, which is a discovery hint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_analytics_summary_824a0d4b346323eeca3b6755redline-analytics: GET /api/redline-analytics/summaryC
Read-onlyIdempotent
Inspect

GET /api/redline-analytics/summary. GET /api/redline-analytics/summary. Operation ID: 824a0d4b346323eeca3b6755; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of auth requirements, rate limits, time-range scope, or default behavior when no filters are supplied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Brief, but the single content-bearing sentence is duplicated verbatim, so half the text is pure waste. The operation-ID note is machine noise rather than useful front-loaded information.

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?

No output schema exists and the parameter surface is opaque, so the description would need to carry the burden — instead it is a bare stub. An agent cannot infer what the response shape is, what filters are accepted, or what the summary aggregates.

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 two parameters ('query' and an empty 'params' object) are entirely undocumented in both schema and description. The only mitigation is directing the agent to describe_operation for the native request schema, which is a real but indirect compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely repeats the HTTP path 'GET /api/redline-analytics/summary' twice, which is a restatement of the name and title rather than an explanation of what the tool does. It never states what the 'summary' contains or how it differs from siblings like get_redline_analytics_kpis or get_redline_analytics_risk_dashboard.

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 use this summary versus the several other redline-analytics siblings. The only actionable hint is the pointer to describe_operation for request schemas, which helps with invocation but says nothing about selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_documents_ca4aaa5130e4ffaf082311daredline-documents: GET /api/redline-documentsC
Read-onlyIdempotent
Inspect

GET /api/redline-documents. GET /api/redline-documents. Operation ID: ca4aaa5130e4ffaf082311da; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing on return shape, pagination, or filtering behavior – no value beyond 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, but the endpoint path is duplicated verbatim, which is pure waste. The useful content (operation ID and the describe_operation pointer) is buried after the repetition rather than front-loaded.

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 nested-object parameter schema with zero coverage and no output schema, the description should explain at least what the endpoint lists and how to filter. Instead it defers entirely to describe_operation, leaving an agent unable to call the tool meaningfully from this definition alone.

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 two parameters are opaque nested objects ('query' with free-form additionalProperties and an empty 'params' object). The description does not name a single accepted query key or filtering option, offering only a vague pointer to describe_operation. This is well below the baseline that high schema coverage would grant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path and title ('GET /api/redline-documents' twice) without saying what a 'redline document' is, what fields are returned, or how it differs from siblings like get_redline_documents_team_members or the negotiation document tools. It is a tautology of the name and title. An agent learns nothing beyond the HTTP 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 guidance on when to call this versus alternatives such as get_negotiation_documents_by_documentId or get_contracts_by_id_documents. The only routing hint is that 'describe_operation provides native request schemas', which points to a schema-discovery sibling rather than explaining when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_documents_team_members_4157e2f6dca322e0db46d210redline-documents: GET /api/redline-documents/team-membersD
Read-onlyIdempotent
Inspect

GET /api/redline-documents/team-members. GET /api/redline-documents/team-members. Operation ID: 4157e2f6dca322e0db46d210; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds nothing about scope (which team members, per-document or global), permissions, or response shape; it only notes that describe_operation holds the native schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are identical duplicates of the endpoint path, so the text is padded rather than front-loaded with useful information. Nothing is wasted only because almost nothing is said.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with an entirely generic schema, no output schema, and no annotations covering data semantics, the description leaves every question unanswered: what resource is returned, how to scope it, and how to build the query payload.

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?

With 0% schema description coverage and two completely opaque parameters ('query' as an unconstrained map and an empty 'params' object), the description must compensate and does not. It gives no hint about what the query object should contain (documentId? filters? pagination?).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the endpoint path ('GET /api/redline-documents/team-members') with no explanation of what a redline document team member is, what fields are returned, or how this differs from siblings like get_redline_documents_ca4aaa5130e4ffaf082311da. It restates the name/title rather than describing the tool's purpose.

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, when-not-to-use, or alternative-tool guidance. The only actionable line is a pointer to describe_operation for native request schemas, which is a schema-discovery hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_tasks_38c0a2c5486ea5e45c2d736bredline-tasks: GET /api/redline-tasksC
Read-onlyIdempotent
Inspect

GET /api/redline-tasks. GET /api/redline-tasks. Operation ID: 38c0a2c5486ea5e45c2d736b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered by structured data. The description adds one genuinely useful behavioral note - that describe_operation reveals native request schemas - but says nothing about filtering, pagination, or return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste. The remaining operation-ID reference is boilerplate with no front-loaded explanation of the tool's behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a 0%-documented two-parameter schema, no output schema, and no annotations beyond the generic hints, the description leaves nearly everything unknown: what a redline task is, what paging/filtering is supported, and what the response looks like. The single describe_operation pointer does not make the definition callable with confidence.

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 two parameters (a generic 'query' object and an empty 'params' object), so the schema itself explains nothing. The description compensates only by pointing to describe_operation; it does not indicate what can go in 'query' or whether 'params' is currently unused.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool's title verbatim ('GET /api/redline-tasks. GET /api/redline-tasks.'), giving no explanation of what redline tasks are, what the response contains, or how this differs from siblings like get_redline_tasks_by_id or get_redline_tasks_stats. It is essentially a tautology of the 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?

There is no guidance on when to use this versus the numerous sibling redline endpoints (get_redline_tasks_by_id, get_redline_tasks_dashboard, get_redline_tasks_stats). The only actionable pointer is to call describe_operation for native request schemas, which is a discovery aid rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_tasks_by_id_ad59155fcd8217b8e79134f8redline-tasks: GET /api/redline-tasks/:idD
Read-onlyIdempotent
Inspect

GET /api/redline-tasks/:id. GET /api/redline-tasks/:id. Operation ID: ad59155fcd8217b8e79134f8; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered without the description. The description adds nothing beyond that—no note on not-found behavior, no scope/tenant constraints, and no hint about what the payload contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is duplicated verbatim, wasting half the text, and the remaining content is an operation ID plus a pointer to another tool. There is no front-loaded statement of value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, parameters are undocumented at 0% coverage, and nested objects are present, yet the description supplies nothing about the request shape, response contents, or failure modes. An agent would have to call describe_operation to do anything useful.

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 two parameters, one of which is an unconstrained nested 'query' object. The description only implies a path id via the URL template and explicitly defers schema details to describe_operation, so it does not compensate for the missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the HTTP route 'GET /api/redline-tasks/:id' twice, which is essentially a tautology of the tool name and title. It conveys that a single redline task is fetched by id, but gives no sense of what a redline task is or how it differs from siblings such as get_redline_tasks_by_id_syncs or get_redline_tasks_38c0a2c5.

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 to use this tool versus the list endpoint or the by-id sub-resource variants. The only guidance is a pointer to describe_operation for native request schemas, which is schema discovery, not usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_tasks_by_id_syncs_99ebe9eed821b48103ae518eredline-tasks: GET /api/redline-tasks/:id/syncsC
Read-onlyIdempotent
Inspect

GET /api/redline-tasks/:id/syncs. GET /api/redline-tasks/:id/syncs. Operation ID: 99ebe9eed821b48103ae518e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds nothing beyond that — no note on pagination, whether syncs are returned newest-first, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identical sentence is repeated verbatim, wasting half the payload, and the remaining sentence is metadata (operation ID) rather than substance. Nothing is front-loaded beyond the bare endpoint path.

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, a nested 'query' object, and zero parameter documentation, the description leaves the agent guessing about what 'syncs' are returned and how to filter them. A pointer to describe_operation exists but the top-level description does not stand on its own.

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 needed to compensate and does not. The only trace of parameter meaning is the ':id' placeholder in the path template, which only loosely implies the required 'id' param; the free-form 'query' object is entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name/title twice ('GET /api/redline-tasks/:id/syncs') without explaining what a 'sync' record is or what the call returns. It names a resource path, but the same information is already in the name and title, and there is no differentiation from siblings like get_redline_tasks_by_id_ad59155fcd8217b8e79134f8.

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 or when-not-to-use guidance and no comparison to any sibling tool. The only actionable hint is 'describe_operation provides native request schemas', which points to a schema lookup helper rather than explaining tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_tasks_dashboard_dc7899e7196906a4b530835fredline-tasks: GET /api/redline-tasks/dashboardC
Read-onlyIdempotent
Inspect

GET /api/redline-tasks/dashboard. GET /api/redline-tasks/dashboard. Operation ID: dc7899e7196906a4b530835f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered without the description. The description adds no behavioral context of its own (no scoping, no auth/permission needs, no data-freshness or aggregation semantics) beyond the describe_operation pointer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sizing is short, but the first two sentences are an exact duplicate of the same path string, which is pure waste. The only novel content (operation ID and the describe_operation pointer) is buried at the end rather than front-loaded.

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 a free-form nested query object, no output schema, and no documented return shape, an agent needs more than a path echo to invoke this correctly. The deferral to describe_operation partially mitigates but leaves the definition functionally incomplete for a dashboard call.

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 free-form parameters (query as arbitrary key/value, params as an empty closed object), so the description must compensate but does not. 'describe_operation provides native request schemas' defers the explanation elsewhere instead of clarifying what query keys are accepted or required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated verbatim twice, which merely restates the title rather than explaining what a 'redline tasks dashboard' contains or aggregates. An agent learns it is a GET on /api/redline-tasks/dashboard but nothing about the business purpose relative to siblings like get_redline_tasks_stats or get_redline_tasks.

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 actionable guidance is the pointer to describe_operation for native request schemas, which helps an agent fetch schema details but does not say when to choose this dashboard over the sibling list/stats/analytics tools. No inclusion or exclusion conditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_redline_tasks_stats_731dccfb07fcdd81aaf63695redline-tasks: GET /api/redline-tasks/statsD
Read-onlyIdempotent
Inspect

GET /api/redline-tasks/stats. GET /api/redline-tasks/stats. Operation ID: 731dccfb07fcdd81aaf63695; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description adds nothing beyond that — no mention of what the stats measure, the aggregation window, or scoping requirements. It only references describe_operation, which is a discovery hint rather than 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is duplicated verbatim, wasting half of an already very short description. Nothing is front-loaded beyond the path restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 0% parameter documentation, and a generic nested-object schema, the description is the only place meaning could come from — and it provides none. An agent cannot determine what this returns or how to scope the request from this definition alone.

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 both parameters are opaque generic containers ('query' with arbitrary properties, empty 'params'). The description supplies no parameter meaning at all, leaving the agent with no idea what can be filtered or passed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body merely repeats the raw path 'GET /api/redline-tasks/stats' twice, which restates the title and name rather than describing in plain language what the stats represent. An agent learns only that it is a read of some aggregate for redline tasks, with no distinction from siblings like get_redline_tasks_dashboard or get_redline_tasks_stats-adjacent analytics endpoints.

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 guidance is 'describe_operation provides native request schemas', which is a schema-discovery pointer, not a when-to-use rule. There is no statement of when to prefer this stats endpoint over get_redline_tasks, get_redline_tasks_dashboard, or the get_redline_analytics_* family.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rent_adjustment_import_template_5db55a3eaff69b83deca5971rent-adjustment-import: GET /api/rent-adjustment-import/templateC
Read-onlyIdempotent
Inspect

GET /api/rent-adjustment-import/template. GET /api/rent-adjustment-import/template. Operation ID: 5db55a3eaff69b83deca5971; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered; the description adds nothing beyond that. It does not disclose what form the template takes (downloadable file, content type, whether it is empty scaffolding) or any auth/format constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single informational sentence is duplicated word-for-word, wasting the front-loaded position. Structure is essentially boilerplate rather than purposeful content.

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, an undocumented free-form query object, and a nested-object parameter shape, the description should explain what the request/response looks like. Instead it delegates entirely to describe_operation, leaving the agent unable to call the tool confidently from this definition alone.

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 both parameters ('query' as free-form object, 'params' as empty object) are entirely undocumented. The description does not compensate at all — it neither names a query parameter nor explains what query keys are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the endpoint path verbatim twice ('GET /api/rent-adjustment-import/template'), which restates the title rather than explaining what a 'template' is here (file download? JSON schema? CSV headers?). An agent can infer the resource but not the actual effect.

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 to use this versus the sibling get_rent_import_template or get_supplemental_rent_import_targets. The only directional hint is that 'describe_operation provides native request schemas', which is a pointer to another tool rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rent_import_template_2858e5529ca8c543cb8614f6rent-import: GET /api/rent-import/templateC
Read-onlyIdempotent
Inspect

GET /api/rent-import/template. GET /api/rent-import/template. Operation ID: 2858e5529ca8c543cb8614f6; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds nothing beyond the path: no indication of what the template contains, whether it is static across modules, or whether it requires any setup such as an existing lease batch.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the first sentence is duplicated verbatim, which is pure waste, and the remaining content is the operation ID plus a pointer to another tool. Front-loading is irrelevant when there is nothing substantive to front-load.

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?

No output schema, 0% parameter coverage, and a nested-object schema, yet the description says nothing about the response (file bytes vs JSON template definition) or the accepted query parameters. An agent could not call this confidently without first calling describe_operation.

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% with two free-form objects (a generic 'query' with additionalProperties and an empty 'params'), so the schema tells an agent almost nothing. The description does not compensate at all — it only defers to describe_operation without explaining what the query object is for or what keys are valid.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route 'GET /api/rent-import/template' twice, without saying what a rent import template is, what format it is returned in, or how it differs from siblings like get_rent_adjustment_import_template or get_import_template_by_module. The name and route carry all the meaning.

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 statement of when to call this versus the other import-template and import-workbook tools in the sibling list. The only pointer is that describe_operation exposes native request schemas, which is a schema-lookup hint rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rent_import_workbook_by_batchId_4fb06fffa8710480975f88e9rent-import: GET /api/rent-import/workbook/:batchIdC
Read-onlyIdempotent
Inspect

GET /api/rent-import/workbook/:batchId. GET /api/rent-import/workbook/:batchId. Operation ID: 4fb06fffa8710480975f88e9; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: it doesn't say what a 'workbook' contains, what happens with an unknown/stale batchId, or whether the result is a file stream versus JSON.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short but wasteful: the same endpoint string is printed twice, and the second 'sentence' is boilerplate about operation IDs. It is not front-loaded with purpose or intent.

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-only GET with two parameters, one nested object, zero schema descriptions and no output schema, the description leaves the agent unable to know what is returned or how to source a valid batchId. Annotations cover safety only; the remaining burden is unmet.

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 and it does not. It only echoes 'batchId' from the path template, without explaining where a batchId comes from, whether it corresponds to an import batch, or what the free-form `query` object is for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim duplication of the tool title/name ('GET /api/rent-import/workbook/:batchId' repeated twice), which is close to tautology. The URL path does imply fetching a rent-import workbook by batch ID, but nothing is stated in plain language and no sibling (e.g. get_rent_import_template, get_pending_imports_by_batchId_rent_tie) is distinguished.

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 exclusions. The only actionable hint is a pointer to describe_operation for native request schemas, which tells an agent how to look up more info rather than when to call this tool versus the many rent/import siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_review_entries_194b208e9bc653ac9fb90408review: GET /api/review/entriesC
Read-onlyIdempotent
Inspect

GET /api/review/entries. GET /api/review/entries. Operation ID: 194b208e9bc653ac9fb90408; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, destructive=false, and closed-world, so the safety profile is covered. The description adds only the operation ID and a pointer to describe_operation, revealing nothing about filtering behavior, pagination, or what the free-form query object accepts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the endpoint string is duplicated verbatim, which is pure waste. What remains (operation ID, describe_operation pointer) is front-loaded but thin.

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, 0% parameter coverage, and nested free-form objects, the description should carry substantial weight; instead it delegates nearly everything to describe_operation. An agent cannot tell what the tool returns, how results are shaped, or how to filter.

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 both parameters are opaque: 'query' is a free-form additionalProperties object and 'params' is an empty object. The description does not compensate at all beyond deferring to describe_operation, leaving the agent unable to construct a query without another call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description just restates the endpoint 'GET /api/review/entries' twice. It does convey the resource (review entries) fetched via GET, but gives no information about what a review entry is or how it differs from the many other get_* 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?

The only guidance is a pointer that 'describe_operation provides native request schemas,' which is a next-step hint rather than a statement of when to use this tool versus alternatives like get_review_runs_by_id_* or get_review_readiness_*.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_review_readiness_e9d56e727840ded9461c8831review: GET /api/review/readinessD
Read-onlyIdempotent
Inspect

GET /api/review/readiness. GET /api/review/readiness. Operation ID: e9d56e727840ded9461c8831; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered structurally. The description adds no behavioral context of its own — no indication of what readiness state is computed, what permissions are needed, or what shape the answer takes — so it contributes nothing 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short, but the first two sentences are literal duplicates and carry no information. Brevity here comes from under-specification rather than economy; the operation ID and the describe_operation pointer are the only load-bearing tokens.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/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 zero schema documentation and no output schema, the description should explain what a readiness result contains and what the query passthrough accepts. Instead it only forwards the agent to describe_operation, leaving the tool effectively unusable without a second call.

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 both the 'query' passthrough object and the empty 'params' object are undocumented. The description's only compensating statement is that describe_operation holds the native request schema, which is a useful pointer but does not explain what query parameters this operation accepts or expects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the name verbatim ('GET /api/review/readiness') and adds nothing to explain what 'review readiness' means or what resource it examines. An agent cannot distinguish this from other review-related siblings (get_review_entries, get_review_runs_by_id_*) based on this text.

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 to use this tool versus alternatives. The only directional hint, that 'describe_operation provides native request schemas', tells the agent how to obtain a schema, not when this operation is the right choice over siblings such as get_review_entries or get_review_runs_by_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_review_runs_by_id_3a1c2f7126c2e556c467d4a7review: GET /api/review/runs/:idD
Read-onlyIdempotent
Inspect

GET /api/review/runs/:id. GET /api/review/runs/:id. Operation ID: 3a1c2f7126c2e556c467d4a7; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally, but the description adds nothing beyond that: no indication of what a run record includes, whether missing IDs error or return empty, or any pagination/auth context. The duplicated route string provides zero behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, which is pure waste. The meta-information (operation ID, describe_operation pointer) is front-loaded but the actual purpose is never stated, so length is not the problem — redundancy and under-specification are.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, a nested free-form 'query' object, and 0% parameter documentation, the description would need to explain the resource and the query parameter's role. It provides none of that, leaving an agent unable to use the tool beyond guessing from the route.

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 the two parameters (the required 'id' path param and the free-form 'query' object). The minLength/maxLength constraints on 'id' are the only signal, and the description does not compensate for the total lack of documented semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the HTTP method and route ('GET /api/review/runs/:id') repeated twice, which merely echoes the tool name and title rather than explaining what a 'review run' is or what the response contains. It does not distinguish this tool from the sibling get_review_runs_by_id_stream.

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 to use this tool, when not to, or how it relates to siblings like get_review_runs_by_id_stream. The only actionable hint is that describe_operation exposes the native request schema, which is a pointer to another tool rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_review_runs_by_id_stream_524da3a426ee36e48bc45880review: GET /api/review/runs/:id/streamD
Read-onlyIdempotent
Inspect

GET /api/review/runs/:id/stream. GET /api/review/runs/:id/stream. Operation ID: 524da3a426ee36e48bc45880; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. However, the description adds nothing about the behavior that matters most here: that this is a streaming endpoint — long-lived connection, event/polling semantics, termination, or auth requirements are all undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the route string is duplicated verbatim and the only other clause is metadata about the operation ID and a pointer to describe_operation. Almost none of the text conveys meaning about the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a streaming tool with a nested query object, zero parameter documentation, and no output schema, the definition leaves the agent without enough information to invoke it correctly — neither the streaming behavior nor the parameters are explained.

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 there are two parameters (a free-form query object and params.id). The description says nothing about the id's format, scope, or what the query object accepts, so it does not compensate for the schema gap at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route twice ("GET /api/review/runs/:id/stream") without saying what a review run stream is, what it streams, or how it differs from the sibling get_review_runs_by_id_3a1c2f7126c2e556c467d4a7 or get_review_entries. It is effectively a tautology of the tool 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?

No when-to-use or when-not-to-use guidance is given. The only actionable hint is that describe_operation provides native request schemas, which implies the agent should inspect that sibling first, but the choice between this streaming endpoint and the plain run-fetch sibling is never addressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_roles_by_id_a758bcaef7f1963fbc9c0e92roles: GET /api/roles/:idC
Read-onlyIdempotent
Inspect

GET /api/roles/:id. GET /api/roles/:id. Operation ID: a758bcaef7f1963fbc9c0e92; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds nothing beyond that: no mention of 404/empty behavior, what a role payload contains, or whether the id is a UUID or slug.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first sentence is duplicated verbatim, wasting half the text. The operation ID is internal plumbing that rarely helps an agent decide anything, while genuinely useful content is absent.

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?

Even for a simple by-id read with full annotations, the definition leaves two documented-nowhere parameters and the nature of the 'roles' resource unaddressed. The fallback pointer to describe_operation is the only mitigation, and it pushes required work onto another call.

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 2 parameters, so the description carries the full burden and fails to do so. The bare ':id' path token implies params.id is a role identifier, but the untyped 'query' object is never explained, leaving an agent guessing what can be passed there.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body of the description is literally the title repeated twice ("GET /api/roles/:id. GET /api/roles/:id."), so it restates rather than expands the name. An agent can infer 'fetch a role by id' from the path, but nothing distinguishes it from the sibling get_roles_eb3c8bbe4bc9aed660477bd6 or explains what a role record is.

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, prerequisites, or alternative is named. The only guidance is a pointer to describe_operation for request schemas, which is a helper hint rather than a condition for selecting this tool over the list endpoint or execute_read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_roles_eb3c8bbe4bc9aed660477bd6roles: GET /api/rolesD
Read-onlyIdempotent
Inspect

GET /api/roles. GET /api/roles. Operation ID: eb3c8bbe4bc9aed660477bd6; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered. Beyond that the description only says describe_operation supplies native request schemas — no pagination behavior, no result shape, no scope of what roles are returned. It adds almost nothing behavioral.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the identical sentence 'GET /api/roles.' appears twice, and an internal operation ID is surfaced where it adds no decision value. Brevity here comes from under-specification rather than efficiency.

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?

No output schema exists and the parameters are undocumented, so the description needed to explain the query semantics and expected result. Instead it defers entirely to describe_operation, leaving the agent unable to construct a correct query payload from this definition alone.

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?

There are two parameters (a free-form 'query' object with additionalProperties and an empty 'params' object) at 0% schema description coverage, so the description carries the full burden of explaining them. Instead it says nothing about query keys, filtering, or pagination — the free-form query object is completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a tautology: it repeats the endpoint 'GET /api/roles' twice and adds only an opaque operation ID. The only real signal comes from the tool name and title, not from the description text, so an agent learns nothing about what a 'role' payload contains or whether this is a list operation with filtering.

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?

It points at describe_operation as the source of native request schemas, which is a minimal routing hint, but there is no statement of when to call this versus siblings like describe_operation, execute_read, or get_roles_by_id. The agent must infer that this lists roles and the *_by_id variant fetches one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_saved_views_b7d7e18257f528e9529bfc7esaved-views: GET /api/saved-viewsC
Read-onlyIdempotent
Inspect

GET /api/saved-views. GET /api/saved-views. Operation ID: b7d7e18257f528e9529bfc7e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is fully covered structurally. The description adds nothing beyond a pointer to describe_operation — no pagination, ordering, or shape of what is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are verbatim duplicates and carry no information, so they do not earn their place. The one useful clause (describe_operation) is buried at the end.

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?

No output schema and no parameter documentation mean the description must carry the burden for a nested-object, free-form-query tool, and it does not. An agent still needs a second call to describe_operation before it can construct a valid request.

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 both parameters (a free-form `query` object and an empty `params` object) are undocumented. The description offers no meaning for either; its only mitigation is deferring to describe_operation, which is a routing hint rather than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the title and HTTP path ("GET /api/saved-views") twice, which is a tautology of the name/title. It does imply a read of the saved-views collection, but gives no scope, filtering, or differentiation from the sibling get_saved_views_by_id.

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 actionable guidance is that "describe_operation provides native request schemas," which hints at a discovery workflow but not when to call this tool versus get_saved_views_by_id or other list endpoints. No conditions, prerequisites, 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.

get_saved_views_by_id_42f92899fa6a137cb6469a18saved-views: GET /api/saved-views/:idC
Read-onlyIdempotent
Inspect

GET /api/saved-views/:id. GET /api/saved-views/:id. Operation ID: 42f92899fa6a137cb6469a18; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no statement of what the response contains, behavior on a missing/invalid id, or visibility/permission constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one substantive sentence is duplicated verbatim, wasting half the text, and the remaining content (operation ID, pointer to describe_operation) is boilerplate rather than front-loaded purpose.

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 by-id lookup with no output schema and undocumented parameters, the description should at least say what a saved view record contains. Instead it delegates everything to describe_operation, leaving an agent unable to predict the response shape.

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 schema uses a nested 'params.id' object with a 1-2000 char string constraint, which is not self-explanatory. The description only hints at ':id' via the raw route and gives no format, source, or example value for the saved-view identifier.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route 'GET /api/saved-views/:id' twice plus an operation ID, which is essentially a tautology of the tool name/title. It never says what a saved view is or what is returned, and it does not distinguish this from the sibling get_saved_views (list) tool.

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 use this versus get_saved_views or any other lookup. The only actionable pointer is a generic 'describe_operation provides native request schemas' note, which is a fallback rather than a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_search_global_3c0d5735c02153241c961659search: GET /api/search/globalD
Read-onlyIdempotent
Inspect

GET /api/search/global. GET /api/search/global. Operation ID: 3c0d5735c02153241c961659; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds nothing beyond that — no indication of result size, pagination, permissions, or what the nested query object controls, despite being the only non-schema source of 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but it wastes an entire sentence duplicating the identical endpoint path verbatim. The remaining content is an operation ID and a pointer, so brevity here reflects under-specification rather than efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object, zero-coverage-schema tool with no output schema and no annotations covering return shape, the description supplies nothing an agent could act on: no input contract, no result description, no constraints. It is effectively a stub that offloads everything to describe_operation.

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?

There are 2 parameters with 0% schema description coverage, and the 'query' parameter is an unconstrained nested object with additionalProperties and no enumerated keys. The description provides zero semantics for either parameter, deferring entirely to describe_operation, leaving the agent unable to construct a call from the definition alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path 'GET /api/search/global' twice; it never says what is searched (leases, contracts, documents?) or what the result set represents. The verb+path hints at a global search but gives no resource scope, and it does nothing to distinguish itself from siblings like search_operations or get_contracts_tags_search.

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 routing guidance is 'describe_operation provides native request schemas', which points to a sibling for schema discovery rather than explaining when to use this tool over alternatives. There is no statement of when this global search is preferable to the many entity-specific list/search tools in the catalog.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_auditor_access_1d742b86a6194a85f5a8b0easettings: GET /api/settings/auditor-accessC
Read-onlyIdempotent
Inspect

GET /api/settings/auditor-access. GET /api/settings/auditor-access. Operation ID: 1d742b86a6194a85f5a8b0ea; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no return shape, auth requirements, or scope caveats — and the duplicated sentence occupies space without adding information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, which is wasteful rather than concise. There is no front-loaded explanation of purpose, only a redundant endpoint path repeated.

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?

There is no output schema and effectively no parameter documentation, so the description should carry more weight. It offers only a pointer to describe_operation, leaving the agent unable to predict inputs or return values for this read endpoint.

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 schema only exposes generic 'query' (free-form additionalProperties) and an empty 'params' object, so an agent learns nothing about valid inputs from either source. The mention that describe_operation provides native request schemas is the sole compensating detail, which is minimal but better than nothing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally 'GET /api/settings/auditor-access' repeated twice, which restates the title and name rather than explaining what the endpoint returns. The resource hint ('auditor-access settings') does weakly distinguish it from other settings siblings, but there is no statement of what the operation actually produces.

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 call this versus the hundreds of other settings/read tools in the sibling list. The only actionable sentence points to describe_operation for request schemas, which is a schema-discovery hint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_cam_approval_c54d13aaf71a0f29b916a96bsettings: GET /api/settings/cam-approvalC
Read-onlyIdempotent
Inspect

GET /api/settings/cam-approval. GET /api/settings/cam-approval. Operation ID: c54d13aaf71a0f29b916a96b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds zero behavioral context beyond that—no scoping, permissions, or response characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint path is duplicated verbatim, wasting a third of the text, and the operation-ID boilerplate carries no meaning for selection. It is short but redundant rather than efficient.

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?

No output schema exists, so the description would need to convey what is returned, yet it says nothing about the response shape or the query-object contents. For a tool with an empty/undocumented schema and nested objects, this leaves the agent materially under-informed.

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 two parameters (a free-form 'query' object and an empty 'params' object) are undocumented in both schema and description. The only compensation is the note that describe_operation holds native request schemas, which is a deferral rather than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the title/path 'GET /api/settings/cam-approval' twice, adding no verb-level explanation of what CAM approval settings are or what the call returns. An agent cannot distinguish this from other settings GETs (e.g. get_settings_smtp, get_settings_mfa_policy) 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?

There is no when-to-use guidance, no prerequisites, and no comparison to sibling settings tools. The only actionable direction is a generic pointer that describe_operation exposes request schemas, which is a lookup hint rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_compliance_reminder_defaul_bc0970c98a2a029e2720f984settings: GET /api/settings/compliance-reminder-defaultsC
Read-onlyIdempotent
Inspect

GET /api/settings/compliance-reminder-defaults. GET /api/settings/compliance-reminder-defaults. Operation ID: bc0970c98a2a029e2720f984; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no auth/permission requirements, no note on whether defaults are workspace-scoped or inherited, nothing about what is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identical endpoint string is emitted twice, which is pure waste, and the remaining sentence is boilerplate metadata (operation ID, tool lookup) rather than front-loaded substance.

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?

Given a nested/free-form query parameter at 0% schema coverage, no output schema, and dozens of near-identical settings siblings, the description does far too little. It leaves the agent unable to distinguish this call from other settings GETs or to know what shape of `query` to supply.

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 both parameters (`query` as a free-form object and an empty `params` object) are untyped in a meaningful way. The description does not explain what can go into `query` or whether `params` is expected to be empty, offering only a referral to describe_operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated twice, which restates the title/tool name rather than explaining what the call returns or why an agent would want it. An agent learns only that this is a GET on a 'compliance-reminder-defaults' settings resource, with no indication of what those defaults contain or affect.

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 contrast with the many sibling settings tools (e.g. get_settings_auditor_access, get_settings_mfa_policy), and no conditions or prerequisites. The only actionable pointer is the note that describe_operation exposes the native request schema, which is a lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_field_labels_b6254b377e8a036e9da1fcf5settings: GET /api/settings/field-labelsC
Read-onlyIdempotent
Inspect

GET /api/settings/field-labels. GET /api/settings/field-labels. Operation ID: b6254b377e8a036e9da1fcf5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered structurally. The description adds nothing beyond that—no note on scoping, response shape, or whether labels are workspace- or module-specific—and only redirects to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the opening sentence is duplicated verbatim, and the remaining content is an operation ID plus a pointer elsewhere. Brevity here reflects under-specification rather than efficiency.

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 a nested/free-form query parameter, no output schema, and no parameter documentation, the description should say what the endpoint returns and how to scope the request. It supplies neither, so an agent cannot decide whether this is the right settings endpoint or how to call it without a second 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 description coverage is 0% for two parameters: a free-form 'query' object and an empty 'params' object, both entirely undocumented. The description does not describe either; the redirect to describe_operation is a partial mitigation but leaves the caller with no in-definition semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the endpoint path 'GET /api/settings/field-labels' twice, which is essentially a restatement of the tool name and title. It never explains what a 'field label' is or what the response contains, and it offers no differentiation from neighbors such as get_settings_module_labels or get_settings_site_contact_types.

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 versus the many other settings GET tools. The only actionable direction is a pointer to describe_operation for native request schemas, which is a schema-lookup hint rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_mfa_policy_639c83971a03743b92edea09settings: GET /api/settings/mfa-policyC
Read-onlyIdempotent
Inspect

GET /api/settings/mfa-policy. GET /api/settings/mfa-policy. Operation ID: 639c83971a03743b92edea09; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the full safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, but the description adds nothing: it does not describe what the MFA policy payload contains, whether it is workspace-scoped, or any auth/permission requirement. The duplication wastes the only narrative space available.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the first sentence is printed twice, which is pure waste rather than concision. Nothing is front-loaded beyond the path, and the operation-ID text is machine noise for an agent.

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, a 0%-covered free-form query parameter, and a nested object schema, the description should explain what the MFA policy resource returns or requires. Instead it delegates everything to describe_operation, leaving an agent without enough context to call this confidently.

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 both parameters are untyped free-form objects (query accepts arbitrary keys, params accepts none). The description offers no parameter meaning at all, only a redirect to describe_operation, which partially mitigates but does not document what belongs in the query object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the title repeated verbatim: "GET /api/settings/mfa-policy. GET /api/settings/mfa-policy." It names a resource path, but conveys no purpose beyond restating the operation ID, and gives no differentiation from the many other get_settings_* 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?

No indication of when to call this versus alternatives. The only actionable guidance is a pointer to describe_operation for native request schemas, which is about how to inspect the operation, not when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_module_labels_a9a77b39398d6e2849895e61settings: GET /api/settings/module-labelsC
Read-onlyIdempotent
Inspect

GET /api/settings/module-labels. GET /api/settings/module-labels. Operation ID: a9a77b39398d6e2849895e61; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered. The description adds only a pointer that describe_operation supplies native request schemas, which hints at a two-step proxy workflow but says nothing about response shape, filtering behavior, or scope of the returned labels.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string appears twice in a row, which is pure duplication; the one non-redundant clause (describe_operation pointer) is buried at the end rather than front-loaded as the operational instruction an agent needs.

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 proxy-style GET with a nested free-form query object, no output schema, and no annotations beyond read-only, the description is far too thin: it never explains the query structure, the expected response, or the relationship to describe_operation and execute_read.

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 the free-form 'query' object and the empty 'params' object, so the schema provides no semantics. The description only notes that describe_operation holds the native request schemas, which is a useful pointer but does not document what the two parameters accept or how they are structured.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint string 'GET /api/settings/module-labels' repeated verbatim, plus an operation ID. It restates the name/title without explaining what module labels are or how this differs from siblings such as get_settings_field_labels or get_settings_module_settings.

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 to call this versus alternatives. The generic sibling set (describe_operation, execute_read, search_operations) implies a proxy pattern, but the description never tells the agent whether it must first call describe_operation or whether this tool is directly invokable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_module_settings_4af9942848e4f0edcbb21336settings: GET /api/settings/module-settingsD
Read-onlyIdempotent
Inspect

GET /api/settings/module-settings. GET /api/settings/module-settings. Operation ID: 4af9942848e4f0edcbb21336; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of what the query object filters, auth requirements, or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the identical sentence is duplicated and nothing useful is front-loaded beyond the raw path. Brevity comes from under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A parameterized GET with an opaque free-form query object, no output schema, and no annotations explaining filtering. The description leaves the agent unable to construct a correct call, making it inadequate for this tool's complexity.

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?

Two parameters exist with 0% schema description coverage: 'query' is a free-form object with unrestricted additionalProperties and 'params' is an empty object. The description provides no information about what query keys are accepted or needed, leaving the agent with zero guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the tool name and path ('GET /api/settings/module-settings') twice, with no plain-language statement of what module settings are or what is returned. It never distinguishes this from siblings such as get_settings_module_labels or get_settings_field_labels.

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 and no named alternative. The only pointer is 'describe_operation provides native request schemas', which explains how to get schema metadata, not when this tool should be selected over the many other settings endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_record_review_d1f70ab54f2c9385851cfa2asettings: GET /api/settings/record-reviewC
Read-onlyIdempotent
Inspect

GET /api/settings/record-review. GET /api/settings/record-review. Operation ID: d1f70ab54f2c9385851cfa2a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no note on pagination, filtering behavior, or what the review records contain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint sentence is duplicated verbatim, then followed by an operation ID and a pointer to another tool. There is no wasted insight, but the duplication is pure noise and no useful information is front-loaded.

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 nested objects, zero schema description coverage, and no output schema, the definition leaves an agent unable to construct a correct request without deferring to describe_operation. The tool is a read-only settings fetch, so a short description could suffice, but this one omits the semantics entirely.

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 0% for two free-form parameters ('query' and 'params' with additionalProperties), and the description gives no meaning for either. The remark that describe_operation holds native request schemas offers a workaround but does not document the parameters themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route ('GET /api/settings/record-review') and an opaque operation ID, which is tautological with the title. It does not say what a 'record review' setting actually is or what the call returns, so an agent cannot distinguish it from the many other get_settings_* 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 statement of when to use this tool versus alternatives such as describe_operation, search_operations, or the other settings getters. The only navigational hint is a pointer to describe_operation for schemas, which is not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_site_contact_types_430f13f11d7c137b74c94fd5settings: GET /api/settings/site-contact-typesC
Read-onlyIdempotent
Inspect

GET /api/settings/site-contact-types. GET /api/settings/site-contact-types. Operation ID: 430f13f11d7c137b74c94fd5; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing behavioral beyond an operation ID and a redirect to describe_operation. It does not contradict the annotations, but its added value is near zero.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful sentence is duplicated verbatim, which is pure waste rather than front-loading. The remaining content is a raw operation ID, an internal identifier with no decision value for an agent.

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 0% parameter documentation, no output schema, and a nested 'query' object, the description leaves the agent unable to determine what the call returns or how to shape a request. It is essentially an autogenerated endpoint stub rather than a usable definition.

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% on two parameters (a free-form 'query' object and an empty 'params' object), so the description must compensate and does not. At best the mention of describe_operation for native request schemas weakly signals where parameter shapes live, but no filtering, pagination, or naming semantics are explained here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path 'GET /api/settings/site-contact-types' twice, giving no verb-plus-resource phrasing beyond what the name and title already convey. It never distinguishes this from the dozens of sibling get_settings_* tools (e.g. get_settings_smtp, get_settings_field_labels) that return other settings resources, so an agent gains nothing about what specifically is returned.

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 to call this versus alternatives such as get_settings_module_settings or get_sites_by_siteId_contacts. The only directional hint is that describe_operation provides native request schemas, which is a pointer to another tool rather than usage guidance for this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_settings_smtp_b0c0ed4c43b10aa3ea620509settings: GET /api/settings/smtpC
Read-onlyIdempotent
Inspect

GET /api/settings/smtp. GET /api/settings/smtp. Operation ID: b0c0ed4c43b10aa3ea620509; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond a duplicated path and the describe_operation pointer — no note on what settings are returned, whether secrets are masked, or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences but repeats 'GET /api/settings/smtp' verbatim, which is pure waste. The content is under-specified rather than concise, with no front-loaded value.

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, an undocumented nested query object, and zero annotations on the parameters, the description should explain what the endpoint returns and how to shape the query. It does neither, leaving the agent dependent on describe_operation for even basic invocation details.

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?

There are 2 parameters (a free-form 'query' object and an empty 'params' object) at 0% schema description coverage. The description provides no explanation of what query keys are accepted or how filtering works, so it fails to compensate for the undocumented parameters.

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 exposes the raw path 'GET /api/settings/smtp', which identifies the verb and resource (SMTP settings), so an agent can infer the subject. However, it does not differentiate this tool from the many sibling get_settings_* tools or state what the SMTP settings actually contain, leaving the purpose only implied.

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 among the numerous sibling settings endpoints. The only hint is a pointer to describe_operation for request schemas, which is meta-information rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signature_management_a514e044642e0a4243a4636asignature-management: GET /api/signature-managementC
Read-onlyIdempotent
Inspect

GET /api/signature-management. GET /api/signature-management. Operation ID: a514e044642e0a4243a4636a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so 'GET' in the description adds nothing beyond structured data. The description does not state what is returned, whether results are paginated, or what auth/scope is needed; the only extra information is the describe_operation pointer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the same sentence is duplicated verbatim, which is pure waste. The only substantive content (operation ID and the describe_operation hint) is buried after the repetition.

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, a fully undocumented free-form query parameter, and no explanation of what the endpoint reads or returns, an agent is left guessing. The describe_operation hint is the sole mitigating element; everything else an agent would need must be discovered elsewhere.

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 both parameters are opaque: a free-form 'query' object with arbitrary keys and an empty 'params' object with additionalProperties=false. The description offers no parameter names, formats, or examples, only the generic note that describe_operation holds native schemas — a pointer, not parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated twice: 'GET /api/signature-management.' It restates the name/title rather than stating what the operation returns or accomplishes, so an agent cannot distinguish it from a dozen other signature-related GETs in the sibling list on the basis of the 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative named. The only actionable hint is 'describe_operation provides native request schemas', which points at a discovery mechanism rather than at selection criteria among siblings like get_signatures or get_signatures_by_requestId_events.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signatures_8c271b0c7065f6b053db1967signatures: GET /api/signaturesC
Read-onlyIdempotent
Inspect

GET /api/signatures. GET /api/signatures. Operation ID: 8c271b0c7065f6b053db1967; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered externally. The description adds nothing beyond that — no pagination behavior, no filtering semantics, no note on what the arbitrary 'query' object accepts or what scope of signatures is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wasteful: 'GET /api/signatures.' is duplicated verbatim and a raw operation UUID is included, which conveys nothing to an agent. No sentence explains the resource or how to use it.

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 two nested, fully undescribed parameters, no output schema, and a large family of near-identically named signature siblings, the description provides almost nothing an agent needs to select or invoke it correctly. The describe_operation pointer is the sole mitigating element.

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 both parameters (an open-ended 'query' object and an empty 'params' object) are undocumented. The description does not compensate at all; the only recovery path offered is the instruction to call describe_operation, which offloads the entire burden to another tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP method and path already present in the tool name and title ('signatures: GET /api/signatures'), with no plain-language statement of what a signature record is or what the endpoint returns. It does not distinguish this general signatures listing from siblings such as get_signature_management_a514e044642e0a4243a4636a or get_signatures_by_id_certificate_61580c46ecfc3f861e3b6346.

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 versus the several sibling signature endpoints. The only actionable hint is 'describe_operation provides native request schemas', which is a meta-pointer rather than a usage condition or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signatures_by_id_certificate_61580c46ecfc3f861e3b6346signatures: GET /api/signatures/:id/certificateC
Read-onlyIdempotent
Inspect

GET /api/signatures/:id/certificate. GET /api/signatures/:id/certificate. Operation ID: 61580c46ecfc3f861e3b6346; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no indication of what the certificate contains, its format, size, or any permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wasted: the identical endpoint sentence appears twice, and the only substantive content is a boilerplate reference to describe_operation. It is under-specified rather than concise.

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 zero schema description coverage, the description needs to explain what is returned (e.g., certificate file, metadata) and how 'id' maps to a signature. It supplies none of this, leaving an agent unable to predict the response.

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 schema provides only raw types with no meaning. The description adds nothing about the 'id' parameter beyond the implicit path placeholder, and gives no guidance on the undocumented 'query' object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name/title as a raw URL path ('GET /api/signatures/:id/certificate') without explaining what a signature certificate is or what fetching it yields. It gives no differentiation from siblings such as get_signatures_by_requestId_events or get_signature_management.

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 to use this tool versus alternatives. The only guidance is a pointer to describe_operation for native request schemas, which explains where to look for more detail rather than when this endpoint applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signatures_by_requestId_events_6c85964e03da57afed99e451signatures: GET /api/signatures/:requestId/eventsD
Read-onlyIdempotent
Inspect

GET /api/signatures/:requestId/events. GET /api/signatures/:requestId/events. Operation ID: 6c85964e03da57afed99e451; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered structurally. The description adds nothing beyond that — no mention of what events are returned, ordering, 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.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful sentence is duplicated verbatim, and the remaining content is an internal operation ID that serves no selection purpose. There is no front-loaded statement of intent.

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, no parameter documentation, and a nested free-form query object, the description should explain what this returns (a list of signature events) and how to filter it. It does neither.

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 (requestId path param and an untyped free-form query object). The description does not explain requestId semantics or what query filters are accepted, so it fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path and title verbatim ('GET /api/signatures/:requestId/events') twice, plus an opaque operation ID. It technically implies reading signature events for a request, but adds nothing to distinguish it from siblings like get_signatures or get_signature_management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative guidance at all. The only pointer is that describe_operation 'provides native request schemas', which is a schema-retrieval hint, not usage guidance, and the massive sibling list makes routing ambiguous without help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_signatures_entity_by_entityType_by__a0a9eba6c03cfd4c7a663161signatures: GET /api/signatures/entity/:entityType/:entityIdC
Read-onlyIdempotent
Inspect

GET /api/signatures/entity/:entityType/:entityId. GET /api/signatures/entity/:entityType/:entityId. Operation ID: a0a9eba6c03cfd4c7a663161; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds nothing beyond that: no indication of what signatures are returned, whether results are paginated, or what an unknown entityType yields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is a verbatim duplication of the same path string plus an operation ID, which is noise rather than front-loaded information. It is short, but the content is redundant rather than efficient.

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 zero parameter documentation, the description would need to explain the response shape and valid entity types. Instead it only repeats the route and defers entirely to describe_operation, leaving an agent unable to invoke this confidently from the definition alone.

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 required entityType/entityId params carry no descriptions. The description merely echoes the placeholder names from the path and does not say which entity types are valid or how entityId is scoped, so it does not compensate for the undocumented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path twice ("GET /api/signatures/entity/:entityType/:entityId") and the operation ID. It conveys no verb+resource meaning beyond the URL template, and gives no differentiation from sibling tools such as get_signatures_8c271b0c7065f6b053db1967 or get_signature_management_a514e044642e0a4243a4636a.

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 actionable guidance is the note that describe_operation provides native request schemas, which points at a prerequisite tool but not at when to choose this endpoint over the other signatures tools. No exclusions or conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sitefolio_config_78cfb08d60130efc4f2a3c4fsitefolio: GET /api/sitefolio/configC
Read-onlyIdempotent
Inspect

GET /api/sitefolio/config. GET /api/sitefolio/config. Operation ID: 78cfb08d60130efc4f2a3c4f; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no note on what config is returned, whether it is workspace-scoped, or any auth/permission nuance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste, and the operation ID is a machine artifact rather than useful prose. Structure is nominally front-loaded but the content is filler.

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, no parameter documentation, and a fully opaque endpoint, the description should carry the burden of explaining what this config returns and how to shape the request. It does not, leaving an agent dependent on a separate describe_operation call.

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 both parameters (query, params) are undocumented pass-through objects with nested additionalProperties. The description gives no parameter semantics at all; delegating to describe_operation is a pointer, not an explanation of what goes in query or params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP method and path ('GET /api/sitefolio/config') that are already encoded in the tool name and title. It never says what the config actually contains or why an agent would want it, so it is essentially a tautology of the identifier.

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 actionable hint is that 'describe_operation provides native request schemas', which points at a discovery tool but does not say when to call this versus siblings like get_sitefolio_locations or get_sitefolio_sync_history. No when/when-not guidance or preconditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sitefolio_locations_605f05cb371c87665e670d63sitefolio: GET /api/sitefolio/locationsC
Read-onlyIdempotent
Inspect

GET /api/sitefolio/locations. GET /api/sitefolio/locations. Operation ID: 605f05cb371c87665e670d63; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description adds nothing on top: no mention of pagination, filtering behavior, result size, or what the closed-world Sitefolio integration returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the one piece of content is duplicated verbatim ('GET /api/sitefolio/locations' twice) and the second sentence is an operation ID plus a cross-reference. Nothing is front-loaded as meaningful guidance, so brevity here reflects under-specification rather than efficiency.

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?

This is a list endpoint with a nested free-form query object, no output schema, and 0% schema description coverage — the description should be carrying substantial weight, but it carries none. An agent cannot tell what fields exist, how to filter, or what the response contains without making a second describe_operation call.

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 both parameters are undocumented: 'query' is an unconstrained free-form object and 'params' is an empty object. The description never mentions either, offering only a pointer to describe_operation, which is a redirect rather than semantics for the free-form query object an agent must construct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the HTTP path already given in the title, plus an opaque operation ID. It never says what a 'sitefolio location' is or how this listing differs from the sibling get_sitefolio_locations_by_locationId, so the agent gets no resource-level meaning beyond the name itself.

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, when-not-to-use, or alternative-sibling guidance. The only forward reference is 'describe_operation provides native request schemas', which points at a schema source rather than explaining when this tool should be chosen over get_sitefolio_config, get_sitefolio_sync_history, or the by-locationId variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sitefolio_locations_by_locationId_f_4247fc6795f60481daa42edasitefolio: GET /api/sitefolio/locations/:locationId/foldersC
Read-onlyIdempotent
Inspect

GET /api/sitefolio/locations/:locationId/folders. GET /api/sitefolio/locations/:locationId/folders. Operation ID: 4247fc6795f60481daa42eda; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond the URL—no pagination behavior, no return shape, no scoping or auth notes—so it contributes no behavioral context of its own.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one substantive sentence is duplicated verbatim, wasting a third of the text, and the remainder is an operation ID and a redirect to another tool. Short, but not front-loaded with meaning.

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 nested-object tool with an opaque query bag and no output schema, the description should explain what the query supports and what comes back. It instead defers to describe_operation, leaving the agent unable to construct a correct call without a second round trip.

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 explains neither the required locationId nor the free-form 'query' object, which has additionalProperties with no documented keys. Only the path template hints that locationId belongs in params, leaving the query parameter entirely unexplained.

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 is a raw HTTP path repeated verbatim with no plain-language statement of intent. The path segment '/locations/:locationId/folders' does imply retrieving folders for a given location, so an agent can infer the resource, but the 'GET' verb plus URL is machine-style rather than a described action.

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 versus siblings such as get_sitefolio_locations or get_document_folders. The only actionable pointer is 'describe_operation provides native request schemas', which tells the agent to look elsewhere for details rather than when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sitefolio_sync_history_dba0eea99e46176ccfa20816sitefolio: GET /api/sitefolio/sync-historyC
Read-onlyIdempotent
Inspect

GET /api/sitefolio/sync-history. GET /api/sitefolio/sync-history. Operation ID: dba0eea99e46176ccfa20816; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered; the description adds nothing beyond them. It doesn't mention pagination, date-range filtering, result ordering, or authorization requirements for a sync-history read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the path is printed twice verbatim, so the sentences are boilerplate rather than front-loaded information. Nothing in it earns repeated space.

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, zero parameter documentation, and nested free-form objects, the definition leaves an agent unable to construct a valid call without a round-trip to describe_operation. For a read endpoint with two opaque parameters, this is under-specified.

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 two parameters ('query' as a free-form object, 'params' with no properties) are completely undocumented. The description's only help is deferring to describe_operation, which does not explain what query keys are valid or how filtering works.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name/path twice ('GET /api/sitefolio/sync-history') and adds an operation ID, which is tautological rather than explanatory. It never says what a sync history contains or how it differs from siblings like get_integrations_by_id_sync_logs or get_import_history.

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 or when-not-to-use guidance is given. The only actionable hint is 'describe_operation provides native request schemas', which points to a companion tool but doesn't define selection criteria against the many other history/log endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sites_1c66d899f55d56514bed9495sites: GET /api/sitesC
Read-onlyIdempotent
Inspect

GET /api/sites. GET /api/sites. Operation ID: 1c66d899f55d56514bed9495; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world scope, so safety is covered. The description adds nothing beyond that — no note on pagination, filtering behavior, or the fact that the 'query' object accepts arbitrary keys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are verbatim duplicates of the same path string, so the length is wasted rather than efficient. The only substantive content, the operation ID and the describe_operation pointer, sits behind redundancy.

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, zero parameter documentation, and a nested free-form 'query' object, the description should explain the request shape and return payload. It does neither, leaving the agent to fall back on describe_operation for basic invocation.

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 compensates with nothing. An agent cannot learn from the text that 'query' is a free-form additionalProperties object while 'params' is an empty closed object — a distinction that materially affects how to call the tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the HTTP path 'GET /api/sites' twice, which restates the name and title without saying what a site is or what the call returns. There is no differentiation from siblings such as find_sites, get_sites_by_id, or the sitefolio location 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?

The only directive is that 'describe_operation provides native request schemas', which is a schema-discovery hint rather than guidance on when to call this versus find_sites or the more specific get_sites_by_id_* tools. No conditions, prerequisites, 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.

get_sites_by_id_366f0f998a651e6373e5df12sites: GET /api/sites/:idC
Read-onlyIdempotent
Inspect

GET /api/sites/:id. GET /api/sites/:id. Operation ID: 366f0f998a651e6373e5df12; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no note on what is returned, whether a missing id errors, or whether pagination/expansion applies — leaving the annotation-provided behavior as the only signal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated word-for-word, which is pure waste, and the remaining content is a machine-generated operation ID plus a cross-reference. There is no front-loaded statement of value beyond the path string.

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?

There is no output schema and no parameter documentation, so the description should explain the identifier format and the shape of a site record, but it does neither. For a nested-object, 0%-coverage schema, the definition is not sufficient on its own; the agent must chain into describe_operation to use 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% across two parameters (a free-form query object and a required params.id), so the description carries the full burden and does not meet it. It never mentions that id is the site identifier or what the query object accepts, only deferring to describe_operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is only the raw REST path 'GET /api/sites/:id' repeated verbatim twice, which merely restates the name and title. It conveys the HTTP verb and resource but gives no plain-language statement of what a 'site' fetch returns or how it differs from siblings like get_sites_1c66d899f55d56514bed9495 (list), get_sites_by_id_documents_... or find_sites.

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 routing guidance is a pointer to describe_operation for native request schemas, which is a schema-lookup hint rather than a when-to-use rule. Nothing says when to call this single-site fetch versus the sites list endpoint or the many sub-resource site tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sites_by_id_documents_133f19835f65d36af51f3320sites: GET /api/sites/:id/documentsC
Read-onlyIdempotent
Inspect

GET /api/sites/:id/documents. GET /api/sites/:id/documents. Operation ID: 133f19835f65d36af51f3320; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds no behavioral context of its own: no pagination, no result size, no auth or scope notes, and no statement of what the returned document list contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste, and the remaining text is an operation ID plus a boilerplate pointer. There is no front-loaded statement of intent, so the size is small but poorly structured rather than concise.

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 endpoint with a nested 'query' object, no output schema, and 0% parameter documentation, the description should explain at minimum what the document list represents and how to page/filter it. It leaves those gaps open, so an agent could invoke it but not predict or shape the result.

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 compensates only by mirroring the ':id' path segment, without explaining that it maps to params.id or what constraints apply. The free-form 'query' object is entirely unexplained, 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the raw endpoint 'GET /api/sites/:id/documents' twice, which only restates the name/title. It signals a read of documents scoped to a site id, but never says what these documents are (files, contract docs, generated artifacts) or how they relate to sibling tools like get_contracts_by_id_documents.

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 guidance is a pointer that 'describe_operation provides native request schemas', which is a note about schema discovery, not about when to choose this tool over alternatives. No conditions, prerequisites, or sibling routing are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sites_by_id_entity_assignment_5b31c61ca17ad1e7fd7fdb40sites: GET /api/sites/:id/entity-assignmentD
Read-onlyIdempotent
Inspect

GET /api/sites/:id/entity-assignment. GET /api/sites/:id/entity-assignment. Operation ID: 5b31c61ca17ad1e7fd7fdb40; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that, disclosing nothing about what the response contains, whether the entity assignment can be absent, or pagination/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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, which is pure waste, and the operation ID is metadata rather than usable content. It is short, but it is under-specified framing rather than earned brevity.

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, a nested free-form query parameter, and 0% schema description coverage, the description would need to carry a lot. It supplies nothing about the return payload or the parameters, leaving the agent dependent entirely on describe_operation.

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% for both parameters, including a required path parameter 'id' and an untyped free-form 'query' object. The description provides no explanation of what 'id' identifies (site id) or what query options are accepted, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the raw HTTP path 'GET /api/sites/:id/entity-assignment' twice, plus an operation ID. It never says in natural language what an 'entity assignment' is or what is being retrieved, so an agent gets the resource but no meaningful statement of purpose beyond the title.

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 use this versus siblings such as get_sites_by_id_366f0f998a651e6373e5df12 or get_sites_by_siteId_contacts. The only pointer, that describe_operation provides native request schemas, tells the agent how to fetch a schema, not when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sites_by_siteId_contacts_f77d90343aa547ae559b32fesites: GET /api/sites/:siteId/contactsD
Read-onlyIdempotent
Inspect

GET /api/sites/:siteId/contacts. GET /api/sites/:siteId/contacts. Operation ID: f77d90343aa547ae559b32fe; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile needs no repetition. The description adds nothing beyond those annotations: no pagination behavior, no filtering semantics for the free-form query object, no note on what is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short but wasteful: the identical route string appears twice, and the operation ID hash adds no informational value to an agent choosing a tool. Size is fine, but the content is duplicated rather than front-loaded with meaning.

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?

No output schema exists, so the description should describe the returned collection and how the free-form query filters it; it does neither. For a 2-parameter nested-object tool with 0% schema coverage, an agent cannot call this confidently beyond passing a siteId.

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 supplies no parameter meaning at all. The required siteId is only inferable from the raw path text, and the open-ended 'query' object (arbitrary additional properties) is completely undocumented — exactly the case where the description is supposed to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description simply restates the HTTP route and title verbatim ('GET /api/sites/:siteId/contacts'), so the only purpose signal is the endpoint path itself. An agent can infer it lists contacts for a site, but nothing states what a contact record is, why it differs from get_contacts or get_sites_by_siteId_units, or what the response contains.

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, when-not, or sibling differentiation is given, despite dozens of closely related project/contact/site endpoints in the sibling list. The only actionable pointer is that describe_operation provides native request schemas, which is schema guidance rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sites_by_siteId_units_by_unitId_7fc4dbfaf6304de746a9f339sites: GET /api/sites/:siteId/units/:unitIdC
Read-onlyIdempotent
Inspect

GET /api/sites/:siteId/units/:unitId. GET /api/sites/:siteId/units/:unitId. Operation ID: 7fc4dbfaf6304de746a9f339; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond the endpoint path except the pointer to describe_operation; it says nothing about return shape, 404 behavior for missing unit/site, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two nearly identical sentences — the endpoint path is repeated verbatim, which is pure waste. It is short but redundant and back-loads the only additional information (the operation ID and describe_operation pointer) into a trailing 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?

With no output schema and 0% parameter description coverage, this tool depends on the description to say what is returned and what the path parameters mean. Instead it repeats the URI and defers all real detail to describe_operation, leaving an agent unable to predict the response shape or error conditions.

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 explains siteId, unitId, or the free-form query object. The path template at least maps :siteId and :unitId to the two required params, which is marginal value, but constraints like minLength/maxLength and the semantics of the 'query' bag are left entirely undocumented.

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 REST path 'GET /api/sites/:siteId/units/:unitId' does convey a specific verb and resource (fetch one unit scoped to a site), which is more informative than the tool name alone. However, the description offers no explanation of what a 'unit' is, and it does not differentiate itself from the closely related sibling get_sites_by_siteId_units (which lists units) — an agent must infer the singular-vs-collection distinction from the path shape.

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 to use this tool versus get_sites_by_siteId_units, get_sites_by_id, or the generic execute_read. The only guidance-like content is a pointer to describe_operation for native request schemas, which is a schema-lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sites_by_siteId_units_dc0b1d794ecb4aaef96e4212sites: GET /api/sites/:siteId/unitsC
Read-onlyIdempotent
Inspect

GET /api/sites/:siteId/units. GET /api/sites/:siteId/units. Operation ID: dc0b1d794ecb4aaef96e4212; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral context such as pagination, response shape, or auth requirements beyond repeating the endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are identical repetitions of the endpoint path, wasting space without adding information. The remaining text is minimal and front-loaded only in the sense that it immediately names the endpoint.

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 list endpoint with a free-form query object and no output schema, the description says almost nothing about what is returned or how to shape the query. The only aid is the generic pointer to describe_operation.

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% for 2 parameters, and the description explains neither the required siteId nor the arbitrary query object. It does not compensate for the schema 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 identifies the exact endpoint, GET /api/sites/:siteId/units, so an agent can infer that it lists units for a given site. However, it does not distinguish this tool from the closely related get_sites_by_siteId_units_by_unitId sibling.

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 use this tool versus the by_unitId variant or any other sibling. The only pointer is to describe_operation for schemas, not for usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_standard_clauses_by_id_1494be76578086d1e4520500standard-clauses: GET /api/standard-clauses/:idC
Read-onlyIdempotent
Inspect

GET /api/standard-clauses/:id. GET /api/standard-clauses/:id. Operation ID: 1494be76578086d1e4520500; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered structurally; the description adds nothing on top — no note about what is returned, 404 behavior for missing ids, or permission requirements. The duplicated route string contributes no behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is emitted twice plus a raw operation-ID blob, so there is measurable waste and no front-loaded statement of intent. Nothing beyond the route path and the describe_operation pointer earns its place.

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, undocumented parameters, and a nested 'query' object that is unconstrained, the description should explain the id semantics and what the endpoint returns. Instead it offers only a route echo and a delegation to describe_operation, leaving the agent reliant on other tools to call this 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 the description says nothing about the two parameters, notably the required 'params.id' and the free-form 'query' object. The only compensation is the pointer to describe_operation, which offloads rather than explains parameter meaning.

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 is essentially the raw HTTP route 'GET /api/standard-clauses/:id' repeated twice, which does convey a fetch-by-identifier of standard clauses, but it never states the purpose in words or distinguishes this tool from siblings like get_standard_clauses_ee2e8b85378202eeb81d76a1 (list) or get_standard_clauses_by_id_audit_... (sub-resource).

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 versus the sibling standard-clauses list/audit tools. The only actionable hint is 'describe_operation provides native request schemas', which is a discovery pointer rather than a when-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_standard_clauses_by_id_audit_211fe47bdc729482805e9b6astandard-clauses: GET /api/standard-clauses/:id/auditC
Read-onlyIdempotent
Inspect

GET /api/standard-clauses/:id/audit. GET /api/standard-clauses/:id/audit. Operation ID: 211fe47bdc729482805e9b6a; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that: no mention of ordering, pagination, time-range scoping, or what an empty audit trail means for a read-only history endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is short but not concise: the identical route sentence is duplicated verbatim, and the operation hash plus the describe_operation note occupy most of the payload. Nothing is front-loaded to explain the tool's effect, so the size is wasted rather than earned.

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?

This is a nested-parameter, read-only history endpoint with no output schema, no parameter documentation, and annotations that only cover safety. An agent still lacks what the audit records represent, how they are ordered or paginated, and what the untyped 'query' bag accepts — substantial gaps given the complexity signals.

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 two parameters, so the description must compensate and does not. The only hint is the ':id' path token, implying the required 'params.id' is a standard-clause identifier; the optional 'query' object (nested, additionalProperties: {}) is left completely unexplained — no mention of filters, paging, or date ranges.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a restatement of the name and title: it repeats the raw HTTP route 'GET /api/standard-clauses/:id/audit' twice and adds an opaque operation hash. It never says what an 'audit' for a standard clause contains (change history? version events? actor timestamps?), so an agent cannot distinguish it from siblings like get_standard_clauses_by_id_1494be76578086d1e4520500 beyond the literal URL suffix.

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 to call this versus the plain standard-clause getter or the contracts/leases audit-log siblings. The only actionable pointer is that 'describe_operation provides native request schemas', which routes the agent to another tool for schema discovery rather than explaining selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_standard_clauses_ee2e8b85378202eeb81d76a1standard-clauses: GET /api/standard-clausesD
Read-onlyIdempotent
Inspect

GET /api/standard-clauses. GET /api/standard-clauses. Operation ID: ee2e8b85378202eeb81d76a1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no return shape, no pagination, no auth or scoping notes — and repeats the same path sentence twice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, wasting the reader's attention, and the operation-ID sentence carries no meaning for tool selection. Nothing is front-loaded beyond the raw path.

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 two undocumented parameters, a nested free-form query object, and no output schema, the description should explain what the endpoint returns and what query keys are accepted. Instead it defers entirely to describe_operation, leaving the agent unable to invoke it meaningfully without a second call.

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 schema exposes only a free-form 'query' object and an empty 'params' object with additionalProperties rules. The description provides zero information about filtering, pagination, or supported query keys, which is the exact gap that needed filling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path already present in the title ('GET /api/standard-clauses' twice) and gives an operation ID. It implies a list endpoint for standard clauses but names no verb, scope, or result content, and does not distinguish it from siblings such as get_standard_clauses_by_id_1494be76578086d1e4520500.

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 actionable hint is 'describe_operation provides native request schemas,' which redirects elsewhere rather than saying when to call this tool versus the by-id, audit, or clause-related siblings. There is no when/when-not guidance or mention of prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscription_ai_token_cost_7a040f5408c9a37b0328c29esubscription: GET /api/subscription/ai-token-costD
Read-onlyIdempotent
Inspect

GET /api/subscription/ai-token-cost. GET /api/subscription/ai-token-cost. Operation ID: 7a040f5408c9a37b0328c29e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered by structured data. The description adds nothing about response shape, aggregation window, units of cost, or scope of the returned data, so it cannot compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but the text is wasteful: the same endpoint path appears twice plus an operation ID, with no front-loaded statement of purpose. Brevity here reflects under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with an undocumented nested query parameter and no output schema, the description should explain what cost data is returned and how to filter it. None of that is present, so an agent cannot invoke it correctly without trial and error.

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 there are two parameters including a free-form 'query' object with additionalProperties: {}. The description gives no hint about date ranges, filters, grouping, or what keys 'query' accepts, leaving the caller to guess entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely repeats the endpoint path '/api/subscription/ai-token-cost' twice and never explains what the resource actually represents (e.g. cost breakdown of AI token consumption for the subscription). A nearby sibling, get_subscription_ai_usage, is not distinguished, so an agent cannot tell which to call.

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 to use this tool versus get_subscription_ai_usage or get_subscription_usage_summary. The only guidance-like text, 'describe_operation provides native request schemas,' is a schema-discovery pointer rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscription_ai_usage_4e546e3abc936ec4610cf415subscription: GET /api/subscription/ai-usageC
Read-onlyIdempotent
Inspect

GET /api/subscription/ai-usage. GET /api/subscription/ai-usage. Operation ID: 4e546e3abc936ec4610cf415; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered structurally. The description adds no behavioral context such as what the AI usage payload contains, its time window, or any scope/auth requirements, contributing nothing 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string is stated twice, which is pure waste, and the remaining content is a mechanical operation ID plus a pointer sentence. It is short but not front-loaded with anything useful.

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 an untyped parameter surface, the description would need to explain what data is returned and how to scope the query. Instead it offers only the raw route, leaving an agent unable to call this confidently against its many subscription siblings.

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% with two loosely typed parameters (a free-form `query` object and an empty `params` object), so the description carries the full burden. It provides no parameter names, formats, or filtering semantics, only a generic pointer to describe_operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description simply repeats the endpoint path and title verbatim ('GET /api/subscription/ai-usage') without explaining what AI usage data is returned or how it differs from sibling tools like get_subscription_ai_token_cost or get_subscription_usage_summary. This is a tautological restatement of the name/title rather than a statement of purpose.

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 versus the many sibling subscription tools. The only actionable line points to describe_operation for native request schemas, which is a mechanical pointer rather than a usage condition or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscription_billing_check_97330eef5c69674c1d195e8bsubscription: GET /api/subscription/billing-checkC
Read-onlyIdempotent
Inspect

GET /api/subscription/billing-check. GET /api/subscription/billing-check. Operation ID: 97330eef5c69674c1d195e8b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so safety is covered. The description adds nothing behavioral beyond those annotations — no mention of what the check evaluates, whether it hits a billing provider, latency, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short but wasteful: the identical endpoint string is duplicated verbatim, adding zero information. The content is under-specified rather than concise, so the brevity reflects a lack of substance.

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 two undocumented parameters, no output schema, and an abstract nested query object, an agent cannot know what to pass or expect. The description does not fill this gap, leaving the definition incomplete for invocation.

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 0% for two parameters (query and params), and the description does not explain what either accepts. Its only help is deferring to describe_operation, which is a pointer rather than actual parameter semantics, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely repeats the HTTP path 'GET /api/subscription/billing-check' twice and gives an opaque operation ID. It never states in plain language what a billing check does or what it returns, so the agent must infer purpose from the endpoint name alone. This is essentially a tautology of the tool title.

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 indication of when to call this versus siblings such as get_subscription_status, get_subscription_trial_status, or get_subscription_usage_summary. The only directional hint is that describe_operation 'provides native request schemas', which is a pointer to another tool, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscription_payment_methods_74ead37d3e5329b743256c07subscription: GET /api/subscription/payment-methodsD
Read-onlyIdempotent
Inspect

GET /api/subscription/payment-methods. GET /api/subscription/payment-methods. Operation ID: 74ead37d3e5329b743256c07; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no note on whether the returned card data is masked, pagination, or empty-state behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint string is repeated verbatim in two consecutive sentences, so the only content-bearing line is the operation-ID/schema pointer. It is short but not front-loaded with anything useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 0% parameter coverage, and a free-form query object, the description should carry the load — instead it supplies nothing about inputs or return shape beyond the URL.

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% for a nested 'query' object with free-form additionalProperties, and the description gives no hint about what query keys are accepted or what the empty 'params' object means. The agent has to fall back to describe_operation with no help here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only echoes the endpoint path twice; it restates the name rather than saying what the tool returns (a list of the tenant's stored payment methods) or how it differs from siblings like get_subscription_billing_check or get_subscription_usage_summary.

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 or when-not-to-use guidance is given. The only directional hint is that 'describe_operation provides native request schemas', which points at a discovery tool but not at the criteria for choosing this operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscription_status_bd01e1f09e5067bb2c8d755dsubscription: GET /api/subscription/statusC
Read-onlyIdempotent
Inspect

GET /api/subscription/status. GET /api/subscription/status. Operation ID: bd01e1f09e5067bb2c8d755d; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered externally. The description adds nothing beyond that — no auth/scope requirements, no note on whether the status is tenant-level or user-level, and no indication of caching or freshness of subscription state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the opening sentence is duplicated verbatim, which is pure waste, and the only substantive information (the operation ID and the describe_operation pointer) is buried after the repetition rather than front-loaded.

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 two-parameter nested-object tool with zero schema documentation and no output schema, the description is far too thin — the agent learns nothing about the request shape or the returned fields. The pointer to describe_operation and execute_read is the sole mitigating element, so it is not entirely inadequate.

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 both parameters (`query` as an open additionalProperties bag and empty `params`) are undocumented. The description does not compensate at all, only deferring to describe_operation for 'native request schemas', leaving the agent guessing what query keys are accepted and whether any are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path and repeats it verbatim ('GET /api/subscription/status. GET /api/subscription/status.'), which is the title with slashes added. It gives no indication of what data is returned (plan, seats, renewal date, payment state) and does not distinguish it from siblings such as get_subscription_trial_status, get_subscription_billing_check, or get_subscription_usage_summary.

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 stated alternative — with eight sibling subscription endpoints, the agent has no basis for choosing this one over them. The only actionable pointer is 'describe_operation provides native request schemas', which explains how to discover the request shape rather than when to call this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscription_trial_status_24ad411b9cb62a0481e61b89subscription: GET /api/subscription/trial-statusD
Read-onlyIdempotent
Inspect

GET /api/subscription/trial-status. GET /api/subscription/trial-status. Operation ID: 24ad411b9cb62a0481e61b89; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is fully covered. The description adds no behavior beyond that — nothing about what the trial status represents, whether it is scoped to the caller's account, or what happens if there is no trial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

There is no waste in length, but the content is a duplicated path string rather than informative prose; the second copy of the sentence earns nothing.

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 no output schema and two undocumented parameters, the description should explain what the endpoint returns and what the query object accepts. Instead it defers entirely to describe_operation, leaving the agent without enough to call it confidently.

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 the two parameters. The free-form 'query' object (additionalProperties: {}) is entirely undocumented anywhere, so an agent has no idea what query keys are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw path 'GET /api/subscription/trial-status' repeated twice, which restates the name/title rather than explaining in plain language what trial status is returned (trial expiry, eligibility, days remaining?). It never distinguishes this from siblings like get_subscription_status or get_subscription_billing_check.

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, no alternatives. The only sentence beyond the path, 'describe_operation provides native request schemas,' is a pointer to another tool, not a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscription_usage_summary_e8438228bbfa914cfca223desubscription: GET /api/subscription/usage/summaryD
Read-onlyIdempotent
Inspect

GET /api/subscription/usage/summary. GET /api/subscription/usage/summary. Operation ID: e8438228bbfa914cfca223de; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description's only added content is a pointer that describe_operation holds native request schemas, which is mildly useful routing but discloses nothing about what data is returned or how usage is aggregated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short only because it is a duplicated URL string with no front-loaded explanation of the operation; the repetition is noise rather than concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested free-form query object, zero parameter documentation, and no output schema, the description provides no information about what the usage summary returns or how to shape the request. An agent cannot invoke it correctly from this definition alone.

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% on two parameters, and the free-form 'query' object with additionalProperties is completely undocumented. The description supplies no parameter meaning whatsoever, leaving the agent unable to know what query keys are valid.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is nothing but the endpoint path repeated twice plus an operation ID; the only signal of purpose comes from parsing the URL itself, which merely restates the tool name and title rather than describing what the summary contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 versus siblings like get_subscription_ai_usage, get_subscription_ai_token_cost, or get_subscription_status, nor any conditions, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_supplemental_rent_import_targets_992b55f080e9876f5ead40f4supplemental-rent: GET /api/supplemental-rent/import-targetsC
Read-onlyIdempotent
Inspect

GET /api/supplemental-rent/import-targets. GET /api/supplemental-rent/import-targets. Operation ID: 992b55f080e9876f5ead40f4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered externally. The description adds no behavioral context beyond that — no return shape, no pagination, no auth or rate-limit notes. Since the bar is lower with annotations, this is a modest gap rather than a failure, but nothing is contributed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated verbatim and the second duplicates the title. Almost no sentence earns its place — the entire content could be one line of genuine description.

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 a nested free-form query object, an empty params object, no output schema and zero parameter documentation, the description leaves an agent unable to construct a correct call without first invoking describe_operation. The offload pointer is at least honest, but the definition is not self-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?

Schema description coverage is 0% and both parameters (query, params) are free-form objects with no documented properties. The description does not describe any parameter semantics; it only points to describe_operation as the place to obtain native schemas, which is a delegation rather than an explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the HTTP verb and path repeated twice with no elaboration of what an 'import target' actually is or what the call returns. It effectively restates the name/title, so an agent learns only that this is a GET on the supplemental-rent import-targets endpoint. It does not distinguish this from the many sibling supplemental-rent tools in any meaningful way.

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 versus siblings such as get_supplemental_rent_portfolio or the get_leases_by_leaseId_supplemental_rent_* family. The only hint is that describe_operation provides native request schemas, which is a schema-discovery pointer rather than a use-case condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_supplemental_rent_portfolio_8c47be77fbe4a922a0841a42supplemental-rent: Portfolio gross sales estimates, actual sales and supplemental rent obligations GET query year is required (1900–2200). Set reporting=true for the saved organization fiscal calendarA
Read-onlyIdempotent
Inspect

Portfolio gross sales estimates, actual sales and supplemental rent obligations GET query year is required (1900–2200). Set reporting=true for the saved organization fiscal calendar and fiscal-year allocation; without it year follows contractual source periods. Optional leaseId and termId narrow scope. Response rows and summary retain unknown actual values and reporting-calendar evidence. This endpoint returns the complete scoped rows, not a paginated lease list.. GET /api/supplemental-rent/portfolio. Operation ID: 8c47be77fbe4a922a0841a42; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, idempotent, closed-world read, so the bar is lower; the description still adds real behavior beyond them — the reporting flag's effect on fiscal-year allocation, that unknown actual values and reporting-calendar evidence are retained in rows and summary, and that the endpoint returns the complete scoped set rather than a page. No return schema exists, and only the row/summary shape is touched on briefly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first clause restates the title verbatim, the phrasing 'GET query year is required' is garbled, and a double period plus operation-ID/describe_operation boilerplate pad the end. The genuinely useful guidance (year bounds, reporting semantics, complete-rows behavior) is present but not cleanly front-loaded.

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 portfolio aggregate with no output schema and a fully opaque query object, the description supplies the essentials an agent needs: required year, the reporting switch, optional narrowing keys, and confirmation that the full scoped set is returned. The one loose end is that the schema marks no parameters as required while the description insists year is required.

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% and the schema itself is an opaque free-form 'query' object, so the description carries the full burden and mostly succeeds: it documents year (required, bounds 1900–2200), reporting (boolean with a specific fiscal-calendar effect), and leaseId/termId (scope narrowing). It does not show how these keys are actually passed inside the untyped query object.

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 resource and its scope: portfolio-level gross sales estimates, actual sales, and supplemental rent obligations, which implicitly distinguishes it from the many lease-scoped supplemental-rent siblings (get_leases_by_leaseId_supplemental_rent_*). It never explicitly names an alternative tool, so the differentiation is inferred from the word 'Portfolio' 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete calling context: 'year is required (1900–2200)', the meaning of reporting=true versus the default contractual source periods, and that leaseId/termId narrow scope. It also rules out a wrong expectation ('not a paginated lease list'). It stops short of naming a sibling to use instead when a single-lease view is wanted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_feedback_67cf430fc14502dc264d0532support: GET /api/support/feedbackC
Read-onlyIdempotent
Inspect

GET /api/support/feedback. GET /api/support/feedback. Operation ID: 67cf430fc14502dc264d0532; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds nothing behavioral beyond that — no pagination, filtering, auth, or scoping notes — and only points at describe_operation, so it barely clears the lower bar set by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short but not efficient: the same URL is duplicated verbatim, wasting an entire sentence. The one genuinely informative clause (the describe_operation pointer) is buried at the end rather than front-loaded.

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 nested-object, zero-coverage schema with no output schema and no annotations-level detail about results, the description says nothing about return shape, pagination, or filters. The describe_operation hint is the sole bridge and is insufficient on its own.

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 both parameters (query, params) are untyped/empty objects, so the schema provides no semantics at all. The description's only compensation is noting that describe_operation supplies native request schemas, which points the agent elsewhere rather than explaining what query or params accept.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path restated twice ('GET /api/support/feedback'), which only implies 'list support feedback' through the name/route. It never states in plain language what is returned or how it differs from close siblings such as get_support_feedback_by_id or get_support_feedback_stats.

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 conditions or prerequisites, and no mention of alternatives; the only actionable text is a redirect to describe_operation for schemas. An agent must infer that this is the collection-level listing endpoint from the path alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_feedback_by_id_e42dfccfda3336824509cb30support: GET /api/support/feedback/:idC
Read-onlyIdempotent
Inspect

GET /api/support/feedback/:id. GET /api/support/feedback/:id. Operation ID: e42dfccfda3336824509cb30; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that: no note on what is returned, what happens if the ID is unknown, or any scoping constraint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is repeated verbatim, which is pure waste, and the remaining content is an internal operation ID plus a self-referential pointer. There is no front-loaded statement of what the tool does.

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 a nested-parameter input, the description should explain the response shape and the ID parameter. It delegates everything to describe_operation, leaving an agent unable to call the tool confidently from the definition alone.

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, including a nested params.id, so the description has to compensate and does not. It only restates the path template ':id' and never explains the ID format, source, or the purpose of the query object.

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 exposes the raw endpoint 'GET /api/support/feedback/:id', which implies retrieving a single feedback entry by ID, so the resource and verb are inferable. However, it never states this in plain language and gives no differentiation from the sibling list tool get_support_feedback.

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 use this single-item fetch versus the sibling list endpoint get_support_feedback or the stats endpoint. The only pointer is to describe_operation for request schemas, which is a schema lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_feedback_stats_58173d3f02f84311419a3171support: GET /api/support/feedback/statsC
Read-onlyIdempotent
Inspect

GET /api/support/feedback/stats. GET /api/support/feedback/stats. Operation ID: 58173d3f02f84311419a3171; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the operation ID and a pointer to describe_operation, with no explanation of aggregation behavior, filtering, or what the stats represent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes half its length repeating the exact same endpoint sentence twice. The operation ID and describe_operation pointer are the only non-redundant elements.

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?

There is no output schema, no parameter documentation, and no explanation of what statistics are returned. For a stats endpoint with nested generic query/params objects, the description is not complete enough to guide correct invocation without calling describe_operation first.

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 does not explain the query or params objects at all. It does point to describe_operation for native request schemas, which is mildly useful, but it provides no parameter semantics itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the HTTP endpoint path twice. It identifies the resource path but adds no human-readable explanation of what 'feedback stats' means or how it differs from siblings like get_support_feedback or get_support_tickets_stats.

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 use this tool, what time range or filters apply, or when to prefer a sibling such as get_support_feedback. The agent is left to infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_incidents_by_id_69e33d482645470772b9768bsupport: GET /api/support/incidents/:idC
Read-onlyIdempotent
Inspect

GET /api/support/incidents/:id. GET /api/support/incidents/:id. Operation ID: 69e33d482645470772b9768b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered and the description contributes nothing new about behavior. It does not say what a missing incident yields (404 vs empty), whether the response is the full incident object, or that describe_operation must be called to learn the request shape. No contradiction with annotations, but no added value either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first sentence is duplicated word-for-word, which is pure waste, and the remaining content is an opaque operation-id hash plus a pointer to another tool. The only useful token (describe_operation) is buried at the end rather than front-loaded.

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, 0% parameter description coverage, a nested query object, and no annotations gaps to hide behind, the description should carry the burden and instead carries none. An agent learns only the route and that a sibling tool documents schemas; it cannot tell what the response contains or how to shape the query parameter.

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 (required params.id and an untyped query object), so the description is expected to compensate and does not. The ':id' path placeholder weakly signals that id identifies the incident, but nothing explains the free-form query object, its allowed keys, or length constraints on id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw HTTP path repeated verbatim twice, identical to the tool title, and adds no framing beyond 'GET /api/support/incidents/:id'. It does not distinguish this from the sibling list tool get_support_incidents or from get_support_incidents_history, and a long generated hash in the name gives no semantic help. This is effectively a restatement of the name/title.

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 actionable sentence points at describe_operation for native request schemas, which is a schema-lookup hint rather than guidance on when to reach for this tool. There is no statement of when to use this versus get_support_incidents (list) or get_support_incidents_history, and no preconditions such as needing a known incident id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_incidents_fd51861c1ad5681ce89554c4support: GET /api/support/incidentsD
Read-onlyIdempotent
Inspect

GET /api/support/incidents. GET /api/support/incidents. Operation ID: fd51861c1ad5681ce89554c4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered structurally. The description adds no behavioral context beyond a pointer to describe_operation — no pagination, sorting, default limits, or result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful sentence is immediately duplicated verbatim, wasting the front-loaded position on redundant text. Brevity here comes from under-specification rather than efficiency.

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 list endpoint with fully undocumented parameters, no output schema, and many overlapping incident siblings, the description omits filters, pagination, and response shape. It tells the agent to go elsewhere for schemas but does not make the tool callable on its own merits.

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 two parameters are opaque objects ('query' and an empty 'params'). The description does not explain them, only noting that describe_operation holds the native schemas — a useful hint, but no semantics an agent can act on directly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the HTTP path repeated twice ('GET /api/support/incidents'), which restates the name/title rather than explaining what the tool does. An agent can guess it lists support incidents, but nothing states scope, filters, or how it differs from siblings like get_support_incidents_history or get_support_incidents_by_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The only pointer is to describe_operation for request schemas, which is documentation routing, not usage guidance. Several sibling incident tools exist and none are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_incidents_history_7bd433e42b1bcd1471f3176esupport: GET /api/support/incidents/historyC
Read-onlyIdempotent
Inspect

GET /api/support/incidents/history. GET /api/support/incidents/history. Operation ID: 7bd433e42b1bcd1471f3176e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no pagination behavior, no date-range defaults, no indication of what history records include or how far back they go.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the single content sentence is duplicated verbatim, so half the text is pure waste. The remaining sentence is a platform-wide boilerplate pointer rather than front-loaded tool-specific information.

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 zero schema description coverage, nested opaque parameters, and no output schema, the description carries a heavy burden and fails to meet it. An agent cannot tell what filters are valid or what the response shape is without a separate describe_operation call.

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 both parameters (query, params) are unnamed free-form nested objects with no descriptions or enums. The description does not identify what filters the query accepts or what params is for; it only redirects to describe_operation for schemas, which is minimal compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the endpoint path restated verbatim twice, which only tautologically echoes the title 'GET /api/support/incidents/history'. It names the resource area (support incidents history) but gives no verb-level explanation of what the tool actually returns, what 'history' contains, or how it differs from get_support_incidents_* 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 guidance on when to use this over get_support_incidents_fd51861c1ad5681ce89554c4, get_support_incidents_by_id, or describe_operation. The only pointer is a generic note that describe_operation provides native request schemas, which is a fallback routing hint, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_status_38abab7d0aa6d2240ccc1e3bsupport: GET /api/support/statusC
Read-onlyIdempotent
Inspect

GET /api/support/status. GET /api/support/status. Operation ID: 38abab7d0aa6d2240ccc1e3b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is fully covered elsewhere. The description adds nothing about what the endpoint returns, auth requirements, or scope of the status data, so it earns no credit beyond the 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wasteful: the same endpoint string appears twice, and the operation ID plus schema pointer consume the remainder without conveying intent. Brevity here comes from under-specification, not economy.

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 endpoint with no output schema and an opaque, free-form query object, the description should say what status information is returned and what the query object can carry. Neither is present; the agent must leave the tool and call describe_operation to learn anything.

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 tool exposes two undocumented parameters, one of which is a free-form nested 'query' object with additionalProperties allowed. The description does not describe either; it only redirects to describe_operation, which is a pointer rather than parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the tool title and name ("GET /api/support/status"), repeated twice, plus an operation ID. It names no resource semantics and does nothing to separate it from siblings such as get_support_status_by_id or get_support_status_uptime, so an agent cannot tell which status endpoint it needs.

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 actionable guidance is "describe_operation provides native request schemas," which points at a sibling for schema retrieval but never says when to call this tool versus get_support_status_uptime or get_support_status_by_id. There are no conditions, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_status_by_id_1d0ab686e31cb9bb628a4cbbsupport: GET /api/support/status/:idC
Read-onlyIdempotent
Inspect

GET /api/support/status/:id. GET /api/support/status/:id. Operation ID: 1d0ab686e31cb9bb628a4cbb; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered; the description adds nothing further—no note on auth requirements, missing-ID behavior (404?), or response shape. With annotations present the bar is lower, but there is essentially zero added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short and front-loaded, but the duplicate route sentence and the boilerplate operation-ID line waste space without adding information. It is brief without being informative.

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 single-record lookup with nested params, no output schema, and zero schema description coverage, the definition leaves too much unsaid: return contents, ID format, and the role of the query object are all undisclosed. An agent could call it but could not predict what it gets back.

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 two parameters (a free-form 'query' object and 'params.id'). The description only implies that 'id' is the target record's identifier via the path template, adding no constraints, format, or explanation of what the 'query' object accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the route string repeated verbatim ("GET /api/support/status/:id. GET /api/support/status/:id."), which restates the title rather than explaining what the endpoint returns or how it differs from siblings like get_support_status_38abab7d0aa6d2240ccc1e3b or get_support_status_uptime. Only the ':id' segment hints that a single status record is fetched.

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, when-not-to-use, or alternative routing is given; the only hint is that describe_operation 'provides native request schemas,' which tells the agent where to find schema info but not when this tool should be selected over the many support and status siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_status_uptime_8be4e32e0ff3d7dc9540125esupport: GET /api/support/status/uptimeC
Read-onlyIdempotent
Inspect

GET /api/support/status/uptime. GET /api/support/status/uptime. Operation ID: 8be4e32e0ff3d7dc9540125e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered without the description. The description adds nothing about response shape, time window semantics of 'uptime', or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the first sentence is duplicated verbatim, so a nontrivial fraction of the text is pure repetition rather than information.

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 endpoint with no output schema, no annotation gap, and two undocumented parameters, the description should at least say what the uptime payload represents and any time-window parameters. It gives the agent nothing to invoke with beyond the raw path.

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 a tool with a free-form 'query' object and an empty 'params' object. The description does not describe either; it merely defers to describe_operation, which is not the same as explaining parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally the endpoint path repeated twice plus an operation ID, which restates the tool name and title. It never explains what 'uptime' data the endpoint returns or how it differs from siblings such as get_support_status or get_support_incidents_history.

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 named alternative. The only actionable sentence points at describe_operation for request schemas, which is a schema lookup hint rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_tickets_by_id_05dc4378158ce5db426848d4support: GET /api/support/tickets/:idC
Read-onlyIdempotent
Inspect

GET /api/support/tickets/:id. GET /api/support/tickets/:id. Operation ID: 05dc4378158ce5db426848d4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no note on what is returned, error behavior on a missing/invalid id, or scope of the 'query' object. It also repeats the same path sentence twice, adding no information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, and the operation-ID / describe_operation metadata is filler relative to the tool's purpose. It is short but wasteful rather than front-loaded with useful information.

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, 0% parameter documentation, and a nested free-form 'query' parameter, the description should carry more weight. It only redirects to describe_operation, leaving an agent unable to know what fields to pass or what a ticket response contains.

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 2 parameters, and the description does not compensate. The ':id' path token weakly implies that params.id is the ticket identifier, but nothing explains the free-form 'query' object or id format/length constraints.

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 REST path 'GET /api/support/tickets/:id' does convey a verb and a resource (fetch one ticket by its id), so an agent can infer the purpose. But it is literally the title and tool name restated, and gives no differentiation from nearby siblings such as get_support_tickets (list) or get_support_tickets_by_id_messages.

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 to use this tool versus the sibling list/messages/stats ticket endpoints. The only actionable sentence points to describe_operation for request schemas, which is schema discovery help, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_tickets_by_id_messages_98e6b29aa6dc2ee1870cefb4support: GET /api/support/tickets/:id/messagesC
Read-onlyIdempotent
Inspect

GET /api/support/tickets/:id/messages. GET /api/support/tickets/:id/messages. Operation ID: 98e6b29aa6dc2ee1870cefb4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond that — no note on pagination, result volume, permissions, or whether messages include attachments/threading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sentence is duplicated verbatim, wasting half the description, and the operation ID adds no agent-relevant information. There is no front-loaded statement of purpose beyond the raw path.

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, no annotations gap-filling needed, and 0% parameter coverage, the description should carry the burden of explaining inputs and return shape. Instead it provides neither, leaving a nested-object 'query' parameter completely undocumented.

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 (a free-form 'query' object and required 'params.id'). The path template ':id' implies the id is the ticket identifier, but the description never explains the 'query' parameter, its accepted keys, or id format constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the raw HTTP path repeated twice ('GET /api/support/tickets/:id/messages'), which restates the tool name/title rather than describing the operation in agent-facing terms. An agent can infer it retrieves messages for a support ticket, but nothing states ordering, pagination, or what a 'message' contains.

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 or when-not-to-use guidance is given. The only actionable pointer is 'describe_operation provides native request schemas', which redirects the agent to another tool rather than explaining selection criteria versus siblings like get_support_tickets_by_id or get_support_tickets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_tickets_cbcc74458751b6ca69066445support: GET /api/support/ticketsD
Read-onlyIdempotent
Inspect

GET /api/support/tickets. GET /api/support/tickets. Operation ID: cbcc74458751b6ca69066445; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond the path and the pointer to describe_operation — no pagination behavior, no default scoping, no shape of the returned ticket collection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are byte-identical duplicates, wasting half the text. The only non-redundant content is the operation ID and the describe_operation pointer, which is buried after the repetition rather than front-loaded.

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, a 0%-described schema, and nested/opaque parameters, the description should explain the wrapper envelope and what the call returns. It delegates everything to describe_operation, which is a helpful escape hatch but leaves the definition itself nearly content-free for an agent deciding whether to invoke it.

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 schema is a bare wrapper with opaque `query` (additionalProperties: {}) and empty `params` objects. The description supplies no meaning for either parameter, giving an agent no way to know what a valid query looks like for this endpoint — the exact gap the description needed to fill.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally the endpoint path repeated twice: "GET /api/support/tickets. GET /api/support/tickets." It restates the name/title without adding a verb-level explanation of what the returned data represents or how it differs from ~600 sibling read tools such as get_support_tickets_stats or get_support_tickets_by_id.

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 actionable guidance is "describe_operation provides native request schemas," which points to a helper for schema discovery but says nothing about when to call this tool versus get_support_tickets_stats, get_support_tickets_by_id, or get_support_incidents. No prerequisites, filters, 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.

get_support_tickets_stats_977fb68d585bc3a4ce6888a1support: GET /api/support/tickets/statsD
Read-onlyIdempotent
Inspect

GET /api/support/tickets/stats. GET /api/support/tickets/stats. Operation ID: 977fb68d585bc3a4ce6888a1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond repeating the URL and mentioning describe_operation; it does not disclose what statistics are computed, time ranges, or any filtering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wasteful: it repeats the endpoint path twice and then adds an operation ID and a pointer to another tool. No sentence explains the tool's actual behavior or return value, so the structure is not front-loaded with useful information.

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 statistics endpoint with no output schema and two undocumented parameters, the definition should at least state what metrics are returned or what the query/params objects control. It does neither, leaving an agent without enough information to invoke it correctly or interpret its results.

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?

The schema has two optional parameters (a generic 'query' object and a 'params' object) with 0% description coverage, and the description says nothing about their purpose or expected contents. With low coverage and nested objects, the description should compensate but provides no parameter semantics at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the endpoint path and title ('GET /api/support/tickets/stats') without a plain-language explanation of what the tool does. It does not distinguish this stats endpoint from sibling tools like get_support_tickets or get_support_feedback_stats beyond the URL.

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 use this tool versus alternatives, no prerequisites, and no context about what the returned statistics cover. The only meta hint is that describe_operation provides native request schemas, which is about another tool, not usage guidance for this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tags_c8468dd084b7a8712f9da8e4tags: GET /api/tagsD
Read-onlyIdempotent
Inspect

GET /api/tags. GET /api/tags. Operation ID: c8468dd084b7a8712f9da8e4; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description adds nothing behavioral (no pagination, filtering semantics, or response shape), and merely duplicates the endpoint line.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, which is pure waste, and the Operation ID fragment is not useful to an agent selecting a tool. The one genuinely useful sentence (describe_operation pointer) is present but not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with zero parameter documentation, nested objects, no output schema, and no behavioral notes, the description is inadequate. It conveys nothing an agent needs beyond what the name and annotations already tell it.

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 (query, params) with nested objects, and the description gives no field-level meaning. The pointer to describe_operation is the only relief, but it does not describe the parameters itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('GET /api/tags') twice without adding a meaningful verb+resource explanation beyond the literal HTTP method. An agent learns only that some tags resource is fetched, not what a 'tag' is in this system or how this differs from sibling get_tags_suggestions or get_contracts_tags_search.

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 or when-not-to-use guidance; it never names an alternative sibling such as get_tags_suggestions. The only actionable pointer is 'describe_operation provides native request schemas', which is a fallback instruction rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tags_suggestions_7572d46f2ea8fbdc1dce8d93tags: GET /api/tags/suggestionsD
Read-onlyIdempotent
Inspect

GET /api/tags/suggestions. GET /api/tags/suggestions. Operation ID: 7572d46f2ea8fbdc1dce8d93; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no note on auth scope, result limits, or what 'suggestions' are derived from.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short but not concise in the useful sense: the first sentence is duplicated verbatim, and the remaining clause is boilerplate about operation IDs. No informational content is front-loaded because there is no content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With two undocumented nested/opaque parameters, no output schema, and a non-obvious resource ('tags suggestions'), the description should carry real weight but instead repeats the endpoint path. An agent has essentially no basis to construct a correct call from this definition.

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 both parameters (a free-form 'query' object with additionalProperties and an empty 'params' object) are entirely undocumented. The description supplies no parameter meaning at all, leaving the agent unable to know what to pass.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP path and title ('GET /api/tags/suggestions') twice, which is a tautology rather than a purpose statement. It never says what suggestions are returned, for which entity, or how this differs from the sibling get_tags_c8468dd084b7a8712f9da8e4.

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 comparison to alternatives such as get_tags_c8468dd084b7a8712f9da8e4 or get_contracts_tags_search. The only useful pointer is that describe_operation exposes native request schemas, which is a lookup hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tax_bills_455d3f68b1d0f00283ce37bftax: GET /api/tax/billsC
Read-onlyIdempotent
Inspect

GET /api/tax/bills. GET /api/tax/bills. Operation ID: 455d3f68b1d0f00283ce37bf; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no pagination behavior, no filtering semantics, no indication of response shape or size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive fact (the endpoint path) is duplicated verbatim in the first two sentences, wasting half the text. What remains is an operation ID of no use to an agent and a cross-reference, so it is both repetitive and under-informative.

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 a nested, undocumented two-parameter schema, no output schema, and no description of returned tax bill fields, the definition is not sufficient on its own. The delegation to describe_operation partially mitigates this but requires an extra tool call.

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 both parameters are opaque ('query' is an unconstrained free-form bag with additionalProperties: {}, 'params' is an empty object). The description provides no parameter meaning at all, leaving the agent to discover them via describe_operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the endpoint path 'GET /api/tax/bills' twice, which is essentially the name/title echoed back. It does not say what a tax bill is, what the response contains, or how this differs from the many sibling list tools such as get_tax_parcels.

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 versus alternatives. The only usability cue is the pointer to describe_operation for native request schemas, which is a next-step hint rather than when/when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tax_parcels_1b029e9dd9740f7e4ac11377tax: GET /api/tax/parcelsC
Read-onlyIdempotent
Inspect

GET /api/tax/parcels. GET /api/tax/parcels. Operation ID: 1b029e9dd9740f7e4ac11377; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond the describe_operation pointer – no pagination, no filtering semantics, no indication of what the query object accepts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the first sentence is repeated verbatim, so the description wastes its only substantive line. The operation ID is internal plumbing rather than useful content.

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?

A tool with nested free-form objects, zero schema documentation, no output schema, and no annotations covering payload shape requires the description to explain inputs and results. The description instead offloads everything to describe_operation, leaving an agent unable to call it correctly without a second round trip.

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 both parameters (a free-form `query` object with additionalProperties and an empty `params` object) are undocumented. The description does not compensate at all, merely deferring to describe_operation without describing the query syntax an agent would need.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the HTTP method and path ('GET /api/tax/parcels') twice and adds only an operation ID. It never says what a parcel is, what data is returned, or how it differs from siblings like get_tax_bills. This is effectively a tautology of the title.

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 guidance is a pointer to describe_operation for native request schemas. There is no when-to-use, when-not-to-use, or comparison to any of the many sibling read tools (get_tax_bills, get_sites, get_portfolio_matrix, etc.).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_templates_contracts_aa70c6bc9d84346c14a11948templates: GET /api/templates/contractsC
Read-onlyIdempotent
Inspect

GET /api/templates/contracts. GET /api/templates/contracts. Operation ID: aa70c6bc9d84346c14a11948; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description contributes nothing beyond the path and an operation ID; it does not say whether results are paginated, filtered by workspace, or scoped in any way.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but wastes half its length on an exact duplicate of the first sentence. The path is front-loaded, which is good, but the repeated sentence 'GET /api/templates/contracts.' earns nothing.

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, no documented parameters, and a free-form query object, the description should explain at minimum what resource collection is returned and how filtering works. Instead it supplies only a path echo and a redirect to describe_operation, leaving the agent without enough to call this confidently.

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?

Both parameters (a free-form 'query' object and an empty 'params' object) have 0% schema description coverage, and the description does not compensate at all. The single useful pointer is that describe_operation exposes native request schemas, which at least tells an agent where to look for the real parameter contract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a restatement of the HTTP path, duplicated verbatim, and adds no explanation of what a 'contracts template' is or what the call returns. The title already carries the path, so the description is effectively tautological. Only the operation ID differentiates it from nothing an agent couldn't already infer.

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 to use this versus siblings like get_templates_documents, get_form_agreement_templates, or find_contracts. The only routing hint is 'describe_operation provides native request schemas', which points at how to learn the request shape, not at when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_templates_documents_a317937e9b02619bba36c967templates: GET /api/templates/documentsC
Read-onlyIdempotent
Inspect

GET /api/templates/documents. GET /api/templates/documents. Operation ID: a317937e9b02619bba36c967; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered elsewhere. The only added value is the pointer that describe_operation supplies native request schemas, but return shape, pagination, and filtering behavior are entirely undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is repeated twice word-for-word, wasting the most valuable position. The only substantive sentence is the trailing note about describe_operation, which should have been front-loaded.

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, a fully undocumented nested query object, and a large family of similarly named template endpoints, an agent needs at minimum what the endpoint lists and what the query object accepts. Neither is provided; the description only points elsewhere for schemas.

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 two parameters (query, params) are opaque objects with additionalProperties and no properties documented. The description does not compensate at all; it only redirects the agent to describe_operation for the request schema, which is a hint rather than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the HTTP verb and path ("GET /api/templates/documents") duplicated verbatim, which restates the tool name and title rather than explaining what the tool returns. It does imply a read/list of document templates, but nothing distinguishes it from siblings like get_templates_documents_by_id, get_templates_contracts, or get_templates_leases.

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, when-not-to-use, or alternative guidance is given. The presence of get_templates_documents_by_id and related template endpoints means an agent must guess which list endpoint applies; the description offers no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_templates_documents_by_id_b2cb13d74a326d3a7dea6c12templates: GET /api/templates/documents/:idC
Read-onlyIdempotent
Inspect

GET /api/templates/documents/:id. GET /api/templates/documents/:id. Operation ID: b2cb13d74a326d3a7dea6c12; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no mention of what a 'template document' contains, what happens on a missing/invalid id, or any auth or rate constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint string is duplicated verbatim in back-to-back sentences, wasting the entire first half of a very short description. The only substantive content (operation ID, pointer to describe_operation) is boilerplate appended after the redundancy.

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 a nested object parameter, no output schema, and zero schema description coverage, the definition should explain what a template document is and what the response looks like. It provides none of that, leaving the agent unable to know what it will receive.

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 carries the full burden of explaining the two parameters. It only implicitly reveals that 'id' is a path identifier; the 'query' object parameter is never mentioned, and no format, example, or constraint for 'id' is given.

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 restates the raw HTTP route 'GET /api/templates/documents/:id', from which an agent can infer it fetches a single template document by ID. However, it never says this in natural language, and it does not explicitly distinguish itself from the sibling 'get_templates_documents_a317937e9b02619bba36c967' (the collection listing) beyond the ':id' path segment.

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 indication of when to use this versus the sibling templates tools or the generic 'execute_read'. The only guidance-like text, 'describe_operation provides native request schemas', points at another tool for schema lookup, which is meta-information rather than usage criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_templates_leases_b108ecab46385e64abd9463ctemplates: GET /api/templates/leasesC
Read-onlyIdempotent
Inspect

GET /api/templates/leases. GET /api/templates/leases. Operation ID: b108ecab46385e64abd9463c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that - no pagination, filtering, or result-shape context - except the generic describe_operation pointer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short, but the opening sentence is duplicated verbatim, which is pure waste, and there is no front-loaded statement of purpose beyond the route. Brevity here comes from under-specification rather than tight writing.

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 zero schema description coverage, an opaque nested 'query' object, and no output schema, the description should carry the burden of explaining accepted filters and return content. It only redirects to describe_operation, leaving the agent unable to call the tool correctly without a second lookup.

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%: 'query' and 'params' are untyped pass-through objects with no property documentation. The description compensates only by deferring to describe_operation for native request schemas, which is a useful escape hatch but conveys no meaning about individual parameters itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is just the HTTP route repeated twice; 'GET /api/templates/leases' restates the name and title without saying what a lease template is, what it contains, or how it differs from siblings such as get_templates_contracts or get_lease_summary_templates. An agent learns only that this is a GET on a leases-templates path.

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, when-not-to-use, or alternative is given. The only routing signal is the pointer to describe_operation for native request schemas, which tells the agent how to introspect the endpoint rather than when to pick it over the many sibling template and lease tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_terminations_by_terminationId_76dc6d4218b26aed7e114b45terminations: GET /api/terminations/:terminationIdC
Read-onlyIdempotent
Inspect

GET /api/terminations/:terminationId. GET /api/terminations/:terminationId. Operation ID: 76dc6d4218b26aed7e114b45; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds nothing about what a termination record contains, whether 404s are expected, or any access constraints — it only repeats the endpoint and points at describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same sentence is emitted twice back-to-back, which is pure waste, and the operation ID hash is noise for an agent. There is no front-loaded statement of intent beyond the path itself.

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?

This is a nested-object, 0%-documented-parameter tool with no output schema, so the description needed to explain the parameter shape and response nature. It does neither, leaving only a pointer to describe_operation as a fallback.

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 is the only place parameter meaning could be supplied, and it delivers none. The path template hints at a terminationId, but the schema already marks it required with a length constraint, and the free-form 'query' object is entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the raw HTTP path duplicated verbatim, which is essentially a restatement of the name and title. It does convey that a single termination is fetched by ID, but adds no differentiation from siblings like get_terminations_pending or get_terminations_lease_by_leaseId.

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 to use this tool versus the other termination endpoints or list operations. The only routing hint is that describe_operation holds native request schemas, which is about schema discovery rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_terminations_lease_by_leaseId_f6a837f47c14f0d1b14b0dbbterminations: GET /api/terminations/lease/:leaseIdC
Read-onlyIdempotent
Inspect

GET /api/terminations/lease/:leaseId. GET /api/terminations/lease/:leaseId. Operation ID: f6a837f47c14f0d1b14b0dbb; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds no behavioral context beyond that: nothing about what happens when the lease has no terminations, whether results include terminated/voided records, or pagination behavior. The pointer to describe_operation is a tooling hint, not behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single substantive sentence is duplicated verbatim, wasting the entire first half of a very short description. Brevity is not the problem here — the space is used redundantly rather than front-loading useful information.

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?

No output schema exists, so the description should explain the return shape or at least what a termination record is, and it does not. With two parameters at 0% coverage and an open-ended `query` object, an agent cannot call this confidently without falling back to describe_operation.

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 carries the full burden and fails: leaseId is undocumented beyond the `:leaseId` path placeholder, and the free-form `query` object parameter receives no mention at all — an agent would not know what query capabilities exist. The path template gives marginal signal about leaseId being a required path segment.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name/title verbatim (an HTTP method plus path) with no expansion: 'GET /api/terminations/lease/:leaseId' appears twice and nothing explains what a 'termination' record contains or what the response represents. An agent can infer the resource is 'terminations scoped to a lease' from the path, but this is tautology rather than clarification, and no sibling (e.g. get_terminations_by_terminationId, get_terminations_pending) is differentiated.

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 retrieval versus get_terminations_pending or get_terminations_by_terminationId, both of which are adjacent in the toolset. The only actionable hint is 'describe_operation provides native request schemas', which points to a discovery tool rather than describing conditions for selecting this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_terminations_pending_fcb6592b65c747323156d8ceterminations: GET /api/terminations/pendingC
Read-onlyIdempotent
Inspect

GET /api/terminations/pending. GET /api/terminations/pending. Operation ID: fcb6592b65c747323156d8ce; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond the path and operation ID — no statement about what the pending filter means, whether results are paginated, or what happens with an empty result set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the endpoint URL is duplicated verbatim in consecutive sentences, which is pure waste. The operation ID is included but not front-loaded content that helps an agent decide anything.

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, 0% parameter coverage, and a nested free-form query object, the description would need to explain the pending filter, supported query keys, and the response shape. It supplies none of that, deferring entirely to describe_operation.

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 (a free-form 'query' object and an empty 'params' object), so the description must compensate but does not. Its only relevant aid is pointing to describe_operation for native request schemas, which is a bare delegation rather than parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the endpoint path 'GET /api/terminations/pending' twice, which restates the tool name and title rather than explaining what is returned. It does not distinguish this from sibling tools such as get_terminations_by_terminationId or get_terminations_lease_by_leaseId, so an agent cannot tell what scope of terminations this covers.

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 use this tool versus the two sibling termination endpoints, and no mention of pagination, status filters, or prerequisites. The only navigational hint is that describe_operation holds the native request schema, which is a schema lookup pointer rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_dashboards_5c0d64bbdb897d98b60a2b6cuser-dashboards: GET /api/user-dashboardsD
Read-onlyIdempotent
Inspect

GET /api/user-dashboards. GET /api/user-dashboards. Operation ID: 5c0d64bbdb897d98b60a2b6c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no hint about response shape, scoping, or pagination. It does not contradict the annotations, so no penalty beyond the low value-add.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first sentence is duplicated verbatim and the whole text is boilerplate rather than front-loaded substance. Brevity here reflects under-specification, not conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, 0% parameter description coverage, and a nested free-form query object, the description carries the full burden and delivers none of it. An agent has no way to know what dashboards are returned or what the query object accepts without a separate describe_operation call.

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 schema exposes a generic free-form 'query' object with untyped additionalProperties plus an empty 'params'. The description provides no information about accepted query keys, filters, or formats, leaving the two-parameter surface entirely opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the title ('user-dashboards: GET /api/user-dashboards'), repeated twice. It conveys only the HTTP method and path, nothing about what a user dashboard is or what the call returns. An agent cannot distinguish this from the sibling get_user_dashboards_dynamic_widgets_90e08cce71a18a1630976150 based on this text.

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 actionable guidance is the pointer to describe_operation for native request schemas, which tells the agent where to look for parameters. There is no statement of when to use this tool versus the sibling dashboards/widgets tools, nor any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_dashboards_dynamic_widgets_90e08cce71a18a1630976150user-dashboards: GET /api/user-dashboards/dynamic-widgetsD
Read-onlyIdempotent
Inspect

GET /api/user-dashboards/dynamic-widgets. GET /api/user-dashboards/dynamic-widgets. Operation ID: 90e08cce71a18a1630976150; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered structurally. The description adds nothing beyond that: it does not say what the widgets payload contains, whether results are workspace-scoped or user-scoped, or what the free-form query filters on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the single sentence is duplicated verbatim and the only other clause is a pointer to a different tool. No information is front-loaded because there is essentially no information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an undocumented, open-ended query parameter with no output schema and dozens of near-named dashboard/dashboard-widget siblings, the description leaves the agent with no way to know what this returns or how to call it correctly. The endpoint-path restatement does not fill any of that gap.

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?

There are 2 parameters with 0% schema description coverage: a free-form 'query' object with additionalProperties and an empty 'params' object. The description says nothing about what keys the query accepts or how they affect results, so an agent has no basis for populating them beyond guessing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw endpoint path twice ('GET /api/user-dashboards/dynamic-widgets'), which restates the name and title rather than explaining what data is returned. An agent learns that it is a GET on dynamic widgets, but nothing about what a 'dynamic widget' is or how it differs from the sibling get_dashboard_widgets or get_user_dashboards.

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 actionable sentence is that 'describe_operation provides native request schemas', which points to a helper but not to when this tool should be chosen over get_dashboard_widgets, get_user_dashboards, or the dashboard_* metric tools. No conditions, prerequisites, 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.

get_users_65504d96f6ea97284441572cusers: GET /api/usersC
Read-onlyIdempotent
Inspect

GET /api/users. GET /api/users. Operation ID: 65504d96f6ea97284441572c; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data and the description adds nothing behavioral. It does not mention pagination, filtering defaults, result caps, or what the returned user objects include.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but wastes half its length on a duplicated sentence ('GET /api/users. GET /api/users.') and a raw operation ID hash, then leads with the least informative content. Nothing is front-loaded usefully.

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, 0% parameter coverage, and free-form nested objects in the schema, the description would need to explain result shape and query semantics but does neither. The describe_operation referral is the sole piece of compensating context for an otherwise undocumented list endpoint.

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 both top-level parameters ('query' and 'params') are opaque pass-through objects with no property documentation. The description offers no meaning for either — only the indirect pointer to describe_operation, which does not explain how query filters map to the API.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title verbatim ('GET /api/users'), which is effectively a tautology for a hashed tool name. It conveys only the HTTP method and path, not what a 'user' record contains or whether this lists all users versus a filtered subset, so an agent cannot distinguish it from get_users_by_id or get_users_by_userId_permissions on 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only actionable guidance is the pointer to describe_operation for native request schemas, which is a workflow hint rather than a when-to-use rule. There is no statement of when this list endpoint is preferred over get_users_by_id, get_users_by_userId_permissions, or the other user-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_users_by_id_dec15f2f51ef18c7781793fdusers: GET /api/users/:idC
Read-onlyIdempotent
Inspect

GET /api/users/:id. GET /api/users/:id. Operation ID: dec15f2f51ef18c7781793fd; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds one genuinely useful behavioral note—that native request schemas live behind describe_operation—but discloses nothing about error behavior, not-found handling, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short, but a full sentence is wasted on verbatim duplication of the path, and the remaining sentence is a generic pointer. Nothing is front-loaded as a human-readable purpose statement.

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 lookup-by-ID endpoint with a nested 'params' object, an untyped free-form 'query' parameter, no output schema, and 0% schema description coverage, the description is not complete enough to call the tool confidently—the agent knows neither the ID format nor what the query object is for.

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%, so the description carries the full burden here, yet it says nothing about the required 'id' path parameter (format, expected values) or the free-form 'query' object. The ':id' fragment in the raw path is the only trace of parameter meaning, which is far below what a 0%-coverage schema requires.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool title verbatim (the raw path 'GET /api/users/:id' appears twice) rather than describing in plain language what it returns—presumably a single user record. It does not distinguish this tool from the sibling list endpoint get_users_65504d96f6ea97284441572c or get_users_by_userId_permissions, so an agent must infer the difference from the name alone.

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 actionable guidance is a pointer to describe_operation for request schemas, which is a schema-lookup hint rather than a when/when-not rule. There is no statement about preferring this endpoint over the list endpoint when a single user 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_users_by_userId_permissions_1bee5b6f621ffa97086e0586users: GET /api/users/:userId/permissionsC
Read-onlyIdempotent
Inspect

GET /api/users/:userId/permissions. GET /api/users/:userId/permissions. Operation ID: 1bee5b6f621ffa97086e0586; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no note on authorization requirements for reading another user's permissions, no pagination or response-shape context, and the duplicated sentence carries no behavioral information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, but the first sentence is duplicated verbatim, which is pure waste, and the only substantive content (the describe_operation pointer) is buried at the end rather than front-loaded.

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, nested query object, and a required path parameter, the description should convey what is returned and how to target the right user. It conveys neither, leaving an agent to fall back on describe_operation or guesswork before the call can be made 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% for two parameters, including a nested free-form 'query' object and a required 'userId' with only length constraints. The description explains neither parameter — it doesn't say what userId identifies (internal ID vs email) or what the untyped 'query' object accepts, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the endpoint path repeated twice: 'GET /api/users/:userId/permissions.' It names a resource and verb but only by restating the tool name/title, adding no explanation of what 'permissions' covers (role permissions? resource grants? inherited?) or how it differs from siblings like get_users_by_id or get_roles_by_id.

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 to use this tool versus get_users_by_id, get_roles_by_id, or get_user_dashboards. The only routing hint is the trailing note that 'describe_operation provides native request schemas', which is about schema discovery, not usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_validate_lease_by_id_dde44a475ec215cb2b7e3cc6validate: GET /api/validate/lease/:idC
Read-onlyIdempotent
Inspect

GET /api/validate/lease/:id. GET /api/validate/lease/:id. Operation ID: dde44a475ec215cb2b7e3cc6; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is known. The description adds nothing beyond that — no note on what validation result is produced, whether a failed validation throws or returns a payload, or what the :id identifies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same path sentence is duplicated verbatim, and the operation ID hash occupies space without telling the agent anything. Structure is front-loaded but the content is filler rather than specification.

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 nested-parameter read tool with no output schema and 0% schema documentation, the description should at minimum identify the resource being validated and the ID's domain. Neither is present, leaving the agent reliant on describe_operation for anything usable.

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 (nested params.id plus a free-form query object). The description does not explain what 'id' refers to (lease ID? validation run?) or what query options exist; the bare pointer to describe_operation is only a marginal assist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the HTTP path twice and adds an opaque operation ID, never explaining what 'validate lease' actually returns or checks. An agent learns only that this is a GET on /api/validate/lease/:id, which is already encoded in the tool name and title.

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 to use this tool versus the many lease-related siblings (get_leases_by_id_*, get_lease_determination_by_leaseId_*, get_validate_period_by_id_*). The only redirection is to describe_operation for request schemas, which is a schema lookup, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_validate_period_by_id_cb16b2fdd67bbfe652145006validate: GET /api/validate/period/:idC
Read-onlyIdempotent
Inspect

GET /api/validate/period/:id. GET /api/validate/period/:id. Operation ID: cb16b2fdd67bbfe652145006; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only a pointer to describe_operation for schemas; it says nothing about what a 'validate period' contains, error behavior for bad IDs, or auth needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same endpoint sentence appears twice back-to-back, which is pure waste, and the operation ID hash adds no decision-relevant information for an agent. There is no front-loaded statement of what the tool returns or does.

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 two parameters (one nested-object query bag), no output schema, and zero schema descriptions, the description needed to carry real weight and instead offers only a REST path and a pointer to describe_operation. An agent would be guessing about the response shape and the meaning of `query`.

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 two parameters (required `id` and optional `query`), so the description has to compensate and does not. The `describe_operation` pointer is a faint mitigation, but neither `id`'s format/constraints nor `query`'s free-form purpose is explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool title verbatim twice ('GET /api/validate/period/:id') rather than explaining in plain language what validation artifact is retrieved. An agent can infer it looks up a validation period by ID, but this is essentially the name repeated, not a stated purpose.

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 guidance is that 'describe_operation provides native request schemas', which points to a sibling for schema lookup but says nothing about when to call this tool versus alternatives like validate lease or describe_operation. No exclusions, no preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versions_by_id_6769fd4c78e8f4baf136b470versions: GET /api/versions/:idC
Read-onlyIdempotent
Inspect

GET /api/versions/:id. GET /api/versions/:id. Operation ID: 6769fd4c78e8f4baf136b470; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing about what a 'version' is, whether the response is a single record or a list, or what happens with the optional query object.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Brevity here is under-specification, not efficiency: the route sentence is repeated twice word-for-word, which is pure waste, and the only substantive content (the describe_operation pointer) is buried at the end.

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?

There is no output schema and the input schema is undocumented, so the description must carry the burden of explaining the resource and its parameters. It does neither, leaving an agent unable to tell what a 'version' entity contains or how to shape the query object.

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, including a nested 'params.id' and a free-form 'query' object with additionalProperties. The route string hints that :id is a path identifier, but neither parameter's format, allowed filters, nor the distinction between query and params is explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route 'GET /api/versions/:id', which duplicates the title verbatim (twice) and adds no verb+resource framing beyond 'fetch a version'. It gives no basis for distinguishing this from the sibling get_versions_c8d99d92c7553ccb8090bbc1 or get_versions_compare_by_id1_by_id2_a3047b60a11595774cbf33ba.

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 guidance is a generic pointer that 'describe_operation provides native request schemas', which applies to hundreds of siblings and is not a when-to-use rule. No condition is given for choosing this tool over get_versions or get_versions_compare.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versions_c8d99d92c7553ccb8090bbc1versions: GET /api/versionsD
Read-onlyIdempotent
Inspect

GET /api/versions. GET /api/versions. Operation ID: c8d99d92c7553ccb8090bbc1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no mention of pagination, filtering, or what a versions listing contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, but only because it is under-specified; the text repeats 'GET /api/versions' verbatim twice, which is pure waste, and nothing is front-loaded beyond the endpoint path.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a free-form 'query' object, 0% parameter documentation, and no output schema, the description provides no usable context. An agent cannot know what this endpoint returns or how to shape the query object from this definition.

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?

Two parameters (query, params) with 0% schema description coverage and no information in the description. The agent has no idea what the open-ended 'query' object accepts, and the description does nothing to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the tool name echoed back: 'GET /api/versions' twice, plus the operation ID. It restates the HTTP path without stating what the tool actually returns or how it differs from siblings such as get_versions_by_id or get_versions_compare.

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 actionable line points the agent to describe_operation for native request schemas, which is a schema hint rather than when-to-use guidance. There is no distinction from get_versions_by_id or get_versions_compare_by_id1_by_id2, which are the obvious alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versions_compare_by_id1_by_id2_a3047b60a11595774cbf33baversions: GET /api/versions/compare/:id1/:id2D
Read-onlyIdempotent
Inspect

GET /api/versions/compare/:id1/:id2. GET /api/versions/compare/:id1/:id2. Operation ID: a3047b60a11595774cbf33ba; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds only the pointer that describe_operation provides native request schemas; it says nothing about what a comparison yields (diff structure, missing-ID behavior, response shape).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the same route string is duplicated verbatim, wasting the only two sentences available. The useful hint about describe_operation is buried after the repetition rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object, two-param comparison endpoint with no output schema and no annotation-level detail about results, the description is essentially empty. An agent cannot determine what a comparison returns or how the IDs relate without falling back to describe_operation.

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% for the two required params id1 and id2. The description merely echoes the path placeholders without clarifying what each ID refers to (version IDs? entity IDs?) or how ordering affects the comparison, so it 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains only the raw route 'GET /api/versions/compare/:id1/:id2' repeated twice, which restates the name/title rather than explaining what comparing two versions actually returns or accomplishes. An agent can infer a comparative read of two version IDs, but there is no stated resource semantics or differentiation from siblings like get_versions_by_id or get_versions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 get_versions_by_id for single-version retrieval. The only pointer is to describe_operation for schemas, which is not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_view_layouts_8ac222eafe9578f80ef55700view-layouts: GET /api/view-layoutsD
Read-onlyIdempotent
Inspect

GET /api/view-layouts. GET /api/view-layouts. Operation ID: 8ac222eafe9578f80ef55700; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety behavior is covered without description help. Beyond that the description discloses nothing — no mention of whether results are paginated, workspace-scoped, or how large the collection may be.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are an exact duplicate that conveys zero incremental information. The only substantive content — the describe_operation pointer — is buried at the end rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list endpoint with nested-object parameters, no output schema, and 0% schema coverage, an agent needs at least what resource is returned and how to filter or page it. The description provides none of that and only delegates to another tool, so it is insufficient to call this tool correctly without further exploration.

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% for the two parameters (a free-form `query` object and an empty `params` object), and the description supplies no information about what those parameters accept or how to filter view layouts. The description's only parameter-related sentence just redirects to describe_operation, leaving semantics entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description merely restates the title and HTTP path ("GET /api/view-layouts. GET /api/view-layouts."), so the only clue to purpose is the resource name embedded in the URL. It gives no indication of what a view layout is, what it contains, or how it differs from siblings such as get_view_layouts_by_module_by_viewType_4f82e2efbf5b2909263e30bf.

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 guidance is a pointer that "describe_operation provides native request schemas," which tells the agent how to inspect the tool but not when to use it. There is no mention of when to prefer this listing over the module/viewType-scoped siblings, nor any preconditions or filtering context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_view_layouts_by_module_by_viewType_4f82e2efbf5b2909263e30bfview-layouts: GET /api/view-layouts/:module/:viewTypeC
Read-onlyIdempotent
Inspect

GET /api/view-layouts/:module/:viewType. GET /api/view-layouts/:module/:viewType. Operation ID: 4f82e2efbf5b2909263e30bf; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no indication of what the response contains, whether it 404s for unknown modules, or any auth/rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The endpoint path is stated twice verbatim, which is pure repetition rather than useful content, and the remaining sentence is a generic pointer. Front-loading exists but the redundancy wastes the only available space.

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 nested-parameter, zero-coverage, no-output-schema tool, the description should explain the module/viewType semantics and expected return shape. It does neither, leaving an agent unable to call it with confidence.

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 both parameters (module, viewType) are undocumented in the schema. The description only mirrors them via the path template without explaining valid values, format, or casing, so it 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a verb (GET) and a resource path (view-layouts scoped by module and viewType), so the basic operation is inferable. However, it never explains what a 'view layout' is or how this differs from the near-identical sibling get_view_layouts_by_module_by_viewType__7b415c2501587fbf6a30136b, leaving purpose only vaguely conveyed.

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 guidance is 'describe_operation provides native request schemas,' which is about schema discovery, not when to use this tool versus alternatives. There is no statement of prerequisites, when-not-to-use, or routing to the near-duplicate sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_view_layouts_by_module_by_viewType__7b415c2501587fbf6a30136bview-layouts: GET /api/view-layouts/:module/:viewType/:detailTabD
Read-onlyIdempotent
Inspect

GET /api/view-layouts/:module/:viewType/:detailTab. GET /api/view-layouts/:module/:viewType/:detailTab. Operation ID: 7b415c2501587fbf6a30136b; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing about response shape, error behavior for invalid module/viewType values, or caching — all of which would be valuable for a lookup-by-path operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is duplicated verbatim, wasting the front-loaded position. What remains is an operation ID and a pointer to another tool, not information about this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 0%-coverage nested-parameter schema, no output schema, and no annotations-driven detail leave the agent with nothing to infer parameter meaning from. The description should carry the full burden here and does not.

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 explains none of the three required path parameters. An agent gets no idea whether 'module' is an entity name, a route slug, or an ID, nor what valid viewType/detailTab values look like.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the endpoint path twice, which is a restatement of the tool name/title rather than an explanation of what the operation returns. It never says what a 'view layout' is or what the module/viewType/detailTab triple selects. No differentiation from the near-identical sibling get_view_layouts_by_module_by_viewType_4f82e2efbf5b2909263e30bf.

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 to call this versus get_view_layouts or the sibling variant with a different hash. The only routing hint is a passing mention that describe_operation provides native request schemas, which is about discovery rather than usage conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_webhooks_incoming_5f8205df3c863293cfa81663webhooks: GET /api/webhooks/incomingD
Read-onlyIdempotent
Inspect

GET /api/webhooks/incoming. GET /api/webhooks/incoming. Operation ID: 5f8205df3c863293cfa81663; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so safety is covered by structured fields. The description adds nothing beyond the path and the describe_operation pointer (no pagination, filtering, or response shape), so it does not earn credit for behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short but wasteful: the first sentence is duplicated verbatim, and the remaining content is an operation ID and a redirect note rather than front-loaded meaning. No sentence earns its place.

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?

No output schema exists and the parameter schema is essentially free-form with no documented keys, so the description should explain what filtering is possible and roughly what the endpoint returns. It only points at describe_operation, leaving the agent to make a second call to understand even the basics.

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?

There are 2 parameters (query and params) with 0% schema description coverage, and the description mentions neither, not even to say that query accepts arbitrary filter keys. It fails to compensate for the complete documentation gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the raw endpoint string 'GET /api/webhooks/incoming' twice, which merely restates the tool name and title. It gives no verb-level explanation of what an agent gets back (a list of incoming webhook configurations?) or how it differs from the sibling get_webhooks_outgoing_ec27882af290f545aaaabd1e.

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 guidance is the pointer that 'describe_operation provides native request schemas,' which is a hint about schema discovery rather than when to call this tool versus describe_operation, execute_read, or the outgoing-webhooks sibling. No when/when-not conditions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_webhooks_outgoing_by_id_deliveries_1495ffb56969c16d8de33622webhooks: GET /api/webhooks/outgoing/:id/deliveriesD
Read-onlyIdempotent
Inspect

GET /api/webhooks/outgoing/:id/deliveries. GET /api/webhooks/outgoing/:id/deliveries. Operation ID: 1495ffb56969c16d8de33622; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing behavioral — no note on pagination, retention window, or volume of deliveries — and merely forwards the agent to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are an identical duplication of the same path string, so half the text is pure waste. The remaining operation-ID line is machine boilerplate rather than front-loaded useful information.

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 list-shaped read with a nested 'query' object, no output schema and zero parameter documentation, the description should say what a delivery record represents and how results are paged. None of that is present, so an agent cannot predict the response or shape the query correctly.

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% for two parameters, so the description must compensate and does not. It never explains that 'params.id' is the outgoing webhook identifier or what the free-form 'query' object supports (filters, paging, sorting), leaving both parameters undocumented everywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the raw endpoint path verbatim, which is the same information already in the name and title. It does not explain that the result is a list of delivery attempts/records for a specific outgoing webhook, so an agent learns nothing about the resource beyond HTTP verb and route.

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 to use this versus siblings such as get_webhooks_outgoing_ec27882af290f545aaaabd1e or get_webhooks_outgoing_by_id_secret_dd7a5ad3dfdb5d9eccb38e97. The only routing hint is a pointer to describe_operation for request schemas, which is a schema-retrieval tip rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_webhooks_outgoing_by_id_secret_dd7a5ad3dfdb5d9eccb38e97webhooks: GET /api/webhooks/outgoing/:id/secretC
Read-onlyIdempotent
Inspect

GET /api/webhooks/outgoing/:id/secret. GET /api/webhooks/outgoing/:id/secret. Operation ID: dd7a5ad3dfdb5d9eccb38e97; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, this endpoint exposes a credential (a webhook signing secret), and the description says nothing about sensitivity, permission requirements, or rotation/caching implications — context that matters far more here than for an ordinary read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single meaningful sentence is duplicated verbatim, so the description is simultaneously redundant and under-specified. The operation-ID sentence is boilerplate that conveys nothing about behavior.

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 covering return content, the description should at minimum state that the response contains the secret value and its format. For a security-sensitive retrieval endpoint with 0% parameter documentation, the definition leaves too much for the agent to infer.

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% with two parameters (query and params.id), and the description adds no meaning to either. It never clarifies that 'id' is the outgoing webhook identifier, nor what the free-form 'query' object is for, so an agent must guess from the schema structure alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the endpoint path 'GET /api/webhooks/outgoing/:id/secret' twice, which restates the title and name rather than explaining in plain language that it fetches the signing secret for a specific outgoing webhook. An agent can infer the resource from the path, but there is no verb-plus-resource statement of intent and no differentiation from siblings like get_webhooks_outgoing_ec27882af290f545aaaabd1e.

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 indication of when to call this tool versus the sibling outgoing-webhook endpoints or the deliveries endpoint. The only forward-looking sentence points to describe_operation for native request schemas, which is a schema-discovery hint, not usage guidance or an exclusion rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_webhooks_outgoing_ec27882af290f545aaaabd1ewebhooks: GET /api/webhooks/outgoingC
Read-onlyIdempotent
Inspect

GET /api/webhooks/outgoing. GET /api/webhooks/outgoing. Operation ID: ec27882af290f545aaaabd1e; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description adds nothing beyond structured data: no return shape, no pagination behavior, no filtering semantics for the query parameter — just a duplicated route and an operation ID.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The route string is repeated verbatim in consecutive sentences, which is pure waste. The one genuinely informative clause (describe_operation pointer) is buried at the end after the duplication.

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, 0% parameter coverage, and a nested free-form query object, the description should carry substantial weight. It instead supplies only an operation ID and a redirect to describe_operation, leaving an agent unable to infer what the endpoint returns or how to filter.

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 two parameters (query, params) are opaque, with nested objects allowed in 'query'. The description compensates only by redirecting to describe_operation; it gives no meaning, format, or examples for what belongs in query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the HTTP route (twice) — 'GET /api/webhooks/outgoing' — which is effectively a tautology of the name and title. It never says in plain language that it lists outgoing webhook subscriptions, nor does it distinguish itself from siblings like get_webhooks_outgoing_by_id_secret or get_webhooks_incoming.

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 a single useful pointer — 'describe_operation provides native request schemas' — which tells the agent where to get parameter detail, but there is no guidance on when to use this tool versus the outgoing-webhook-by-id or incoming-webhook siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_orders_9d887222f29cdc511762bdedwork-orders: GET /api/work-ordersD
Read-onlyIdempotent
Inspect

GET /api/work-orders. GET /api/work-orders. Operation ID: 9d887222f29cdc511762bded; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing about pagination, default result limits, or filtering behavior — the useful behavioral facts for a list endpoint — beyond a pointer to describe_operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the first two sentences are verbatim duplicates and the operation ID is noise to the agent. The one substantive clause (the describe_operation pointer) is buried at the end.

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?

No output schema exists, so the description should describe the return shape and filtering, and it does neither. With a nested free-form query object and an undocumented params object, the definition is not sufficient to invoke the tool correctly without first calling describe_operation.

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 two parameters are untyped opaque objects: a free-form `query` (additionalProperties: {}) and an empty `params` object. The description says nothing about what belongs in `query` (filters, pagination fields) or why `params` exists, so the agent has no way to construct a meaningful request without a separate call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only repeats the HTTP method and path ("GET /api/work-orders") plus an opaque operation ID. It conveys the resource family but is essentially a restatement of the name/title, with no statement of what the call returns or what scope of work orders it covers.

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 actionable hint is that "describe_operation provides native request schemas," which points at one sibling for a different purpose. There is no guidance on when to use this list endpoint versus get_work_orders_by_id, get_work_orders_stats_summary, search_operations, or execute_read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_orders_by_id_38f4e80d6976d2cdbc34b3d1work-orders: GET /api/work-orders/:idC
Read-onlyIdempotent
Inspect

GET /api/work-orders/:id. GET /api/work-orders/:id. Operation ID: 38f4e80d6976d2cdbc34b3d1; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond repeating the route and mentioning that describe_operation exposes native schemas, leaving no insight into return shape, errors, or lookup semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded with the route, but the same sentence is duplicated word-for-word, which is pure waste. The remaining content is an operation ID and a pointer to describe_operation rather than useful context.

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-only lookup tool with no output schema, the description should at least clarify the id parameter and the return value. Instead it leans entirely on annotations and an external describe_operation reference, leaving the 0%-covered parameters and response shape unexplained.

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 the required params.id or the optional query object. An agent gets no information about the identifier format, where the id comes from, or what the query parameter accepts, so the description fails to compensate for the undocumented schema.

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 names a concrete verb and resource (GET work-orders by :id), so an agent can infer it retrieves a single work order. However, the sentence is just the raw HTTP route repeated verbatim twice, with no plain-language statement of what a work order record contains or why one would fetch it. It also does not distinguish itself from the sibling list tool get_work_orders.

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 use this tool versus get_work_orders (list) or get_work_orders_stats_summary. The only routing hint is a pointer to describe_operation for request schemas, which is about schema discovery, not about when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_orders_stats_summary_b88adbe88caa2e15354bdaaawork-orders: GET /api/work-orders/stats/summaryD
Read-onlyIdempotent
Inspect

GET /api/work-orders/stats/summary. GET /api/work-orders/stats/summary. Operation ID: b88adbe88caa2e15354bdaaa; describe_operation provides native request schemas.

NameRequiredDescriptionDefault
queryNo
paramsNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no mention of what the summary aggregates, time-window behavior, pagination, or result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The same path string is duplicated back-to-back, which is pure waste. The remaining content (operation ID, describe_operation pointer) is boilerplate that is not front-loaded with any useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object tool with zero parameter documentation and no output schema, the description supplies neither the meaning of the query params nor what the stats summary contains. An agent cannot call this correctly without first calling describe_operation.

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%: 'query' is an unconstrained additionalProperties object and 'params' is an empty object, so the schema explains nothing. The description does not compensate at all, only deferring to describe_operation for native request schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a verbatim restatement of the HTTP path in the title, repeated twice. An agent can infer it returns a work-orders stats summary, but nothing says which statistics or how they differ from siblings like get_work_orders_9d887222f29cdc511762bded or get_inventory_stats.

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 statement of when to use this versus list/detail work-order tools or other stats endpoints. The only directional hint is 'describe_operation provides native request schemas', which is a discovery pointer rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_write_statusGet Write StatusA
Read-onlyIdempotent
Inspect

Check your credential-bound write admission without executing or retrying it. Use the admission UUID from a confirmationToken or execute_write result. No raw inputs or approval secrets are returned.

NameRequiredDescriptionDefault
admissionIdYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description still adds real value by stating it will not execute or retry the write and that no raw inputs or approval secrets are returned — an important data-exposure disclosure not captured by any annotation.

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 action and its non-executing nature come first, then the parameter provenance, then the disclosure about return contents. No padding.

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 single-parameter, no-output-schema tool this is nearly sufficient, but it only says what is not returned. It never indicates what a status result looks like (e.g., pending/approved/denied states) or whether the agent should poll, which matters for a status-checking 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 0% (only a uuid pattern), so the description must compensate, and it does: it explains the provenance of admissionId (from a confirmationToken or execute_write result), which is the one thing an agent cannot infer from 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 and resource: 'Check your credential-bound write admission', with the qualifier 'without executing or retrying it'. It is clearly a read-only status tool, distinct from the mass of get_* listing siblings, though the unusual term 'write admission' assumes the agent already knows the execute_write flow.

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?

Tells the agent exactly where to source the required input ('the admission UUID from a confirmationToken or execute_write result') and implicitly frames usage as post-write polling. It does not name any alternative tool or state when not to use it, but the context is clear enough to act on.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modulesList ModulesA
Read-onlyIdempotent
Inspect

List organization business modules with available read/write operation counts for this MCP grant. Native user permissions still apply when an operation executes.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds genuine context beyond the annotations: the counts are scoped to 'this MCP grant' and native user permissions still apply at execution time, which matters for an agent reasoning about authorization.

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, no filler, and the core capability is front-loaded before the permission caveat. 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 zero-parameter discovery tool with annotations covering safety and no output schema, the description is nearly complete: it says what is listed and what counts accompany each module. It could mention the return shape or pagination, but the remaining gap is 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?

There are zero parameters, so the baseline is 4. The description does not need to explain any argument semantics, and it correctly adds no pseudo-parameter noise.

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 ('organization business modules'), and adds what is returned (read/write operation counts for this grant). It does not explicitly contrast with siblings like search_operations or describe_operation, 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?

Usage is implied by the name and the term 'modules', but the description never says when an agent should call this instead of search_operations or describe_operation, nor does it state prerequisites or ordering. It is adequate but leaves the routing decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_downloadRead DownloadA
Read-onlyIdempotent
Inspect

Read a temporary export or large JSON response in base64 chunks, bound to this organization, user and credential. Decode and concatenate chunks until complete. Downloads expire and cannot be used after a role/session-version change.

NameRequiredDescriptionDefault
lengthNo
offsetNo
downloadIdYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds real value: base64 chunking, org/user/credential binding, expiry, and invalidation on role or session-version change. It stops short of describing error behavior when a download has expired.

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 what the tool does, then the decoding instruction, then the invalidation caveat. 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 correctly covers the chunked return shape and lifetime constraints. The main gap is the absence of offset/length semantics, which is material for a paging 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 description coverage is 0% for all three parameters (downloadId, offset, length). The description implies chunk iteration ('concatenate chunks until complete') but never explains what offset and length control, their defaults, or the 65536 max, leaving the agent to infer paging semantics from the schema 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 (read a temporary export / large JSON response) plus the mechanism (base64 chunks). It is clearly distinguishable from the many get_* siblings because it reads pre-generated exports rather than querying domain entities.

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 workflow: decode and concatenate chunks until complete, and that downloads expire and are invalidated after role/session-version changes. It gives clear usage context but does not name alternatives or state 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.

review_leaseReview one leaseC
Read-onlyIdempotent
Inspect

Review an existing lease and its saved terms. Supports drill-down from dashboards and authorized editing of the lease identifier. Never infers accounting or payment evidence.

NameRequiredDescriptionDefault
leaseIdYes

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says the tool supports 'authorized editing of the lease identifier,' which implies a mutation capability, while the annotations declare readOnlyHint=true. This is a direct contradiction about whether the tool writes data, so behavioral transparency is critically impaired.

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 short and front-loads the main purpose in the first sentence. The remaining sentences are compact, though the 'authorized editing' statement introduces confusion rather than useful clarity.

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 simple one-parameter read tool, the description covers the basic purpose but leaves key gaps: it does not clarify the lone parameter, does not explain the return shape, and contains an editing claim that conflicts with read-only annotations. Those omissions and the contradiction make it incomplete for reliable invocation.

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?

There is only one parameter, leaseId, and schema description coverage is 0%, so the description must compensate. It mentions 'lease identifier' only in the context of editing, but does not explain the parameter's role, expected format, or required nature.

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: reviewing an existing lease and its saved terms. It is clearer than a tautology, but it does not distinguish this tool from the many sibling lease-detail endpoints, which makes it only partially differentiated.

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 a use case by saying it supports drill-down from dashboards, and it sets a boundary by saying it never infers accounting or payment evidence. However, it names no alternatives and gives no explicit when-to-use or when-not-to-use guidance versus the numerous lease-related sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_operationsSearch OperationsA
Read-onlyIdempotent
Inspect

Search the live organization API catalog by module, method or words. Paginated discovery covers existing app business modules; it is not limited to a static lease CRUD list.

NameRequiredDescriptionDefault
pageNo
methodNo
moduleNo
searchNo
pageSizeNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful context beyond annotations by saying the catalog is live, paginated, and covers existing app business modules rather than a static lease CRUD list.

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 description is two front-loaded sentences with no filler. The first sentence states the action and filters; the second clarifies catalog scope and pagination.

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 five-parameter discovery tool with no output schema and no schema descriptions, the definition gives the high-level scope and pagination behavior but leaves parameter semantics and result shape largely inferred. It is minimally 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 description coverage is 0%, so the description must carry parameter meaning. It maps 'module', 'method', and 'words' to filtering, and 'paginated' implies page/pageSize, but it does not explain page defaults, pageSize limits, or that method is an enum.

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 clear verb and resource: it searches the live organization API catalog, filtered by module, method, or words. It distinguishes itself from a static lease CRUD list, but does not explicitly name relevant siblings such as describe_operation, list_modules, or execute_read.

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 'paginated discovery' implies this is used to browse or discover available API operations, but there is no explicit guidance on when to use it instead of describe_operation, list_modules, or execute_read. The agent must infer the discovery use case from the purpose statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_accounting_dashboardReview journal entriesA
Read-onlyIdempotent
Inspect

Review permission-checked journal entries, status and balance evidence. Filter by lease and status; page through existing entries. Does not post, approve or rewrite accounting.

NameRequiredDescriptionDefault
pageNo
statusNo
leaseIdNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description still earns credit for adding 'permission-checked' (authorization context) and 'page through existing entries' (pagination behavior), which annotations do not express.

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, each carrying distinct information: what is returned, how to filter/paginate, and what is out of scope. The most important constraint (read-only) is front-loaded and reinforced at the end.

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 compensates by naming the payload ('journal entries, status and balance evidence'). For a zero-required-param, read-only listing tool this is nearly sufficient; only the filter value space and page size semantics remain unstated.

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 carry parameter meaning, and it does map to all three params at a high level ('filter by lease and status', 'page through'). But it supplies no value formats - no indication of what status strings are valid or what page size means - leaving gaps the schema does not fill either.

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 ('Review') and resource ('journal entries') plus the evidence surfaced (status, balance). It is clear what the tool does, but it never names or differentiates itself from the nearest siblings like get_journal_entries or get_lease_by_id_journal_entries, 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The final sentence gives explicit exclusions - 'Does not post, approve or rewrite accounting' - which steers the agent away from mutation paths. However, it does not name an alternative tool for those actions or state when to prefer get_journal_entries over this dashboard view.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_portfolio_dashboardReview lease portfolioA
Read-onlyIdempotent
Inspect

Find and review organization leases in a live interactive dashboard. Search identifiers/sites, filter status and paginate. Opens lease drill-down; text and structured results work without UI support.

NameRequiredDescriptionDefault
qNo
pageNo
statusNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, closed-world and non-destructive, so the safety bar is lower. The description adds genuinely non-structural context: that the dashboard is live/interactive, that it opens a lease drill-down, and critically that text and structured results work without UI support — that fallback note matters for an agent deciding whether the call is usable headless. It doesn't cover result size limits or how pagination totals behave.

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 compact sentences with the core purpose front-loaded and no filler. "Opens lease drill-down" is slightly clipped and would benefit from one clarifying clause, but nothing here 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 output schema and three undocumented parameters, the description should say more about what comes back — what fields a lease row contains, whether paging metadata is returned. The "text and structured results" note signals dual output but not its shape, leaving a modest gap for a read tool the agent will call blind.

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 carry the burden, and it does map all three parameters: "search identifiers/sites" → q, "filter status" → status, "paginate" → page. It doesn't disclose the status enum values, the 200-char query cap, or page bounds, but every parameter is at least given a purpose that the bare schema does not provide.

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?

"Find and review organization leases in a live interactive dashboard" gives a concrete verb (find/review) and resource (organization leases) plus a distinct mode (interactive dashboard) that separates it from the raw get_leases family. It stops short of naming which sibling to prefer, so an agent still has to guess against view_accounting_dashboard or get_portfolio_matrix.

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 mention of searching identifiers/sites and filtering by status implies the browse-once-use-case, but there is no explicit when-to-use statement and no named alternative among the large set of lease/dashboard siblings. An agent can infer the intended scenario but is given no routing rule or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_supplemental_rent_dashboardReview supplemental rentB
Read-onlyIdempotent
Inspect

Compare sales forecasts, actual sales, supplemental obligations and posted amounts. Default reporting basis uses the saved organization fiscal calendar (4-4-5, 4-5-4, monthly, etc.); calendar basis uses contractual source periods. Missing evidence is unknown.

NameRequiredDescriptionDefault
pageNo
yearNo
basisNoreporting
leaseIdNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavior: the default reporting basis follows the organization's saved fiscal calendar (4-4-5, 4-5-4, monthly) while calendar basis uses contractual source periods, and that missing evidence renders as 'unknown' rather than a zero. Pagination behavior and result shape are not described, but with annotations plus a strong data-semantics disclosure this is above baseline.

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, front-loaded with the comparison purpose, then basis semantics, then the data-quality caveat. No filler, though 'Missing evidence is unknown' is terse to the point of being slightly cryptic about what renders as 'unknown' in the response.

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 4-param dashboard with no output schema and no annotation detail beyond safety hints, the description covers what is compared and how the two calendar modes work. It leaves gaps on leaseId scoping, year semantics, and pagination, which matter for correct invocation since all parameters are optional.

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 carry all 4 parameters, and it only explains `basis` (partially — it clarifies what each enum value means, which the enum alone does not). The `leaseId` scope, `year`, and `page` are never mentioned, leaving an agent unable to know whether this tool is org-wide or lease-scoped, or that results are paginated.

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 comparison operation and names the concrete data series being compared (sales forecasts, actual sales, supplemental obligations, posted amounts), which is far more than the tautological title 'Review supplemental rent'. However, it never distinguishes itself from siblings such as get_supplemental_rent_portfolio or the many get_leases_by_leaseId_supplemental_rent_* endpoints, so an agent cannot route on the 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains how the two basis modes differ but gives no when-to-use guidance, no exclusions, and no pointer to alternative tools. An agent knows what the basis switch means but not when this dashboard is the correct choice versus the portfolio-level supplemental rent tool.

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. 6 tool updates
    • Addedget_accounting_journal_close_account_nu_22e0c3e263df3751839690f8
    • Addedget_accounting_journal_close_dimension__eaf4ccfadc2e63425b7f3ace
    • Addedget_accounting_journal_close_dimension__fbf666ceb0ede2498b035498
    • Addedget_accounting_journal_close_liability__2d570b1c978b70aceb9c5cad
    • Addedget_accounting_setup_readiness_593e61664353bcbf3f5fa939
    • Addedget_leases_by_leaseId_locations_a33500aa7ab52baeec62bdfa
  2. 2 tool updates
    • Addedget_ai_find_changes_history_253fe0de00eddc8c260b1902
    • Addedget_ai_find_changes_history_by_runId_1124444e3a0f40ff6090965f
  3. 1 tool update
    • Addedget_sites_by_id_entity_assignment_5b31c61ca17ad1e7fd7fdb40
  4. 1 tool update
    • Addedget_accounting_journal_close_aggregatio_415b31bc7851c055a59e616d
  5. 1 tool update
    • Addedget_ai_find_changes_progress_fb6c87594c8171c59a792746
  6. 533 tool updates
    • First observeddescribe_operation
    • First observedexecute_read
    • First observedfind_contracts
    • First observedfind_sites
    • First observedget_account_mappings_5900b624a5f0d38407bcecf4
    • First observedget_account_mappings_by_id_c7854d9762321ad306a73794
    • First observedget_account_mappings_custom_type_refere_1c8b30a74f61c1fea4dbf975
    • First observedget_account_mappings_effective_a95a52002e99b0c2b83ac112
    • First observedget_account_mappings_summary_types_dd9838c1eb9df96da78815d0
    • First observedget_accounting_account_mappings_af326dc504febcc9b80a68a5
    • First observedget_accounting_books_cd2565b64517881a8c685349
    • First observedget_accounting_compliance_settings_ec0e9c9df45c16e75ddd2b8d
    • First observedget_accounting_contracts_by_contractId__0445d72187506a84a6e8d28f
    • First observedget_accounting_contracts_by_contractId__128cfef3799a881d247173a8
    • First observedget_accounting_contracts_by_contractId__422327c0ed8b8a690e7de0f1
    • First observedget_accounting_contracts_by_contractId__6ebf0ad09a2b3215514df5cc
    • First observedget_accounting_contracts_by_contractId__f14f4aae97c368d8c2e01d51
    • First observedget_accounting_financial_dimensions_by__e86bd7bc072a5b5747c5e73e
    • First observedget_accounting_fx_spot_rate_3e012bb36423e976cb923aff
    • First observedget_accounting_integration_connections__10dd6fac6c9b2f27022d6258
    • First observedget_accounting_integration_connections__4bf52f4563055973522763b2
    • First observedget_accounting_integration_connections__e3638ce1ddc1b217df03afb3
    • First observedget_accounting_integration_connections__e9524e4aafd73d0a4c3dd907
    • First observedget_accounting_integration_connections__eaf96e511b30d11e08f34f16
    • First observedget_accounting_integration_connections_151a736c7638a1cc4ef22cce
    • First observedget_accounting_integration_module_field_4d5cadee1442775f9d9fd558
    • First observedget_accounting_integration_module_field_54b26c135c8bbb56776effa3
    • First observedget_accounting_integration_quickbooks_a_45e0426f509169f503f4e957
    • First observedget_accounting_integration_sftp_configs_5d84bc68d4cf493a1d18a481
    • First observedget_accounting_integration_sync_jobs_by_1c69ef915478cdcae3725e91
    • First observedget_accounting_integration_sync_jobs_dc723bca47df10fef58c8b23
    • First observedget_accounting_integration_xero_authori_afd75a94a7a573b8a5931b4e
    • First observedget_accounting_je_templates_bdf0cdb3a5303beee6e96fbd
    • First observedget_accounting_journal_close_batches_5c1099938b1bdfe0bed627d0
    • First observedget_accounting_journal_close_catalog_769af96434519810c165b668
    • First observedget_accounting_journal_close_company_co_302ec776eae89649cb5ba2a0
    • First observedget_accounting_journal_close_company_se_21dcf24837172fbc567b6834
    • First observedget_accounting_journal_close_configurat_efc128a23fda53dd4b11ba3a
    • First observedget_accounting_journal_close_integratio_577cbc92d0bd522c0b490bd8
    • First observedget_accounting_journal_close_profiles_b_529dea391d4b5f57ca4bd203
    • First observedget_accounting_journal_close_profiles_b_9a1da60751bdac3e1433dbf4
    • First observedget_accounting_journal_close_profiles_b_a496f5b15415c25eece9d650
    • First observedget_accounting_journal_close_runs_110a7b0396175f5089714eca
    • First observedget_accounting_journal_close_runs_by_id_196eafa1a664004e4d9dac1c
    • First observedget_accounting_journal_close_runs_by_id_3a80565f14bf3a616376fecc
    • First observedget_accounting_journal_close_runs_by_id_d11e1e1a1567456281385fe8
    • First observedget_accounting_journal_close_runs_by_id_e0335119f49fb4d5ff6f03d7
    • First observedget_accounting_journal_close_setups_by__3b5879515c627497ec60f583
    • First observedget_accounting_journal_close_unassigned_202736bb0b9440bdacf2d42a
    • First observedget_accounting_journal_close_workspace_1c461b17f5dfc3bd94605c19
    • First observedget_accounting_journal_entries_by_id_ap_79572c9fbc9f064d24790753
    • First observedget_accounting_journal_entries_true_up__469a7ce87fb97f43879e6f71
    • First observedget_accounting_leases_by_id_accounting__39f2fa821156166eec377c50
    • First observedget_accounting_leases_by_id_accounting__47a241eb321f7843f834d27d
    • First observedget_accounting_leases_by_id_accounting__c398faeab9310d674601767f
    • First observedget_accounting_leases_by_id_amortizatio_99d2473bf5f3fb3589b7c0a5
    • First observedget_accounting_leases_by_id_classificat_ebade756392ea13ae975fd9a
    • First observedget_accounting_leases_by_id_direct_cost_09107c5fd73b203224088e57
    • First observedget_accounting_leases_by_id_journal_ent_29a7792a0bb0e1883e267082
    • First observedget_accounting_leases_by_id_journal_ent_30923b87c42c5367a6652a84
    • First observedget_accounting_leases_by_id_journal_ent_c70603dd427e9ed89693e12e
    • First observedget_accounting_leases_by_id_journal_ent_d40f358e9723148ede4fb307
    • First observedget_accounting_leases_by_id_liability_s_1681c2cba557d4b4b20966f2
    • First observedget_accounting_leases_by_id_measurement_d232756a048c53a57a01e3d0
    • First observedget_accounting_leases_by_id_payment_sch_6d89b79605a4a7e96dd120dd
    • First observedget_accounting_leases_by_id_sublease_in_7409936d39d3378015903766
    • First observedget_accounting_leases_by_id_sublease_pr_897d0325fc351933c23e4160
    • First observedget_accounting_leases_by_leaseId_classi_323eb234234b046fdd4f5e13
    • First observedget_accounting_leases_by_leaseId_classi_447bed0fb31912ca0289cae1
    • First observedget_activity_entity_by_entityType_by_en_104030e3f8544bd096dec973
    • First observedget_activity_f33beb4acdd4980fd012eb8c
    • First observedget_activity_users_active_6d057ad3e1937c7af1c21037
    • First observedget_addendums_2271fab93d4539362c4ae3b6
    • First observedget_addendums_by_id_4d90a8c062603d050d406968
    • First observedget_ai_extract_progress_by_jobId_d286bbe7ec406ca9898189c2
    • First observedget_ai_extract_result_by_jobId_808c13e6ecc020565ea4aa59
    • First observedget_ai_extract_status_by_jobId_a7d73eadeebbaa39b2e18dad
    • First observedget_ai_field_metadata_by_entityType_by__666a994cbfe1ba4917ced3a8
    • First observedget_ai_find_changes_full_abstract_by_jo_3e9d27c116555b243b94400b
    • First observedget_ai_find_changes_full_abstract_jobs_12df2a1ab00f43bbeccbb1ef
    • First observedget_ai_find_changes_glossary_1e06a4d8ada944e5ec327f05
    • First observedget_ai_import_by_batchId_c7b152d63ea6f9e7e601d629
    • First observedget_analytics_summary_a3ce33201a794777e1a1f0ad
    • First observedget_approvals_by_id_7ba1047b27b1c00dbdfc87f1
    • First observedget_approvals_by_id_actions_d56fcf4f08fe21ef4473a3f5
    • First observedget_approvals_condition_fields_eb47a3b93bb4fc4322747621
    • First observedget_approvals_e70dd9642ffd2dec231cef2d
    • First observedget_approvals_progress_8d1b16dee0d84d8330acedf6
    • First observedget_approvals_stage_templates_324213b14e0d315d18908a0c
    • First observedget_approvals_workflows_2a0387653a690414289f8f19
    • First observedget_approvals_workflows_by_id_b9119347bbee34968bcd76af
    • First observedget_approvals_workflows_match_75c020fe7eb4d0c0da95c30e
    • First observedget_asc842_reconciliation_records_by_re_bd82f94cdee897ddae664a01
    • First observedget_asc842_reconciliation_runs_by_runId_646108e391f59a3eea06c16c
    • First observedget_asc842_reconciliation_runs_by_runId_d0a816fb60007cd9d236b0dd
    • First observedget_asc842_reconciliation_runs_by_runId_fab4996b5ed41c18edd51d07
    • First observedget_asc842_reconciliation_runs_e4d8931aefa70556c813c20d
    • First observedget_asset_groups_2c31ee932fc71edcb66a09c2
    • First observedget_asset_groups_by_id_history_baa8444d4c960eb2b28a3031
    • First observedget_automation_workflows_6f9fdb7ed8887cc5a50d1b06
    • First observedget_automation_workflows_by_id_94bb04fb1d7ddc7760397ae5
    • First observedget_automation_workflows_condition_fiel_b3c98b111f272701b1b62c96
    • First observedget_automation_workflows_instances_9e577d22f7b78a9d70fdac4e
    • First observedget_automation_workflows_instances_by_i_c5e77b47e510db81e9db01af
    • First observedget_billing_available_months_8b21a4f5387adafd837c1b68
    • First observedget_billing_projected_d9edfc4ac0476285683bc57b
    • First observedget_bulk_import_by_id_0a4de81d99c5615ef3f0dff2
    • First observedget_bulk_imports_67c8c30fbddf7862668d55e1
    • First observedget_calendar_events_790f8bec65f62ffcfc3fca07
    • First observedget_calendar_payments_d68efb162f4105f5eb360d05
    • First observedget_cam_annual_budgets_by_id_schedule_12000db23a3aefb237c2ef9c
    • First observedget_cam_annual_budgets_c03116baf9909d96631ab195
    • First observedget_cam_categories_51091e51282bed305fec1db2
    • First observedget_cam_categories_by_id_cap_history_55c452c9651c2cea757ef07c
    • First observedget_cam_clauses_by_clauseId_anchors_fb7448a97a06f09076b68ac3
    • First observedget_cam_clauses_by_id_categories_8ce710a2ffe320a12bfe0d11
    • First observedget_cam_compare_33c65b566fc94152aabbe9ba
    • First observedget_cam_landlord_category_mappings_107777d65eeee8c86bf66be3
    • First observedget_cam_lease_allocations_by_leaseId_cd8dfba6525672b07c9b687a
    • First observedget_cam_leases_by_leaseId_ai_benchmark__a4416f9baa56e846c86d016d
    • First observedget_cam_leases_by_leaseId_ap_expenses_e99ada14a82b10f678df8741
    • First observedget_cam_leases_by_leaseId_clauses_activ_ee5d8afe19fca82e9bdf253f
    • First observedget_cam_leases_by_leaseId_clauses_d2276d195b59f2ecda19a5b9
    • First observedget_cam_leases_by_leaseId_cycle_config_e979d4d2bc3cdad9b8948b3a
    • First observedget_cam_leases_by_leaseId_disputes_ae4ae17bb5682fae05c8feb0
    • First observedget_cam_leases_by_leaseId_notes_199f2a8544fbfa60006061e7
    • First observedget_cam_leases_by_leaseId_overrides_a43776c5a73fe15ff96bdf34
    • First observedget_cam_leases_by_leaseId_rent_credits_86d62af8f88a989bbdbf1b61
    • First observedget_cam_leases_by_leaseId_unified_perio_6b65120a79c7d59dacd917b3
    • First observedget_cam_line_items_by_lineItemId_expens_3df5385f2597d3e606350b4e
    • First observedget_cam_periods_2dd78ed797a3dcb9f48dc89e
    • First observedget_cam_periods_by_periodId_approval_9b5eead1856faf760729e350
    • First observedget_cam_periods_by_periodId_caps_badge_9dc945d078892430348a97bd
    • First observedget_cam_periods_by_periodId_caps_summar_6903344034cfeb196037981b
    • First observedget_cam_periods_by_periodId_f401cdb85f616cfd20f84341
    • First observedget_cam_periods_by_periodId_recalcs_4088984088a23ebdd3d9a526
    • First observedget_cam_periods_by_periodId_statements_34d33c9d5d08b46cc8b2a6fe
    • First observedget_cam_periods_by_periodId_true_up_pre_0e27c3ca87fd482df6d62bd4
    • First observedget_cam_pools_5f28e5cc03dff483853d635d
    • First observedget_cam_recalcs_by_id_f07f1fff7b70a9f914766c46
    • First observedget_cam_reclassifications_e0692d544c3b4c737f530cb7
    • First observedget_cam_statements_by_id_1f07dd5f97f96a438441afa3
    • First observedget_check_request_templates_38069a382fe0c4228a46178c
    • First observedget_check_request_templates_available_f_acbe3060abd9701ff8a3fcc7
    • First observedget_check_request_templates_by_id_f09a6f53c1bf375288b0db7d
    • First observedget_clause_approvals_conditional_rules_cc484bec8d6b2a5d4f07e39c
    • First observedget_clause_approvals_pending_bbd08a98522a45aa6bf026a9
    • First observedget_clause_approvals_rules_c1d80b275d1cbc766980a3cc
    • First observedget_clause_approvals_version_by_version_20c1bd5f11e3e04b847df054
    • First observedget_clause_approvals_version_by_version_ae944e111692d3f11a94c0c4
    • First observedget_clauses_extracted_by_entityType_by__6aa5a8b4e140050cd9fa86da
    • First observedget_clauses_field_mappings_by_entityTyp_1fdbae174a508709252a4da8
    • First observedget_clauses_suggestions_by_entityType_b_fe64f9964fb70e4c77329cd3
    • First observedget_coi_list_ed30d1b2a8b2a77da84e7363
    • First observedget_coi_upload_tokens_0d7ac55036682933bc93824f
    • First observedget_column_preferences_3a64717cfdb86472df10b48d
    • First observedget_comments_f4c37d690dc3849e975c2997
    • First observedget_comments_field_counts_b2747a6ffe0817af7936f782
    • First observedget_comments_mentions_2075b2c997b7a7b4c1313af2
    • First observedget_comments_users_c01766529f8df832dd288354
    • First observedget_compliance_rules_by_id_ff37b086c8015c691d8e6ab4
    • First observedget_compliance_rules_fd2420bbf97b37f576e660d3
    • First observedget_contacts_by_id_associations_9ebd957c5f7b83e931110669
    • First observedget_contacts_by_id_custom_fields_values_d2876ec8074dde6bff01bc7a
    • First observedget_contacts_by_id_dbf36acebdfb38a01cccfd33
    • First observedget_contacts_c8659b8606e842788ba8d109
    • First observedget_contacts_custom_fields_definitions_de5e13b0fd6f646f17f9c72a
    • First observedget_contracts_5151ceaf2866c7dcd09466ef
    • First observedget_contracts_by_contractId_coi_informa_66286e62d8b284210948cf58
    • First observedget_contracts_by_contractId_documents_b_c29ef566cda0732b5952b9ec
    • First observedget_contracts_by_contractId_documents_b_cd73216c02e24e786e583056
    • First observedget_contracts_by_id_audit_logs_d58942e5771264d2b00d3525
    • First observedget_contracts_by_id_cc84e70b4cf1492de2196bc0
    • First observedget_contracts_by_id_custom_fields_defin_0410ef08beed2e3f5f8f53e5
    • First observedget_contracts_by_id_custom_fields_value_acf9e9f03ec0449c6dc64b8d
    • First observedget_contracts_by_id_custom_sections_0e9daa415d5d11c7d4ac5905
    • First observedget_contracts_by_id_documents_9f3f52bceeb73878d5a6296c
    • First observedget_contracts_by_id_documents_ai_priori_6585b064b0d1e36530b1eb90
    • First observedget_contracts_by_id_field_date_relation_54f26d1155de2c6406d73f71
    • First observedget_contracts_by_id_notices_by_noticeId_dca0ea01bb51b8dc2960b4f1
    • First observedget_contracts_by_id_notices_ea65abd7caf52b9727785d1d
    • First observedget_contracts_by_id_review_checklist_d7da2b6d283ef66f6458ce40
    • First observedget_contracts_by_id_summary_pdf_83b2bd1d0bd828cd76581a65
    • First observedget_contracts_critical_date_matrix_c33f2c39f4abb2aab46c282f
    • First observedget_contracts_stats_overview_8793c49b4ae560cb5d6ed77e
    • First observedget_contracts_tags_search_74c5c7910a907887b9d0496b
    • First observedget_counterparties_4b4919172201a6bf5f32236f
    • First observedget_counterparties_by_id_contacts_8f148dd685a9f197918b2440
    • First observedget_counterparties_by_id_da854dfbb88b182703805889
    • First observedget_counterparties_by_id_documents_e6ef3c615f794b7c32ef6a95
    • First observedget_counterparties_by_id_notices_807be386d147707cedb021c2
    • First observedget_counterparties_by_id_notifications_d8d839a79dd25e40608f5f9e
    • First observedget_counterparty_contacts_5ca9d58365bed6484cb3e9c7
    • First observedget_counterparty_contacts_by_id_7f1df78fdc6b8bb3b06273a6
    • First observedget_custom_date_types_be2959a96007df3600e0f0c6
    • First observedget_dashboard_expense_breakdown_ae733676b220e44cd9dda4b3
    • First observedget_dashboard_expense_trends_28974b270197228f23544fbb
    • First observedget_dashboard_lease_expiration_timeline_f00b637c7137488dfcdd21ca
    • First observedget_dashboard_metrics_d2c181f56869afde4e594fde
    • First observedget_dashboard_overdue_incentives_2cedf7736b5989db652690f9
    • First observedget_dashboard_recent_activity_ded354b397b267df9a80a89a
    • First observedget_dashboard_status_breakdown_870f1d393c62c313f039f0a9
    • First observedget_dashboard_upcoming_events_bba7d3251c4e0f8bd5eaac43
    • First observedget_dashboard_widgets_54bfd6c385c8c062c1b8437b
    • First observedget_departments_2202a406028b39999cd39cda
    • First observedget_distribution_lists_bd37f2d3ba38848b5a08e75f
    • First observedget_distribution_lists_by_id_b035f3ae870c873665383ce5
    • First observedget_document_anchors_a89be2b895270f30e5084db4
    • First observedget_document_folders_c52aeac8d6ae3d874a4f0cd9
    • First observedget_economic_data_cpi_annual_change_a9c38f7394e7d2407465a248
    • First observedget_economic_data_cpi_calculate_3c4ebdda89e10bc6a12b0b29
    • First observedget_economic_data_cpi_current_076b8379b4ad2689f81bb764
    • First observedget_economic_data_cpi_history_32348b7987b75c5a0b6dd6f2
    • First observedget_economic_data_cpi_series_96aa55b11717a4b2f6c4e4b8
    • First observedget_economic_data_current_f1f9843f8dbe5c50146b76c7
    • First observedget_economic_data_prime_rate_calculate_e56d7ebf8c2aaf0fe22f050e
    • First observedget_economic_data_prime_rate_current_b418c377f9269c3341d1378c
    • First observedget_economic_data_prime_rate_history_157d5da56740a85c20fe31cd
    • First observedget_entities_2aca933410d787b7517518b5
    • First observedget_entities_by_id_900d051fb333d8cd54c98b38
    • First observedget_expenses_04045e4028a17c7e5c6efb0a
    • First observedget_expenses_by_lease_9358b91726a6513a61e40b98
    • First observedget_expenses_by_site_13670f6cb18e8d6d2206524d
    • First observedget_expenses_contract_expense_dashboard_0c75a41a40c5d4c8295b14dd
    • First observedget_expenses_contract_period_by_contrac_d848302cd6d54380c1bc4c16
    • First observedget_expenses_contract_period_overview_faad0a58ec3f06370e86823a
    • First observedget_expenses_manual_by_id_9cb4508962a89698b662f630
    • First observedget_expenses_period_overview_a6e93448f684c42d690810d3
    • First observedget_expenses_previous_period_by_leaseId_685833814972f3b11595178b
    • First observedget_expenses_summary_c4522d922051601d0556df9f
    • First observedget_expenses_trends_e12a0daf71b786886cf54dcf
    • First observedget_files_bulk_document_import_parent_r_12e9c9e11463ea4ff1184cea
    • First observedget_files_bulk_extract_by_batchId_statu_4a79b0ea7aa731110579bc5a
    • First observedget_files_by_id_ca0c36306681b95abd70b02c
    • First observedget_files_by_id_extract_text_88d897c98eee79b52e2baa2e
    • First observedget_files_by_id_links_d30c1f0d5664388f530c0b4c
    • First observedget_files_by_id_search_text_e2bbe04a5428b67c005061a5
    • First observedget_files_by_id_view_3f7dac8522ec2d5e9331d385
    • First observedget_files_extraction_status_2dd4f102ce4adbc4944065e5
    • First observedget_files_list_4a1f3ca127e35091ff34e669
    • First observedget_form_agreement_templates_57b832b6107ac61603b47191
    • First observedget_form_agreement_templates_available__13bdcd476fcdfd61e648d6bb
    • First observedget_form_agreement_templates_by_id_7efcfbfbda57e99942e9b386
    • First observedget_gl_accounts_4672f2f496fa77a3254a35c3
    • First observedget_gl_accounts_assignments_afa59726055b6684284e44dd
    • First observedget_gl_accounts_by_id_ee71c0a64b4bb092d92306ca
    • First observedget_gl_accounts_charts_62239039ef8bc361f4d98edc
    • First observedget_gl_accounts_types_36f735e3d7159f93cd4d15dd
    • First observedget_global_settings_ai_import_config_fa185b292666cfc696a08d28
    • First observedget_global_settings_currency_config_9444d8555ac4509300808e98
    • First observedget_global_settings_custom_field_defini_eb51ade9b17b3fe6391b2927
    • First observedget_global_settings_fiscal_config_6cbc1e2b9b8780779cc290f0
    • First observedget_global_settings_fiscal_cutovers_by__617d40ebabbf1d77e30896bf
    • First observedget_global_settings_fiscal_cutovers_e4b4db2eecb01959cf4a382d
    • First observedget_global_settings_intercompany_leases_0e0092ea8624facb1fe83019
    • First observedget_global_settings_supported_currencie_5167a094979a045c159370f4
    • First observedget_impairment_tests_2f78a233dea7ff5599ec9f1c
    • First observedget_impairment_tests_by_id_9e093302744712a645885cc7
    • First observedget_impairment_trigger_checklist_by_lea_a11d603640a237dd9fc39150
    • First observedget_impairment_trigger_checklists_886f50ebcc069793ef1e00b4
    • First observedget_import_available_fields_by_module_1c494dbc4eb23da1bd856e87
    • First observedget_import_field_options_by_module_by_f_459be6d64347aea1866b2aef
    • First observedget_import_history_ac8738615e763c9de35998e0
    • First observedget_import_status_by_importId_3d9fe1b1e7661756198cd6b0
    • First observedget_import_template_by_module_56ff23e59d698e42cb615ee1
    • First observedget_insurance_certificates_205a495dc1e780527beb6c4f
    • First observedget_insurance_policies_13cdd081dfe3602d78913602
    • First observedget_integrations_b405361088b53adc4ec4247b
    • First observedget_integrations_by_id_c8c51c1f2cfa913528e78a74
    • First observedget_integrations_by_id_sync_logs_406bcbf1b864ec74715f14e5
    • First observedget_inventory_assignments_e36d538f58d5709621af67a4
    • First observedget_inventory_categories_by_id_e0598995cb1c6db226defd32
    • First observedget_inventory_categories_d943b3459484f2c05b3827a1
    • First observedget_inventory_items_92fa557cde18085a8df40ba7
    • First observedget_inventory_items_by_id_b50de9a5f496dd83c329aa8f
    • First observedget_inventory_locations_1f49f0273528c06b490b7bb7
    • First observedget_inventory_locations_by_id_465b9cf221efc20f4929ad84
    • First observedget_inventory_stats_0a9d09eae5acbcd0593dea61
    • First observedget_inventory_transactions_af69ee64ace72613a1258ac3
    • First observedget_journal_entries_4e2a52706b38f69973605254
    • First observedget_journal_entries_by_id_981714fcb46cbbe9832c6509
    • First observedget_journal_entries_readiness_cf0aa12bd1129665d5092397
    • First observedget_lease_determination_by_leaseId_7c3a36b7647aacec41762d2f
    • First observedget_lease_determination_by_leaseId_snap_2d46b6a22add83eb9bee00a4
    • First observedget_lease_reassessments_869e75f386f3a30488016b42
    • First observedget_lease_summary_templates_04ffdc11f1103cc0220bae13
    • First observedget_lease_summary_templates_by_id_31c0499dc0bb0d7124130cc8
    • First observedget_lease_summary_templates_tenant_logo_1ca275f8012f1af7e07876b1
    • First observedget_leasehold_improvements_9c73090a5e86791b9b1ae00d
    • First observedget_leases_by_id_0c975b3ee292145149f87dad
    • First observedget_leases_by_id_accounting_workbook_va_7c80d0fe18aa002d492655ed
    • First observedget_leases_by_id_audit_flags_fdedafe792f51a452dfe575e
    • First observedget_leases_by_id_audit_logs_8bc4abd67d83c766a42fb881
    • First observedget_leases_by_id_common_control_2866a3004e0dda006428f41b
    • First observedget_leases_by_id_common_control_terms_e135d79d3cec949dda91fa66
    • First observedget_leases_by_id_compliance_checklist_18502f7a2eac16d92abf868d
    • First observedget_leases_by_id_custom_fields_definiti_8dc48ea197dab8b8b657400d
    • First observedget_leases_by_id_custom_fields_values_ec216f2e5b0fb13c8d7420b5
    • First observedget_leases_by_id_custom_sections_b735ccb05f081531cc5d54f7
    • First observedget_leases_by_id_date_relationships_3f7a9d92f645c121903dab0c
    • First observedget_leases_by_id_documents_ai_priority_66c08aa95522a6907e752ed3
    • First observedget_leases_by_id_documents_by_documentI_27c61aad1a54eff9a88847fc
    • First observedget_leases_by_id_documents_fe5db3a4d9cfb76ab99ac616
    • First observedget_leases_by_id_field_changes_6300c04056b471a5a828d43b
    • First observedget_leases_by_id_field_date_relationshi_9cd94ad3b67909d9051fa234
    • First observedget_leases_by_id_notices_by_noticeId_pd_74a08f96a6915b4a6b4d5877
    • First observedget_leases_by_id_notices_e11d3590a621a977b7e8294b
    • First observedget_leases_by_id_option_remeasurement_g_4fd9dd1b5686ac5ccea7aff8
    • First observedget_leases_by_id_options_by_optionId_ac_f023f1f410087f1922832bbe
    • First observedget_leases_by_id_options_by_optionId_sc_6ad2df750266b09bb9226dd3
    • First observedget_leases_by_id_payment_requests_63e69e55363a306051c18702
    • First observedget_leases_by_id_payments_746e3bea7497b0ebecff762e
    • First observedget_leases_by_id_payout_config_4f1de96b464174c163fbfd76
    • First observedget_leases_by_id_rent_collection_review_e4051956f18040ca2039f04a
    • First observedget_leases_by_id_rent_collection_review_f0c8a7dfd749b5fecb44e5c3
    • First observedget_leases_by_id_rent_context_ddb7211e355a9a1aa74dbb30
    • First observedget_leases_by_id_rent_schedules_by_sche_be108413d3eed66a6fa7b16d
    • First observedget_leases_by_id_rent_schedules_pending_43f4ce188ae504c9f15fb515
    • First observedget_leases_by_id_review_checklist_557ae4a24707e555764f49e8
    • First observedget_leases_by_id_summary_pdf_df82d1cad979fbcf76784fdc
    • First observedget_leases_by_id_tracking_suggestions_4b0fddd4e628d9ad57c1d28d
    • First observedget_leases_by_leaseId_accounting_histor_35d90a80d4acb9346b658a7e
    • First observedget_leases_by_leaseId_accounting_histor_36f63bb15511bf11747bd283
    • First observedget_leases_by_leaseId_amendment_manual__84b24667736b7238bbbeb50c
    • First observedget_leases_by_leaseId_amendment_manual__a33db819d67e382aabc57f12
    • First observedget_leases_by_leaseId_amendment_manual__a885bf4162284f3875fe26ea
    • First observedget_leases_by_leaseId_amendments_audit__e872f20a97473af581b2f998
    • First observedget_leases_by_leaseId_coi_information_789dbeb54474a38b1c8f5d7b
    • First observedget_leases_by_leaseId_compliance_8109b0f17d43557bc39a933b
    • First observedget_leases_by_leaseId_documents_by_docu_36dbbdba8b280ddbb69a0c92
    • First observedget_leases_by_leaseId_documents_by_docu_3c2e047d083f349580beb7ee
    • First observedget_leases_by_leaseId_leasehold_improve_0f4adbfcd33d53d098d5d354
    • First observedget_leases_by_leaseId_leasehold_improve_685198e6168a3b9054f8d0ab
    • First observedget_leases_by_leaseId_modifications_2b8f1411a1dd80141aaf093a
    • First observedget_leases_by_leaseId_reassessments_4f3cb6dde3f16a9cb0ae7c7c
    • First observedget_leases_by_leaseId_supplemental_rent_009d4aa744224a06546ae386
    • First observedget_leases_by_leaseId_supplemental_rent_1a6115fbb9df917ffa7c3055
    • First observedget_leases_by_leaseId_supplemental_rent_205c182d110678ce5f82dfbe
    • First observedget_leases_by_leaseId_supplemental_rent_2117dba830e00d75db6cb82d
    • First observedget_leases_by_leaseId_supplemental_rent_23bcb18b6706c597778b1028
    • First observedget_leases_by_leaseId_supplemental_rent_33a6a00a3a6e0828c89b617a
    • First observedget_leases_by_leaseId_supplemental_rent_63d1171a19f5cbdc9747328c
    • First observedget_leases_by_leaseId_supplemental_rent_7d81cec5acdd1e36aaddb57e
    • First observedget_leases_by_leaseId_supplemental_rent_90b4bcd733617c20e4d358fc
    • First observedget_leases_by_leaseId_supplemental_rent_d42d164054b15860d725f5bc
    • First observedget_leases_by_leaseId_supplemental_rent_d9158728860a421e1e574a1d
    • First observedget_leases_by_leaseId_supplemental_rent_f1528c0faba1b163ec3ab9a2
    • First observedget_leases_critical_date_matrix_629543489b3e10419d0bff65
    • First observedget_leases_eeab45c45fa700898de650fe
    • First observedget_leases_stats_overview_82de3f4c87612d02fdf2953c
    • First observedget_leases_tags_search_ff87f1f5bb0b6088c5f00222
    • First observedget_letterheads_977a29a398e4972da9b7746e
    • First observedget_modifications_by_modificationId_d80020ea84cd086e05835296
    • First observedget_modifications_pending_f2012ba79b93c1cf98760596
    • First observedget_negotiation_by_entity_by_id_current_bee00bb26fe3a6337afcc1c5
    • First observedget_negotiation_by_entity_by_id_draft_395d1527c4cfcec1ca869bbf
    • First observedget_negotiation_by_entity_by_id_redline_b35ff5490288ba255be07a82
    • First observedget_negotiation_by_entity_by_id_version_cdfdc4952dc2303db5690a7a
    • First observedget_negotiation_documents_by_documentId_4d65afc7e81f80ab712b1e48
    • First observedget_negotiation_versions_by_id_1ddaf6241135a023a3eaf560
    • First observedget_negotiation_versions_by_id_comments_18b3ddc0ca4011c91bf4a792
    • First observedget_negotiation_versions_by_versionId_c_ab38b02a013e51319e8d8cc1
    • First observedget_negotiation_versions_by_versionId_d_aadb975315bfc2f5d2fe7dc6
    • First observedget_notices_eb8326fe048fba69ff1fd44e
    • First observedget_notices_stats_3d98791057143efe61dc2703
    • First observedget_notification_settings_by_id_369fdd733eb0be3eee617526
    • First observedget_notification_settings_f43b492a9011960665a90046
    • First observedget_notification_settings_preview_59e19ca6c60eef03384ccc16
    • First observedget_notification_settings_templates_561949b9a50c60256c7e03f5
    • First observedget_notifications_3e2fd487df2985adff762e58
    • First observedget_notifications_preferences_756c665a826637fececddbc5
    • First observedget_notifications_rules_270eeb18a51ad050da950989
    • First observedget_notifications_rules_by_id_0f6b05d2d1de477cfe817a56
    • First observedget_notifications_templates_80fca28fc8886c9bd7f588d1
    • First observedget_notifications_templates_applicable_46782f986af11458296529c1
    • First observedget_notifications_templates_by_id_f76ad676f259faea5ef2aa4c
    • First observedget_notifications_unread_count_35034232bb11d0bcbabde05a
    • First observedget_partners_construction_d381c13f069071f1da9310ab
    • First observedget_payment_portal_bank_accounts_698ac28782cefbfcc9eb0efb
    • First observedget_payment_portal_collection_overview_869ea0bab16fded323be0c67
    • First observedget_payment_portal_dashboard_7a1199111060e890568a4f7e
    • First observedget_payment_portal_lessor_leases_1d098a7cc938a6318d23bdee
    • First observedget_payment_portal_payout_configs_33088d2a9f9701efdf217a0b
    • First observedget_payment_portal_stripe_config_d0fab3943a9ddae52b0283ec
    • First observedget_pbc_requests_a993d7f29f56d09cf0cb4347
    • First observedget_pbc_requests_by_id_89ba7f56f66edcfad8e85987
    • First observedget_pbc_requests_summary_ca935ad2ef71c3f97e9b1150
    • First observedget_pending_imports_35de5e1fb42a10d549a1ca45
    • First observedget_pending_imports_by_batchId_9f0bfc5370899fc26d2f936a
    • First observedget_pending_imports_by_batchId_percenta_ba6827ae6a73cce2f8058b64
    • First observedget_pending_imports_by_batchId_rent_tie_31df7213b569e9b8b505c23d
    • First observedget_pending_imports_by_batchId_source_d_c0dcdd5ac7c1931c74929b81
    • First observedget_pending_imports_stats_43ac73c15c95e633f22e7b0d
    • First observedget_portfolio_matrix_38a8614a3c0a69d282e82f75
    • First observedget_portfolio_matrix_rollforward_c5675ebbe70e59d8eb93d1fa
    • First observedget_portfolio_reassessments_materiality_e65ee814a4ade95673dc61a8
    • First observedget_portfolio_reassessments_summary_c94e8d97d175effbf2ce7c58
    • First observedget_portfolio_rollups_entities_f34de4f0c5c4d582c18cdde1
    • First observedget_portfolio_rollups_history_6837fa87254a31aedb92edae
    • First observedget_portfolio_rollups_metrics_525297e10bb0200d0f5de5e8
    • First observedget_portfolio_rollups_snapshots_f31ba5fc9adc696e65383a9c
    • First observedget_premises_types_32cae051c07f706e41896a2a
    • First observedget_profile
    • First observedget_reassessments_by_id_54f727e5a93a0bdde9b57452
    • First observedget_reassessments_by_id_current_schedul_c1f1fd4983e0312dbd12ca5d
    • First observedget_reassessments_by_id_document_types_c11c8bf546dfde1b4cc839ff
    • First observedget_reassessments_by_id_rate_rule_db76e537c2a9e901d37c37b9
    • First observedget_reassessments_pending_543634d03377f7b8399b1d63
    • First observedget_recon_deadlines_d9d260f89cd4da56d069f205
    • First observedget_recon_docs_audit_packages_9a11f08117e5e4b557d495e9
    • First observedget_recon_docs_audit_packages_by_id_2e6746fec4b4bd0c68cff37d
    • First observedget_recon_docs_share_log_01416d644c318f2974432764
    • First observedget_recon_docs_statements_4ed6288266380988f6b29ec4
    • First observedget_recon_docs_statements_by_id_aeb76d55db876da12d8696b9
    • First observedget_recon_docs_templates_audit_package_15e4c233cc9470a4e0f6d0d7
    • First observedget_recon_docs_templates_statement_de18afef4f553fd5ea07e380
    • First observedget_recon_issues_54383fd24a5dec1c0d6f6b13
    • First observedget_recon_issues_by_id_26c60d2e817941cb309cf8f4
    • First observedget_recurring_expenses_512adadc5684c46099999aff
    • First observedget_recurring_expenses_by_id_687f84a78ca8f6fe3f5ef0bd
    • First observedget_redline_analytics_clause_summary_by_948238f0808399b41579f134
    • First observedget_redline_analytics_high_risk_contrac_ec9f69a8b764b8669011de61
    • First observedget_redline_analytics_kpis_7e73a13d0a47ba291d2c64b0
    • First observedget_redline_analytics_risk_dashboard_5e53483b00d90e67e2393e48
    • First observedget_redline_analytics_summary_824a0d4b346323eeca3b6755
    • First observedget_redline_documents_ca4aaa5130e4ffaf082311da
    • First observedget_redline_documents_team_members_4157e2f6dca322e0db46d210
    • First observedget_redline_tasks_38c0a2c5486ea5e45c2d736b
    • First observedget_redline_tasks_by_id_ad59155fcd8217b8e79134f8
    • First observedget_redline_tasks_by_id_syncs_99ebe9eed821b48103ae518e
    • First observedget_redline_tasks_dashboard_dc7899e7196906a4b530835f
    • First observedget_redline_tasks_stats_731dccfb07fcdd81aaf63695
    • First observedget_rent_adjustment_import_template_5db55a3eaff69b83deca5971
    • First observedget_rent_import_template_2858e5529ca8c543cb8614f6
    • First observedget_rent_import_workbook_by_batchId_4fb06fffa8710480975f88e9
    • First observedget_review_entries_194b208e9bc653ac9fb90408
    • First observedget_review_readiness_e9d56e727840ded9461c8831
    • First observedget_review_runs_by_id_3a1c2f7126c2e556c467d4a7
    • First observedget_review_runs_by_id_stream_524da3a426ee36e48bc45880
    • First observedget_roles_by_id_a758bcaef7f1963fbc9c0e92
    • First observedget_roles_eb3c8bbe4bc9aed660477bd6
    • First observedget_saved_views_b7d7e18257f528e9529bfc7e
    • First observedget_saved_views_by_id_42f92899fa6a137cb6469a18
    • First observedget_search_global_3c0d5735c02153241c961659
    • First observedget_settings_auditor_access_1d742b86a6194a85f5a8b0ea
    • First observedget_settings_cam_approval_c54d13aaf71a0f29b916a96b
    • First observedget_settings_compliance_reminder_defaul_bc0970c98a2a029e2720f984
    • First observedget_settings_field_labels_b6254b377e8a036e9da1fcf5
    • First observedget_settings_mfa_policy_639c83971a03743b92edea09
    • First observedget_settings_module_labels_a9a77b39398d6e2849895e61
    • First observedget_settings_module_settings_4af9942848e4f0edcbb21336
    • First observedget_settings_record_review_d1f70ab54f2c9385851cfa2a
    • First observedget_settings_site_contact_types_430f13f11d7c137b74c94fd5
    • First observedget_settings_smtp_b0c0ed4c43b10aa3ea620509
    • First observedget_signature_management_a514e044642e0a4243a4636a
    • First observedget_signatures_8c271b0c7065f6b053db1967
    • First observedget_signatures_by_id_certificate_61580c46ecfc3f861e3b6346
    • First observedget_signatures_by_requestId_events_6c85964e03da57afed99e451
    • First observedget_signatures_entity_by_entityType_by__a0a9eba6c03cfd4c7a663161
    • First observedget_sitefolio_config_78cfb08d60130efc4f2a3c4f
    • First observedget_sitefolio_locations_605f05cb371c87665e670d63
    • First observedget_sitefolio_locations_by_locationId_f_4247fc6795f60481daa42eda
    • First observedget_sitefolio_sync_history_dba0eea99e46176ccfa20816
    • First observedget_sites_1c66d899f55d56514bed9495
    • First observedget_sites_by_id_366f0f998a651e6373e5df12
    • First observedget_sites_by_id_documents_133f19835f65d36af51f3320
    • First observedget_sites_by_siteId_contacts_f77d90343aa547ae559b32fe
    • First observedget_sites_by_siteId_units_by_unitId_7fc4dbfaf6304de746a9f339
    • First observedget_sites_by_siteId_units_dc0b1d794ecb4aaef96e4212
    • First observedget_standard_clauses_by_id_1494be76578086d1e4520500
    • First observedget_standard_clauses_by_id_audit_211fe47bdc729482805e9b6a
    • First observedget_standard_clauses_ee2e8b85378202eeb81d76a1
    • First observedget_subscription_ai_token_cost_7a040f5408c9a37b0328c29e
    • First observedget_subscription_ai_usage_4e546e3abc936ec4610cf415
    • First observedget_subscription_billing_check_97330eef5c69674c1d195e8b
    • First observedget_subscription_payment_methods_74ead37d3e5329b743256c07
    • First observedget_subscription_status_bd01e1f09e5067bb2c8d755d
    • First observedget_subscription_trial_status_24ad411b9cb62a0481e61b89
    • First observedget_subscription_usage_summary_e8438228bbfa914cfca223de
    • First observedget_supplemental_rent_import_targets_992b55f080e9876f5ead40f4
    • First observedget_supplemental_rent_portfolio_8c47be77fbe4a922a0841a42
    • First observedget_support_feedback_67cf430fc14502dc264d0532
    • First observedget_support_feedback_by_id_e42dfccfda3336824509cb30
    • First observedget_support_feedback_stats_58173d3f02f84311419a3171
    • First observedget_support_incidents_by_id_69e33d482645470772b9768b
    • First observedget_support_incidents_fd51861c1ad5681ce89554c4
    • First observedget_support_incidents_history_7bd433e42b1bcd1471f3176e
    • First observedget_support_status_38abab7d0aa6d2240ccc1e3b
    • First observedget_support_status_by_id_1d0ab686e31cb9bb628a4cbb
    • First observedget_support_status_uptime_8be4e32e0ff3d7dc9540125e
    • First observedget_support_tickets_by_id_05dc4378158ce5db426848d4
    • First observedget_support_tickets_by_id_messages_98e6b29aa6dc2ee1870cefb4
    • First observedget_support_tickets_cbcc74458751b6ca69066445
    • First observedget_support_tickets_stats_977fb68d585bc3a4ce6888a1
    • First observedget_tags_c8468dd084b7a8712f9da8e4
    • First observedget_tags_suggestions_7572d46f2ea8fbdc1dce8d93
    • First observedget_tax_bills_455d3f68b1d0f00283ce37bf
    • First observedget_tax_parcels_1b029e9dd9740f7e4ac11377
    • First observedget_templates_contracts_aa70c6bc9d84346c14a11948
    • First observedget_templates_documents_a317937e9b02619bba36c967
    • First observedget_templates_documents_by_id_b2cb13d74a326d3a7dea6c12
    • First observedget_templates_leases_b108ecab46385e64abd9463c
    • First observedget_terminations_by_terminationId_76dc6d4218b26aed7e114b45
    • First observedget_terminations_lease_by_leaseId_f6a837f47c14f0d1b14b0dbb
    • First observedget_terminations_pending_fcb6592b65c747323156d8ce
    • First observedget_user_dashboards_5c0d64bbdb897d98b60a2b6c
    • First observedget_user_dashboards_dynamic_widgets_90e08cce71a18a1630976150
    • First observedget_users_65504d96f6ea97284441572c
    • First observedget_users_by_id_dec15f2f51ef18c7781793fd
    • First observedget_users_by_userId_permissions_1bee5b6f621ffa97086e0586
    • First observedget_validate_lease_by_id_dde44a475ec215cb2b7e3cc6
    • First observedget_validate_period_by_id_cb16b2fdd67bbfe652145006
    • First observedget_versions_by_id_6769fd4c78e8f4baf136b470
    • First observedget_versions_c8d99d92c7553ccb8090bbc1
    • First observedget_versions_compare_by_id1_by_id2_a3047b60a11595774cbf33ba
    • First observedget_view_layouts_8ac222eafe9578f80ef55700
    • First observedget_view_layouts_by_module_by_viewType__7b415c2501587fbf6a30136b
    • First observedget_view_layouts_by_module_by_viewType_4f82e2efbf5b2909263e30bf
    • First observedget_webhooks_incoming_5f8205df3c863293cfa81663
    • First observedget_webhooks_outgoing_by_id_deliveries_1495ffb56969c16d8de33622
    • First observedget_webhooks_outgoing_by_id_secret_dd7a5ad3dfdb5d9eccb38e97
    • First observedget_webhooks_outgoing_ec27882af290f545aaaabd1e
    • First observedget_work_orders_9d887222f29cdc511762bded
    • First observedget_work_orders_by_id_38f4e80d6976d2cdbc34b3d1
    • First observedget_work_orders_stats_summary_b88adbe88caa2e15354bdaaa
    • First observedget_write_status
    • First observedlist_modules
    • First observedread_download
    • First observedreview_lease
    • First observedsearch_operations
    • First observedview_accounting_dashboard
    • First observedview_portfolio_dashboard
    • First observedview_supplemental_rent_dashboard

Publisher details

Operator
Copliancy Inc · Publisher source
Vendor relationship
First-party
Documentation
Unknown
Trust center
Not available
Restrictions
Requires a LeaseCommand account (free plan available). Access follows the signed-in user's role and organization permissions.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • 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
    23 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