Skip to main content
Glama

Good Turn Studio (all tools)

Server Details

All 25 Good Turn Studio helpers in one server: money, health, jobs, travel, halal and scripture.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
GoodTurnStudio/goodturn-mcp
GitHub Stars
0
Server Listing
goodturn-mcp

TDQS

B3.2/5.0

Scored across 118 tools

Disambiguation4/5

Within each sub-app the tools target distinct resources/actions, and the app-name prefix (bible_, gita_, mizan_, etc.) keeps identically named tools apart. However, six scripture apps repeat near-identical tools (get_card/get_today/get_reading/list_readings/read_book/search_readings) with almost the same descriptions, and halalornot_ask_is_it_halal is a catch-all overlapping check_crypto/check_fund/check_ingredients, creating real room for misselection.

Naming Consistency5/5

Every one of the 118 tools follows a strict app-prefixed snake_case verb_noun pattern (e.g. appealmyclaim_draft_appeal_letter, medbillcheck_check_whole_bill, wardrobeconnect_find_clothes_by_image). No camelCase, no mixed verb styles, no bare or chaotic names anywhere in the set.

Tool Count2/5

118 tools in a single server is far beyond what an agent can reasonably navigate, even though the count reflects ~25 bundled, individually well-scoped apps. Each app has a sensible 2-12 tools, but the aggregate is heavy and unwieldy for one MCP endpoint.

Completeness4/5

Across the bundle, most apps cover their domain lifecycle well (e.g. appeal, medbill, supplement, halal, mizan all have lookup + action + guidance/letter tools). A few apps are thin (cheapestprice has one tool; jobspotter, findmymoney, spinmyday, wardrobeconnect have two), but no domain shows a critical missing operation that would strand an agent.

Available Tools

118 tools
appealmyclaim_draft_appeal_letterAppeal My Claim: Draft an appeal letter for the user to review and sendA
Read-onlyIdempotent
Inspect

Appeal My Claim. Draft an appeal letter for the user to review and send. Use for "my insurer denied my MRI as not medically necessary, help me appeal" or "write an appeal letter for an out-of-network denial". Returns a letter as plain text with [brackets] for anything not given, a checklist of what to attach (denial notice, doctor's letter of medical necessity, records), and tips. It never sends or files anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate of service.
nameNoMember's name.
planNoInsurer or plan name.
claimNoClaim or reference number.
doctorNoTreating doctor's name.
reasonNoWhy the claim was denied: medical_necessity, emergency (said it wasn't an emergency), experimental, out_of_network, prior_auth, coding or generic. Plain words work too. Required unless denial_code is given.
urgentNoyes to ask for an expedited review.
detailsNoA sentence or two in the user's words on why the care should be covered.
serviceNoThe care that was denied, like "MRI of the right knee".
providerNoHospital, clinic or provider name.
member_idNoMember ID or Medicare number.
plan_typeNoSame values as /v1/rights. Changes the wording for Medicare.
denial_codeNoThe reason code on the notice, like CO-50 or PR-197. Picks the reason when reason is left out, and is quoted in the letter.
denial_dateNoDate on the denial notice.

TDQS

A4.1/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), but the description adds real value: it discloses the return format (plain text letter with [brackets] placeholders, an attachment checklist, tips) and the key operational boundary that it 'never sends or files anything.' These are behaviors not visible in annotations or schema.

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

Conciseness4/5

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

Front-loaded with purpose, then triggering examples, then output/behavior. Four sentences, each carrying information, with no boilerplate. Slightly dense in the middle but nothing is wasted.

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

Completeness4/5

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

For a 14-parameter, all-optional drafting tool with no output schema, the description covers what the tool produces and that it does not send anything. It does not explain how placeholder substitution or checklist generation works, but nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% across 14 properties, so the schema already documents every parameter, including enums and the reason/denial_code fallback. The description adds only the implicit note that unfilled fields become [brackets] placeholders, which is marginal beyond what the schema states. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and artifact ('Draft an appeal letter') and adds scope in the title ('for the user to review and send'). This clearly separates it from siblings like get_appeal_deadlines or explain_denial_code, which inform rather than produce a document.

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

Usage Guidelines4/5

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

Gives two concrete triggering utterances ('my insurer denied my MRI as not medically necessary' and 'write an appeal letter for an out-of-network denial'), which tells the agent when to pick this tool. It does not explicitly name alternative siblings or state when not to use it, so it falls short of a 5.

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

appealmyclaim_explain_denial_codeAppeal My Claim: Explain the denial codes on an Explanation of BenefitsA
Read-onlyIdempotent
Inspect

Appeal My Claim. Explain the denial codes on an Explanation of Benefits. Use for "my EOB says CO-50, what does that mean?", "what is denial code PR 204?" or "what does N130 mean?". Returns each code in plain words, who usually fixes it (the provider's billing office, an appeal, or the user), whether the provider can bill the user for it (from the group code CO, PR, OA or PI), and a letter link when an appeal fits.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesOne to four codes from the notice, like CO-50, PR 204, 197 or N130.
plan_typeNoSame values as /v1/rights. Carried into the letter link.

TDQS

A4.4/5.0
Behavior4/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 genuinely useful behavioral detail beyond that: it explains the return content (plain-language meaning, who fixes it, billability derived from the CO/PR/OA/PI group code, and a conditional letter link), which is not inferable from annotations.

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

Conciseness4/5

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

The purpose and example triggers are front-loaded and every sentence carries information. Minor waste in restating the product/title ('Appeal My Claim. Explain the denial codes...') before the operational content, but the description remains tight and single-purpose.

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

Completeness5/5

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

There is no output schema, so the description correctly takes on the burden of describing return values, and it does so thoroughly. For a two-parameter read-only lookup with full schema coverage, an agent has everything needed to call it correctly and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by naming real code formats (CO-50, PR 204, 197, N130) and explaining that the group-code prefix (CO, PR, OA, PI) drives the billability determination. That enriches interpretation of the required 'code' parameter.

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

Purpose5/5

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

The description states a specific verb and resource ('Explain the denial codes on an Explanation of Benefits') and is immediately distinguishable from siblings like appealmyclaim_draft_appeal_letter and appealmyclaim_get_appeal_rights. An agent can tell exactly what this tool returns without opening a schema.

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

Usage Guidelines4/5

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

Concrete trigger phrasings ('my EOB says CO-50, what does that mean?', 'what is denial code PR 204?', 'what does N130 mean?') give clear when-to-use context. However, it never names an alternative tool or an explicit when-not-to-use condition, so routing versus formguide/lore-style siblings is left to inference.

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

appealmyclaim_get_appeal_deadlinesAppeal My Claim: How long someone has to appeal, and how fast the plan must decideA
Read-onlyIdempotent
Inspect

Appeal My Claim. How long someone has to appeal, and how fast the plan must decide. Use for "how long do I have to appeal?", "when is my appeal due?" or "how fast does my insurer have to answer?". With the date on the denial notice, gives an approximate file-by date. Remind the user to check the date on their own notice

ParametersJSON Schema
NameRequiredDescriptionDefault
urgentNoyes if waiting could seriously harm the person's health.
plan_typeNoSame values as /v1/rights. Default: most private plans.
denial_dateNoDate on the denial notice, like 2026-09-01, 09/01/2026 or September 1, 2026.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds genuinely new behavioral context: the output is an approximate file-by date rather than an authoritative deadline, and the user should verify against their own notice - an important caveat not captured anywhere else.

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

Conciseness4/5

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

Front-loaded with the purpose and then the example phrasings, with zero filler. The opening 'Appeal My Claim. How long someone has to appeal...' partially duplicates the title, a minor redundancy.

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

Completeness4/5

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

No output schema exists, so the description carries the return-value burden; it does this by describing the approximate file-by date and the verification caveat. Combined with full schema coverage and complete annotations, an agent has what it needs, though the output format itself remains somewhat unspecified.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter documented in the schema itself (including the enum on urgent). The description only alludes to denial_date ("with the date on the denial notice") and adds nothing about urgent or plan_type, so baseline 3 is appropriate.

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 informational purpose - how long someone has to appeal and how fast the plan must decide - with concrete example user phrasings. It is distinguishable from siblings like get_appeal_rights and draft_appeal_letter, though it never states an explicit verb for what the tool returns.

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

Usage Guidelines4/5

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

It gives clear triggering questions ("how long do I have to appeal?", "when is my appeal due?") and the condition for usefulness (have the denial date handy). It does not explicitly name sibling alternatives such as get_appeal_rights for the 'when/not-this-tool' case, so it stops short of a 5.

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

appealmyclaim_get_appeal_rightsAppeal My Claim: Appeal rights, steps and free help for a plan type and stateA
Read-onlyIdempotent
Inspect

Appeal My Claim. Appeal rights, steps and free help for a plan type and state. Use for "what are my appeal rights in California?", "my insurer denied my claim, what can I do?" or "how do Medicare appeals work?". Returns who decides, the steps (internal appeal, external review, Medicare levels or Medicaid fair hearing), deadlines, and where to get free help, including the state insurance department. If the plan type is not known, leave it out to get the rules for most private plans

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoUS state name or two-letter code, like California or CA. Puerto Rico works too.
plan_typeNomarketplace, employer, employer_insured, employer_self_funded, medicare, medicare_advantage, part_d or medicaid. Everyday words work too, like "job", "Obamacare" or "Medi-Cal". Default: most private plans.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish the safe read-only, idempotent, closed-world profile, so the bar is lower; the description adds real value by enumerating what is returned (who decides, the appeal steps, deadlines, and where to get free help). The fallback behavior when plan_type is omitted is also disclosed, though no rate limits or data-freshness notes are given.

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

Conciseness4/5

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

Front-loads the purpose and packs example phrasings into a single compact block, and each sentence serves a routing or fallback function. The opening 'Appeal My Claim. Appeal rights, steps and free help for a plan type and state' restates the title verbatim, a minor redundancy.

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

Completeness4/5

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

With no output schema, the description carries the return-shape burden and does so by listing the categories of information returned. Combined with the handling of the optional plan_type and state inputs, it is essentially complete for calling the tool correctly, missing only any note on coverage limits or data recency.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented, including the state format and the plan_type default. The description reinforces the default ('leave it out to get the rules for most private plans'), which slightly clarifies behavior but largely restates the schema, so baseline 3 is appropriate.

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 appeal rights, steps and free help) scoped by plan type and state, and the example queries make the intent unambiguous. It does not explicitly name or differentiate from its siblings (get_appeal_deadlines, draft_appeal_letter), so sibling routing is left implicit.

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

Usage Guidelines4/5

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

Provides concrete trigger phrasings ('what are my appeal rights in California?', 'my insurer denied my claim, what can I do?') and a fallback for the unknown-plan-type case, which is strong usage context. However, it does not say when to prefer this over appealmyclaim_get_appeal_deadlines or appealmyclaim_draft_appeal_letter, despite overlapping on the deadlines content.

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

bible_get_cardBible Swipe: Today's reading one line at a time, for voiceB
Read-onlyIdempotent
Inspect

Bible Swipe. Today's reading one line at a time, for voice.. Bible: daily readings, plans, search and passage lookup (World English Bible)

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoWhich card, starting at 1. Defaults to 1.
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).
readingNoA reading or plan id from /readings. Defaults to today's reading.

TDQS

B3/5.0
Behavior3/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 one useful behavioral trait - output is chunked one line at a time and shaped for voice - but says nothing about ordering, how many cards exist, or whether reads are cached.

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 repeats the title verbatim and the closing clause ('Bible: daily readings, plans, search and passage lookup (World English Bible)') is app-level scope that does not help select this specific tool. The redundant period and brand restatement are wasted tokens.

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

Completeness5/5

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

Not applicable at the highest bar - scored 3: with annotations covering safety, a fully documented schema and no output schema, the definition is serviceable, but it leaves the central concept ('card', 'one line at a time') undefined and does not clarify its relationship to the sibling reading/today tools.

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

Parameters3/5

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

Schema description coverage is 100%, with n, date and reading all documented in-schema (including defaults for card index, UTC day, and reading id from /readings). The description adds no parameter meaning beyond that, so the baseline of 3 applies.

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 conveys that this returns today's reading 'one line at a time' as a swipeable card, which is more specific than a bare restatement of the name. However, it never explains what a 'card' is relative to the near-identical siblings bible_get_today, bible_get_reading and bible_get_passage, so an agent cannot easily tell which to pick.

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

Usage Guidelines2/5

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

The only usage signal is the trailing phrase 'for voice', which hints at a text-to-speech context but is not framed as a when-to-use rule. There is no guidance on choosing this over bible_get_today or bible_get_reading, and no exclusions are stated.

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

bible_get_passageBible Swipe: Any verse, range, chapter or cross-chapter range (Genesis 1:1-2:3) of the...A
Read-onlyIdempotent
Inspect

Bible Swipe. Any verse, range, chapter or cross-chapter range (Genesis 1:1-2:3) of the World English Bible

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesFor example: John 3:16

TDQS

A3.5/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 that the translation is the World English Bible, which is genuine context, but says nothing about return shape, verse numbering, or reference parsing behavior.

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

Conciseness4/5

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

Two short sentences with the resource and scope front-loaded and no filler. The marketing-style opener 'Bible Swipe' consumes space without adding information, but the remainder is efficient.

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

Completeness3/5

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

For a single-parameter, read-only lookup with full annotation coverage and no output schema, the description supplies the translation and valid reference formats. It still leaves open book-naming conventions (full name vs abbreviation) and what a returned passage looks like, so it is adequate but not complete.

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

Parameters4/5

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

Schema coverage is 100% and there is only one parameter, so the baseline is 3. The description goes beyond the schema's single 'John 3:16' example by enumerating the accepted reference forms (single verse, range, whole chapter, cross-chapter range such as Genesis 1:1-2:3), which materially expands what the agent knows it can pass.

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 resource precisely (a Bible passage, any verse/range/chapter, World English Bible translation) and the scope of accepted references. The verb is only implied by the tool name, and nothing distinguishes it from siblings like bible_get_reading, bible_get_card, or bible_get_today.

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: you call it when you want a specific passage by reference, and the listed reference shapes (verse, range, chapter, cross-chapter) tell the agent what it accepts. However, there is no explicit when-to-use guidance and no mention of the sibling read tools an agent might otherwise pick.

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

bible_get_readingBible Swipe: One reading or plan, line by lineC
Read-onlyIdempotent
Inspect

Bible Swipe. One reading or plan, line by line. Bible: daily readings, plans, search and passage lookup (World English Bible)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA reading or plan id from /readings, or a plan name such as "japji" or "The Gita in 18 Days".

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 phrase 'line by line' is the only behavioral hint (a possible line-by-line return format), and no auth, rate-limit, or error context is added. The description contributes almost 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 the first two fragments ('Bible Swipe' and 'One reading or plan, line by line') duplicate the title, and the third sentence describes the broader app rather than this tool. Sentences do not earn their place, so brevity here reflects thinness rather than 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?

For a simple single-parameter read tool with full schema coverage and complete safety annotations, the description's remaining job is disambiguation, which it fails. An agent still cannot tell this apart from bible_get_passage or bible_get_today.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema itself explains the id thoroughly (reading/plan id from /readings, or a plan name like 'japji'). The description adds no parameter detail, so the baseline of 3 is appropriate.

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

Purpose2/5

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

The description mostly restates the title and adds a brand tagline ('Bible Swipe'). 'One reading or plan, line by line' only loosely hints at retrieving a single reading/plan, and it never distinguishes this tool from close siblings like bible_get_passage, bible_get_today, or bible_list_readings. An agent cannot confidently separate it from those without opening schemas.

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

Usage 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. The trailing sentence 'Bible: daily readings, plans, search and passage lookup' describes the whole product surface rather than telling the agent when this specific tool applies.

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

bible_get_todayBible Swipe: Today's reading, line by line (same as the app shows today)C
Read-onlyIdempotent
Inspect

Bible Swipe. Today's reading, line by line (same as the app shows today). Bible: daily readings, plans, search and passage lookup (World English Bible)

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).

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. The description adds no further behavioral context—no authentication needs, rate limits, error conditions, or detail about the return format beyond the title's 'line by line' phrase.

Agents need to know what a tool does to the world before calling 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 front-loaded with useful information. The first sentence 'Bible Swipe.' is redundant, the second repeats the title, and the third is generic filler about Bible features that do not apply to this specific tool.

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

Completeness3/5

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

For a simple read-only tool with full schema coverage and annotations covering safety, the description minimally conveys that it returns today's reading line by line. However, it fails to clarify how this differs from sibling 'get_reading' tools or what a 'reading' actually contains, leaving a small but real ambiguity.

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

Parameters3/5

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

The single optional 'date' parameter has full schema description coverage ('Optional day as YYYY-MM-DD. Defaults to today (UTC).'), so the schema carries the semantics. The description does not mention the parameter at all, which is acceptable given the high coverage but adds no 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 begins by restating the title verbatim ('Today's reading, line by line (same as the app shows today)') and adds only a generic service blurb about Bible content. It does not distinguish this tool from bible_get_reading, bible_get_card, or bible_list_readings, leaving the agent to guess which one returns the daily reading versus a specific passage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 tools are mentioned. The agent gets no signal for choosing between bible_get_today, bible_get_reading, or bible_get_card, all of which likely fetch reading content.

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

bible_list_readingsBible Swipe: All curated daily readings and plansC
Read-onlyIdempotent
Inspect

Bible Swipe. All curated daily readings and plans. Bible: daily readings, plans, search and passage lookup (World English Bible)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.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 structurally. The description adds nothing beyond this — no statement about whether the result is the full catalog, whether it is paginated, or how large it is. With annotations doing all the work, the description 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?

Three short fragments where one sentence would do: the first two restate the name and title, and the third is generic toolset boilerplate ('Bible: daily readings, plans, search and passage lookup') that describes other tools rather than this one. The result is duplication plus off-target content rather than front-loaded useful information.

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

Completeness3/5

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

For a zero-parameter, read-only list tool with no output schema, the description is minimally complete: the agent knows it returns curated daily readings and plans. What is missing is how this catalog relates to the per-item retrieval siblings, which is the one thing an agent needs to choose correctly among them.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description neither misrepresents nor needs to document any inputs.

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 says it returns 'All curated daily readings and plans,' which conveys the resource and scope. However, it largely restates the tool name and title ('bible_list_readings' / 'All curated daily readings and plans') without a distinct verb framing. It also never distinguishes itself from the near-identical siblings bible_get_reading, bible_get_today, and bible_search_readings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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. An agent must infer on its own whether to call this versus bible_get_reading (single reading), bible_search_readings (filtered lookup), or bible_get_today (today's entry). The trailing phrase 'search and passage lookup' actually describes sibling tools, which adds confusion rather than routing.

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

bible_search_readingsBible Swipe: Search the curated readings, best match firstB
Read-onlyIdempotent
Inspect

Bible Swipe. Search the curated readings, best match first. Bible: daily readings, plans, search and passage lookup (World English Bible)

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesWords to search for, for example forgiveness or shepherd.

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, closed-world, non-destructive behavior. The one added behavioral fact is 'best match first', which usefully signals ranked rather than chronological results, but the description says nothing about result count, matching semantics (literal vs fuzzy), 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.

Conciseness3/5

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

It is short and the core purpose is front-loaded, but the leading 'Bible Swipe.' tagline duplicates the title and the trailing 'Bible: daily readings, plans, search and passage lookup (World English Bible)' is generic product boilerplate that covers sibling tools rather than this one.

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 read-only search with full annotations and no output schema, the essentials are present. Still missing are what a 'reading' is and how many/which results return, which a caller might reasonably need.

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

Parameters3/5

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

Schema description coverage is 100% and the sole parameter q is documented in the schema with examples ('forgiveness', 'shepherd'). The description adds no parameter-level meaning, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb ('Search') and resource ('curated readings') and adds the ranking behavior ('best match first'). It does not, however, distinguish this from siblings like bible_list_readings or bible_get_reading, which an agent must infer are non-search 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 explicit when-to-use guidance or named alternative. The agent must infer that this is the query-based tool versus bible_list_readings (browse) or bible_get_passage (lookup), but the description never says so.

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

bookslikethis_find_similar_booksBooks Like This: Books like one the user enjoyed, or for a genreA
Read-onlyIdempotent
Inspect

Books Like This. Books like one the user enjoyed, or for a genre. Use for "books like The Martian" or "a good cosy mystery". Suggestions are English-language books for the same readers (picture book, children, young adult or adult), one per author and one per series. Well-read books of the same kind come first (picked_from: shelf, and because names the kind, for example "celebrated dystopian novels"), then books sharing specific subjects on Open Library (picked_from: subjects, and because lists the shared subjects). Novels never get self-help, textbooks, anthologies, study guides, category romance lines or explicit books as suggestions, and popular books are preferred over obscure ones. Other books by the same author are left out unless same_author=true. Give title or subject; common other titles work (1984, The Sorcerer's Stone)

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoA book the user liked, 2 to 120 characters.
authorNoThe author's name, to pin down the right book or list their books.
countryNoTwo-letter country code for the shop links, for example US or GB.
subjectNoA genre or theme, for example space opera, cozy mystery, heist.
same_authorNoTrue to include more books by the same author.

TDQS

A4.6/5.0
Behavior5/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 adds substantial behavior: English-language filtering, one-per-author and one-per-series dedup, ordering by picked_from (shelf before subjects), popular-over-obscure preference, and explicit genre exclusions for novels. This is exactly the kind of context 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?

Front-loaded with the purpose and usage examples, and every clause carries information (dedup rules, ordering, exclusions). It is a dense block that borders on a wall of text, which slightly hurts scanability, but nothing is filler.

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

Completeness5/5

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

With no output schema, the description still explains the shape of results via the picked_from/because conventions, and it covers all five optional parameters. An agent has everything needed to call it and interpret the response.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it clarifies that title accepts common informal titles ('1984', 'The Sorcerer's Stone') and that same_author controls whether other books by the author are excluded by default. That goes beyond the plain field definitions.

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 ('find similar books') and pins the scope to 'books like one the user enjoyed, or for a genre'. An agent can distinguish it from bookslikethis_get_book and get_author_books without opening a schema.

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

Usage Guidelines4/5

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

Gives concrete trigger examples ('books like The Martian', 'a good cosy mystery') and tells the caller to 'give title or subject', which is clear usage context. It does not, however, explicitly compare against the sibling tools get_book/get_author_books, so there is no when-not guidance.

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

bookslikethis_get_author_booksBooks Like This: An author's books, newest firstA
Read-onlyIdempotent
Inspect

Books Like This. An author's books, newest first. Use for "what has Andy Weir written?" or "Sally Rooney's books"

ParametersJSON Schema
NameRequiredDescriptionDefault
authorYesThe author's name, to pin down the right book or list their books.
countryNoFor buy links: US, GB, IE, CA, AU. Default from the request.

TDQS

A3.6/5.0
Behavior3/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 fully covered. The description's only additional behavioral fact is the 'newest first' ordering. It says nothing about result size, pagination, or whether an unknown author 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.

Conciseness4/5

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

Two short, front-loaded sentences with no fluff. The opening 'Books Like This.' merely restates the title/name and earns no place, which is the only real inefficiency.

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

Completeness4/5

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

For a simple read-only lookup with no output schema, the agent has everything needed to invoke it: what it returns (an author's books), their ordering, the required parameter, and intent examples. Minor gaps on result volume and no-result behavior are acceptable here.

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

Parameters3/5

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

Schema description coverage is 100% – both 'author' and 'country' (with its US/GB/IE/CA/AU values) are documented in the schema. The description adds no parameter-level detail beyond the example author names. Baseline 3 is correct when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb+resource: it lists an author's books, ordered newest first. Clear and distinct from bookslikethis_find_similar_books and bookslikethis_get_book, but the sibling relationship is never made explicit, so the agent must infer the difference.

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?

"Use for 'what has Andy Weir written?' or 'Sally Rooney's books'" gives concrete user-intent triggers that make the when-to-use condition clear. It stops short of naming alternatives or stating when NOT to use it (e.g. for a single title, use get_book).

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

bookslikethis_get_bookBooks Like This: A book's details and any film or series made from itA
Read-onlyIdempotent
Inspect

Books Like This. A book's details and any film or series made from it. Use for "tell me about Project Hail Mary", "is The Name of the Wind being made into a film?", "how long is Dune?". Misspellings are fine. If screen_checked is false, the film and TV check could not run just now, so the film and TV status is unknown

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe book's title, 2 to 120 characters. Add author for very short or common titles.
authorNoThe author's name, to pin down the right book or list their books.
countryNoFor buy links: US, GB, IE, CA, AU. Default from the request.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world). The description adds genuine value beyond them: the screen_checked=false caveat explains a conditional failure mode where film/TV status is unknown, and 'Misspellings are fine' signals input robustness.

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?

Purpose and examples are front-loaded and the screen_checked caveat is placed last, which is good ordering. However, the opening 'Books Like This. A book's details and any film or series made from it.' restates the title verbatim, which is redundant padding.

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 carries the return-value burden, and it does explain that the tool returns book details plus adaptation status, including the unknown-status edge case. For a simple single-item lookup this is nearly complete, though the exact response shape is not described.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters with constraints and enum-like values for country. The description only adds the misspelling-tolerance note for title, which is marginal beyond what the schema provides – baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource – retrieving a book's details plus any film/series adaptation – which is distinguishable from the sibling tools find_similar_books and get_author_books. It does not explicitly name those siblings, but the single-book framing makes the scope clear.

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?

Concrete trigger phrases ('tell me about Project Hail Mary', 'is The Name of the Wind being made into a film?', 'how long is Dune?') give clear usage context, including the adaptation-check angle. It stops short of contrasting with alternatives like find_similar_books or get_author_books, so no exclusions are stated.

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

cancelmysub_get_cancel_reminderCancel My Sub: Calendar reminder for the last safe day to cancelA
Read-onlyIdempotent
Inspect

Cancel My Sub. Calendar reminder for the last safe day to cancel. Returns a calendar file (.ics) with an all-day event on the cancel-by day, the steps and the official link, with alerts at 9am the day before and 9am on the day. Nothing is stored. /v1/cancel gives this link as add_to_calendar whenever renews_on is given and the day hasn't passed

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoTwo-letter country code. GB (or UK) gives UK pages, UK notice rules and uk_rules; defaults to the caller's country, else US.
serviceYesThe subscription, as for getCancelSteps.
renews_onYesNext renewal or billing date, YYYY-MM-DD.

TDQS

A4.1/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), but the description adds genuine value: it discloses the return artifact (an .ics with an all-day event, steps and official link), the alert schedule (9am the day before and 9am on the day), and that 'Nothing is stored'. No return format on payload structure beyond that, but that is minor.

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

Conciseness4/5

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

Front-loaded and informative, with the deliverable and behavior described crisply. The leading 'Cancel My Sub.' restates the app/title and the reminder phrase is repeated from the title, which is minor redundancy but not damaging.

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 carries the burden of describing the return artifact and its contents, and it does so. Nothing critical is missing 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents country, service and renews_on fully. The description only implies that renews_on is required for use and adds no syntax or format detail beyond the schema, so it sits at the baseline.

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: it generates a calendar (.ics) reminder for the last safe day to cancel a subscription. It is clearly distinguishable from the sibling cancelmysub_get_cancel_steps, which returns steps rather than a calendar artifact.

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 triggering condition – the /v1/cancel endpoint surfaces this as add_to_calendar whenever renews_on is given and the day hasn't passed – which tells the agent when this is relevant. It stops short of explicitly naming sibling tools or stating when not to use it.

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

cancelmysub_get_cancel_stepsCancel My Sub: How to cancel one subscriptionA
Read-onlyIdempotent
Inspect

Cancel My Sub. How to cancel one subscription. Use for "how do I cancel Netflix?", "cancel my Planet Fitness membership", "how do I leave Sky?", "cancel my PureGym", "what's the cheapest way to keep Spotify?", "stop my Audible". Returns the official page, steps, catches and a cheaper option. UK answers add region ("UK") and uk_rules; a US-only service asked about from the UK has region "US only".

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoTwo-letter country code. GB (or UK) gives UK pages, UK notice rules and uk_rules; defaults to the caller's country, else US.
serviceYesThe subscription's name in everyday words, up to 80 characters.
renews_onNoNext renewal or billing date (or next delivery for meal kits), YYYY-MM-DD. Adds cancel_by: the last safe day to cancel using the service's own notice rule, or a day early where it has none, and add_to_calendar: a link to a calendar reminder for that day.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the safe read-only/idempotent/non-destructive profile. The description adds genuine behavioral context beyond that: it returns the official page, steps, catches and a cheaper option, and explains the region/uk_rules behavior including the 'US only' edge case for UK callers.

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

Conciseness4/5

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

Front-loads the purpose then supplies illustrative examples and return/region details. The opening 'Cancel My Sub. How to cancel one subscription.' largely restates the name and title, and the six-query list is somewhat heavy, but the content still earns most of its 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?

For a read-only tool with no output schema, the description covers intended use, what is returned, and a regional edge case. Missing only explicit fallback behavior for unknown services and sibling routing, which keeps it short of a 5.

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

Parameters3/5

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

With 100% schema description coverage, the schema already documents country, service and renews_on. The description echoes country/region behavior and mentions the derived cancel_by and add_to_calendar outputs, but adds little parameter syntax or meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb+resource (get the cancel steps for one subscription) and reinforces it with concrete query examples like 'how do I cancel Netflix?'. It is clearly distinguishable from siblings such as cancelmysub_list_services and cancelmysub_get_cancel_reminder.

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 'Use for ...' phrasing with six realistic queries makes the intended trigger scenarios explicit and easy to match. However, it never names when NOT to use it or routes the agent to alternatives (e.g., list_services when the service name is unknown), so routing guidance is incomplete.

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

cancelmysub_identify_chargeCancel My Sub: Which subscription is this charge?A
Read-onlyIdempotent
Inspect

Cancel My Sub. Which subscription is this charge?. Use for "what is this APPLE.COM/BILL charge?", "I see AMZN Digital on my statement", "what is DD *DOORDASH DASHPASS?". Returns the likely service, or for Apple, Amazon, Google and Microsoft the few it could be and where to check, or match: purchase when it looks like a one-off order (marketplace, a ride, a restaurant through a delivery app). Then call getCancelSteps

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe charge as it appears on the statement, up to 120 characters.

TDQS

A4.2/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), so the description is free to add value — and it does, disclosing the return shape: a likely service, a small candidate set with check-locations for Apple/Amazon/Google/Microsoft, or a match:purchase classification for one-off orders. This output variability is exactly the kind of context 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.

Conciseness3/5

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

The two opening fragments ("Cancel My Sub. Which subscription is this charge?.") merely restate the tool name and title and earn no place. The remainder is information-dense, but the "Returns..." sentence is a run-on that mixes several output cases in one breath.

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

Completeness4/5

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

For a one-parameter tool with no output schema, the description covers the need: what to pass, what comes back, and the mandated follow-up call. Only minor gaps remain, such as what happens for a charge that matches no known service.

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

Parameters4/5

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

With a single parameter at 100% schema coverage the baseline is 3, but the description goes further by supplying real-world example values (statement-form merchant strings) that illustrate the expected input format beyond the schema's "The charge as it appears on the statement" note.

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 action (identify which subscription a statement charge belongs to) with concrete example inputs like "APPLE.COM/BILL" and "DD *DOORDASH DASHPASS". It is clearly distinguishable from siblings such as list_services and get_cancel_steps, and it explicitly hands off to getCancelSteps as the follow-up.

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?

"Use for ..." plus three representative charge strings gives a clear triggering context, and the closing "Then call getCancelSteps" establishes the sequencing with a sibling. It stops short of stating when NOT to use it or pointing to list_services as an alternative for browsing known services.

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

cancelmysub_list_servicesCancel My Sub: Every subscription Cancel My Sub coversA
Read-onlyIdempotent
Inspect

Cancel My Sub. Every subscription Cancel My Sub covers. Use for "which subscriptions can you help me cancel?" or "what gyms do you know?". Also returns the current status of the FTC click-to-cancel rule and the UK rules (uk_rules)

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoTwo-letter country code. GB (or UK) leaves out US-only services; defaults to the caller's country, else US.
categoryNostreaming, music, membership, gym, news, meal kit, software, app store, dating, wellness, home security, phone and internet, tv and broadband.

TDQS

A3.6/5.0
Behavior3/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 one piece of non-obvious context: it also returns FTC click-to-cancel rule status and UK rules (uk_rules). That is useful but thin, and no return shape 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?

The first two sentences ('Cancel My Sub. Every subscription Cancel My Sub covers.') restate the name and title with no added information, which is waste before the genuinely useful usage examples and rules-status note.

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

Completeness4/5

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

For a simple read-only listing tool with no output schema and fully-documented optional params, the description covers purpose, trigger queries, and an unexpected extra return payload. Nothing critical for calling it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% with only two optional params, so the schema already fully documents country and category. The description adds no syntax or filtering semantics beyond what the schema provides, making the baseline 3 appropriate.

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 resource (every subscription Cancel My Sub covers) and the example phrasings ('which subscriptions can you help me cancel?', 'what gyms do you know?') make the listing intent unambiguous. It does not explicitly contrast with siblings like get_cancel_steps, but the verb+resource is clear.

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

Usage Guidelines4/5

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

Provides explicit trigger phrasings ('Use for...'), which is genuine usage context rather than inference. There are no exclusions or named alternatives, so it stops short of the top band.

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

cheapestprice_check_priceCheapest Price: Lowest current price for a product, with compare linksA
Read-onlyIdempotent
Inspect

Cheapest Price. Lowest current price for a product, with compare links. The lowest current price for a product on eBay (and Best Buy in the US), checked live in the shopper's own country and currency, plus Amazon and local shop links to compare.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesThe product, as specific as possible, for example AirPods Pro 2
usedNoInclude used items on eBay
countryNoTwo-letter country for prices and shops. Leave out to use the shopper's location.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description's job is to add beyond that. It usefully discloses that prices are checked live, localized to the shopper's country/currency, and drawn from a named set of retailers. However 'checked live' from external marketplaces sits in tension with openWorldHint=false, and no rate-limit, caching, or fallback behavior 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?

Three sentences, but the first two restate the title ('Cheapest Price. Lowest current price for a product, with compare links') and the third opens by repeating 'The lowest current price for a product' a third time. The genuinely new information (source retailers, live check, geo/currency localization) only appears after that redundancy.

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

Completeness4/5

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

With no output schema, the description carries the burden of describing returns and does so adequately: prices in the shopper's currency plus comparison links to Amazon and local shops. It is reasonably complete for a single-purpose lookup, missing only guidance on failure/empty-result behavior.

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

Parameters3/5

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

Schema description coverage is 100%, so q, used, and country are already fully documented and the baseline is 3. The description reinforces that results are localized to the shopper's country and currency and that eBay can include used items, but adds no syntax or format detail the schema lacks.

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

Purpose5/5

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

States a specific verb+resource (lowest current price for a product) and names the concrete sources (eBay, Best Buy in the US, Amazon, local shops) plus compare links. This clearly separates it from same-domain siblings like medbillcheck_check_price (medical) and pricedropback_check_price_drop_claim (promo claims).

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 (query a product to get the cheapest live retail price) but the description never states when to use this versus a sibling, nor any exclusions or prerequisites. No alternative tool is named for a near-miss query.

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

faredeals_cheapest_datesFare Deals: Cheapest departure days for a route in a monthB
Read-onlyIdempotent
Inspect

Fare Deals. Cheapest departure days for a route in a month. Cheap flights from any city, to one place or anywhere, with the cheapest days to fly. Fares are the cheapest Aviasales travellers found in the last 48 hours. The live price is on the booking page.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesAdd a state or country when a name is shared, for example Portland, Maine.
fromYesAdd a state or country when a name is shared, for example Portland, Maine.
monthYes2026-11
countryNoTwo-letter country for the currency, for example US, GB, CA, AU, DE. Leave out to use the traveller's location.

TDQS

B3.3/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). The description adds genuinely useful behavior the annotations cannot: fares are cached from what Aviasales travellers found in the last 48 hours, and the live price appears only on the booking page. That freshness caveat is exactly the kind of context an agent needs when reporting prices.

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?

Front-loaded with the core purpose, but the second sentence ('Cheap flights from any city, to one place or anywhere, with the cheapest days to fly') largely restates the first and the title. The price-freshness sentences do earn their place; the middle sentence does not.

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 carries the burden of explaining returns. It implies a list of cheapest days but never states the shape (dates plus prices, currency, whether round-trip or one-way). Adequate but leaves an agent guessing about the response structure.

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

Parameters3/5

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

Schema description coverage is 100%, so the four parameters (from, to, month, country) are already documented in the schema, including the month format and the country-for-currency rule. The description adds no parameter-level detail beyond that, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource: cheapest departure days for a route in a given month. An agent can tell it returns day-level pricing rather than actual itineraries. It does not explicitly differentiate from the sibling faredeals_find_deals, 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 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 the sibling faredeals_find_deals and faredeals_look_up_place are never mentioned. The phrase 'from any city, to one place or anywhere' hints at flexibility but gives no routing rule for choosing this tool over its neighbours.

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

faredeals_find_dealsFare Deals: Cheapest recent fares from a city, to a place or anywhereC
Read-onlyIdempotent
Inspect

Fare Deals. Cheapest recent fares from a city, to a place or anywhere. The say field is a ready-made answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoCity or airport, or anywhere (default). Same state or country hints as from.
fromYesCity or airport, for example New York or JFK. Add a state or country when a name is shared: Birmingham, UK; Birmingham, AL; Portland, Maine.
limitNoHow many deals to return, 1 to 20.
monthNoDeparture month 2026-11 or date 2026-11-14
returnNoReturn month or date
countryNoTwo-letter country for the currency, for example US, GB, CA, AU, DE. Leave out to use the traveller's location.
nonstopNoTrue for direct flights only.
one_wayNoTrue for one-way fares only.
max_priceNoBudget in US dollars

TDQS

C2.9/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 covered. The description adds only a cryptic note that "the say field is a ready-made answer," without explaining where that field comes from or what the response looks like. Notes about halted/empty results are absent, so value-add is modest.

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 size is appropriate and the core purpose is front-loaded. But the trailing sentence about the "say field" is confusing, references an undefined return field, and does not earn its place — it reads as vestigial text rather than useful 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, so the description carries the burden of explaining return values, yet it only vaguely gestures at a "say field" without describing result structure or the deal fields. For a nine-parameter fare-search tool, that leaves the agent unable to anticipate what comes back.

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

Parameters3/5

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

Schema description coverage is 100%, so all nine parameters (including the nuanced `from`/`to` state hints and `country` currency behavior) are already documented. The description repeats the from/to concept without adding syntax or format details, so baseline 3 applies.

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

Purpose4/5

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

States a clear verb and resource: finding cheapest recent fares from a city to a place or anywhere. The scope ("recent fares") is specific. However, it does not differentiate itself from sibling faredeals_cheapest_dates, leaving the agent to guess which fare tool fits a given request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 sibling faredeals_cheapest_dates or faredeals_look_up_place. The only usage hint is an implicit default (`to` = anywhere) carried by the schema, not the description.

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

faredeals_look_up_placeFare Deals: Look up a city or airport codeB
Read-onlyIdempotent
Inspect

Fare Deals. Look up a city or airport code. Cheap flights from any city, to one place or anywhere, with the cheapest days to fly. Fares are the cheapest Aviasales travellers found in the last 48 hours. The live price is on the booking page.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesA city or airport name or code, for example Lisbon or LIS.

TDQS

B3.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 covered. The description adds genuinely useful data-freshness context ('cheapest Aviasales travellers found in the last 48 hours', 'live price is on the booking page'), but does not explain return shape or how the code is normally used downstream.

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 purpose is front-loaded, but two of the four sentences are fare-marketing copy ('Cheap flights from any city, to one place or anywhere...') that does little to help an agent invoke a place-lookup. Moderate waste for a one-parameter tool.

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 carries some burden for explaining returns; it partially does so via the fare-freshness and booking-page notes, but never clarifies what a lookup actually returns (a resolved code, a list of matches). Adequate but with a clear gap for a param-only tool.

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

Parameters3/5

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

With a single parameter and 100% schema description coverage, the schema already documents the `q` argument with an example ('Lisbon or LIS'). The description adds no meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description clearly states a specific verb and resource: 'Look up a city or airport code,' matching the title. However, the following sentence pivots to flight-deal marketing ('Cheap flights from any city... cheapest days to fly'), which blurs whether this tool resolves a place or returns deals, and it never distinguishes itself from siblings faredeals_find_deals or faredeals_cheapest_dates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 sibling faredeals_find_deals or faredeals_cheapest_dates, even though a place lookup is the obvious prerequisite for those. No prerequisites, sequencing, 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.

findmymoney_get_sourcesFind My Money: Federal and other official places to look, by typeA
Read-onlyIdempotent
Inspect

Find My Money. Federal and other official places to look, by type. Use for "how do I find an old 401k?", "unclaimed tax refund", "lost savings bonds", "money from a failed bank", "FTC refund", "my mum died, did she leave money or life insurance?", "find my old pension" (UK with country=GB), "find my Child Trust Fund". Without a type, returns every source

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNotax, retirement, bonds, banks, investments, refunds, insurance, deceased, wages, courts, tribal or all. Everyday words like 401k, pension, stocks or "my dad died" also work; UK words like HMRC, Premium Bonds or Child Trust Fund give the UK answer.
countryNoTwo-letter country code. GB (or UK) gives the UK tracing services. Defaults to the caller's country, else US.

TDQS

A4.2/5.0
Behavior4/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 a behavioral fact beyond them — 'Without a type, returns every source' — i.e., the default result-set breadth when no type is supplied.

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

Conciseness4/5

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

The purpose and default behavior are front-loaded, and the example-query list earns its space by mapping colloquial questions to a structured type parameter. It is a single long sentence, but there is no filler.

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

Completeness5/5

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

For a two-optional-parameter, read-only lookup with no output schema, the description supplies purpose, representative triggers, default behavior, and UK routing — everything 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains both 'type' (with everyday/UK word mappings) and 'country' (GB/UK gives UK services, defaults to caller's country else US). The description's '(UK with country=GB)' largely restates that same schema guidance rather than adding new semantics, so baseline 3 applies.

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

Purpose5/5

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

States a concrete verb and resource (find official sources of lost/owed money) and scopes it as 'Federal and other official places to look, by type', which implicitly distinguishes it from the sibling findmymoney_get_state_search. The example queries make the coverage of the tool unambiguous.

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

Usage Guidelines4/5

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

The eight quoted example questions give a very clear picture of when to invoke it (old 401k, unclaimed refund, lost bonds, deceased relative, UK pension/Child Trust Fund). It does not name the sibling findmymoney_get_state_search or say when this tool is the wrong choice, so it stops short of explicit alternatives.

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

formguide_compare_teamsForm Guide: Two clubs side by side before they meetA
Read-onlyIdempotent
Inspect

Form Guide. Two clubs side by side before they meet. Use for "Arsenal v Leeds, how do they compare?". Gives positions, form, goals, this season's meeting and the next date they play. Stats only, not betting advice

ParametersJSON Schema
NameRequiredDescriptionDefault
awayYesA different club from home.
homeYesThe home club, for example Arsenal.
team1NoOlder name for home, kept for existing callers. Use home.
team2NoOlder name for away, kept for existing callers. Use away.
countryNoPass US or CA to add US Eastern kick-off times to the say line (and to each fixture's us_eastern, which is always there when a time is known).

TDQS

A4.2/5.0
Behavior4/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 genuinely useful behavioral context by enumerating what is returned (positions, form, goals, this season's meeting, next fixture date) and by fencing off betting advice, though it says nothing about pagination, latency, or error behavior.

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

Conciseness5/5

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

Four short clauses, front-loaded with the purpose, then the example trigger, then the payload, then the scope limit. The redundant 'Form Guide.' opener is the only filler, and every other phrase 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?

With no output schema, the description must convey what comes back, and it does so by listing positions, form, goals, head-to-head meeting, and next fixture date. The only gap is that the legacy team1/team2 aliases and the country side-effect (US Eastern kick-off lines) are left entirely to the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents home, away, country, and the legacy team1/team2 aliases, which sets the baseline at 3. The description adds no parameter-level meaning — it never clarifies the home/away roles, the legacy alias behavior, or what the country flag does — so it cannot rise above baseline.

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

Purpose5/5

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

The description names a specific operation (comparing two clubs side by side) on a specific resource (two teams about to meet), and the sample query 'Arsenal v Leeds, how do they compare?' makes the intent unmistakable. It is clearly distinguishable from formguide_get_team (one club) and formguide_get_table (league-wide) without opening any schema.

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

Usage Guidelines4/5

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

It gives a concrete trigger scenario ('Arsenal v Leeds, how do they compare?') and states the scope boundary 'stats only, not betting advice'. It stops short of naming alternatives such as formguide_get_fixtures or formguide_get_team for single-side questions, so there is no explicit when-not guidance.

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

formguide_get_fixturesForm Guide: Upcoming fixtures for a club or a leagueA
Read-onlyIdempotent
Inspect

Form Guide. Upcoming fixtures for a club or a league. Use for "who do Liverpool play next?" or "what's on in La Liga this weekend?". Without team or league, gives the Premier League

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow far ahead, a whole number from 1 to 60. Default 21. If nothing falls in the window (an international break), the next fixtures are returned anyway.
teamNoA club name, for example Liverpool or Real Madrid.
leagueNoOne of: premier league, championship, la liga, bundesliga, serie a, ligue 1 (common variants like EPL or German Bundesliga work too). Any other league returns 404.
countryNoPass US or CA to add US Eastern kick-off times to the say line (and to each fixture's us_eastern, which is always there when a time is known).

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 and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: the default scope is the Premier League when no team or league is given, which an agent would otherwise have to guess.

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

Conciseness4/5

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

Three short sentences, front-loaded with purpose, then usage examples, then the default behavior. The leading 'Form Guide.' fragment merely restates the title and is the only wasted token.

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 four-parameter, zero-required read tool this is nearly complete: purpose, examples, default scope and the optional country/time behavior are all implied. The lack of an output schema means return shape is only loosely conveyed, but fixture listings are self-explanatory.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents days, team, league and country in more detail than the description (including the 404 on unknown leagues and the international-break fallback). The description's only parameter-relevant statement is the no-argument default, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Upcoming fixtures') and clearly scopes it to a club or league, which distinguishes it from formguide_get_results, formguide_get_table and formguide_compare_teams without opening any schema.

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

Usage Guidelines4/5

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

Gives concrete usage contexts ('who do Liverpool play next?', 'what's on in La Liga this weekend?') and states the fallback when neither team nor league is supplied. It never explicitly excludes siblings such as get_results, but the intent is unambiguous.

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

formguide_get_resultsForm Guide: Latest results for a club, or the last round of a leagueA
Read-onlyIdempotent
Inspect

Form Guide. Latest results for a club, or the last round of a league. Use for "how did Chelsea get on?" or "what were the Serie A results?". Without team or league, gives the Premier League

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoHow many of the club's results, a whole number from 1 to 20. Default 5.
teamNoA club name, for example Liverpool or Real Madrid.
leagueNoOne of: premier league, championship, la liga, bundesliga, serie a, ligue 1 (common variants like EPL or German Bundesliga work too). Any other league returns 404.

TDQS

A4.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, and closed-world, so the safety profile is covered. The description contributes the fallback behavior (no team/league yields Premier League), which the agent needs to predict output without arguments.

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, purpose and scope front-loaded, examples placed to drive selection, and the default stated last. No filler; each sentence earns its place.

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

Completeness5/5

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

A read-only, zero-required-parameter tool with fully documented schema and clear annotations; the description accounts for the no-argument case and typical queries, so an agent has everything needed to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, and the description adds real value by disclosing the default behavior when neither team nor league is supplied (defaults to Premier League). It doesn't add format or matching semantics beyond the schema, but the default is behavior the schema doesn't carry.

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 (latest results) and disambiguates scope: 'for a club, or the last round of a league.' It implies distinction from siblings like formguide_get_fixtures and formguide_get_table, but doesn't name them explicitly, so an agent must 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 Guidelines4/5

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

Gives concrete trigger examples ('how did Chelsea get on?', 'what were the Serie A results?') and states the no-argument default (Premier League). It stops short of routing guidance against siblings such as fixtures or standings, so it's clear context without explicit alternatives.

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

formguide_get_tableForm Guide: League tableA
Read-onlyIdempotent
Inspect

Form Guide. League table. Use for "show me the Championship table" or "who is top of La Liga?". Points include official deductions; a deducted club's row has points_deducted

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueNoOne of: premier league, championship, la liga, bundesliga, serie a, ligue 1 (common variants like EPL or German Bundesliga work too). Any other league returns 404. Default premier league.

TDQS

A4.2/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). The description adds genuinely new domain behavior: points include official deductions and deducted clubs carry a points_deducted field, which is not derivable from annotations and is valuable since there is no output schema.

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

Conciseness4/5

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

Very tight: purpose and example triggers come first, with the points-deduction caveat last. The 'Form Guide.' fragment mildly restates the title, a minor redundancy that keeps it from a full 5.

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

Completeness5/5

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

For a zero-required-param, read-only lookup with a fully documented schema and no output schema, the description supplies everything needed: intent, trigger examples, and the one non-obvious return-value quirk (points_deducted). Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents accepted league names, variants, the 404 behavior and the default. The description's league references (Championship, La Liga) merely echo schema values, adding no syntax or constraint detail beyond it, so the baseline 3 applies.

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

Purpose5/5

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

States the resource unambiguously ('League table') and reinforces it with two natural-language user queries ('show me the Championship table', 'who is top of La Liga?'). This cleanly separates it from siblings like formguide_get_fixtures, formguide_get_results and formguide_get_team without needing to name them.

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

Usage Guidelines4/5

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

Usage is conveyed through concrete example phrasings that map directly to the tool's intent, giving an agent a clear trigger match. It stops short of saying when NOT to use it or naming an alternative sibling for adjacent needs, so it falls just short of a 5.

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

formguide_get_teamForm Guide: A club's league position, recent form and next gamesB
Read-onlyIdempotent
Inspect

Form Guide. A club's league position, recent form and next games. Use for "how are Arsenal doing?", "what's Spurs' form?", "when do Birmingham play next?"

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoOlder name for team, kept for existing callers. Use team.
teamYesClub name as the user said it, up to 80 characters. Nicknames and small typos are fine.
leagueNoOne of: premier league, championship, la liga, bundesliga, serie a, ligue 1 (common variants like EPL or German Bundesliga work too). Any other league returns 404. Only needed if two clubs share a name.
countryNoTwo-letter country code for the shirt link (US, GB and IE get local Amazon links). Default from the request. When passed as US or CA, the say line also gives the next kick-off in US Eastern time.

TDQS

B3.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. The description adds no behavioral context beyond the title text it repeats verbatim — nothing about return format, freshness of form data, or fallback behavior when a club 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.

Conciseness4/5

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

Very short and front-loaded: the resource is stated first, then three concrete example phrasings. The main flaw is duplicating the title verbatim in the first sentence, which is slack rather than added value.

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 lookup with no output schema, the description does name the three things returned (position, recent form, next games), and the schema fully covers inputs. It is close to complete, though it omits any hint of the response shape or how 'recent form' is represented.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents team, q, league and country, including the 404 behavior for unsupported leagues and the deprecation note on q. The description contributes no additional parameter meaning, so the baseline 3 is appropriate.

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

Purpose4/5

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

The description names a specific resource (a club's league position, recent form, next games), which is more than a restatement of the name. It is clear what data is returned, though it does not distinguish itself from siblings like formguide_get_table, formguide_get_results or formguide_get_fixtures, which cover overlapping ground.

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?

Three example user questions ("how are Arsenal doing?", "what's Spurs' form?", "when do Birmingham play next?") imply the intended usage well. However it never states when to prefer this composite tool over formguide_get_fixtures/get_results/get_table, nor any conditions or exclusions, so routing against siblings is left to inference.

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

gita_get_cardGita Scroller: Today's reading one line at a time, for voiceC
Read-onlyIdempotent
Inspect

Gita Scroller. Today's reading one line at a time, for voice.. Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoWhich card, starting at 1. Defaults to 1.
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).
readingNoA reading or plan id from /readings. Defaults to today's reading.

TDQS

C2.6/5.0
Behavior3/5

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

Annotations already establish the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description only needs to add context. It usefully discloses that output is one line at a time and aimed at voice, but omits how many cards exist, whether n is bounded, or what 'defaults to today's reading' implies when no reading 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 description opens by duplicating the title verbatim ('Gita Scroller. Today's reading one line at a time, for voice..'), including a doubled period, then appends a catch-all feature list that relates to sibling tools rather than this one. It is not front-loaded around what a caller does with this specific 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 paged read tool with three optional parameters and no output schema, the agent still lacks the essentials: how many cards a reading contains, whether to advance n sequentially, and how this differs from gita_get_today. Annotations cover safety, but the call-shape gaps are real.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents n, date, and reading with defaults. The description adds the notion of 'one line at a time' that maps loosely to n, but contributes no additional format or constraint detail. Baseline 3 is correct when the schema carries the parameter burden.

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 (today's Bhagavad Gita reading) and the paging granularity ('one line at a time'), which is more specific than a bare name restatement. However, the second sentence is a generic app-level blurb covering many sibling tools ('daily verses, plans, search and verse lookup; whole books from the Library'), so it does not clearly distinguish gita_get_card from gita_get_today, gita_get_reading, or gita_get_chapter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 hints at a context ('for voice') but never states when to use this tool versus gita_get_today, gita_get_verse, or gita_get_reading. There is no guidance on how to paginate through cards or how to know when the sequence ends, which is exactly what an agent needs for a paged tool.

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

gita_get_chapterGita Scroller: A whole chapter in Sanskrit with transliteration and EnglishC
Read-onlyIdempotent
Inspect

Gita Scroller. A whole chapter in Sanskrit with transliteration and English. Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
chapterYesChapter number, 1 to 18.

TDQS

C2.7/5.0
Behavior3/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 genuine value by specifying the content delivered (Sanskrit, transliteration, English), which matters absent an output schema. It adds nothing about size, pagination, or handling of invalid chapters, keeping it at a middling 3.

Agents need to know what a tool does to the world before calling 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 restates the title verbatim, and the second sentence is a noisy run-on listing app features unrelated to this call. Structurally the relevant content is front-loaded, but a large fraction of the text does not earn its place for this specific tool.

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 single-parameter read tool with full annotation coverage and full schema coverage, the description is adequate. Its main gaps are the absence of any return-shape specifics (chapter length, verse count) and no sibling differentiation, which are tolerable but leave the definition only minimally 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 100%: the single 'chapter' parameter is documented in-schema with a 1-18 description and min/max bounds. The description contributes no additional parameter meaning, so the baseline 3 for fully covered schemas is correct.

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 does state a specific resource ('a whole chapter in Sanskrit with transliteration and English'), so the core purpose is discernible. However, the trailing clause ('daily verses, plans, search and verse lookup; whole books from the Library') describes the broader app or sibling tools rather than this tool, muddying rather than sharpening the purpose. It never distinguishes this from gita_get_verse, gita_get_reading, or gita_read_book.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 mention of 'search and verse lookup' and 'read a passage at a time' gestures at other capabilities but does not tell the agent when to pick a whole chapter versus a verse or a reading. The agent must infer selection criteria entirely.

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

gita_get_readingGita Scroller: One reading or plan, line by lineC
Read-onlyIdempotent
Inspect

Gita Scroller. One reading or plan, line by line. Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA reading or plan id from /readings, or a plan name such as "japji" or "The Gita in 18 Days".

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, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered structurally. The description adds no behavioral context beyond that (no mention of what a 'reading' yields, plan-name resolution behavior, or errors for unknown ids), so it earns little credit 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 first two sentences duplicate the title, and the remainder is app-level marketing copy rather than tool-specific function. It is not front-loaded with what this tool does, and much of the text does not earn its place.

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

Completeness3/5

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

For a simple one-parameter read tool with no output schema, the description is minimally adequate, and the schema covers the id semantics. However, it omits anything about how 'reading' vs 'plan' output differs or what 'line by line' returns, leaving a gap an agent would notice.

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

Parameters3/5

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

With a single parameter and 100% schema description coverage, the schema fully documents the id field including that it accepts a reading/plan id or a plan name like 'japji'. The description adds nothing beyond this, so the high-coverage baseline of 3 applies.

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

Purpose2/5

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

The description largely restates the app tagline and the tool title ("One reading or plan, line by line") rather than stating a distinct verb+resource for this tool. The line "Bhagavad Gita: daily verses, plans, search and verse lookup" describes the whole app's feature set, which overlaps with siblings like gita_get_today, gita_search_readings, and gita_get_verse, so it does not distinguish this tool 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 when-to-use guidance or alternative is given. An agent cannot tell from this text whether to call gita_get_reading, gita_get_today, or gita_read_book for a given request; the sibling differentiation is absent.

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

gita_get_todayGita Scroller: Today's reading, line by line (same as the app shows today)C
Read-onlyIdempotent
Inspect

Gita Scroller. Today's reading, line by line (same as the app shows today). Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).

TDQS

C2.7/5.0
Behavior3/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 one genuinely useful behavioral fact — the output matches what the app displays today — but says nothing about the return shape (verse text? chapter/verse refs? length of the passage).

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

Conciseness2/5

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

The leading "Gita Scroller." restates the title and the second sentence is wholesale app-level marketing that does not describe this tool. Only the middle clause ("Today's reading, line by line") earns its place, so the definition is largely 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 zero-required-param, read-only, no-output-schema tool the bar is low, but the agent still cannot tell what "today's reading" contains (how many verses, which chapter, what the payload looks like) or how it differs from gita_get_reading for a non-today date. Adequate but with a clear gap.

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

Parameters3/5

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

Schema coverage is 100% and the single optional date parameter is fully documented in the schema (YYYY-MM-DD, defaults to today UTC). The description adds no meaning beyond that, so the baseline of 3 applies.

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 phrase "Today's reading, line by line" does name a specific resource and format, but the surrounding text ("Gita Scroller", "daily verses, plans, search and verse lookup; whole books from the Library") describes the whole app rather than this tool, making the boundary against gita_get_reading, gita_get_card and gita_list_readings fuzzy. It is not a tautology, but it is a vague framing polluted by product copy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 gita_get_reading (arbitrary date) or gita_list_readings (index of readings). The mention of "plans, search and verse lookup" gestures at other capabilities without routing the agent to the sibling tools that provide them.

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

gita_get_verseGita Scroller: A verse or range (e.gB
Read-onlyIdempotent
Inspect

Gita Scroller. A verse or range (e.g. 47-51) in Sanskrit with transliteration and English. Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
verseYesFor example: 47-51
chapterYesChapter number, 1 to 18.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare a safe, idempotent, read-only, non-open-world operation, so the safety profile is covered. The description usefully adds that results come in Sanskrit plus transliteration and English, but says nothing about pagination, missing-verse behavior, or error handling.

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 sentence is front-loaded and earns its place, but the second sentence is generic app marketing spanning five features and dilutes focus. The title is also truncated ('A verse or range (e.g'), adding noise.

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

Completeness4/5

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

For a 2-parameter, read-only tool with full schema coverage and no output schema, the description is close to sufficient: it names the inputs' format and the returned content languages. What is missing is routing guidance against the many gita siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so both chapter (1-18) and verse are documented in the schema, and the description adds only the '47-51' range format which the schema already supplies. Baseline 3 is appropriate when the schema carries the parameter burden.

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 first sentence states a specific resource — a verse or range (e.g. 47-51) — and the return content (Sanskrit with transliteration and English). It is clear what the tool retrieves, though it never contrasts itself with gita_get_chapter or gita_get_reading, which also return scripture 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 second sentence is app-level blurb ('daily verses, plans, search and verse lookup; whole books from the Library') that names sibling capabilities without saying when to call this tool versus them. 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.

gita_list_booksGita Scroller: The whole books in the Library that can be read a passage at a timeC
Read-onlyIdempotent
Inspect

Gita Scroller. The whole books in the Library that can be read a passage at a time. Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, openWorldHint=false and destructiveHint=false, so no credit is due for repeating a safe-read posturing. The description adds no behavioral context beyond the title, such as ordering, coverage of the library, 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?

'read a passage at a time' is stated twice and the sentence about daily verses, plans, search and verse lookup is unrelated padding. The remaining content is title-level rather than information a calling 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?

For a zero-parameter enumeration tool with no output schema, the description should at least convey what a caller receives (e.g., book identifiers/titles to feed into gita_read_book). It supplies none of that and instead repeats marketing copy, leaving the calling contract underspecified.

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

Parameters4/5

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

The tool takes zero parameters and the schema coverage is 100%, so there is nothing for the description to clarify at the parameter level; baseline 4 applies.

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

Purpose2/5

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

The description largely restates the title ('Gita Scroller. The whole books in the Library that can be read a passage at a time') and never states a clear verb like 'list' or says what the list contains. It also lumps in unrelated feature copy ('daily verses, plans, search and verse lookup') that belongs to sibling tools, muddying the purpose rather than sharpening 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?

No when-to-use guidance and no alternative is named, even though siblings like gita_search_readings, gita_get_verse, and gita_read_book clearly cover the other functions the description mentions. The agent is left to infer that this tool only enumerates available books.

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

gita_list_readingsGita Scroller: All curated daily readings and plansC
Read-onlyIdempotent
Inspect

Gita Scroller. All curated daily readings and plans. Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the description only needs to add context. It adds the 'All curated' scoping notion but nothing about the shape or volume of the list, and its second sentence advertises unrelated capabilities, diluting rather than clarifying 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 merely repeats the app name and title, and the second is a run-on catalog of the entire product rather than a front-loaded statement of this tool's output. Short, but neither sentence is well targeted at the specific operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no-param read-only list, the description still leaves the agent unsure what a 'reading' or 'plan' actually is, whether the result is paginated, and how it differs from the other Gita list/lookup tools. With rich annotations and no output schema, the description needed to carry more scope information and does not.

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

Parameters4/5

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

The tool takes zero parameters and the schema is an empty object, so there is no parameter semantics to explain; baseline of 4 applies. The description adds no misleading parameter expectations.

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 title and opening sentence state a recognizable verb+resource (list all curated daily readings and plans), and 'All' implies full-list scope versus the single-item siblings gita_get_today/gita_get_reading. However, the second sentence describes app-wide capabilities (daily verses, search, verse lookup, whole books, reading a passage) that belong to sibling tools, blurring what this specific tool 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?

No indication of when to choose this over gita_get_today, gita_list_books, or gita_search_readings. The trailing clause about 'search and verse lookup' and 'read a passage at a time' actively points at other tools without naming them, leaving the agent to guess the selection criteria.

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

gita_read_bookGita Scroller: Follow next for the next passage; it carries on into the next chapterC
Read-onlyIdempotent
Inspect

Gita Scroller. Follow next for the next passage; it carries on into the next chapter. Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoPassage within the section, starting at 1.
refNoOptional: jump straight to a passage by its reference, for example "Havamal 139", "Meditations 4.3", "Gita 2.47", "Iliad 1.5" or "10b". Overrides section and n.
bookYesBook id or title from /books, for example gita.
sectionNoChapter, book, poem, letter or daf to start at, as listed in the book (for example 5, "chapter 2", "havamal", or 10b for the second side of a daf). Defaults to the beginning; Bekhorot defaults to today's Daf Yomi page while the cycle is in it.

TDQS

C2.6/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 openWorldHint=false, so safety is covered. The description does add one genuine behavioral detail: 'it carries on into the next chapter,' useful for a scroller-style read. However, it says nothing about rate limits, return format, or how the ref/n/section interplay behaves at boundaries.

Agents need to know what a tool does to the world before calling 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 opens by restating the title verbatim ('Follow next for the next passage; it carries on into the next chapter') and then lists features that belong to other tools, which is noise rather than front-loaded signal for this tool. The only tool-relevant phrase 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 4-parameter read tool with no output schema, the description should clarify how book/section/n/ref compose and what a call returns (a passage card?), especially given its scroller/continuation framing. Instead it omits any of that and spends its length on app marketing and sibling features.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (book, section, n, ref) are fully documented in the schema, including the precedence rule that ref overrides section and n. The description adds no parameter meaning beyond the schema, so the baseline 3 applies.

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 signals a read operation ('read a passage at a time') over a book/passage resource, but the first two sentences are app-flavored ('Gita Scroller', 'Follow next') rather than stating the action. It also lists unrelated capabilities (daily verses, plans, search, verse lookup) that belong to sibling tools, muddying what this specific tool does. The verb+resource pair is discernible but not crisply 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 use this tool versus clear siblings like gita_get_reading, gita_get_verse, or gita_get_chapter. The 'read a passage at a time' hint is the only implicit usage cue, 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.

gita_search_readingsGita Scroller: Search the curated readings, best match firstB
Read-onlyIdempotent
Inspect

Gita Scroller. Search the curated readings, best match first. Bhagavad Gita: daily verses, plans, search and verse lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesWords to search for, for example duty or fear.

TDQS

B3.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 covered. The description adds one genuinely useful behavioral trait beyond that: results come back 'best match first'. It says nothing about result count, pagination, or what a 'reading' 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.

Conciseness3/5

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

It is short and front-loads the actual purpose, but the second sentence is app-level marketing boilerplate that lists capabilities this tool does not expose (daily verses, plans, whole books) and therefore does not earn its place here.

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?

The tool is simple (one required string param, no output schema, annotations covering safety), so the definition is minimally viable. It still leaves ambiguous what corpus 'curated readings' covers and what fields a result carries, which matters when the sibling set includes both list and get variants.

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

Parameters3/5

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

Schema coverage is 100% and the schema's own description already supplies usage examples ('duty or fear'), so the description carries no additional burden. It adds no extra semantics about matching behavior (substring, fuzzy, multi-word) beyond the schema baseline.

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 first sentence gives a specific verb and resource: search the curated readings with best-match ordering. However, the second sentence is generic app boilerplate about verses, plans, verse lookup and whole books, which describes the whole Gita Scroller app rather than this tool, so it does not distinguish this search tool from siblings like gita_list_readings or gita_get_reading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 gita_list_readings (browse the full index) or gita_get_reading (fetch a specific item by id). The agent must infer the search-vs-list distinction 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.

gurbani_get_angScroll the Gurbani: Every line on an Ang in Gurmukhi with transliteration and EnglishB
Read-onlyIdempotent
Inspect

Scroll the Gurbani. Every line on an Ang in Gurmukhi with transliteration and English. Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
angYesThe Ang (page) of Sri Guru Granth Sahib, 1 to 1430.

TDQS

B3.4/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, non-open-world), so the bar is lower. With no output schema, the description earns credit by disclosing exactly what comes back — every line of an Ang, in Gurmukhi plus transliteration plus English — which tells the agent the shape of the payload. It stops short of pagination or size hints.

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 description repeats the title verbatim in its second sentence and opens with a soft metaphor, then ends with a broad server-wide capability menu that is not specific to this tool. The operational content is present but padded by duplication and off-topic text.

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

Completeness4/5

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

For a simple one-parameter read operation, annotations fully cover behavior and the schema fully documents the parameter, so the description's main remaining duty is return content — which it supplies. It is nearly complete, missing only pagination or volume expectations for a 1430-page corpus.

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

Parameters3/5

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

Schema description coverage is 100%: the single 'ang' parameter is already documented as the page (1 to 1430) of Sri Guru Granth Sahib, including range and meaning. The description adds nothing beyond what the schema states, so the baseline 3 applies.

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

Purpose4/5

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

The second sentence states a specific result — every line on an Ang in Gurmukhi with transliteration and English — so the verb (retrieve lines) and resource (Ang) are clear. The opening metaphor 'Scroll the Gurbani' is vaguer, and the description never explicitly distinguishes this page-lookup from siblings like gurbani_get_shabad or gurbani_get_reading, but the resource is distinct enough to differentiate.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The trailing menu ('daily shabad, plans, search, Ang and shabad lookup; whole books') gestures at other capabilities but does not tell the agent which sibling to prefer for a shabad lookup versus a page lookup, leaving routing to inference.

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

gurbani_get_cardScroll the Gurbani: Today's reading one line at a time, for voiceC
Read-onlyIdempotent
Inspect

Scroll the Gurbani. Today's reading one line at a time, for voice.. Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoWhich card, starting at 1. Defaults to 1.
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).
readingNoA reading or plan id from /readings. Defaults to today's reading.

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. The description adds only the vague 'one line at a time' framing and discloses nothing about what a 'card' contains or how scrolling/pagination behaves. It does not contradict annotations, but adds little 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 text repeats the title verbatim, contains a doubled period ('voice..'), and appends a generic multi-tool suite blurb ('daily shabad, plans, search, Ang and shabad lookup; whole books...') that has no bearing on calling this tool. Wording is wasted rather than front-loaded with useful specifics.

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?

The schema is complete and annotations cover the safety profile, and there is no output schema to explain, so the core requirements are met. However, for a tool whose only distinguishing concept is 'a card,' the description never defines that concept or routes the agent away from sibling tools, leaving a real gap.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (n, date, reading) are fully documented in the schema with defaults and formats. The description adds no syntax or format detail beyond it, so the baseline of 3 applies.

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

Purpose2/5

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

The first sentence, 'Scroll the Gurbani. Today's reading one line at a time, for voice..', essentially restates the title verbatim and never clarifies that the tool returns a paginated 'card' of today's reading. It offers no differentiation from close siblings like gurbani_get_today or gurbani_get_reading. The second sentence is generic suite boilerplate covering all Gurbani tools rather than this 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?

There is no explicit when-to-use or when-not-to-use guidance and no sibling is named as an alternative. The phrase 'for voice' hints at a voice-use context but does not tell the agent when to pick this over gurbani_get_today or gurbani_get_card's peers. Usage must be inferred entirely.

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

gurbani_get_readingScroll the Gurbani: One reading or plan, line by lineC
Read-onlyIdempotent
Inspect

Scroll the Gurbani. One reading or plan, line by line. Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA reading or plan id from /readings, or a plan name such as "japji" or "The Gita in 18 Days".

TDQS

C2.7/5.0
Behavior3/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 a small amount of behavioral context with 'line by line' and 'read a passage at a time', hinting at incremental/passage-based output beyond what annotations provide, but does not describe return format, pagination mechanics, or 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 description opens with a vague slogan ('Scroll the Gurbani') rather than the core action, then appends a long, run-on third sentence enumerating unrelated Gurbani capabilities. That third sentence does not earn its place for this specific tool and distracts from the narrower purpose. The structure is not front-loaded with the essential distinction.

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

Completeness3/5

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

For a simple one-parameter read tool with rich annotations and full schema coverage, the description is minimally adequate but leaves gaps. It does not clarify what the tool returns (full reading text, line-by-line stream, or plan metadata) and does not help the agent distinguish it from similar sibling tools. Given the low complexity and safe-read annotations, 3 is the minimum viable score.

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

Parameters3/5

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

Schema description coverage is 100%, so the single required id parameter is fully documented in the schema itself. The description only restates that the tool works on 'one reading or plan' without adding format, validation, or lookup rules beyond what the schema already provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose3/5

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

The description gives a verb ('Scroll', 'read') and resource ('Gurbani', 'one reading or plan'), but the third sentence lists features of the broader Gurbani namespace (daily shabad, plans, search, Ang and shabad lookup) that belong to sibling tools, muddying what this specific tool does. 'One reading or plan, line by line' is the only truly specific phrase, and it is not enough to clearly distinguish from gurbani_get_shabad or gurbani_read_book.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The description never names an alternative sibling tool or states the condition under which this tool should be chosen over gurbani_list_readings, gurbani_read_book, or gurbani_get_ang. The usage must be inferred entirely from the schema parameter.

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

gurbani_get_shabadScroll the Gurbani: A whole shabad by BaniDB id, with transliteration and EnglishB
Read-onlyIdempotent
Inspect

Scroll the Gurbani. A whole shabad by BaniDB id, with transliteration and English. Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA BaniDB shabad ID.

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, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds the useful behavioral fact that the result includes transliteration and English, but says nothing about invalid-id behavior or response size. Adequate with annotations, not rich.

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 statement ('A whole shabad by BaniDB id, with transliteration and English') is well front-loaded. However, it largely duplicates the title, and the second half is app-level boilerplate listing unrelated features ('daily shabad, plans, search, Ang and shabad lookup; whole books from the Library'), which does not earn its place in this tool's description.

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

Completeness4/5

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

A one-parameter read-only lookup with full schema coverage likely has an output schema absent, so the description's note that it returns transliteration and English is a meaningful completion. Combined with annotations covering safety and idempotency, an agent has enough to call it correctly, though the sibling-boundary information remains thin.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'id' parameter, so the schema fully documents it and a baseline of 3 applies. The description repeats the 'BaniDB id' notion but adds no format, range, or example beyond the schema 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?

The title/description states a specific verb and resource: fetch a whole shabad by BaniDB id with transliteration and English. It is clear what the tool returns, but it never names or distinguishes itself from near siblings such as gurbani_get_ang, gurbani_get_reading, or gurbani_search_readings, so the agent must 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 Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance. The phrase 'read a passage at a time' hints at a contrast with passage-level tools, but no alternative is named and no condition for selecting this tool over gurbani_get_ang or gurbani_search_readings is given. The trailing list ('daily shabad, plans, search, Ang and shabad lookup') enumerates other app capabilities rather than routing 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.

gurbani_get_todayScroll the Gurbani: Today's reading, line by line (same as the app shows today)C
Read-onlyIdempotent
Inspect

Scroll the Gurbani. Today's reading, line by line (same as the app shows today). Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and non-destructive, so the safety profile is covered. The description adds only 'same as the app shows today' and line-by-line granularity; it says nothing about output shape, number of lines returned, or date-range 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 second sentence is a catalogue blurb covering the entire Gurbani tool family (shabad, plans, search, Ang, Library books) rather than this tool, so roughly half the text does not earn its place. The opening is front-loaded, but the padding dilutes it.

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-optional-param read-only tool with no output schema and full annotation coverage, the definition is minimally viable. It could usefully say what a 'reading' returns and how the date argument interacts with the 'today' framing, but nothing essential is missing.

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

Parameters3/5

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

Single optional parameter with 100% schema coverage, including the YYYY-MM-DD format and the UTC default. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The opening states a clear resource and scope: today's reading, rendered line by line like the app. It does not, however, differentiate itself from close siblings such as gurbani_get_reading or gurbani_get_card, which an agent must guess between.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 routing to alternatives. The tail sentence lists sibling capabilities (search, Ang lookup, Library books) without saying which condition selects this tool over them.

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

gurbani_list_booksScroll the Gurbani: The whole books in the Library that can be read a passage at a timeC
Read-onlyIdempotent
Inspect

Scroll the Gurbani. The whole books in the Library that can be read a passage at a time. Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. The description adds no behavioral context beyond that — no statement of what the call returns, ordering, or whether results are cached/static. 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?

The text is repetitive and poorly front-loaded: 'Scroll the Gurbani' is restated twice and followed by a run-on inventory of unrelated app features. The core purpose is never stated in a leading, scannable clause.

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

Completeness2/5

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

For a zero-parameter, no-output-schema tool the description should at minimum state that it returns the list of available books and how that differs from gurbani_list_readings. Instead it leaves the return content and the sibling boundary entirely implicit, which is inadequate given the dense cluster of gurbani_* tools.

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, which is the baseline-4 case. The empty schema is consistent with a simple catalogue-listing call, and the description neither helps nor harms 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 never states a verb like 'list' or 'return'; it opens with the marketing phrase 'Scroll the Gurbani' and then vaguely describes 'the whole books in the Library that can be read a passage at a time.' An agent has to infer from the tool name alone that this returns the catalogue of books, and nothing distinguishes it from siblings like gurbani_list_readings or gurbani_read_book.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 trailing sentence lumps together unrelated capabilities ('daily shabad, plans, search, Ang and shabad lookup') rather than telling the agent when this specific tool is the right call versus gurbani_list_readings.

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

gurbani_list_readingsScroll the Gurbani: All curated daily readings and plansC
Read-onlyIdempotent
Inspect

Scroll the Gurbani. All curated daily readings and plans. Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior3/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 only added behavioral fragment is 'read a passage at a time', which is a thin hint about consumption granularity and could equally describe gurbani_read_book. It adds 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 text is a fragment run-on: 'Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time.' Ideas are dumped without hierarchy and the second sentence does not earn its place because it describes other tools' work rather than this one's.

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

Completeness3/5

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

For a zero-param list tool with annotations already carrying the safety profile and no output schema, the description only needs to convey what is returned. It gestures at 'all curated daily readings and plans', but the trailing sibling-capability list muddies the scope and never clarifies the return shape.

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

Parameters4/5

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

The tool takes no parameters, so there is nothing for the description to disambiguate at the argument level; the baseline for a zero-param tool is 4.

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 first sentence plus title indicate a listing of all curated daily readings and plans, which is a recognizable verb+resource. However, the second sentence drifts into 'daily shabad, plans, search, Ang and shabad lookup; whole books from the Library', which describes capabilities owned by sibling tools (gurbani_get_shabad, gurbani_search_readings, gurbani_read_book). This blurs rather than sharpens what this specific 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?

There is no statement of when to use this tool versus the many gurbani_* siblings. Worse, it names 'search' and 'Ang and shabad lookup' without routing guidance, so an agent may pick this tool for a search or a shabad lookup that belongs to gurbani_search_readings or gurbani_get_shabad.

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

gurbani_read_bookScroll the Gurbani: Follow next for the next passage; it carries on into the next chapterC
Read-onlyIdempotent
Inspect

Scroll the Gurbani. Follow next for the next passage; it carries on into the next chapter. Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoPassage within the section, starting at 1.
refNoOptional: jump straight to a passage by its reference, for example "Havamal 139", "Meditations 4.3", "Gita 2.47", "Iliad 1.5" or "10b". Overrides section and n.
bookYesBook id or title from /books, for example japji, sukhmani.
sectionNoChapter, book, poem, letter or daf to start at, as listed in the book (for example 5, "chapter 2", "havamal", or 10b for the second side of a daf). Defaults to the beginning; Bekhorot defaults to today's Daf Yomi page while the cycle is in it.

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, covering the safety profile. The description adds useful continuation behavior ('carries on into the next chapter'), but says nothing about pagination, ordering, or what a passage contains beyond what the schema 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 opening is front-loaded, but the second sentence is a general overview of the whole Gurbani server rather than this tool, mixing unrelated features ('plans, search, Ang and shabad lookup') into a definition that should focus on reading a book passage by passage.

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?

As a read-only tool with no output schema and full schema coverage of its 4 params, the minimum viable information is present. Still, it never explains ordering across chapters/sections or how ref interacts with section for continuation, which would help an agent drive sequential reads.

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

Parameters3/5

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

Schema description coverage is 100%, so book, section, n, and ref are already fully documented in the schema, including the ref override semantics. The description adds no parameter-level detail, so the baseline 3 applies.

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 final clause 'whole books from the Library, read a passage at a time' does convey the specific verb+resource, and the title clarifies sequential passage reading. However, it is tangled with a server-level overview ('daily shabad, plans, search, Ang and shabad lookup') rather than a crisp statement of this tool's function, and it never distinguishes itself from gurbani_get_reading or gurbani_get_today.

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

Usage Guidelines2/5

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

'Follow next for the next passage' implies sequential reading use, but there is no explicit when-to-use versus the many sibling reading tools (gurbani_get_reading, gurbani_get_ang, gurbani_get_card). An agent must infer which tool to pick with no routing guidance.

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

gurbani_search_readingsScroll the Gurbani: Search the curated readings, best match firstC
Read-onlyIdempotent
Inspect

Scroll the Gurbani. Search the curated readings, best match first. Gurbani: daily shabad, plans, search, Ang and shabad lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesWords or a bani's name to search for, for example Japji or humility.

TDQS

C2.9/5.0
Behavior3/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 fully covered. The description adds one genuinely useful behavioral fact beyond the annotations: results are returned best-match first. It says nothing about result count, pagination, or empty-match 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 title is restated almost verbatim in the first two sentences ('Scroll the Gurbani. Search the curated readings, best match first'), which is pure duplication. The third clause then lumps in unrelated features (plans, Ang lookup, Library, passages) that do not belong to this tool, diluting an otherwise short definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 carry the return behavior, yet it never explains what a 'reading' result contains, how many come back, or whether the search covers only curated readings or the whole corpus. The closing feature list introduces scope ambiguity that a single-purpose search tool cannot afford.

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

Parameters3/5

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

Schema coverage is 100% and the schema itself gives a concrete example ('Japji or humility'), so the description carries no additional burden. The description adds nothing about the query parameter — the phrase 'whole books from the Library, read a passage at a time' describes the family at large, not the 'q' input. Baseline 3.

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

Purpose4/5

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

The description states a specific verb+resource ('Search the curated readings') with a ranking cue ('best match first'), so the agent knows this is a search tool rather than a lookup. It does not, however, explicitly differentiate itself from sibling lookups like gurbani_get_reading or gurbani_get_shabad.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 lookups (gurbani_get_ang, gurbani_get_shabad, gurbani_list_readings, gurbani_read_book). The trailing list of unrelated Gurbani features ('daily shabad, plans, search, Ang and shabad lookup; whole books') muddies rather than guides usage.

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

halalornot_ask_is_it_halalHalal or Not: Ask any 'is it halal' questionA
Read-onlyIdempotent
Inspect

Halal or Not. Ask any 'is it halal' question. Covers money (savings, credit cards, mortgages, BNPL, insurance, pensions, trading), crypto, medicine, food and drink, and everyday life (music, dogs, tattoos, nail polish, smoking, games, photos, jobs). Returns the verdict, the main scholarly views and halal alternatives. Also recognises single ingredients and E-numbers

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesThe question in plain words, for example 'Is a credit card halal?'

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare the safe read-only, idempotent, closed-world profile, so the bar is lower. The description adds useful behavioral context beyond annotations: it returns a verdict, main scholarly views, and halal alternatives, and it recognizes single ingredients and E-numbers.

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

Conciseness4/5

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

The description is front-loaded and appropriately sized, with the domain list earning its place by clarifying scope. The opening 'Halal or Not.' repeats the title and is slightly redundant, but there is little wasted text.

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

Completeness4/5

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

With one required parameter fully documented, strong safety annotations, and no output schema, the description supplies the needed return-value context and broad domain coverage. It falls short only by omitting sibling routing and any limitations on question scope.

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

Parameters3/5

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

The input schema already has 100% coverage for the single required q parameter, including an example question. The description adds scope hints like ingredients and E-numbers but does not add syntax, formatting, or constraints beyond what the schema provides, so baseline 3 is appropriate.

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 clearly states the tool answers any 'is it halal' question and returns verdicts, scholarly views, and alternatives. However, it does not distinguish this generic ask tool from the many specialized halalornot siblings such as check_crypto, check_medicine, check_ingredients, or check_product_by_barcode.

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

Usage Guidelines2/5

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

The description implies usage by listing covered domains, but it gives no explicit when-to-use guidance, no exclusions, and no routing between this generic tool and the specialized halalornot_check_* alternatives. An agent must infer when this broad tool is preferable.

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

halalornot_check_cryptoHalal or Not: Is this cryptocurrency halal?B
Read-onlyIdempotent
Inspect

Halal or Not. Is this cryptocurrency halal?. Classifies a coin by what it does (lending, gambling, meme, stablecoin, staking, general-purpose) and gives the scholarly views on crypto and on how it's used

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCoin name or symbol, for example bitcoin, ETH, AAVE.

TDQS

B3.4/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, so safety is covered. The description adds that the tool returns both a functional classification and scholarly views, which is useful content context, but it says nothing about coverage limits, handling of unknown tickers, 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.

Conciseness3/5

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

The first two sentences ("Halal or Not. Is this cryptocurrency halal?.") duplicate the name and title verbatim and earn no place. The substantive sentence is dense and informative, but the definition is not front-loaded with it.

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

Completeness4/5

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

With no output schema, the description usefully sketches what comes back (a functional classification plus scholarly views), which is the key thing missing from structured fields. For a one-parameter read-only lookup it is nearly complete, lacking only edge-case behavior.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'coin' parameter (name or symbol, with examples), so the schema does the heavy lifting. The description adds no syntax, formatting, or ambiguity guidance beyond what is already structured.

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 second sentence names a specific verb (classifies) and resource (a coin) and enumerates the classification buckets (lending, gambling, meme, stablecoin, staking, general-purpose), which separates it from halalornot_check_fund and halalornot_screen_stock. The opening two sentences merely restate the tool name and title, adding no new information.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is for individual coins versus the fund/stock siblings, but the description never states when to use it, when not to, or names an alternative. No prerequisites or input constraints are given.

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

halalornot_check_fundHalal or Not: Is this fund, ETF or pension fund halal?A
Read-onlyIdempotent
Inspect

Halal or Not. Is this fund, ETF or pension fund halal?. Recognises Shariah funds by name or ticker. For other US-registered funds and ETFs, reads the latest SEC holdings report and screens every holding by industry and debt. UK-listed ETFs (VUSA, CSPX, VWRL, SWDA, EQQQ, ISF and others) and fund names (Vanguard S&P 500, FTSE 100 tracker, LifeStrategy) are answered through a US fund tracking the same index, or from what the index holds, with UK Shariah options

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesFund or ETF ticker (VOO, QQQ, SPUS) or a Shariah fund name.

TDQS

A3.6/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), so the bar is lower. The description adds real behavioral context beyond that: it reads the latest SEC holdings report and screens every holding by industry and debt, and explains the UK fallback path. It does not say what happens for unsupported or ambiguous tickers.

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?

Purpose is front-loaded and the length is justified by the non-obvious resolution logic. The final sentence is dense (a long list of ETF examples and index-holdings fallback) and could be tighter, but every sentence carries information.

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

Completeness3/5

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

With no output schema, the description should indicate what the agent receives back, but it never states that a halal/haram verdict (or screening rationale) is returned. It also omits error behavior for unknown tickers. The method coverage is good, so it is adequate but has clear gaps for a single-param decision tool.

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

Parameters3/5

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

Schema coverage is 100% and there is only one parameter, so the schema already carries the semantics — baseline 3. The description restates that tickers and Shariah fund names are accepted, which the schema's own description already conveys, so little is added.

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 fund'), names the asset classes covered (fund, ETF, pension fund), and explains the mechanism (Shariah recognition by name/ticker, SEC holdings screening). It implicitly separates itself from halalornot_screen_stock and halalornot_check_crypto by scope, though it never names those siblings as alternatives.

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

Usage Guidelines3/5

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

Usage is implied through the geographic/coverage detail — US-registered funds screened directly, UK-listed ETFs routed via an index-tracking US fund — which tells the agent when this tool can answer. However there is no explicit when-to-use/when-not guidance and no mention of the sibling screen_stock tool an agent might otherwise pick.

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

halalornot_check_ingredientsHalal or Not: Check an ingredients listA
Read-onlyIdempotent
Inspect

Halal or Not. Check an ingredients list. Pass the ingredients exactly as printed on the pack. Returns an overall verdict, a verdict for each school, and every flagged ingredient with the reason

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNo'cosmetic' for products used on the skin, 'medicine' for medicines and supplements; these change how alcohol, carmine and necessity are treated.food
ingredientsYesIngredients list as printed, comma separated.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, and the description adds meaningful return context (overall verdict, per-school verdicts, flagged ingredients with reasons) that compensates for the missing output schema. It adds little beyond that—no auth, limits, or failure behavior—but against strong annotations this is solid.

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?

Tight and front-loaded, with the return shape stated up front. The opening fragment 'Halal or Not.' is brand repetition of the title and is the one piece of low-value text, but overall there is little waste.

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

Completeness4/5

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

For a simple two-parameter lookup with no output schema, the description covers the purpose, input requirement, and return contents adequately. It is slightly under-complete on the context parameter and on how this differs from sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are documented; baseline is 3. The description reinforces the ingredients format ('exactly as printed') but says nothing about the context enum, so it adds only marginal value beyond the schema.

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

Purpose4/5

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

States a specific verb (check) and resource (an ingredients list), making the purpose immediately clear. However it does not distinguish itself from close siblings like halalornot_ask_is_it_halal, halalornot_explain_ingredient, or halalornot_check_product_by_barcode, so an agent cannot route confidently from 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 or when-not-to-use guidance and no mention of alternatives among the many halalornot_* siblings. The only instruction ('Pass the ingredients exactly as printed on the pack') is an input-formatting note, not usage routing.

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

halalornot_check_medicineHalal or Not: Is this medicine halal?A
Read-onlyIdempotent
Inspect

Halal or Not. Is this medicine halal?. Reads a medicine's active and inactive ingredients from its US label (openFDA) and flags gelatine, alcohol, pig-derived enzymes and heparin. The headline and say line lead with the ruling on necessity, so nobody stops a prescribed medicine; the ingredient reading follows (ingredient_headline, verdict)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBrand or generic name.

TDQS

A3.6/5.0
Behavior4/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 burden is light. The description still adds meaningful context beyond them: the underlying openFDA US-label data source, the specific substances flagged, and the deliberate 'ruling on necessity' framing that prevents users from abandoning prescribed medicine. Only the result format details (e.g. pagination, error behavior) remain unstated.

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 two sentences ('Halal or Not. Is this medicine halal?.') merely restate the title and tool name and could be dropped. The remaining sentence is dense and front-loaded with the important material, but the redundant lead costs it.

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 reasonably covers returns by naming ingredient_headline and verdict and describing the headline/say line ordering. For a single-parameter, closed-world read tool with full annotations, the agent has enough to call it correctly, though the response shape is only partially sketched.

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

Parameters3/5

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

Schema description coverage is 100% and the single 'name' parameter is documented in-schema as 'Brand or generic name.' The description adds no format, casing, or disambiguation guidance beyond that, so the baseline 3 for a fully-covered single parameter is appropriate.

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 ('Reads a medicine's active and inactive ingredients from its US label (openFDA) and flags gelatine, alcohol, pig-derived enzymes and heparin'), which cleanly separates it from siblings like check_ingredients, explain_ingredient, and check_product_by_barcode. The data source (openFDA US label) further pins down scope for an agent choosing among halalornot tools.

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

Usage Guidelines2/5

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

There is no explicit when-to-use, when-not-to-use, or named alternative among the halalornot siblings. The reader can infer the tool applies to medicines, but nothing routes the agent between this and check_ingredients or explain_ingredient when a query is ambiguous.

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

halalornot_check_product_by_barcodeHalal or Not: Check a product by barcodeB
Read-onlyIdempotent
Inspect

Halal or Not. Check a product by barcode. Looks the barcode up in Open Food Facts, then Open Beauty Facts, and checks its ingredients

ParametersJSON Schema
NameRequiredDescriptionDefault
barcodeYesEAN-13, EAN-8 or UPC barcode digits.

TDQS

B3.4/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 behavior. The description adds a genuine behavioral detail — the Open Food Facts then Open Beauty Facts lookup chain — which explains result provenance, but it omits what happens when a barcode is not found and does not describe rate limits or the verdict shape.

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 purpose before the mechanism. The opening 'Halal or Not.' fragment largely duplicates the title, which is minor waste, but the rest is efficient.

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

Completeness3/5

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

There is no output schema, so the description carries the burden of conveying return values, yet 'checks its ingredients' does not explain the halal verdict, confidence, or possible error results. For a single-parameter tool this is workable but leaves the agent guessing about output.

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

Parameters3/5

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

Schema description coverage is 100%; the 'barcode' parameter is fully documented in the schema with accepted formats (EAN-13, EAN-8, UPC). The description adds no syntax or format meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('check a product by barcode') and even names the data sources and the ingredient check. It is clearly distinguishable from siblings like check_ingredients (ingredient text) and search_products (name search), though it never explicitly contrasts itself with them.

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

Usage Guidelines3/5

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

The barcode-centric phrasing implies the triggering condition (you have a barcode), but there is no explicit when-to-use, when-not-to-use, or named alternative such as check_ingredients for non-barcode input. Usage must be inferred.

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

halalornot_explain_ingredientHalal or Not: Explain one ingredient or E-numberA
Read-onlyIdempotent
Inspect

Halal or Not. Explain one ingredient or E-number. For example 'E471', 'carmine', 'prawns', 'whey' or 'alcohol denat'. Returns the verdict for each school and the reasoning

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe ingredient or E-number, for example E471, carmine, gelatin or alcohol denat.
contextNoWhether the ingredient is in food or a cosmetic. Defaults to food.

TDQS

A3.7/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 behavior. The description adds output context with 'Returns the verdict for each school and the reasoning' — valuable since there is no output schema — though it does not mention any limits or input-validation constraints.

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, front-loaded sentences that are easy to scan. The leading 'Halal or Not.' brand fragment slightly duplicates the title, but overall the text is efficient with little waste.

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

Completeness4/5

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

For a read-only lookup with fully described parameters and no output schema, the definition is nearly complete: it names the resource, gives examples, and sketches the return shape (per-school verdict plus reasoning). The only gap is the absence of any sibling routing or context-enum guidance.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented; the description's ingredient examples reinforce the 'name' parameter but add nothing new. The 'context' (food/cosmetic) parameter is not mentioned at all in the description, so the schema carries the full burden there.

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: 'Explain one ingredient or E-number', with concrete examples (E471, carmine, prawns, whey). The singular 'one' implicitly distinguishes it from the bulk halalornot_check_ingredients, but no sibling is named. Clear purpose, no explicit differentiation.

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

Usage Guidelines3/5

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

Usage is implied: explain a single ingredient or E-number. There is no explicit when-to-use guidance, no exclusions, and no mention of the adjacent halalornot_check_ingredients (bulk) or halalornot_explain_schools alternatives, leaving routing to inference.

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

halalornot_explain_schoolsHalal or Not: How the four schools differ on foodB
Read-onlyIdempotent
Inspect

Halal or Not. How the four schools differ on food. Answers 'is it halal?' for food, cosmetics, medicines, stocks, funds, crypto, money products and everyday life, showing where the four Sunni schools and the main scholarly bodies agree and where they differ, with the reasoning and halal alt...

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already establish readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds that output includes the reasoning and halal alternatives, which is modest extra value, but it never explains why a tool that 'answers is it halal' takes no input or what form the answer takes.

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 leading 'Halal or Not.' merely repeats the title and burns space, and the sentence becomes an overstuffed run-on listing every asset category. The core idea (four schools, agreement/difference, reasoning) is front-loaded but padded.

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

Completeness3/5

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

For a zero-param, read-only, no-output-schema tool the description gives a reasonable sense of what comes back (school-by-school agreement, reasoning, halal alternatives), but it omits any return-shape hint and never reconciles its broad scope with the dedicated check_* siblings, leaving real ambiguity about when this is the right call.

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

Parameters4/5

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

The schema declares zero parameters at 100% coverage, so there is nothing for the description to document. Baseline 4 applies; the description correctly implies a parameterless, topic-driven explanation rather than a lookup keyed on user input.

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 specific subject ('how the four Sunni schools differ on food') and adds reasoning/agreement detail, but it also claims to answer 'is it halal?' across food, cosmetics, medicines, stocks, funds, crypto and money products — a scope that overlaps almost every sibling (halalornot_check_crypto, check_fund, screen_stock, ask_is_it_halal). The result is a purpose that is stated but not cleanly distinguished from the rest of the family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 statement of when to choose this tool over ask_is_it_halal, explain_ingredient, or the check_* siblings. Given the heavy overlap in the broad 'answers is it halal' claim, the absence of any routing or exclusion guidance 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.

halalornot_get_prayer_timesHalal or Not: Today's prayer times for a place, with Ramadan suhoor and iftarC
Read-onlyIdempotent
Inspect

Halal or Not. Today's prayer times for a place, with both Asr times and Ramadan suhoor and iftar. Answers 'is it halal?' for food, cosmetics, medicines, stocks, funds, crypto, money products and everyday life, showing where the four Sunni schools and the main scholarly bodies agree and where they differ, with the reasoning and halal alt...

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude of the place, in decimal degrees. Use with lon instead of city.
lonNoLongitude of the place, in decimal degrees. Use with lat instead of city.
cityNoCity name, for example London or Chicago, IL.
dateNoThe day, YYYY-MM-DD. Defaults to today.
methodNoCalculation method: isna (North America), mwl (Muslim World League), umm_al_qura, egypt, karachi or moonsighting.

TDQS

C2.7/5.0
Behavior3/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 output context (Asr times plus suhoor/iftar) but then fills the rest with irrelevant halal-checking claims that add no behavioral value for a prayer-times 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?

The core purpose is front-loaded in the first sentence, but the description is then padded with a long block of unrelated halal-ruling content (food, cosmetics, medicines, schools, reasoning, alternatives) that does not earn its place and appears to be boilerplate from a sibling tool.

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, no-required-param tool with full schema coverage and no output schema, the description supplies reasonable output context (Asr times, suhoor/iftar). But the contamination by off-topic copy and absence of any when-to-use guidance leaves it only minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents lat, lon, city, date and method, including the enum values. The description adds no parameter meaning beyond that, which is the baseline 3 when the schema does the heavy lifting.

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

Purpose3/5

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

The opening sentence gives a concrete verb+resource: today's prayer times for a place, including Asr times and Ramadan suhoor/iftar. However, the remainder of the description abruptly pivots to generic 'is it halal?' copy about food, cosmetics, stocks and crypto, which describes a different tool and muddies what this one actually 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 tool versus alternatives such as halalornot_ask_is_it_halal or halalornot_explain_schools, nor any mention of prerequisites for lat/lon vs city. Usage must be inferred entirely from the title.

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

halalornot_list_rulesHalal or Not: The full rulebookB
Read-onlyIdempotent
Inspect

Halal or Not. The full rulebook. Answers 'is it halal?' for food, cosmetics, medicines, stocks, funds, crypto, money products and everyday life, showing where the four Sunni schools and the main scholarly bodies agree and where they differ, with the reasoning and halal alt...

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior3/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 and determinism are covered. The description adds useful domain context — scholarly agreement/dissent plus reasoning and halal alternatives — but the trailing truncation ('halal alt...') cuts off a stated behavioral trait.

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 it is a single run-on enumeration that ends mid-word ('halal alt...'), so the description is truncated rather than concise — the closing promise of the tool is literally missing.

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 no-param, read-only listing tool with no output schema, the description should at minimum say what the returned rulebook contains or how it is structured. It gestures at that ('showing where the four Sunni schools... agree and where they differ') but the truncation leaves the return content underspecified.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description correctly does not pretend any inputs 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 conveys the coverage domain (food, cosmetics, medicines, stocks, funds, crypto, money, everyday life) and the comparative angle across the four Sunni schools, but it never states the actual operation — that this tool returns a list of rules — and reads much like an answering tool, blurring it with halalornot_ask_is_it_halal and halalornot_list_topics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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: nothing says to pick this over ask_is_it_halal (for verdicts), list_topics (for topic discovery) or explain_schools (for madhhab comparison), even though all four sit 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.

halalornot_list_topicsHalal or Not: Every question the rulebook coversC
Read-onlyIdempotent
Inspect

Halal or Not. Every question the rulebook covers. Answers 'is it halal?' for food, cosmetics, medicines, stocks, funds, crypto, money products and everyday life, showing where the four Sunni schools and the main scholarly bodies agree and where they differ, with the reasoning and halal alt...

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOnly topics in this area: money, crypto, medicine, food or life.

TDQS

C2.8/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 covered. The description adds that results show where the four Sunni schools and main scholarly bodies agree and differ, with reasoning and alternatives, which is useful content context. It stops short of describing result format or pagination, which is a minor gap given a read-only list tool.

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 opening two fragments ('Halal or Not. Every question the rulebook covers.') simply repeat the tool name and title before any operative content, which is wasteful front-loading. The remainder is a single long sentence that packs scope detail but is truncated, so the structure is adequate rather than efficient.

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

Completeness3/5

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

For a read-only list tool with one optional, fully documented enum parameter and no output schema, the minimum bar is met: the scope of covered subject areas is stated. However, the absence of any usage guidance relative to the many halalornot siblings leaves an agent without enough to reliably choose this tool over halalornot_list_rules or the specific check tools.

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

Parameters3/5

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

Schema description coverage is 100% with a single optional enum parameter (money, crypto, medicine, food, life), so the schema already carries the parameter semantics. The description references the same domains (food, cosmetics, medicines, stocks, funds, crypto, money products, everyday life) but adds no syntax or filtering detail beyond what the schema states. Baseline 3 applies.

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 conveys that this tool surfaces the topics/questions the rulebook covers (food, cosmetics, medicines, money, crypto, life), which aligns with a list operation, but it phrases the purpose as answering 'is it halal?' rather than enumerating topics. It does not distinguish itself from close siblings like halalornot_list_rules or halalornot_ask_is_it_halal, leaving the agent to infer which list is which.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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. With siblings such as halalornot_list_rules and halalornot_ask_is_it_halal in scope, the description never explains when to enumerate topics versus query a specific item or fetch the rule list, so selection is left entirely to inference.

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

halalornot_screen_stockHalal or Not: Is this stock halal?A
Read-onlyIdempotent
Inspect

Halal or Not. Is this stock halal?. Screens a US-listed stock via Mizan: first the business (each standard's excluded industries), then the AAOIFI, Dow Jones Islamic, S&P Shariah and MSCI Islamic debt screens. A company name also works (nvidia, philip morris). Links to halal alternatives in the same industry

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesA US stock ticker, for example AAPL or TSLA.

TDQS

A3.7/5.0
Behavior4/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 bar is lower, yet the description adds real behavior: the ordered sequence of screens applied and the fact that results link to halal alternatives. It does not disclose response format or timing, but the added process detail is substantive.

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 body is short and dense with real information, but the leading 'Halal or Not. Is this stock halal?.' duplicates the title verbatim and pushes the actual substance to the third sentence. Two of five fragments do not earn their place.

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

Completeness4/5

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

No output schema exists, and the description compensates by indicating the result is a per-standard screening plus links to halal alternatives. For a one-parameter, read-only tool that is nearly complete; only the precise verdict shape remains unstated.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description extends the single parameter beyond the schema's 'US stock ticker' by noting a company name also works with concrete examples (nvidia, philip morris). That is genuine added meaning about accepted input formats.

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 ('Screens a US-listed stock') plus the methodology (business screen, then AAOIFI/Dow Jones/S&P/MSCI debt screens), which separates it from siblings like halalornot_check_crypto or check_fund. The opening two fragments merely restate the title, and it never explicitly contrasts with mizan_screen_company or halalornot_ask_is_it_halal, so it stops short of 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?

'A company name also works (nvidia, philip morris)' gives useful input guidance, and the mention of links to halal alternatives hints at follow-up flow. But there is no statement of when to pick this over the sibling screeners (mizan_screen_company, halalornot_ask_is_it_halal) or any exclusion, so usage is only implied.

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

halalornot_search_productsHalal or Not: Find products by name and check themA
Read-onlyIdempotent
Inspect

Halal or Not. Find products by name and check them. Searches Open Food Facts by name or brand (for example 'Haribo Starmix') and returns up to five matches, each with a verdict, plus a 'say' line for the best match. Where a brand states the source of an ingredient its label leaves unnamed (Haribo: pork gelatine in its standard UK range), that statement decides it and is quoted in brand_statement

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesA product, brand or barcode to look up, for example Haribo Starmix or 5000159484695.
countryNoOpen Food Facts country slug, for example united-kingdom, united-states, france. Use 'world' for no filter. Also picks the Amazon store for halal versions (amazon.co.uk for the UK and Ireland).united-kingdom

TDQS

A3.7/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). The description adds real behavioral value beyond that: it discloses the result shape (up to five matches, each with a verdict, plus a 'say' line for the best match) and explains the brand_statement override rule with a concrete example.

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

Conciseness4/5

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

Front-loaded with purpose first, then return behavior and the brand_statement rule. The opening 'Halal or Not. Find products by name and check them.' partially restates the title, but the remaining sentences each add substantive 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?

With no output schema, the description appropriately explains the return values (verdicts, 'say' line, brand_statement). It covers purpose, scope, and output well, though it omits any statement about when to prefer the barcode-specific sibling.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already documented in the schema. The description adds only the 'Haribo Starmix' example of a name query and no country-format detail, so it stays at the baseline for a fully-covered 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: searches Open Food Facts by name or brand and returns up to five matches. It is clearly a search/lookup tool, but it does not explicitly differentiate itself from the sibling halalornot_check_product_by_barcode, and the q parameter even accepts barcodes, leaving the boundary slightly ambiguous.

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

Usage Guidelines3/5

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

Usage is only implied by 'Find products by name and check them' and the search behavior. There is no explicit when-to-use guidance, no exclusions, and no reference to alternatives such as check_product_by_barcode or ask_is_it_halal.

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

jobspotter_get_jobJob Spotter: Details for one job from a search resultA
Read-onlyIdempotent
Inspect

Job Spotter. Details for one job from a search result. Use when the user asks about one of the results, for example "tell me more about the second one" or "what's the apply link for the Uber job?". Pass the id from a /v1/jobs result exactly as given; ids carry what is needed, so they keep working later. NHS Jobs and Teaching Vacancies results include the closing date

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe id from a /v1/jobs result, copied exactly, for example muse-22049500, remotive-2091141 or nhsjobs-C9413-26-0725. Some ids are longer, with a ~ and a code after it.

TDQS

A4.3/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). The description adds real behavioral context beyond them: ids remain valid later because they carry what is needed, and NHS Jobs/Teaching Vacancies results surface the closing date. These are useful traits not derivable from annotations.

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

Conciseness4/5

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

Front-loaded purpose followed by usage examples and the key id constraint; every sentence carries information. The opening 'Job Spotter. Details for one job...' mildly duplicates the title, costing some tightness but little else.

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 still names a concrete returned field (closing date for NHS Jobs/Teaching Vacancies) and explains id durability, covering what an agent needs to call and reuse it. It could go further on the shape of a job-detail response, but the essentials are present.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by stressing that the id must be copied exactly as given and that it encodes sufficient state to keep working later. That reinforces correct invocation rather than merely restating the field.

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 (retrieve details for one job) and scopes it to a job that came from a prior search result, which cleanly separates it from jobspotter_search_jobs. An agent can tell what this returns without opening the schema.

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

Usage Guidelines4/5

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

Gives explicit triggering conditions with concrete user-phrasing examples ('tell me more about the second one', 'what's the apply link for the Uber job'), which is strong context. It doesn't explicitly name the sibling search tool or state when-not to use this, so it stops short of the top tier.

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

jobspotter_search_jobsJob Spotter: Search current job listingsA
Read-onlyIdempotent
Inspect

Job Spotter. Search current job listings. Use for "find remote Python jobs", "marketing jobs in New York", "junior data analyst jobs posted this week", "senior software engineer jobs in London", "nurse jobs in Manchester". Put the job words in what and the place in where. Everyday phrasing in what also works: level words (junior, senior), "remote", "in " and "this week" are picked out. Listings from Remotive, Himalayas, Jobicy and Remote OK must be credited to them, which say already does.

ParametersJSON Schema
NameRequiredDescriptionDefault
whatNoJob title, skill or field, for example "python developer" or "marketing". Required unless where is given.
levelNoentry (junior, graduate, intern), mid or senior.
limitNoHow many results, 1 to 10. Default 10.
whereNoA city (New York, Austin, TX, London, Birmingham, UK), a US state (Texas), a UK county or region (Kent, Yorkshire), a UK postcode, a country (USA, UK, Germany), "remote", or remote in a country ("remote US").
countryNoUS or UK, when the place exists in both (Birmingham, Manchester, Cambridge) and the user's country is known. Optional.
posted_within_daysNoOnly jobs posted in the last N days, 1 to 90. Default 30. Use 7 for "this week".

TDQS

A4/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 the safety profile is covered. The description adds genuinely new behavioral context: the upstream sources (Remotive, Himalayas, Jobicy, Remote OK), the attribution obligation, and the note that `say` handles crediting automatically.

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

Conciseness4/5

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

Front-loaded with purpose before the examples, and each sentence is largely functional. The redundant 'Job Spotter.' opener and five near-identical example queries add some length that could be trimmed without loss.

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, yet the description says only that it returns listings from named sources and covers the natural-language input model well. It stops short of describing the return shape (fields, ordering), but for a search tool with a full schema and rich annotations this is close to complete.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real value by explaining that everyday phrasing is parsed — level words, 'remote', 'in <city>', and 'this week' are mapped to level/where/posted_within_days. This tells the agent it can pass natural language rather than only structured values.

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

Purpose4/5

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

States a specific verb and resource ('Search current job listings') and reinforces intent with concrete query examples like 'find remote Python jobs'. The purpose is unmistakable, but it never names the sibling jobspotter_get_job, so the search-vs-fetch distinction is left to inference.

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

Usage Guidelines4/5

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

Provides rich, concrete usage context via query examples ('marketing jobs in New York', 'nurse jobs in Manchester') and explains how to route words between what and where. However, it gives no when-not-to-use guidance or explicit alternatives (e.g., use get_job for a single listing), so it stops short of the top band.

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

lore_get_cardScroll the Lore: Today's reading one line at a time, for voiceC
Read-onlyIdempotent
Inspect

Scroll the Lore. Today's reading one line at a time, for voice.. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoWhich card, starting at 1. Defaults to 1.
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).
readingNoA reading or plan id from /readings. Defaults to today's reading.

TDQS

C2.4/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 safety is covered. The description contributes one genuinely extra behavioral fact: output is delivered 'one line at a time, for voice', implying chunked/TTS-oriented returns. It still omits what a card contains and how pagination/indexing behaves, so it is only a partial addition.

Agents need to know what a tool does to the world before calling 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 duplicates the title including its typo ('for voice..'), and the second is a run-on list of domain content (search, plans, four epic works) that is mostly irrelevant to calling this single tool. Not front-loaded on the actual function, and the wasted duplication should be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 carries the burden of explaining what a card is and what the call returns. It never does: 'card' is undefined, and it is unclear whether the tool returns a single indexed line, a whole passage, or the day's reading. For a tool with an opaque noun in its name, this is incomplete.

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

Parameters3/5

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

Schema coverage is 100% and all three parameters (n, date, reading) are fully documented in the schema, so the baseline of 3 applies. The description adds nothing about parameter behavior beyond the vague phrase 'one line at a time', which only loosely aligns with the schema's 'Which card, starting at 1'.

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

Purpose2/5

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

The description opens by restating the title nearly verbatim ('Scroll the Lore. Today's reading one line at a time, for voice..'), then pivots to marketing the whole mythology domain (Theogony, Iliad, Odyssey, Poetic Edda, plans, search). It never defines what a 'card' is or how this differs from its direct siblings lore_get_reading and lore_get_today, so an agent cannot tell what resource it actually fetches.

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

Usage Guidelines2/5

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

The only usage cue is the fragment 'for voice', which implies a TTS/voice-assistant context, but no when-to-use or when-not-to-use is stated and no alternative sibling is named. Given six sibling lore_* tools including get_reading and get_today, the absence of routing guidance is a real gap.

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

lore_get_readingScroll the Lore: One reading or plan, line by lineB
Read-onlyIdempotent
Inspect

Scroll the Lore. One reading or plan, line by line. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA reading or plan id from /readings, or a plan name such as "japji" or "The Gita in 18 Days".

TDQS

B3.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 covered. The description usefully adds the content domain (Greek and Norse myth, Theogony, Iliad, Odyssey, Poetic Edda) and that output is line-by-line explanation, but adds little else about behavior beyond 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.

Conciseness3/5

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

It opens with a clear purpose phrase, but the third clause is a run-on list of family-wide capabilities (search, plans, full epics) that don't belong to this specific tool and dilute the front-loaded intent.

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 rich annotations and no output schema, the description is roughly adequate, but it omits the routing guidance needed to pick it over the many sibling lore_* and parallel-family get_reading tools, and the misleading 'search' mention leaves a gap.

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

Parameters3/5

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

With a single parameter and 100% schema description coverage, the schema already documents that 'id' is a reading/plan id or a plan name. The description's 'one reading or plan' wording aligns but adds no new syntax, format, or fallback details beyond the schema.

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

Purpose4/5

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

The title and description convey that this retrieves a single reading or plan and presents it 'line by line', a specific scope that distinguishes it from lore_list_readings and lore_search_readings. However, the phrasing bundles family capabilities ('search, and the whole Theogony...') into this tool's description, blurring its exact action versus siblings like lore_get_card or lore_get_today.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance: nothing says to call lore_list_readings/lore_search_readings first to obtain an id, nor how this differs from lore_get_today or lore_get_card. The mention of 'search' and 'plans' reads as content coverage rather than routing advice, leaving the agent to infer the workflow.

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

lore_get_todayScroll the Lore: Today's reading, line by line (same as the app shows today)C
Read-onlyIdempotent
Inspect

Scroll the Lore. Today's reading, line by line (same as the app shows today). Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).

TDQS

C2.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 externally. The description adds only 'same as the app shows today', which conveys no additional behavioral detail such as scope of the daily content, ordering, or what happens when a date has no reading.

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 two sentences are tight and front-loaded, but the third is a long feature list that does not earn its place in a single-tool definition. Structure is acceptable yet partly wasted on content that belongs to sibling tools.

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

Completeness3/5

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

For a zero-required-parameter, read-only tool with a fully documented schema and complete annotations, the definition is nearly sufficient, and 'line by line (same as the app shows today)' hints at the return shape absent an output schema. The off-topic catalog sentence dilutes rather than completes the picture.

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

Parameters3/5

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

Schema description coverage is 100%, and the single date parameter is already documented as optional YYYY-MM-DD defaulting to today (UTC). The description adds nothing about the parameter, so the baseline 3 applies when the schema carries the full load.

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 first two sentences state a specific resource and scope: today's reading, line by line, as shown in the app. However, the third sentence pivots into catalog marketing (plans, search, whole epics) that describes other siblings rather than this tool, so it does not cleanly separate lore_get_today from lore_get_reading or lore_search_readings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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. Worse, mentioning 'plans, search, and the whole Theogony... read a passage at a time' evokes capabilities that belong to lore_list_readings, lore_search_readings and lore_read_book, potentially steering the agent toward the wrong sibling.

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

lore_list_booksScroll the Lore: The whole books in the Library that can be read a passage at a timeC
Read-onlyIdempotent
Inspect

Scroll the Lore. The whole books in the Library that can be read a passage at a time. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.7/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 no behavioral context beyond that - no indication of ordering, grouping by tradition, or what a 'book' record contains - just marketing copy.

Agents need to know what a tool does to the world before calling 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 opens by restating the title verbatim and then runs on as a comma-spliced fragment mixing content examples, features (plans, search), and books. Little of it is front-loaded as an actionable statement of 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 no-param, no-output-schema listing tool the description does convey the content scope, but it never clarifies that the return value is a list of books rather than passages or readings, leaving the distinction from lore_list_readings ambiguous.

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

Parameters4/5

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

The tool takes zero parameters, so the schema cannot carry semantic gaps; the baseline of 4 applies. The description adds nothing parameter-related, which is acceptable here.

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 gestures at the resource ('The whole books in the Library') but never uses a clear verb like 'list', and 'Scroll the Lore' is a brand phrase rather than a stated action. It also names content (Greek/Norse myth, Theogony, Iliad, Odyssey, Poetic Edda) and adjacent features (daily readings, search, plans), which blurs the boundary with siblings lore_list_readings and lore_read_book.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 lore_* siblings or the parallel gita_list_books / stoics_list_books tools. The agent must infer that this is the catalog-listing entry point.

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

lore_list_readingsScroll the Lore: All curated daily readings and plansB
Read-onlyIdempotent
Inspect

Scroll the Lore. All curated daily readings and plans. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior3/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 only content scope (which myths/texts are included) rather than behavior — no mention of pagination, ordering, or result shape for a list tool.

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 sentence merely restates the title ('All curated daily readings and plans'), spending space without adding information. The remainder is a run-on that mixes several features, so the actual distinguishing purpose is not 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?

With no output schema, the description carries the burden of telling the agent what comes back. It indicates that curated readings and plans are returned, which is partially sufficient for a zero-param list tool, but the conflation of search and full-text reading features leaves the tool's exact output scope ambiguous.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description does not need to explain argument syntax and does not mislead about inputs.

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 conveys a list-style tool covering 'All curated daily readings and plans', which is roughly the right resource. However, it never states a clear verb ('list' is implied only by the branding 'Scroll the Lore') and it bundles features belonging to siblings — 'search' (lore_search_readings) and 'read a passage at a time' (lore_read_book/lore_get_reading) — so an agent cannot cleanly separate this from those 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 tool versus lore_get_today, lore_get_reading, lore_search_readings, or lore_list_books. The only usage signal is the vague branding verb 'Scroll', which is left for the agent to interpret. No exclusions or prerequisites are given.

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

lore_read_bookScroll the Lore: Follow next for the next passage; it carries on into the next chapterC
Read-onlyIdempotent
Inspect

Scroll the Lore. Follow next for the next passage; it carries on into the next chapter. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoPassage within the section, starting at 1.
refNoOptional: jump straight to a passage by its reference, for example "Havamal 139", "Meditations 4.3", "Gita 2.47", "Iliad 1.5" or "10b". Overrides section and n.
bookYesBook id or title from /books, for example iliad, odyssey.
sectionNoChapter, book, poem, letter or daf to start at, as listed in the book (for example 5, "chapter 2", "havamal", or 10b for the second side of a daf). Defaults to the beginning; Bekhorot defaults to today's Daf Yomi page while the cycle is in it.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false). The description's only behavioral addition is cross-chapter continuation, and it references a 'next' navigation concept that has no corresponding schema parameter, which is more confusing than clarifying. No return-format or pagination mechanics are 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 opening 'Scroll the Lore' is not the tool's function, and the sentence sprawling across 'daily readings ... plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda' spends most of its length on feature lists tied to siblings rather than this tool's job. It is neither front-loaded nor free of wasted content.

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, fully-documented-schema book reader with annotations covering safety, the definition is minimally viable: a caller learns the domain and the reading model but not how to disambiguate from the other lore reading/search tools. Given no output schema, some explanation of the sequential return behavior would help.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents book, section, n, and ref in detail (including examples and override semantics). The description adds no parameter meaning beyond that, so the baseline 3 applies.

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 name and title hint at sequential passage reading, and the description says the corpus is 'read a passage at a time.' However, the lead 'Scroll the Lore' is vague and the body conflates features that belong to sibling tools ('daily readings explained line by line, plans, search'), muddying what this one tool actually does relative to lore_get_reading, lore_get_today, and lore_search_readings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 implies sequential progress ('Follow next for the next passage; it carries on into the next chapter') but never states when to pick this tool over lore_get_reading, lore_get_today, or lore_search_readings. No exclusions or precondition guidance are given.

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

lore_search_readingsScroll the Lore: Search the curated readings, best match firstB
Read-onlyIdempotent
Inspect

Scroll the Lore. Search the curated readings, best match first. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesWords or a name to search for, for example Loki or Persephone.

TDQS

B3.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 covered structurally. The description adds only 'best match first' (relevance ordering) and does not disclose result count, pagination, or matching behavior — modest added value against an already-strong annotation set.

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 statement is front-loaded, but the definition opens with a tagline that duplicates the title and then trails into a comma-heavy inventory of texts and generic terms ('plans, search'). It is readable but not tight; several clauses do not earn their place.

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

Completeness3/5

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

For a one-parameter read-only search with an annotated safety profile and a fully documented parameter, the description is adequate — it establishes the corpus and ranking behavior. It stops short of describing what a result looks like or whether results are limited/paginated, which for a tool with no output schema is a real but minor gap.

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

Parameters3/5

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

With a single parameter at 100% schema description coverage ('Words or a name to search for, for example Loki or Persephone'), the schema fully carries parameter semantics. The description adds nothing beyond scope of the corpus, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource — 'Search the curated readings' — and the scope (Greek and Norse myth, Theogony/Iliad/Odyssey/Poetic Edda) distinguishes it from the lore_get_* and lore_list_* siblings. The leading tagline 'Scroll the Lore' and the title restatement add noise, but the operational purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not guidance and no routing to alternatives such as lore_list_readings (browse) or lore_get_reading (read one passage). 'Best match first' describes ranking output, not when to choose this tool over its siblings, so usage must be inferred purely from the word 'search'.

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

lowermybill_get_bill_helpLower My Bill: Official help programmes for a billA
Read-onlyIdempotent
Inspect

Lower My Bill. Official help programmes for a bill. Use for "is there help paying my internet bill?", "is there a broadband social tariff?", "help with my energy bill in the UK", "help with my electric bill", "cheap internet for low income", "does Xfinity have a low-income plan?". Returns programmes with who qualifies and how to apply

ParametersJSON Schema
NameRequiredDescriptionDefault
billYesinternet, mobile, electricity (or heating, gas), water, tv, streaming, car insurance, home insurance, credit card, council tax (UK), or a provider name. Up to 60 characters.
stateNoUS state name or two-letter code. For electricity, adds the state's energy discount programme (California, New York, Ohio, New Jersey, Pennsylvania, Georgia). England, Scotland, Wales, Northern Ireland or UK gives the UK answer.
countryNoTwo-letter country code. GB (or UK) gives UK schemes (Ofcom social tariffs, Warm Home Discount, WaterSure, Council Tax Reduction). Defaults to the caller's country, else US.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is covered. The description adds return-content context ('programmes with who qualifies and how to apply'), but says nothing about data freshness, source, or coverage limits despite openWorldHint=false implying a fixed dataset.

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

Conciseness4/5

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

Front-loaded with the purpose, then a dense block of example queries and the return shape. The long list of quoted questions is slightly repetitive but each maps to a real phrasing, so it earns most of its 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?

With no output schema, the description usefully states the return payload ('who qualifies and how to apply'), and the schema fully documents inputs. Auth/rate-limit behaviour and result-set size are unstated, which is a minor gap given the read-only annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains bill, state and country in detail (bill types, 60-char limit, country defaults). The description adds no parameter-specific meaning beyond that, making the baseline 3 correct.

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

Purpose5/5

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

States a specific verb+resource: it returns official help programmes for a given bill type. The example queries (social tariffs, low-income internet, energy bill help) make the domain unmistakable and distinguish it from sibling tools like lowermybill_get_bill_script and lowermybill_get_call_reminder.

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 quoted example queries give a clear sense of when to reach for this tool (user asking whether help exists for a bill). It does not explicitly name the sibling alternatives or state when NOT to use it, so it falls short of full routing guidance, but context is well conveyed.

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

lowermybill_get_bill_scriptLower My Bill: A call script to lower a billA
Read-onlyIdempotent
Inspect

Lower My Bill. A call script to lower a bill. Use for "help me lower my Comcast bill", "get my BT broadband cheaper", "lower my Council Tax", "script to get a better phone plan", "how do I negotiate my car insurance?", "lower my credit card interest", "I pay for too many streaming services". Give the bill type, the provider, or both. If the provider doesn't sell that bill, provider_note says so and the general script is returned

ParametersJSON Schema
NameRequiredDescriptionDefault
billNointernet (or broadband), mobile, tv, streaming, car insurance, home insurance, electricity (or energy, gas), water, credit card, gym or council tax (UK). Up to 60 characters.
stateNoUS state name or two-letter code. For electricity, adds the state's energy discount programme where there is one. England, Scotland, Wales, Northern Ireland or UK gives the UK answer.
countryNoTwo-letter country code. GB (or UK) gives UK scripts, schemes and complaint routes; otherwise it picks the Amazon store in own_modem (US by default; IE uses amazon.co.uk). Defaults to the caller's country.
providerNoCompany name, for example Comcast, Xfinity, Spectrum, AT&T, Verizon, Frontier, T-Mobile, Cox, Optimum, Mediacom, Astound, DIRECTV, DISH, GEICO, Progressive, State Farm, Allstate, USAA; UK: BT, Sky, Virgin Media, TalkTalk, Vodafone, EE, O2, Three, Plusnet, NOW Broadband, Hyperoptic, British Gas, Octopus, EDF, E.ON Next, OVO, ScottishPower. Up to 60 characters.
deal_endsNoThe date the current promotional price, contract or insurance policy ends, YYYY-MM-DD. Adds call_by (about 30 days earlier, on a weekday, or today if that has passed) and add_to_calendar, a link to a calendar reminder with the script.

TDQS

A4/5.0
Behavior4/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, and the description adds real behavior: provider mismatches are surfaced via provider_note and fall back to the general script, and deal_ends produces call_by plus an add_to_calendar reminder. Return/pagination details are absent but the tool produces a script, so this is adequate.

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

Conciseness4/5

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

Purpose is front-loaded before the trigger examples, and every element earns its place — the long phrase list exists to aid intent matching. The title's restatement ("Lower My Bill" then "A call script to lower a bill") is slightly redundant but not costly.

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, yet the description explains the key output affordances (provider_note fallback, call_by, add_to_calendar link), which is what an agent needs. With all params optional and read-only annotations, the definition is complete enough to invoke correctly.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description exceeds it by explaining that bill, provider, or both may be supplied and describing the provider-not-sold fallback that maps to provider_note. It does not add format detail beyond the schema for state/country, but the combination guidance is meaningful.

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 — a call script for lowering a bill — and reinforces it with concrete paraphrase triggers ("lower my Comcast bill", "lower my Council Tax"). It does not name or distinguish itself from sibling lowermybill_get_bill_help, which is the one gap keeping it from a 5.

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

Usage Guidelines4/5

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

Gives clear usage context through example user utterances and explicit input guidance ("Give the bill type, the provider, or both"), plus a fallback rule when a provider doesn't sell that bill. It never states when to prefer this over the lowermybill_get_bill_help sibling, so no exclusion guidance is present.

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

lowermybill_get_call_reminderLower My Bill: Calendar reminder to call before a deal endsA
Read-onlyIdempotent
Inspect

Lower My Bill. Calendar reminder to call before a deal ends. Returns a calendar file (.ics) with an all-day event about 30 days before the deal ends, holding the full script, offers to ask for and a confirm-in-writing message, with alerts at 9am the day before and on the day. Nothing is stored. /v1/script gives this link as add_to_calendar when deal_ends is given

ParametersJSON Schema
NameRequiredDescriptionDefault
billNoBill type, as for getBillScript. Give bill, provider or both.
countryNoTwo-letter country code. GB (or UK) gives the UK script when no provider is named. Defaults to the caller's country, else US.
providerNoCompany name, as for getBillScript.
deal_endsYesThe date the current price or policy ends, YYYY-MM-DD.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish the safe read-only, idempotent, non-destructive profile, and the description adds substantial extra context: the .ics format, an all-day event roughly 30 days before the deal ends, alerts at 9am the day before and on the day, embedded script/offers/confirm-in-writing content, and that nothing is stored. This is meaningful disclosure beyond the annotations, though it doesn't mention rate limits or 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.

Conciseness4/5

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

The description is front-loaded with the core purpose, then layers the return details. Every sentence contributes (format, timing, contents, storage, relationship to the script endpoint). It is slightly dense but not padded, and no sentence is wasted.

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

Completeness4/5

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

With no output schema, the description correctly compensates by describing the returned .ics contents, timing, and alerts, and by clarifying the privacy stance ('Nothing is stored'). Combined with full schema coverage of inputs, an agent has enough to invoke it correctly; only edge details like error handling are absent.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (bill, country, provider, deal_ends) are already documented in the schema, and the description largely defers to it ('as for getBillScript'). It clarifies that deal_ends is the date the current price/policy ends, adding mild value, but the baseline of 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description names a specific action and output: it produces a calendar reminder (.ics) to call before a deal ends, stating the timing and contents of the event. This clearly distinguishes it from siblings like lowermybill_get_bill_script (which returns a script, not a calendar file). An agent can tell what this tool produces without opening the schema.

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

Usage Guidelines3/5

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

Usage is implied rather than stated. It notes '/v1/script gives this link as add_to_calendar when deal_ends is given,' hinting this is the downstream follow-up to getting a script, but it never explicitly says when to prefer this over calling get_bill_script directly or gives any prerequisite/exclusion. A capable agent can infer the context, but it is left to inference.

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

medbillcheck_check_priceMed Bill Check: Compare a charge with Medicare's rate for one serviceA
Read-onlyIdempotent
Inspect

Med Bill Check. Compare a charge with Medicare's rate for one service. Use when someone asks whether a charge is high or what Medicare pays, for example "I was charged $450 for a 99213 office visit in Texas, is that too high?" or "what does Medicare pay for an MRI of the knee?". Pass the billing code if they have it, otherwise the service in plain words as q. Returns Medicare's 2026 rate for the state (or the city's own pricing area when city is given) in medicare_2026, the amount providers typically billed in 2024, and how many times the Medicare rate the charge is. For care in a hospital, hospital_facility_2026 gives Medicare's national rate for the hospital's own facility fee and comparison.compared_with says what the charge was set against. Dental work has no Medicare rate and returns 404 with a pointer to a free dental cost source

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoThe service in plain words, used when there is no code, like "knee MRI" or "ER visit".
cityNoCity, for states where Medicare pays big cities differently, like Houston, Chicago, Miami or Los Angeles. Other places use the rest-of-state rate.
codeNoFive-character CPT or HCPCS code from the bill, like 99213, 73721 or G0121.
stateNoUS state name or two-letter code, like Texas or TX. Med Bill Check is for US bills; a UK place gets a short answer pointing to UK sources.
chargedNoThe amount on the bill in US dollars, like 450.
settingNooffice (clinic, office, imaging center) or facility (hospital or surgery center). Leave out to use the usual setting.
billed_byNoWhose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is then compared with both together.

TDQS

A4.6/5.0
Behavior5/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 behavioral context beyond them: named return fields (medicare_2026, hospital_facility_2026, comparison.compared_with), what each represents, and an error path (dental returns 404 with a pointer to a free cost source). That is unusually informative.

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?

Well front-loaded: purpose, then when-to-use, then what's returned. The run-on final sentence packing dental 404, hospital facility rate, and comparison.compared_with is dense but each clause carries distinct information, so little is wasted.

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

Completeness5/5

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

For a 7-parameter tool with no output schema, the description carries the necessary burden: it explains the return payload fields, the state/city pricing nuance, the setting and billed_by semantics, and the dental failure mode. Nothing needed to invoke or interpret it is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the code-vs-q fallback rule ('pass the billing code if they have it, otherwise...') and the city-vs-rest-of-state pricing behavior. It documents the interplay of the parameters rather than restating them.

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

Purpose5/5

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

States a precise verb+resource+scope: 'Compare a charge with Medicare's rate for one service.' The 'one service' scope cleanly separates it from the sibling medbillcheck_check_whole_bill without the agent needing to open either schema.

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

Usage Guidelines4/5

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

Explicit trigger guidance with two concrete example utterances ('is that too high?', 'what does Medicare pay for an MRI?') tells the agent exactly when to reach for this tool. It lacks an explicit when-not or a named alternative to medbillcheck_search_services, so it stops short of a 5.

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

medbillcheck_check_whole_billMed Bill Check: Check several lines of an itemized bill at onceA
Read-onlyIdempotent
Inspect

Med Bill Check. Check several lines of an itemized bill at once. Use when someone reads out or pastes several lines from an itemized bill, for example "my ER bill has 99284 for $2,500, 85025 twice for $120 and 36415 three times, does anything look off?". Pass the lines as code, optional x and units, then the amount. Returns each line against Medicare's rate, totals, and questions_to_ask: repeated codes, units above Medicare's automated daily limit, the highest visit levels, hospital clinic facility fees and charges far above what providers typically bill. Lines of a hospital bill (any bill with an ER visit on it, or setting=facility) are compared with Medicare's hospital outpatient rate plus the doctor's part; each such line says compared_with.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity, for big cities with their own Medicare rates.
linesYesUp to 15 bill lines separated by commas: code, then x and units if more than one, then the amount. Example: 99284:2500, 85025x2:120, 36415:45.
stateNoUS state name or two-letter code.
settingNooffice or facility. Leave out if not known.
billed_byNoWhose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is then compared with both together.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare it read-only, idempotent, and non-destructive, yet the description goes further by disclosing the comparison methodology: each line is checked against Medicare's rate, hospital lines use the outpatient facility rate plus the doctor's part and say 'compared_with', and it lists the specific question categories returned. This is substantive behavioral context beyond the structured hints.

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?

Purpose is front-loaded and the return behavior follows logically. The paragraph is dense and re-states the title ('Check several lines of an itemized bill at once') and the example could be trimmed, but every sentence carries useful information, so it is efficient rather than padded.

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

Completeness5/5

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

With no output schema, the description carries the return burden and does so by naming outputs (per-line comparison, totals, questions_to_ask categories, compared_with) and the hospital-bill special case. An agent has everything needed to invoke it and interpret results.

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

Parameters4/5

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

Schema coverage is 100%, so the schema documents all five params and the baseline would be 3. The description adds meaning by restating the line format ('code, optional x and units, then the amount') and by explaining how setting/billed_by change the comparison, which meaningfully enriches the otherwise self-sufficient schema.

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

Purpose5/5

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

States a specific verb and resource ('Check several lines of an itemized bill at once') and the 'at once' scope distinguishes it from the single-value sibling medbillcheck_check_price. An agent can tell what it does and its batch nature without opening the schema.

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

Usage Guidelines4/5

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

Gives a clear triggering context ('when someone reads out or pastes several lines from an itemized bill') reinforced with a concrete multi-line example. However it does not name an alternative (e.g. check_price) or state when-not to use it, so it stops short of the 5 bar.

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

medbillcheck_draft_bill_letterMed Bill Check: Draft a letter to a billing office for the user to sendA
Read-onlyIdempotent
Inspect

Med Bill Check. Draft a letter to a billing office for the user to send. Use for "help me dispute this bill", "write a letter asking for an itemized bill", "can I ask for a discount?" or "how do I apply for charity care?". Returns a letter as plain text with [brackets] for anything not given, tips, and the user's No Surprises Act and Good Faith Estimate rights with official CMS links. It never sends anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoBilling code of the charge. With amount, a dispute letter adds Medicare's benchmark (for a hospital charge, the hospital outpatient rate as well as the doctor's part).
dateNoDate of service.
nameNoPatient or account holder name.
typeYesitemized (ask for an itemized bill), dispute (ask for a charge to be reviewed), discount (prompt-pay or self-pay discount), or assistance (financial assistance or charity care).
stateNoUS state, used for the benchmark in a dispute letter.
amountNoAmount charged or balance due, in US dollars.
reasonNoA sentence on what the user wants checked, for a dispute letter.
accountNoAccount or invoice number on the bill.
insuredNono if paying without insurance (self-pay), for a discount letter.
serviceNoThe service in plain words.
settingNooffice or facility (hospital or surgery center), for the benchmark in a dispute letter. ER visits and hospital clinic visits count as facility anyway.
providerNoHospital, clinic or provider name.
billed_byNoWhose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is then compared with both together.

TDQS

A4.1/5.0
Behavior4/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 still adds real behavioral value beyond them: the output is plain text with [bracketed] placeholders for missing data, it includes tips and No Surprises Act / Good Faith Estimate rights with CMS links, and critically "It never sends anything."

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

Conciseness4/5

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

Front-loaded with a one-sentence purpose, then usage triggers, then return shape and the non-sending guarantee. Each sentence carries information, though the run of quoted example phrases is slightly dense and could be trimmed without loss.

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

Completeness4/5

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

For a 13-parameter, 1-required tool with no output schema, the description covers purpose, triggers, return format, and the no-send guarantee, and the schema fills the parameter details. The only minor gap is that it does not explain how missing optional fields affect the generated letter beyond the bracket convention.

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

Parameters3/5

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

Schema description coverage is 100%, so every one of the 13 parameters is already documented in the schema, including the four enums and which fields matter for which letter type. The description's example phrases loosely reinforce the type enum, but add no syntax or format detail beyond structured data. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ("Draft a letter to a billing office") and adds a clarifying constraint for the user's benefit ("for the user to send"). It is clearly distinguishable from sibling medbillcheck tools like check_price or check_whole_bill, which perform analysis rather than letter generation.

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

Usage Guidelines4/5

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

Provides concrete trigger phrases ("help me dispute this bill", "write a letter asking for an itemized bill", "can I ask for a discount?", "how do I apply for charity care?") that map naturally onto the four enum values. It gives strong positive context but does not explicitly name when to prefer a sibling tool (e.g., check_price) instead.

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

medbillcheck_look_up_hospitalMed Bill Check: Whether a hospital is nonprofit, for financial assistanceA
Read-onlyIdempotent
Inspect

Med Bill Check. Whether a hospital is nonprofit, for financial assistance. Use for "is St. Luke's in Boise a nonprofit?" or "does this hospital have to offer charity care?". Returns how Medicare lists the hospital's ownership (nonprofit, government, for-profit), its city and main phone number, and what that means for financial assistance. Nonprofit hospitals must have a financial assistance policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity, to pick between hospitals with the same name.
nameYesHospital name as on the bill, like St. Luke's Regional Medical Center.
stateNoUS state name or two-letter code. Recommended, since many hospitals share names.

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/openWorld=false, so the safety profile is covered. The description goes beyond them by disclosing the actual payload (ownership category, city, main phone number) and the interpretive takeaway about financial assistance policy, which helps the agent reason about results.

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 two sentences restate the tool title verbatim, which is redundant given the separate title field. The remaining content is useful and front-loaded, but there is measurable waste at the start.

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

Completeness4/5

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

With no output schema, the description does the work of explaining what comes back (ownership listing, city, phone, financial-assistance implication). For a simple single-record lookup with full schema coverage and read-only annotations, nothing essential is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented in the schema, including the city/state disambiguation hint. The description adds no syntax or format guidance beyond that, so the baseline 3 applies.

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

Purpose5/5

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

Names a specific verb+resource (look up a hospital's ownership status) and states the scope precisely: Medicare-listed ownership classification for financial-assistance purposes. It is clearly distinguishable from siblings like medbillcheck_check_price or medbillcheck_check_whole_bill, which handle bills rather than hospital classification.

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

Usage Guidelines4/5

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

Gives concrete trigger questions ("is St. Luke's in Boise a nonprofit?", "does this hospital have to offer charity care?") that tell the agent when this tool applies. However, it never names an alternative tool or states when NOT to use it, so routing among medbillcheck siblings is left partly to inference.

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

medbillcheck_search_servicesMed Bill Check: Find billing codes and Medicare rates by plain wordsA
Read-onlyIdempotent
Inspect

Med Bill Check. Find billing codes and Medicare rates by plain words. Use when someone describes a service but has no code, or asks what a code means, for example "what's the code for a colonoscopy?", "how much does Medicare pay for a chest x-ray in Ohio?" or "what is code 99214?". Returns up to eight matching codes with Medicare's typical allowed and billed amounts

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesPlain words or a code, like "hernia repair" or 99214.
stateNoUS state name or two-letter code.

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, and closed-world behavior. The description adds valuable return behavior beyond the annotations: 'Returns up to eight matching codes with Medicare's typical allowed and billed amounts.' This return limit and content are useful and not present in structured fields.

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

Conciseness4/5

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

The description is front-loaded with the core purpose, then usage context, examples, and return behavior. Every sentence earns its place, though the opening 'Med Bill Check.' is redundant with the title and could be trimmed.

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 provides return value information ('up to eight matching codes with Medicare's typical allowed and billed amounts'). It covers the required parameter through examples and relies on the schema for optional parameters. A minor gap is the lack of explanation for the optional state parameter interaction.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented. The examples illustrate that 'q' can accept plain words or a numeric code, adding some meaning, but the description does not clarify how the separate 'state' parameter should be used versus embedding a state in the query. Baseline 3 is appropriate.

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: 'Find billing codes and Medicare rates by plain words.' It distinguishes itself from siblings by specifying the use case 'when someone describes a service but has no code, or asks what a code means,' which separates it from a code-based price lookup like check_price.

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

Usage Guidelines4/5

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

Gives clear when-to-use guidance with three concrete examples covering description-to-code, rate lookup, and code-to-meaning queries. However, it does not name alternative sibling tools or state when *not* to use this tool, so it falls short of the explicit exclusions/alternatives bar for a 5.

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

mizan_calculate_zakatMizan: Zakat owed on cash, gold, silver, shares and business stockC
Read-onlyIdempotent
Inspect

Mizan. Zakat owed on cash, gold, silver, shares and business stock, using live gold and silver prices

ParametersJSON Schema
NameRequiredDescriptionDefault
cashNoCash and bank balances
nisabNoWhich nisab to use. Defaults to silver.
currencyNoDefaults to USD.
gold_gramsNoGold held, in grams
gold_valueNoOr the value of gold held
owed_to_youNoMoney owed to you that you expect to be repaid
silver_gramsNoSilver held, in grams
silver_valueNoOr the value of silver held
debts_due_nowNoDebts due now, deducted
business_stockNoValue of business stock for sale
shares_tradingNoMarket value of shares held for trading (counted in full)
shares_longtermNoMarket value of shares held long term
share_zakatable_pctNoShare of long-term holdings treated as zakatable, default 25

TDQS

C2.8/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, so the safety profile is covered. The description usefully adds that valuation depends on 'live gold and silver prices', implying market-dependent (non-stable) output, but omits the nisab default, the 2.5% rate basis, and how shares are treated. Note a mild tension with openWorldHint=false, since fetching live prices implies an external data source, though this is not a clear contradiction.

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

Conciseness4/5

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

Two short fragments, front-loaded with no filler and no repetition. It is efficient, though arguably too terse given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complex, 13-parameter financial calculation with no output schema, so the description should hint at what is returned (zakat amount, nisab applied, etc.). It says nothing about the result, methodology, or how the calculation resolves the many optional inputs, leaving a significant gap for an agent trying to set expectations.

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

Parameters3/5

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

Schema description coverage is 100%, so all 13 parameters (including enum defaults for nisab and currency) are already documented by the schema. The description only lists asset classes at a high level, adding no syntax, defaults, or unit guidance beyond what the schema provides; baseline 3 applies.

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 the resource (zakat owed on cash, gold, silver, shares, business stock) but is essentially the tool title reworded, with no computing verb ('calculate') to define the action. It conveys the domain clearly enough to guess the operation, but offers no differentiation from sibling mizan_screen_company, mizan_screen_portfolio, or mizan_purify_dividend.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 alternatives. An agent is left to infer that this is the calculator versus the screening or dividend-purification tools in the same family, with nothing in the text to confirm or exclude it.

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

mizan_find_halal_alternativesMizan: Halal alternatives to a holdingA
Read-onlyIdempotent
Inspect

Mizan. Halal alternatives to a holding. Companies Mizan covers in the same industry (or the nearest related one) whose business is permitted and whose debt passes all four standards at the last quarter-end, largest first, plus Shariah index funds for US and UK investors. Screen a pick live with /screen/{ticker} before buying

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesThe holding to replace: a US listing symbol or company name.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive and closed-world behavior, so the bar is lower. The description nonetheless adds real behavioral detail: the filtering criteria (permitted business, debt passing four standards at last quarter-end) and ordering (largest first), plus coverage of index funds for US/UK investors.

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

Conciseness4/5

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

Front-loaded with the identity and purpose, then the criteria and a next-step instruction. It is fairly dense and slightly run-on, but every sentence carries information that helps selection and invocation.

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

Completeness4/5

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

No output schema exists, so the description must carry return-shape expectations; it does so by describing the result set (same-industry permitted companies, largest first, plus index funds). It is nearly complete, missing only explicit absence/no-match handling or result-count behavior.

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

Parameters3/5

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

With a single parameter at 100% schema description coverage, the schema already fully documents the ticker ('a US listing symbol or company name'). The description adds only the framing 'the holding to replace', which is a baseline-consistent but modest contribution.

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

Purpose5/5

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

States a precise purpose: find companies in the same or nearest related industry whose business is permitted and debt passes all four standards, plus Shariah index funds. It clearly distinguishes itself from siblings like mizan_screen_company or halalornot_screen_stock by being about replacements for a holding.

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 closing line gives a concrete workflow cue ('Screen a pick live with /screen/{ticker} before buying'), which tells the agent what to do after using this tool. However, it does not explicitly compare this tool against sibling alternatives, so when-not-to-use is left implicit.

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

mizan_list_standardsMizan: The four standards, their denominators and thresholdsC
Read-onlyIdempotent
Inspect

Mizan. The four standards, their denominators and thresholds. Screens a US-listed company against four published Shariah equity standards (AAOIFI, Dow Jones Islamic Market, S&P Shariah, MSCI Islamic), first on its business (prohibited industries each standard excludes) and then on its debt, using live...

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 safety is covered. The description contributes only the sequence of the screen (business first, then debt) and a truncated 'using live...' clause that never completes, leaving the data source and output nature 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 two sentences merely restate the name and title, and the description is cut off mid-sentence ('using live...'), so it is both redundant at the front and incomplete at the end. Space is spent on repetition rather than on the distinguishing 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 input schema, no output schema, and no parameters, the description carries the full burden of explaining what a caller gets back — yet it is truncated and never says whether the result is the standards themselves or a company screening verdict. Too much is left unresolved for a zero-parameter tool whose siblings overlap heavily.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description does not need to compensate for any schema gaps.

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

Purpose2/5

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

The name and title promise a reference listing ('the four standards, their denominators and thresholds'), but the description describes an action — screening a US-listed company against those standards — which is what the sibling mizan_screen_company appears to do. The agent cannot tell whether this tool returns a static reference table or performs a screen, so the purpose is genuinely ambiguous rather than vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 routing to alternatives, even though mizan_screen_company, mizan_screen_portfolio, and halalornot_screen_stock are close siblings that need to be disambiguated from this one. The description only states a method, not conditions for choosing it.

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

mizan_purify_dividendMizan: How much of a dividend to give to charityA
Read-onlyIdempotent
Inspect

Mizan. How much of a dividend to give to charity. Returns the company's purification ratio (interest income over total revenue, from its latest 10-K that reports interest income; 'latest_annual_filing' and 'note' say when that is older than the latest 10-K) and, if a dividend amount is given, the amount to give to charity. For a company whose main business every standard excludes, 'business_screen' explains that purification does not make it permissible

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesUS listing symbol.
dividendNoThe dividend received, in any currency.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare this a safe, idempotent, read-only, non-open-world operation, so the bar for the description is lower. The description nonetheless adds real behavioral context: the ratio derivation (interest income over total revenue), the source filing, and the staleness disclosure via 'latest_annual_filing' and 'note' when the reported 10-K is out of date.

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 single dense sentence is front-loaded with the outcome and justified by the need to describe return values absent an output schema. It is slightly run-on, but every clause (ratio source, staleness fields, dividend output, business_screen caveat) 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?

With no output schema, the description carries the burden of describing returns and does so adequately: purification ratio, conditional charity amount, and named output fields ('latest_annual_filing', 'note', 'business_screen'). It is close to complete, though it never states units or how to interpret the ratio numerically.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters (ticker, dividend) are documented in the schema itself, so a baseline of 3 applies. The description only adds that supplying 'dividend' triggers the charity-amount output, marginally extending the schema without new syntax or format detail.

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

Purpose5/5

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

The description states a specific verb+resource: it computes a company's 'purification ratio' and the charity amount on a dividend. It is clearly distinguishable from siblings like mizan_screen_company and mizan_calculate_zakat, naming exactly the dividend-purification use case.

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

Usage Guidelines4/5

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

It establishes when to use it (to determine how much of a received dividend to donate) and points to the sibling 'business_screen' for the excluded-business case via the referenced field. However, it does not explicitly frame this as an either/or routing statement, so the alternative guidance is implied rather than crisp.

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

mizan_screen_companyMizan: Screen one company against all four standardsA
Read-onlyIdempotent
Inspect

Mizan. Screen one company against all four standards. Returns a 'say' sentence, the live price, the consolidated share count, the filing figures used, the business screen per standard ('business': main_business, by_standard pass/fail/review, excluded_under), and each standard's ratio, threshold and verdict. In each screens entry, 'compliant' is the overall verdict (false when that standard excludes the company's business, null when the business needs a closer look) and 'debt_compliant' is the debt test alone. Verdicts within one percent of a threshold are flagged borderline. A company name (for example nvidia) also works

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesUS listing symbol (a common company name also works).

TDQS

A4.2/5.0
Behavior4/5

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

With annotations covering safety (readOnly, idempotent, non-destructive), the bar is lower, but the description goes further by detailing the return payload: say sentence, live price, consolidated share count, filing figures, business screen, per-standard ratio/threshold/verdict, and borderline flagging. It explains the semantics of 'compliant' vs 'debt_compliant' and the null case, which is real behavioral context beyond the annotations.

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

Conciseness4/5

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

Front-loaded with the purpose, then dense enumeration of return fields. Long but every sentence carries information; only the leading 'Mizan.' label is throwaway.

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

Completeness5/5

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

No output schema exists, so the description carries the full burden of describing returns, and it does so thoroughly, including the meaning of key fields and the borderline-verdict flag. Nothing an agent needs to call or interpret the tool is missing.

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

Parameters4/5

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

Schema coverage is 100% and there is a single required parameter, so the baseline is 3. The description adds that a common company name (e.g. nvidia) works in place of a ticker, which extends the schema's 'US listing symbol' description.

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 ('screen') and resource ('one company') plus the scope ('against all four standards'), which cleanly distinguishes it from the sibling mizan_screen_portfolio. An agent can tell what it does without opening the schema.

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

Usage Guidelines3/5

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

The scope word 'one company' implies single-entity use versus the sibling portfolio tool, but there is no explicit when-to-use/when-not guidance or named alternative. Usage is inferable but not spelled out.

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

mizan_screen_portfolioMizan: Screen a whole portfolioA
Read-onlyIdempotent
Inspect

Mizan. Screen a whole portfolio. Screens up to 15 holdings under all four standards and returns the share of the portfolio that is compliant under each, the holdings that fail, and a combined dividend purification ratio

ParametersJSON Schema
NameRequiredDescriptionDefault
holdingsYesComma-separated tickers, each optionally followed by a colon and the value held, for weighting.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the safe read-only, idempotent, non-destructive profile, so the description's job is to add beyond that. It does so usefully: the 15-holding cap, evaluation under "all four standards," and the returned artifacts (per-standard compliance share, failing holdings, combined dividend purification ratio) are all disclosed beyond anything in 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.

Conciseness4/5

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

A single tightly packed sentence that front-loads the action and then enumerates inputs and outputs without padding. The leading "Mizan." brand token is redundant with the name/title and is the only wasted element.

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 carries the burden of describing the return payload (compliance shares, failing holdings, purification ratio), and it covers the input cap and standards scope. It omits what the four standards are and any auth or failure behavior, but for a one-parameter read-only tool it is nearly sufficient.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter's ticker:value weighting syntax is fully documented in the schema, so the baseline is 3. The description only indirectly touches the parameter by restating the 15-holding limit, adding no format or weighting detail beyond the schema.

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

Purpose4/5

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

States a specific verb ("Screen") and resource ("a whole portfolio"), with the batch nature made concrete via "up to 15 holdings." The scope distinction from the singular mizan_screen_company sibling is inferable from "whole portfolio," but that sibling is never named, so differentiation relies on the agent's inference.

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

Usage Guidelines3/5

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

Usage is only implied by the scope words "whole portfolio" and "up to 15 holdings." There is no explicit when-to-use, when-not-to-use, or pointer to mizan_screen_company for single holdings, so an agent must infer the boundary between the batch and single-company tools.

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

planmyworkout_get_exercisePlan My Workout: How to do one exercise, the muscles it works and a pictureA
Read-onlyIdempotent
Inspect

Plan My Workout. How to do one exercise, the muscles it works and a picture. Use for "how do I do a Romanian deadlift?", "what is a goblet squat?", "what muscles do face pulls work?". Understands everyday names like RDL, press-up and lat pulldown. muscles.main lists the muscles the move mainly works (hand-checked for the main lifts) and muscles.also the ones that help

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe exercise, for example Romanian deadlift or push-up.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, so the bar is lower. The description adds real value by disclosing that it understands everyday aliases (RDL, press-up, lat pulldown) and that results structure muscles.main vs muscles.also, which the annotations do not convey.

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?

Reasonably front-loaded, but the leading 'Plan My Workout. How to do one exercise, the muscles it works and a picture.' largely restates the title, adding duplication without new information. The alias and muscles.main/also content is the part that earns its place.

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

Completeness4/5

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

No output schema exists, so the description carries the return-shape burden and does so for the muscles fields (main/also). It is essentially complete for a single-param lookup, though the promised 'picture' is never described in form or format.

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

Parameters4/5

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

With 1 param at 100% schema coverage the baseline is 3, but the description adds meaningful semantics beyond the schema: the tool accepts informal exercise names and nicknames, so callers know flexibility in the 'name' value is allowed.

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

Purpose4/5

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

States a specific verb+resource: returns how-to, muscles worked, and a picture for ONE exercise, which implicitly separates it from planmyworkout_list_exercises and get_workout_plan. It does not explicitly name or differentiate from those siblings, keeping it just 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?

Provides the 'Use for' cue plus concrete example questions ("how do I do a Romanian deadlift?"), which gives implied usage context. However, it never states when not to use it or nudges toward siblings like list_exercises, so guidance remains inferred rather than explicit.

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

planmyworkout_get_workout_planPlan My Workout: A weekly workout plan with sets, reps and restA
Read-onlyIdempotent
Inspect

Plan My Workout. A weekly workout plan with sets, reps and rest. Use for "make me a 3 day beginner gym plan", "home workout with just dumbbells, 30 minutes", "a 5 day muscle building split", "I have a pull-up bar and dumbbells", "a 20 minute workout" (days=1 gives a single session), "a workout plan to lose weight", "couch to 5K" or "a 10K running plan" (a 10K or longer goal gets the build-up plan unless the user says they are a beginner), or "give me another one" (send the same inputs with seed plus one). Either pass the fields, or pass the user's words in q and the service reads days, minutes, level, goal and equipment from them. Fields win over q. Running plans also return weeks: every week's sessions (a 9-week walk-run build to 30 minutes of running for beginners; easy, interval, tempo and long runs for intermediates), with week 1 laid out in days.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoThe user's request in their own words, for example "3 day beginner gym plan, 45 minutes".
daysNoDays per week, 1 to 6 (1 gives a single session). More than 6 (or "every day") is planned as 6 with a rest day, and the answer says so in say and in plan.days_asked and plan.days_note. Default 3.
goalNostrength, muscle, general (default), conditioning (use this for fat loss or weight loss requests), running or mobility.
seedNo0 to 9999. Change it for a different mix of exercises with the same setup. Default 0.
levelNobeginner (default) or intermediate. Advanced is treated as intermediate.
countryNoTwo-letter country code for kit links (US, GB, IE, CA, AU). Defaults to the visitor's country.
minutesNoMinutes per session including warm-up, 15 to 120. Default 45.
equipmentNoComma separated: none (default), dumbbells, barbell, gym, bands, kettlebell, pullupbar (a pull-up bar), jumprope.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), so the description correctly focuses on behavioral nuances: fields winning over q, seed driving variation, and running plans emitting weeks with week 1 laid out in days. It adds real context beyond structured fields, though return shape is only loosely sketched.

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?

Purpose is front-loaded and the example-first structure is easy to scan, but the paragraph is dense with long parenthetical asides. Nearly every clause earns its place for routing, yet the run-on sentence could be tightened without losing guidance.

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 carries the burden of describing returns and does so at a high level (plan with sets/reps/rest; running plans add weeks). It covers all 8 parameters and their defaults, leaving only the precise output structure unspecified, which is a minor gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description goes further by explaining cross-parameter semantics: days=1 yields a single session, seed+1 regenerates a variant, fields override q, and the running goal changes what weeks are returned.

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

Purpose5/5

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

The description names a specific verb+resource (generate a weekly workout plan with sets, reps and rest) and explicitly extends scope to running plans. It is clearly distinguishable from the sibling exercise-lookup tools (get_exercise, list_exercises) because it produces a full plan rather than a single movement.

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

Usage Guidelines5/5

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

It supplies concrete trigger utterances ('3 day beginner gym plan', 'home workout with just dumbbells, 30 minutes', 'couch to 5K'), states the days=1 single-session case, the 'give me another one' regeneration rule (seed+1), and the fields-over-q precedence. This is explicit when-to-use guidance with clear alternatives.

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

planmyworkout_list_exercisesPlan My Workout: Exercises for a muscle and the equipment the user hasB
Read-onlyIdempotent
Inspect

Plan My Workout. Exercises for a muscle and the equipment the user has. Use for "what can I do for chest with no equipment?", "glute exercises with bands", "back exercises with dumbbells", "some mobility moves". Give a muscle, equipment or both

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNobeginner leaves out harder moves.
limitNo1 to 10. Default 8.
muscleNochest, back, shoulders, arms, biceps, triceps, legs, quads, hamstrings, glutes, calves, core (or abs), cardio or mobility. Also forearms (grip) and traps.
equipmentNonone, dumbbells, barbell, gym, bands, kettlebell, pullupbar or jumprope.

TDQS

B3.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, fully covering the safety profile. The description adds no behavioral context beyond usage examples — nothing about the 1-10 limit behavior, default count, or what happens when no filter is supplied.

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 opening restates the title verbatim ('Exercises for a muscle and the equipment the user has') and the closing 'Give a muscle, equipment or both' repeats the same idea, so there is measurable redundancy. The example queries are the highest-value content and are correctly placed in the middle.

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 all four parameters documented at 100% coverage and complete annotations, the remaining gap is small: no indication of what the response contains (a list of exercise names) nor of behavior when called with zero filters, which is possible since nothing is required. Adequate but not complete for a zero-required-param tool.

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

Parameters3/5

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

Schema description coverage is 100%, including enum values and the beginner/intermediate and 1-10 limit semantics, so the schema carries the burden and baseline is 3. The phrase 'Give a muscle, equipment or both' adds only marginal value by signalling the params are optional and combinable.

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+resource (listing exercises) and the two filter dimensions (muscle, equipment), which is legible against siblings like planmyworkout_get_exercise and planmyworkout_get_workout_plan. It does not explicitly name or differentiate itself from those siblings, so it stops short of a 5.

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

Usage Guidelines4/5

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

Four concrete example queries ('what can I do for chest with no equipment?', 'glute exercises with bands', etc.) give the agent a strong sense of when this tool applies, and 'Give a muscle, equipment or both' clarifies the calling pattern. There are no exclusions or named alternatives (e.g., when to prefer get_exercise for a single move), so it is not a 5.

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

platepal_get_barcode_nutritionPlate Pal: Nutrition for a packaged product by barcode, with UK traffic lightsA
Read-onlyIdempotent
Inspect

Plate Pal. Nutrition for a packaged product by barcode, with UK traffic lights. Use for "is this barcode high in sugar?", "how many calories in this?" after a scan, or "what's the salt in 5000157024886?". Returns per 100 g (or 100 ml) and per serving values, traffic lights for fat, saturates, sugars and salt, Nutri-Score, allergens and a Halal or Not? link for checking the ingredients

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesBarcode digits (8 to 14).
servingsNoNumber of servings to total up (0.25 to 20).

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this a safe, idempotent, non-open-world read. The description adds the return payload that annotations cannot convey: per-100g/100ml and per-serving values, four traffic lights, Nutri-Score, allergens and a Halal link. That is meaningful beyond the structured safety hints.

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?

Purpose first, then usage triggers, then return contents - a sensible front-loaded order. The redundant 'Plate Pal.' prefix duplicates the title and the return list is dense, but every clause carries information for an agent.

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

Completeness4/5

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

With no output schema, the description is the only source of return-value information, and it delivers a thorough enumeration of what comes back. Parameters are covered by the schema, and the safety profile by annotations, leaving little an agent needs that is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both 'code' (8-14 digits) and 'servings' (0.25-20) are already fully documented. The description's embedded example barcode adds format intuition but no semantics beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific resource (nutrition for a packaged product) and a specific selector (by barcode), with UK traffic lights as a differentiator. This distinguishes it from platepal_get_food_nutrition (general food nutrition) and halalornot_check_product_by_barcode (halal screening of the same barcode), though it does not name 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 Guidelines4/5

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

Gives three concrete triggering queries ('is this barcode high in sugar?', 'how many calories in this?' after a scan, 'what's the salt in 5000157024886?') that make the use context unmistakable. It stops short of explicitly excluding the sibling tools, so it lands at clear-context rather than explicit-alternatives.

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

platepal_get_food_nutritionPlate Pal: Calories and macros for a food, dish or product, for the amount the user saysA
Read-onlyIdempotent
Inspect

Plate Pal. Calories and macros for a food, dish or product, for the amount the user says. Use for "how many calories in a Big Mac?", "protein in 200g chicken breast", "calories in chicken biryani", "a slice of pepperoni pizza", "a large latte" or a whole meal like "2 eggs, 2 slices of toast and a coffee". Put the whole amount and food in q, or pass grams or servings separately. Generic foods and dishes (thousands, including fast food and restaurant dishes) use USDA values with real portion weights (slice, cup, small, medium, large, one item); brands come from Open Food Facts. Chain items ("McDonald's large fries", "a Greggs sausage roll", "KFC Zinger burger", "grande latte from Starbucks", "6 inch Italian BMT from Subway", "20 piece McNuggets") use the chain's own published figures for that size, UK or US by country, and return a chain object (name, region, item, size, weight_published); when the chain doesn't publish a weight, amount.grams is null and per_100 values are null. For a chain item not in the table, a typical USDA version is used and the say line says so. A whole meal returns items (each food with its amount and nutrition) and total. Returns nutrition for the amount, per_100 values, portions, UK traffic lights (per 100 g, or per 100 ml for drinks) and caffeine_mg for drinks that have it.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesThe food or meal, optionally with amounts, for example 200g chicken breast, a large banana, or 2 eggs and a slice of toast.
gramsNoAmount in grams (1 to 5000). Overrides any amount in q.
countryNoTwo-letter country code. Picks UK or US chain figures (GB and IE get UK ones) and prefers local versions of branded products. Default from the request.
servingsNoNumber of servings or items (0.25 to 20).

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations by disclosing data provenance (USDA for generic, Open Food Facts for brands, chain-published figures for chain items), the country-based region selection, the chain object shape, and the null-weight/null-per_100 fallback when a chain doesn't publish a weight. That is exactly the behavioral detail annotations cannot carry.

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

Conciseness4/5

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

Front-loaded with purpose and examples, then proceeds to provenance and returns. It is long and occasionally repetitive (chain items get several clause repeats), but nearly every sentence adds distinct information an agent would need.

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

Completeness5/5

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

With no output schema and only safety annotations, the description fully carries the return contract: nutrition for the amount, per_100 values, portions, UK traffic lights, caffeine_mg, chain object, and meal-level items plus total. Nothing an agent needs to call or interpret it is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real guidance beyond it: how q, grams and servings relate ('put the whole amount and food in q, or pass grams or servings separately') and that portions like slice/cup/small/medium are recognized. Minor gaps remain on the country default behavior, which is left to the schema.

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

Purpose5/5

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

States a specific verb+resource ('calories and macros for a food, dish or product, for the amount the user says') and pins the scope to a named amount. It is clearly distinguishable from the sibling platepal_get_barcode_nutrition, which is barcode-driven rather than query-driven.

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?

Offers a rich set of trigger examples ('how many calories in a Big Mac?', 'protein in 200g chicken breast') and explains both input modes (whole amount in q vs. grams/servings separately). It does not explicitly exclude or route away from the barcode sibling, so it stops short of 5.

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

platepal_get_meal_ideasPlate Pal: Simple meal ideas by goal, diet and meal, with rough macrosA
Read-onlyIdempotent
Inspect

Plate Pal. Simple meal ideas by goal, diet and meal, with rough macros. Use for "give me a high protein halal dinner idea", "a quick vegan lunch", "cheap vegetarian breakfast ideas". Goals: high protein, low carb, budget, quick, high fibre. Diets: vegetarian, vegan, pescatarian, halal. Meals: breakfast, lunch, dinner, snack. You can pass the user's words in q instead. Ideas rotate daily. It does not set calorie or weight targets; a weight-loss request gets lighter, filling ideas (goal lighter, 450 calories or less) and a pointer to a doctor or dietitian, with no shop links.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoHow many ideas, 1 to 8. Default 3.
qNoFree text, for example high protein halal dinner.
dietNovegetarian, vegan, pescatarian or halal.
goalNohigh protein, low carb, budget, quick or high fibre.
mealNobreakfast, lunch, dinner or snack.
countryNoTwo-letter country code for the shop links (US, GB and IE get local Amazon links). Default from the request.

TDQS

A4.4/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), and the description adds genuinely non-obvious behavior: ideas rotate daily, weight-loss asks get lighter ideas capped at 450 calories with a doctor/dietitian pointer and no shop links, and it refuses to set calorie or weight targets. It does not describe the shape of a returned idea beyond 'rough macros'.

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

Conciseness4/5

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

Front-loads purpose, then examples, then valid values, then the exception policy; every sentence carries information. It loses a point for duplicating the title verbatim and re-listing the goal/diet/meal values that the schema already enumerates.

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

Completeness5/5

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

With six optional parameters, no output schema, and only read-only annotations, the description covers what an agent needs: how to fill each axis, when to fall back to q, the daily rotation, and the special handling of weight-loss requests. Return-shape detail is not required given 'rough macros' is disclosed.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3, but the description adds real semantics: q is an alternative to the structured filters, country controls which shop links appear (US/GB/IE get local Amazon links) and defaults from the request, and the accepted goal/diet/meal vocabularies are restated for quick selection.

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 concrete verb (generate/return ideas) and resource (meal ideas) plus the axes it varies on: goal, diet, meal, with rough macros. It is clearly distinguishable from siblings platepal_get_food_nutrition and platepal_get_barcode_nutrition, which look up nutrition facts rather than propose meals.

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

Usage Guidelines4/5

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

Gives three concrete invocation examples ('high protein halal dinner idea', 'quick vegan lunch', 'cheap vegetarian breakfast ideas') and explains the q fallback for free-form user wording, plus a specific rule for weight-loss requests. It never explicitly rules out use cases or names a sibling alternative (e.g. use get_food_nutrition for per-item nutrition), so guidance is clear but not exhaustive.

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

pricedropback_check_price_drop_claimPrice Drop Back: Can I get the difference back?A
Read-onlyIdempotent
Inspect

Price Drop Back. Can I get the difference back?. Use for "I bought a TV at Best Buy 9 days ago for $499 and it's $449 now, can I get the difference?". Says whether a claim is likely (likely, likely_if_member, unlikely, check or no_drop), the amount, and the steps. With an item name it adds a Cheapest Price link and Amazon and eBay links to check today's price. Likely claims also get claim_message, ready to paste into the store's chat or email. policy.refund_paid_as flags stores that pay store credit (Newegg)

ParametersJSON Schema
NameRequiredDescriptionDefault
nowNoToday's price, 0 to 100000 (US dollars, or pounds for UK stores).
itemNoOptional item name, up to 100 characters, to link today's price on Cheapest Price, Amazon and eBay.
paidNoWhat you paid, 0 to 100000 (US dollars, or pounds for UK stores).
storeYesStore name, up to 60 characters.
countryNoTwo-letter country code. GB (or UK) gives the UK policy where the store has one (Apple, Amazon, IKEA) and UK rules; it also picks the price links (US, GB and IE get local Amazon and eBay links). Default from the request.
purchase_dateNoThe date you bought it, YYYY-MM-DD, instead of days_since_purchase. Adds deadlines: the last day to claim with the store (and in a members' longer window) and Capital One card protection.
days_since_purchaseNoDays since you bought it (or since delivery), 0 to 400. Give this or purchase_date.

TDQS

A4.1/5.0
Behavior4/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 profile. The description adds valuable output context beyond that: the likelihood enums, the amount, steps, claim_message, and the policy.refund_paid_as flag for store-credit stores. No output schema exists, so this return-value disclosure is genuinely useful.

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

Conciseness4/5

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

Front-loaded with purpose and example, followed by output details. The repeated title fragment ('Price Drop Back. Can I get the difference back?.') is slightly redundant, but overall the sentences are information-dense and earn their place.

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

Completeness4/5

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

For a 7-parameter check tool with no output schema, the description covers what the tool returns (likelihood, amount, steps, links, claim_message) and the refund_paid_as caveat. It is largely complete, though it could clarify country/store edge behavior a bit more.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters like store, paid, now, country, and dates are already fully documented. The description only adds marginal meaning (item name triggers price links). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb and resource ('check price drop claim') and frames it as a consumer question ('Can I get the difference back?'), with a concrete example. An agent can distinguish it from siblings like get_store_policy or get_claim_reminder from 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 Guidelines4/5

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

The 'Use for ...' example is an effective, concrete usage trigger that shows exactly what kind of request maps to this tool. It lacks explicit when-not guidance or pointers to sibling tools (e.g., get_store_policy for raw policy text), so it stops short of 5.

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

pricedropback_get_claim_reminderPrice Drop Back: Calendar reminder for the last day to claim a price dropA
Read-onlyIdempotent
Inspect

Price Drop Back. Calendar reminder for the last day to claim a price drop. Returns a calendar file (.ics) with an all-day event on the store's last claim day, how to claim and the policy link, with alerts 3 days before and on the day. Nothing is stored. /v1/check gives this link as add_to_calendar when purchase_date is given and a claim is likely

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNoOptional item name for the event title, up to 100 characters.
storeYesStore name.
memberNotrue to use the longer members' window where the store has one (for example My Best Buy Plus or Total).
countryNoTwo-letter country code. GB (or UK) uses the UK policy where the store has one. Default from the request.
purchase_dateYesThe date you bought it, YYYY-MM-DD.

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations' safety profile, the description discloses the output artifact (.ics with an all-day event), its contents (how to claim, policy link), the exact alert schedule (3 days before and on the day), and statelessness ('Nothing is stored'). This is rich behavioral context an agent cannot 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.

Conciseness4/5

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

Front-loaded and dense with useful facts; the opening 'Price Drop Back.' brand repetition is the only wasted fragment. Everything else (return format, alert timing, statelessness) earns its place.

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

Completeness4/5

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

With no output schema, the description correctly fills the gap by explaining the returned .ics and its event contents, and covers statelessness and prerequisite context. Only minor gaps remain (e.g. failure behavior when no claim is found), but nothing an agent needs to invoke it is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters (item, store, member, country, purchase_date) are already documented in the schema. The description adds no syntax or format detail beyond this, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb and resource (get -> calendar reminder for the last day to claim a price drop) and makes the artifact concrete: an .ics file for the store's last claim day. It is clearly distinguishable from the sibling check_price_drop_claim, which produces the add_to_calendar link that leads here.

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 ('/v1/check gives this link as add_to_calendar when purchase_date is given and a claim is likely') establishes the context in which this tool is reached and the prerequisite of a likely claim, but it never states when NOT to use it or explicitly names the alternative tool being referenced.

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

pricedropback_get_store_policyPrice Drop Back: A store's price adjustment and price match policyA
Read-onlyIdempotent
Inspect

Price Drop Back. A store's price adjustment and price match policy. Use for "does Target do price matching?", "does John Lewis refund if the price drops?", "Currys price promise", "what's Best Buy's price adjustment policy?", "will Costco refund the difference?". With an item name it adds links to check today's price

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNoOptional item name, up to 100 characters, to link today's prices for it.
storeYesStore name in everyday words, up to 60 characters.
countryNoTwo-letter country code. GB (or UK) gives the UK policy where the store has one (Apple, Amazon, IKEA) and UK rules; it also picks the price links (US, GB and IE get local Amazon and eBay links). Default from the request.

TDQS

A3.9/5.0
Behavior4/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 behavior beyond that: supplying an item name augments the response with links to check today's price, which is genuine output-variation disclosure. It omits auth needs, rate limits, and freshness of policy data, keeping it out of 5 territory.

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

Conciseness4/5

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

Front-loaded with the core purpose in a single sentence, then example queries, then the optional-item modifier. The example list is somewhat long, but each query disambiguates a real phrasing an agent might encounter, so it earns its 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?

For a 3-parameter read-only tool with no output schema, the description covers what is returned (the store's policy, plus optional price links) and the schema carries the country_code nuance. Nothing critical is missing, though a note on policy freshness or store-not-found behavior would complete it.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains 'item' (optional, up to 100 chars, links today's prices), 'store', and the country-code defaulting logic. The description's note that an item name 'adds links to check today's price' mostly restates the schema, so the baseline 3 is correct.

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 scope: a store's price adjustment and price match policy, retrieved by store name. Example queries ('does Target do price matching?', 'Currys price promise') make the retrieval intent unmistakable. It does not name its siblings (check_price_drop_claim, list_stores), so it earns a 4 rather than a 5.

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

Usage Guidelines4/5

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

Five concrete example queries effectively define when this tool applies, which is stronger than implied usage. However, there is no exclusion guidance or explicit routing to the alternatives: it never says to use check_price_drop_claim instead when the user wants to file a claim rather than read a policy.

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

pricedropback_list_storesPrice Drop Back: Every store covered, plus card price protectionA
Read-onlyIdempotent
Inspect

Price Drop Back. Every store covered, plus card price protection. Use for "which stores give you money back if the price drops?" or "does my credit card have price protection?". With country=GB, lists the UK policies

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoTwo-letter country code. GB (or UK) lists only stores with a UK policy. Default from the request.

TDQS

A3.6/5.0
Behavior3/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 one behavioral detail (country=GB restricts output to UK policies), but says nothing about result size, freshness, or card-protection coverage nuances. Modest added value over annotations.

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

Conciseness4/5

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

It is short and packs use-cases plus the country behavior into a few sentences. The opening tagline ("Price Drop Back. Every store covered, plus card price protection.") partially duplicates the title and is slightly promotional, but it is front-loaded and not wasteful overall.

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

Completeness4/5

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

For a single-parameter, read-only list tool with no output schema and full schema coverage, the definition supplies the essential usage triggers and the one parameter's effect. Nothing critical is missing, though it could state that it returns multiple stores to further separate it from the single-policy sibling.

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

Parameters3/5

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

Schema description coverage is 100%, so the country parameter is already fully documented in the schema. The description restates the GB behavior ("With country=GB, lists the UK policies") without adding syntax or edge-case meaning beyond what the schema provides, so baseline 3 applies.

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

Purpose4/5

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

The description conveys a listing scope ("Every store covered, plus card price protection") and later uses a verb ("lists the UK policies"), so an agent can infer this returns the set of stores/card protections. However, it never explicitly contrasts with the sibling pricedropback_get_store_policy (single-store lookup), so it stops short of full sibling differentiation.

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

Usage Guidelines4/5

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

It provides concrete trigger examples ("which stores give you money back if the price drops?" and "does my credit card have price protection?"), which gives an agent clear context for when to reach for this tool. It does not name an alternative tool or state any exclusions, keeping it at a 4 rather than a 5.

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

spinmyday_list_vibesSpin My Day: The vibes you can ask forC
Read-onlyIdempotent
Inspect

Spin My Day. The vibes you can ask for. Spin up a full day out (morning, lunch, afternoon, dinner, evening) around the weather and what is open, in a city, near a location, or in a random city.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. The description adds little beyond that: it does not explain return behavior, and its mention of weather and what is open adds confusion for a zero-parameter tool rather than useful 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.

Conciseness3/5

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

The first two sentences redundantly restate the tool name and title, and the third sentence is a long description of a different operation. It is not bloated, but it is not front-loaded or 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 no parameters, the description should clarify what listing vibes returns and when to choose it over spinmyday_spin_my_day. Instead, it describes spinning a full day, leaving the tool's actual output and role unclear.

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 has zero parameters and the schema is empty with 100% description coverage, so there is no parameter semantics for the description to clarify. Baseline 4 is appropriate.

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

Purpose2/5

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

The name is list_vibes, but the description first restates the app/title ("Spin My Day. The vibes you can ask for.") and then says "Spin up a full day out (morning, lunch, afternoon, dinner, evening) around the weather and what is open...," which describes the spinmyday_spin_my_day sibling rather than listing vibes. It never clearly states that this tool returns the available vibes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 when-not-to-use guidance, and no mention of the sibling spinmyday_spin_my_day. The only implied usage is the vague phrase "The vibes you can ask for."

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

spinmyday_spin_my_daySpin My Day: Build a day outA
Read-onlyIdempotent
Inspect

Spin My Day. Build a day out. Leave out city and location to spin for a random city. Spin up a full day out (morning, lunch, afternoon, dinner, evening) around the weather and what is open, in a city, near a location, or in a random city.

ParametersJSON Schema
NameRequiredDescriptionDefault
latNoLatitude, in decimal degrees, instead of city.
lonNoLongitude, in decimal degrees, instead of city.
cityNoThe city to plan the day in, for example Manchester or Austin, TX. Leave out with lat and lon for a random city.
dateNoThe day to plan, YYYY-MM-DD. Leave it out for today, or tomorrow when it is already past 5pm there (the answer then says tomorrow: true).
dietNoFood needs, comma separated: halal, kosher, vegetarian, vegan, pescatarian, gluten_free, dairy_free, jain. Lunch and dinner then name real places that OpenStreetMap lists for all of them (each meal says which in diet and diet_note). halal=true still works.
seedNoRepeat a spin exactly; each answer includes a spin_again link with a new seed
vibeNoThe feel of the day: chill, adventure, date, family, culture or foodie.
budgetNoany, or free for free things only.

TDQS

A3.9/5.0
Behavior4/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 real behavioral context beyond that: determinism via seed and the returned spin_again link, the post-5pm date rollover signaled by a 'tomorrow: true' flag, and the diet filtering that names real OpenStreetMap-listed venues. Return structure is only gestured at, which keeps it short of a 5.

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

Conciseness4/5

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

The payload sentence is front-loaded and dense with actionable detail, but the opening 'Spin My Day. Build a day out.' merely echoes the tool name and title, spending a sentence on what the name already conveys. The remainder is efficient.

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 an 8-parameter, all-optional, no-output-schema generator, the description covers the essentials: what gets produced, how weather/opening hours constrain it, and how omitted inputs default. It stops short of explaining result shape or failure modes (e.g. no city found), which is the only notable gap.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (lat/lon, city, date, diet, seed, vibe, budget) is already documented with its own semantics and enum values. The description largely restates the omitted-argument behaviors rather than adding new meaning, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description states a concrete verb and resource — it builds a full day out spanning morning, lunch, afternoon, dinner and evening, constrained by weather and opening hours, in a city, near a location, or a random city. This is specific enough to distinguish it from its only same-namespace sibling, spinmyday_list_vibes, without opening either schema.

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

Usage Guidelines3/5

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

It gives useful default-routing guidance ('leave out city and location to spin for a random city', omitted date defaults to today or tomorrow after 5pm), which tells the agent how to call it. However, it never states when to reach for this tool versus alternatives, and it does not name or reference the sibling spinmyday_list_vibes that an agent would likely need first to pick a vibe.

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

stoics_get_cardStoic Scroller: Today's reading one line at a time, for voiceC
Read-onlyIdempotent
Inspect

Stoic Scroller. Today's reading one line at a time, for voice.. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoWhich card, starting at 1. Defaults to 1.
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).
readingNoA reading or plan id from /readings. Defaults to today's reading.

TDQS

C2.7/5.0
Behavior3/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 one genuine behavioral cue -- output is line-sized and intended for voice/TTS -- which hints at incremental retrieval, but it never explains pagination across cards or the 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 title is repeated verbatim (including a doubled period) and followed by an app-store style blurb listing unrelated features (plans, search, Meditations, Enchiridion, Seneca's letters) that do not describe this tool. Sentences are not earning their place.

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

Completeness3/5

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

For a read-only, zero-required-parameter tool with a fully documented schema and annotations covering safety, the essentials are present. The remaining gap is the undefined 'card' granularity and its relationship to the other Stoics retrieval tools, which the description should resolve.

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

Parameters3/5

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

Schema description coverage is 100% and each of n, date, and reading is documented in the schema with defaults, so the description need not carry parameter meaning. It only loosely gestures at 'today's reading' and 'one line at a time', adding no format or referencing details beyond the 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?

Names the resource (today's reading) and a delivery mode (one line at a time, for voice), but never defines what a 'card' is or how it differs from siblings like stoics_get_reading or stoics_get_today. The second sentence is a product-family blurb, not a statement of this 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?

No when-to-use guidance at all: nothing says when to pick get_card over get_reading, get_today, or read_book, all of which operate on the same corpus. The agent must infer selection from names alone.

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

stoics_get_readingStoic Scroller: One reading or plan, line by lineC
Read-onlyIdempotent
Inspect

Stoic Scroller. One reading or plan, line by line. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA reading or plan id from /readings, or a plan name such as "japji" or "The Gita in 18 Days".

TDQS

C2.4/5.0
Behavior3/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 fully covered. The phrase 'line by line' / 'read a passage at a time' adds a little granularity about the return shape, but nothing about format, error behaviour, or what a plan vs a reading 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 text is fragmented and front-loads a restated title rather than the purpose, then closes with a catalogue of the entire product's content ('plans, search, and the whole Meditations, Enchiridion and Seneca's letters'). That closing clause is irrelevant to a one-id getter and dilutes the signal.

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?

Complexity is very low (one required id parameter, full schema coverage, rich annotations, no output schema), so the description is nearly sufficient. However, for an agent the only real open question — what a caller gets back for a reading versus a plan — is left to the ambiguous 'line by line' phrasing.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already explains that id comes from /readings or may be a plan name like 'japji'. The description adds no syntax, format, or lookup detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 noun phrase ('One reading or plan, line by line') that largely restates the title, and the rest is app-level marketing listing features (search, whole books, letters) that this single-item getter does not perform. It never states a verb such as 'fetch a single reading by id', so an agent must infer the action from 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 routing guidance at all against the many siblings (stoics_get_card, stoics_get_today, stoics_read_book, stoics_search_readings). 'One reading or plan' hints at single-item granularity but never says when to use this versus listing, searching, or reading a whole book. The mention of 'search' is especially unhelpful given a dedicated search tool exists.

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

stoics_get_todayStoic Scroller: Today's reading, line by line (same as the app shows today)B
Read-onlyIdempotent
Inspect

Stoic Scroller. Today's reading, line by line (same as the app shows today). The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).

TDQS

B3.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, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered structurally. The description adds modest value by indicating the result is presented 'line by line,' hinting at the return shape. It says nothing about date-default behavior beyond what the schema states (defaults to today UTC).

Agents need to know what a tool does to the world before calling 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 front-loaded and precise, but the second is app-level marketing boilerplate ('plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time') that describes features belonging to other sibling tools, not this one. Nearly half the description does not earn its place for a single-parameter daily-reading tool.

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

Completeness4/5

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

For a simple read-only, idempotent tool with one optional parameter and no output schema, the description adequately conveys what is returned (today's Stoic passage, line by line) and the annotations cover safety. The only gap is the absence of any tie-breaking guidance against sibling reading tools, which is minor at this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, and the single date parameter is fully documented in the schema ('Optional day as YYYY-MM-DD. Defaults to today (UTC).'). The description adds no syntax, format, or boundary detail beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The opening states a specific verb+resource combination: 'Today's reading, line by line (same as the app shows today),' which tells the agent this returns the current day's Stoic passage. It is distinguishable from siblings like stoics_get_reading and stoics_read_book by the 'today' anchor, though the tool never names those alternatives explicitly. The trailing sentence dilutes focus by describing app-wide features rather than this 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 explicit when-to-use guidance or routing to alternatives. The phrase 'same as the app shows today' hints at the daily-reading use case but does not say when to prefer this over stoics_get_reading or stoics_read_book. An agent must infer the distinction from the name alone.

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

stoics_list_booksStoic Scroller: The whole books in the Library that can be read a passage at a timeC
Read-onlyIdempotent
Inspect

Stoic Scroller. The whole books in the Library that can be read a passage at a time. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/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 and side-effect profile is fully covered without the description. The description adds only thematic content context and no new behavioral detail (e.g., ordering, grouping of books), which is an acceptable but unremarkable contribution given the annotation coverage.

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

Conciseness2/5

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

The description largely restates the title and then repeats the same idea in a second, run-on sentence mixing content lists (plans, search, daily readings). It is padded rather than front-loaded, and the actionable purpose (enumerate books) is buried.

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

Completeness3/5

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

For a zero-parameter, read-only listing tool with no output schema and full annotation coverage, the essentials are present, but it omits any indication of what the listing returns or how it relates to the book-reading siblings. Adequate but with clear gaps.

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

Parameters4/5

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

The tool takes zero parameters and the schema coverage is 100%, so there is nothing for the description to disambiguate. The 0-parameter baseline of 4 applies.

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 conveys that this concerns 'the whole books in the Library' that are read passage by passage, naming the actual works (Meditations, Enchiridion, Seneca's letters). However, it never states a clean verb+resource like 'list the books available' and does not differentiate itself from nearby siblings such as stoics_list_readings or stoics_read_book, so the agent must infer the listing behavior from 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 call this versus stoics_list_readings, stoics_read_book, or stoics_search_readings. It describes the content of the library but leaves the selection condition entirely to inference from the tool name.

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

stoics_list_readingsStoic Scroller: All curated daily readings and plansC
Read-onlyIdempotent
Inspect

Stoic Scroller. All curated daily readings and plans. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.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 non-openWorld, so the safety profile is covered. The description adds no behavioral context beyond the annotations: no mention of what is returned, whether results are paginated, or scope/limits. It is largely promotional copy.

Agents need to know what a tool does to the world before calling 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 repeats the title, then piles on feature-listing ('explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time'). It is not front-loaded around the one thing this tool does and much of it describes sibling functionality.

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 parameterless, annotated list tool much explanation is unnecessary, so the bar is low. Still, the description conflates several tools' capabilities and never clarifies the actual scope of the list, leaving enough ambiguity to matter at selection time.

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 per the rubric the baseline is 4. Nothing in the description needs to compensate for a schema gap, and no contradictory parameter behavior is implied.

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 gestures at the resource (daily Stoic readings/plans) but never states a clean verb+resource like 'list all readings'. Worse, it advertises 'search' and reading 'the whole Meditations... a passage at a time', which are the jobs of sibling tools (stoics_search_readings, stoics_read_book), so an agent cannot cleanly separate this tool from its 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 when-to-use instruction and no reference to alternatives. The description mentions search and reading features without saying that those live in other tools, actively muddying selection rather than guiding it.

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

stoics_read_bookStoic Scroller: Follow next for the next passage; it carries on into the next chapterC
Read-onlyIdempotent
Inspect

Stoic Scroller. Follow next for the next passage; it carries on into the next chapter. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoPassage within the section, starting at 1.
refNoOptional: jump straight to a passage by its reference, for example "Havamal 139", "Meditations 4.3", "Gita 2.47", "Iliad 1.5" or "10b". Overrides section and n.
bookYesBook id or title from /books, for example meditations, enchiridion.
sectionNoChapter, book, poem, letter or daf to start at, as listed in the book (for example 5, "chapter 2", "havamal", or 10b for the second side of a daf). Defaults to the beginning; Bekhorot defaults to today's Daf Yomi page while the cycle is in it.

TDQS

C2.8/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 covered. The description adds a modest behavioral note about the sequential 'follow next' flow continuing across chapters, but says nothing about permissions, rate limits, or response shape. With annotations doing the heavy lifting, a 3 is appropriate.

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 marketing tagline is repeated (title restated as the first sentence), and phrases like 'plans, search, and the whole...' are vague filler. The useful content ('read a passage at a time', follow-next flow) is there but buried amid promotional framing rather than being front-loaded.

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

Completeness3/5

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

For a read-only tool with four fully documented parameters and complete annotations, the definition is adequate but not complete: it never clarifies its relationship to the other stoics_* read tools. No output schema exists, so the absence of return-value description is acceptable, but the sibling ambiguity is a real gap.

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

Parameters3/5

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

Schema description coverage is 100%, so book, section, n, and ref are all fully documented in the schema itself (including ref's override behavior and default daf handling). The description adds no parameter meaning beyond that, so the baseline 3 applies.

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 conveys that it reads a whole book (Meditations, Enchiridion, Seneca's letters) 'a passage at a time' and supports sequential 'follow next' navigation, which is a real verb+resource. However, it leans heavily on branding ('Stoic Scroller') and never clearly distinguishes this from siblings like stoics_get_reading or stoics_get_today, leaving the agent to infer the difference.

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

Usage Guidelines2/5

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

The description gives a hint about sequential continuation ('Follow next for the next passage; it carries on into the next chapter') but provides no explicit when-to-use, when-not-to-use, or alternative routing against stoics_get_reading, stoics_get_today, or stoics_search_readings. An agent must guess which sibling to pick for a given intent.

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

stoics_search_readingsStoic Scroller: Search the curated readings, best match firstC
Read-onlyIdempotent
Inspect

Stoic Scroller. Search the curated readings, best match first. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesWords to search for, for example anger or death.

TDQS

C2.9/5.0
Behavior3/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 one genuinely useful trait beyond the annotations — results are ranked 'best match first' — but the remaining sentence is marketing copy about the corpus, 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?

The first fragment is clear, but the trailing run-on sentence ('daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations...') is an unstructured content catalog that pads the definition without helping selection or invocation.

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-only search with full annotation coverage and no output schema, the essentials are present, and 'best match first' hints at ranking. It still omits match semantics (which fields are searched) and any result-count or pagination expectations.

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?

There is a single parameter with 100% schema description coverage, so the schema already explains the free-text query and even supplies examples ('anger or death'). The description adds nothing about how the query is matched (keyword vs semantic), so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('Search the curated readings') and even specifies result ordering ('best match first'). However, it never distinguishes this from close siblings such as stoics_list_readings or stoics_get_reading, so an agent must infer the search-vs-list-vs-fetch boundary on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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. There is no mention of when to prefer this over stoics_list_readings, stoics_read_book, or stoics_get_reading, and no prerequisite or query-shaping advice. Usage must be entirely inferred from the tool name.

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

supplementcheck_check_doseSupplement Check: Compare an amount of a vitamin or mineral with the adult RDA and upper limitA
Read-onlyIdempotent
Inspect

Supplement Check. Compare an amount of a vitamin or mineral with the adult RDA and upper limit. Use for "is 5000 IU of vitamin D too much?", "is 500 mg of magnesium glycinate safe?", "is 10 mg of melatonin a lot?" or "is 300 mg of caffeine too much?". Handles IU, mcg, mg and g, including IU for vitamins A, D and E and DFE for folate. For vitamins and minerals, status is above, at, within or no_upper_limit; when the name is a compound (magnesium glycinate, ferrous sulfate, zinc gluconate) the compound field also gives how much of the mineral the compound holds, as US and UK labels list the mineral itself; when only one reading is over the limit, the say line gives both and compared_with.depends_on_label is true. Fish oil, cod liver oil and krill oil amounts are the oil weight, so EPA plus DHA is estimated (amount.epa_dha_estimate_mg). With country=GB the limit is the NHS guidance (compared_with.reference is UK (NHS), with us_upper_limit alongside). For other supplements the answer compares with an official ceiling where one exists (caffeine) or the amounts studies have used, with status above, at, within, above_studied_range, within_studied_range, below_studied_range or no_set_amount, plus cautions. Adult values only, with a note

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoThe whole question instead, for example 5000 IU vitamin D.
unitNoIU, mcg, mg, g, mcg DFE, or billion (CFU) for probiotics. Defaults to IU for vitamin D amounts of 200 or more, otherwise the usual unit.
amountNoThe amount taken per day, in the unit given.
countryNoTwo-letter country code. GB compares with NHS guidance and gives UK amounts. Default from the request.
nutrientNoThe vitamin, mineral or supplement, for example vitamin D, magnesium or melatonin.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the read-only/idempotent annotations, the description discloses real behavioral traits: the status vocabularies for both nutrients and other supplements, the compound-to-mineral conversion behavior, the fish-oil EPA+DHA estimation, the country=GB NHS reference switch, and the adult-only scope note. This is exactly the extra context annotations cannot supply.

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 front-loaded well, leading with the core purpose and examples before the edge-case caveats. However, the later half is a dense run-on of semicolon-joined clauses covering compounds, fish oil, UK mode and studied ranges, which is harder to parse than a structured breakdown would be.

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

Completeness5/5

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

There is no output schema, so the description carries the return-value burden, and it does: it names the status enums, the compared_with.reference and depends_on_label fields, and amount.epa_dha_estimate_mg. Combined with annotations covering the safety profile, an agent has everything needed to call and interpret this 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 100% (baseline 3), but the description adds meaning the schema does not: which units apply to which nutrients (IU for A/D/E, DFE for folate), CFU for probiotics, and the compound/unit interactions that affect interpretation. That is genuine added value over the parameter table.

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 ('Compare an amount of a vitamin or mineral with the adult RDA and upper limit') and immediately anchors it with four concrete example questions. An agent can distinguish this from supplementcheck_get_nutrient and supplementcheck_get_supplement without opening a schema.

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

Usage Guidelines4/5

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

The example queries ('is 5000 IU of vitamin D too much?', 'is 300 mg of caffeine too much?') make the intended trigger scenario very clear. It does not, however, explicitly route the agent away from the sibling tools get_nutrient/get_supplement or state when not to use it, so it stops short of a full when/when-not statement.

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

supplementcheck_check_stackSupplement Check: Add up everything someone takes and check the daily totalsA
Read-onlyIdempotent
Inspect

Supplement Check. Add up everything someone takes and check the daily totals against adult upper limits. Use for "I take Centrum, vitamin D 5000 IU and zinc 50 mg, is that too much?" or "is it OK to take OLLY Sleep with extra melatonin?". Pass up to 6 items separated by semicolons: product names, barcodes, or amounts like vitamin D 5000 IU. Products are counted at the most each label suggests per day. Returns totals (each vitamin and mineral added up, with the items it comes from, compared with the adult upper limit, or NHS guidance with country=GB), other_totals (caffeine, melatonin and similar added up, or marked when a label hides the amount), items (what each was matched to) and not_found. Fish oil amounts count the EPA and DHA they typically hold.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesWhat the user takes, separated by semicolons, for example Centrum Silver Men; vitamin D 5000 IU; zinc 50 mg.
countryNoTwo-letter country code. GB compares totals with NHS guidance. Default from the request.

TDQS

A4.4/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), so the bar is lower, but the description adds genuine behavior: products are counted at the maximum each label suggests per day, country=GB switches the comparison basis to NHS guidance, hidden amounts are flagged rather than dropped, and fish oil is counted via EPA/DHA. These are non-obvious counting rules an agent could not infer.

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

Conciseness4/5

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

Front-loads the purpose, then examples, then input format, then return shape — a logical order with no filler sentences. It is dense and somewhat long, with several parentheticals, but every clause carries information.

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

Completeness5/5

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

There is no output schema, so the description carries the burden and does so well: it enumerates the returned buckets (totals, other_totals, items, not_found) and explains the comparison basis. For a 2-parameter, single-required-input tool this is complete enough to invoke correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real detail beyond the schema: a maximum of 6 items, and that entries may be product names, barcodes, or free-text amounts. That extends the accepted input vocabulary rather than restating the semicolon separator.

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 compound action (add up everything someone takes and check the daily totals against adult upper limits), which cleanly separates it from sibling check_dose (single item), get_nutrient, and get_supplement (lookups). The scope — a multi-item stack total — is unambiguous without opening the schema.

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

Usage Guidelines4/5

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

Gives two concrete trigger scenarios ("I take Centrum, vitamin D 5000 IU and zinc 50 mg, is that too much?" and "is it OK to take OLLY Sleep with extra melatonin?"), which is real usage guidance. It stops short of explicitly routing the agent away from supplementcheck_check_dose or get_nutrient when only one item is involved.

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

supplementcheck_get_nutrientSupplement Check: What a vitamin, mineral or supplement does and how much adults needA
Read-onlyIdempotent
Inspect

Supplement Check. What a vitamin, mineral or popular supplement does, how much adults need or studies used, limits, cautions and food sources. Use for "what does magnesium glycinate do?", "what is vitamin K for?", "how much vitamin D do I need?", "is ashwagandha safe?" or "what is creatine?". Covers vitamins A, B1, B2, B5, B6, B12, C, D, E and K, niacin, folate, biotin, choline, calcium, iron, zinc, magnesium, potassium, selenium, iodine, copper, chromium, manganese, molybdenum, phosphorus, boron and omega-3, and explains common forms. Also covers creatine, melatonin, caffeine, ashwagandha, turmeric, CoQ10, collagen, protein powder, probiotics, psyllium, glucosamine, St John's wort, green tea extract, berberine, L-theanine and elderberry: for these it returns supplement, what_studies_looked_at, studied_amounts, ceiling, cautions and source instead of rda and upper_limit. Links the NIH fact sheet. With country=GB the answer gives the UK amounts and NHS supplement guidance, also in the uk field.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesA vitamin, mineral, form or supplement, for example magnesium glycinate or ashwagandha.
countryNoUS, GB, IE, CA, AU. GB gives UK (NHS) amounts; also picks the shop link site. Default from the request.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish this as a safe, idempotent, closed-world read, so the bar is lower; the description goes well beyond them by disclosing the divergent return shape (rda/upper_limit for nutrients vs supplement/what_studies_looked_at/studied_amounts/ceiling/cautions/source for supplements) and the country=GB NHS-amount and uk-field behavior. It does not cover failure handling for unrecognised names, but the substantive 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.

Conciseness4/5

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

The purpose is front-loaded and every sentence carries information, though the opening "Supplement Check." merely echoes the name and the long nutrient enumeration makes the middle sentence dense. It is appropriately sized for the breadth of inputs it must define.

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

Completeness5/5

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

With no output schema, the description carries the return-value burden and does so: it lists the response fields, explains the supplement-vs-nutrient branching, and describes country-specific output and the NIH fact sheet link. An agent has everything needed to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by effectively enumerating accepted `name` values (vitamins A–K, minerals, and named supplements) and forms, compensating for the absence of any enum in the schema, and by clarifying the GB/NHS effect of `country`.

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

Purpose4/5

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

The description names a concrete resource (vitamin/mineral/supplement facts: what it does, adult amounts, limits, cautions, food sources) and gives example phrasings, so the tool's function is unmistakable. However, it never differentiates itself from the similarly named siblings supplementcheck_get_supplement and supplementcheck_check_dose, so an agent must guess which of the three 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 Guidelines4/5

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

Example queries ("what does magnesium glycinate do?", "is ashwagandha safe?", "how much vitamin D do I need?") give clear positive usage context. There are no explicit exclusions or pointers to the alternatives, which is a real gap given the overlapping sibling names.

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

supplementcheck_get_supplementSupplement Check: A supplement's label, dose check and halal statusA
Read-onlyIdempotent
Inspect

Supplement Check. A supplement's label: amounts per serving, upper limit check, halal status and a buy link. Use for "what's in Nature Made vitamin D3?", "is Centrum halal?", "how much melatonin is in OLLY Sleep?" or "is this supplement halal?" with a barcode. Give q (brand and product name) or barcode. Returns per-serving amounts, dose_check (each vitamin and mineral compared with the adult upper limit at the most the label suggests per day, with per_day_base amounts), other_checks (melatonin, caffeine, creatine, ashwagandha and similar, including when a blend hides the amount), halal (likely_halal, doubtful, not_halal or depends_on_school, with the ingredients that need a confirmed source), alternatives (other sizes or versions), an Amazon link, and halal_options (links to halal-certified or gelatine-free versions) when the halal answer is not likely_halal. For a general name like "creatine monohydrate" it reads one common label and says so. With country=GB, dose_check uses the NHS guidance where it sets one (upper_limit says NHS guidance). Salt forms such as magnesium glycinate are counted as the mineral they hold (estimated: true), and omega-3 is read from EPA and DHA, total omega-3, or estimated from the fish oil weight.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoBrand and product name, for example Nature Made vitamin D3 2000 IU.
idNoA label id from the NIH database, for example from alternatives.
barcodeNoUPC or EAN barcode digits (8 to 14).
countryNoUS, GB, IE, CA, AU. GB uses NHS guidance for the dose checks; also picks the buy link site. Default from the request.

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, so the safety profile is covered. The description adds real behavioral context beyond that: how salts are counted as their mineral (estimated: true), how omega-3 is derived, how general names read one common label and say so, and that country=GB switches dose checks to NHS guidance. This is substantive disclosure, though it does not mention rate limits 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.

Conciseness4/5

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

The description is long but front-loads purpose, then examples, then input rules, then the return shape, so the structure is sound. Most sentences earn their place by describing distinct output fields and edge cases, though it is denser than strictly necessary.

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

Completeness5/5

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

There is no output schema, so the description must explain return values, and it does so thoroughly: dose_check with per_day_base, other_checks including blend-hiding cases, halal with its four states, alternatives, Amazon link, and halal_options. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents q, id, barcode and country. The description reinforces q/barcode and the GB/NHS effect on country, but adds little meaning the schema does not already carry. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb+resource: retrieve a supplement's label with per-serving amounts, dose check and halal status. It is distinguishable from most siblings by content. However, it never explicitly distinguishes itself from close siblings like supplementcheck_check_dose, check_stack or get_nutrient, so a 4 rather than 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?

It gives concrete triggering examples ("what's in Nature Made vitamin D3?", "is Centrum halal?") and states the accepted inputs (q or barcode), which implies usage. But it offers no guidance on when to prefer this over the sibling check_dose/check_stack tools and no exclusions, leaving selection partly to inference.

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

syncmycycle_get_todays_phaseSync My Cycle: Today's cycle phase, with workout and food ideasA
Read-onlyIdempotent
Inspect

Sync My Cycle. Today's cycle phase, with workout and food ideas. Use when the user asks what phase they are in, what workout or food suits them today, or why their energy is up or down, for example "what phase am I in, my last period started September 12th" or "what should I train today?". Needs the first day of their last period. Not for getting pregnant, fertile days, ovulation timing, contraception or pregnancy: this is general wellbeing only, not for pregnancy planning or contraception, so suggest a doctor or pharmacist. When period_may_be_late is true the say line says the period may be late and suggests checking with a doctor

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoThe user's IANA time zone, for example Europe/London or America/Chicago, so today is the user's today. Optional: country is enough in most places.
dateNoDay to ask about, YYYY-MM-DD, a real calendar day. Default today where the user is: from tz, else country, else the request, else UTC.
dietNoComma separated: vegetarian, vegan, pescatarian, halal. Food ideas are filtered to suit.
countryNoTwo-letter country code (UK is read as GB). Sets the kit links (US, GB and IE get local Amazon links) and the time zone for today. Pass it for users outside the US. Default from the request.
last_periodYesFirst day of the user's most recent period, YYYY-MM-DD. Must be within the last 120 days.
cycle_lengthNoUsual days from one period start to the next, 20 to 45. Default 28.
period_lengthNoUsual days of bleeding, 2 to 10. Default 5.
last_period_startNoOlder name for last_period, kept for existing callers. Use last_period.

TDQS

A4.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 and destructiveHint=false, so safety is covered. The description adds two useful behavioral facts beyond the annotations: it requires the last period start (within 120 days) and it discloses that when `period_may_be_late` is true the returned say line warns of a late period and suggests seeing a doctor. It does not describe the broader output shape or phase naming.

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?

Purpose and use cases are front-loaded, then constraints, then the safety boundary — a sensible order. Slightly repetitive wording (pregnancy/contraception appears twice in one sentence) and the opening restates the title, but nothing is wasted enough to impede scanning.

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 carries the return-value burden and does disclose the key say-line behavior around a late period, plus the medical guardrail. It is complete enough to call correctly, though it never sketches the rest of the response (phase name, workout/food payload).

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

Parameters3/5

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

Schema description coverage is 100%, so tz, country, diet, cycle_length, period_length and the last_period_start alias are already fully documented in the schema. The description only restates the required last-period input and mentions period_may_be_late, which is actually a return value rather than a parameter, so it adds essentially no new parameter meaning.

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

Purpose5/5

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

States a concrete deliverable — the user's current cycle phase plus workout and food ideas — and scopes it to 'today', which separates it from the week-ahead sibling. The sample queries ('what phase am I in', 'what should I train today?') make the purpose unambiguous 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 Guidelines5/5

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

Explicit triggers are given ('what phase they are in', 'what workout or food suits them today', 'why their energy is up or down') with two concrete example utterances. It also states when NOT to use it (fertility, ovulation timing, contraception, pregnancy planning) and gives the fallback action (refer to doctor or pharmacist).

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

syncmycycle_get_week_aheadSync My Cycle: The days ahead by phaseA
Read-onlyIdempotent
Inspect

Sync My Cycle. The days ahead by phase. Use when the user wants to plan training or meals for the week, for example "plan my training this week around my cycle". Returns each day's likely phase, workout focus, intensity and food focus. Not for getting pregnant, fertile days, ovulation timing, contraception or pregnancy: this is general wellbeing only, not for pregnancy planning or contraception, and it is not a fertility calendar. When period_may_be_late is true, days is empty and the say line suggests checking with a doctor

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoThe user's IANA time zone, for example Europe/London or America/Chicago, so today is the user's today. Optional: country is enough in most places.
dateNoFirst day of the plan, YYYY-MM-DD, a real calendar day. Default today where the user is: from tz, else country, else the request, else UTC.
daysNoHow many days, a whole number from 1 to 35. Default 7.
dietNoAccepted for symmetry with /v1/today; the week view has no food list, so it has no effect here.
countryNoTwo-letter country code (UK is read as GB), used for the time zone of today. Pass it for users outside the US.
last_periodYesFirst day of the user's most recent period, YYYY-MM-DD. Must be within the last 120 days.
cycle_lengthNoUsual cycle length, 20 to 45. Default 28.
period_lengthNoUsual days of bleeding, 2 to 10. Default 5.
last_period_startNoOlder name for last_period, kept for existing callers. Use last_period.

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, so the bar is lower. The description adds genuine behavioral context beyond that: the period_may_be_late edge case where days comes back empty and the say line recommends a doctor, plus the domain-scope caveat that this is not a fertility calendar.

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?

Front-loaded with purpose and usage, which is good, but the opening restates the name/title and the disclaimer is repetitive, saying contraception/pregnancy twice ('not for ... contraception or pregnancy ... not for pregnancy planning or contraception'). Trimming the duplication would tighten it.

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 9 parameters, no output schema, and complex cycle math, the description usefully previews the return fields and flags the empty-days edge case. It is close to complete, though it could note the 120-day last_period validity constraint that the schema carries.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (tz, date, days, diet, country, last_period, cycle_length, period_length, last_period_start) is already documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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

Purpose5/5

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

States a concrete verb+resource (week-ahead day-by-day phase plan) and enumerates the returned fields (phase, workout focus, intensity, food focus). This clearly differentiates it from the sibling syncmycycle_get_todays_phase, which covers a single day.

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

Usage Guidelines4/5

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

Gives an explicit trigger ('Use when the user wants to plan training or meals for the week') with a sample utterance, plus firm when-not boundaries around fertility/pregnancy/contraception. It never names a sibling tool (e.g., get_todays_phase) as the alternative, so routing is implied rather than spelled out.

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

syncmycycle_list_phasesSync My Cycle: What each phase usually feels like, with workout and food ideasA
Read-onlyIdempotent
Inspect

Sync My Cycle. What each phase usually feels like, with workout and food ideas. Use for general questions about cycle syncing that need no dates, for example "what should I eat in my luteal phase?". Not for conception, fertile days, contraception or pregnancy: general wellbeing only, not for pregnancy planning or contraception

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds meaningful domain boundaries in 'general wellbeing only, not for pregnancy planning or contraception', which goes beyond the structured fields. It does not describe the response shape, which is the remaining gap.

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

Conciseness4/5

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

Usage guidance and exclusions are front-loaded and each sentence earns its place. The first sentence restates the title verbatim, which is mild redundancy, but the rest is tight and well ordered.

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, no-output-schema tool, the description covers scope, intended questions and exclusions adequately. The main omission is any hint of what the response contains structurally (e.g. all phases vs. a summary), which an agent might want before calling.

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

Parameters4/5

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

The tool takes zero parameters, so the schema carries no burden the description must compensate for. Baseline 4 applies; there is nothing further for the description to clarify about inputs.

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 resource (cycle phases) and what it returns: what each phase feels like, plus workout and food ideas. It is clear enough to distinguish from date-dependent siblings by noting it needs 'no dates', though it never explicitly names those siblings or uses the verb 'list'.

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

Usage Guidelines5/5

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

It gives explicit when-to-use ('general questions about cycle syncing that need no dates') with a concrete example ('what should I eat in my luteal phase?'), and explicit when-not-to-use ('Not for conception, fertile days, contraception or pregnancy'). Nothing is left to inference.

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

talmud_get_cardTalmud Scroller: Today's reading one line at a time, for voiceC
Read-onlyIdempotent
Inspect

Talmud Scroller. Today's reading one line at a time, for voice.. Talmud: daily readings, plans, search and original text lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoWhich card, starting at 1. Defaults to 1.
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).
readingNoA reading or plan id from /readings. Defaults to today's reading.

TDQS

C2.2/5.0
Behavior3/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), so the bar is lower. The description adds one genuinely useful behavioral fact: output is presented 'one line at a time, for voice,' i.e. a TTS-friendly single-line card. It says nothing about pagination via 'n', sequencing, or return shape, so it is modest but non-zero 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 text is repetitive and poorly structured: it repeats the title verbatim (with a stray double period) and then lists unrelated features (plans, search, whole-book reading) that belong to the product family, not this tool. It is not front-loaded on what this call actually 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 an unrequired 3-parameter tool with no output schema, the description should clarify what a 'card' is, how 'n' sequences content, and how this differs from get_today/get_reading. Instead it supplies generic marketing text, leaving key call-time questions unanswered.

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

Parameters3/5

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

Schema description coverage is 100% and all three parameters (n, date, reading) are documented in the schema itself. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose2/5

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

The description essentially restates the title ('Talmud Scroller. Today's reading one line at a time, for voice') and then appends generic product boilerplate about daily readings, plans, search and library access. It never distinguishes this tool from close siblings like talmud_get_today, talmud_get_reading, talmud_get_talmud_text, or the parallel *_get_card tools in bible/gita/gurbani/lore. It hints at a card-output concept but leaves the actual purpose vague.

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 talmud_get_today, talmud_get_reading, or the get_talmud_text sibling. No conditions, prerequisites, or alternatives are named. The agent is left to guess from the name alone.

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

talmud_get_readingTalmud Scroller: One reading or plan, line by lineC
Read-onlyIdempotent
Inspect

Talmud Scroller. One reading or plan, line by line. Talmud: daily readings, plans, search and original text lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesA reading or plan id from /readings, or a plan name such as "japji" or "The Gita in 18 Days".

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 without the description. The description adds only a vague "line by line / a passage at a time" hint at output granularity that is too ambiguous to be actionable, and says nothing about what a reading or plan actually 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 second sentence is catalog-level marketing copy about the whole Talmud offering that does not help an agent select or invoke this specific tool, so it does not earn its place. The genuinely useful content is nil, making this sparse rather than concise.

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, read-only tool with full schema coverage, rich annotations, and no output schema, the definition covers the minimum needed to invoke it. However it omits the one thing that matters here: how this differs from the six sibling talmud_ tools, leaving the agent unable to route confidently.

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

Parameters3/5

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

Schema description coverage is 100% and the id parameter already documents that it accepts a reading/plan id from /readings or a plan name like "japji". The description contributes no additional syntax, format, or constraint information beyond the schema, so the baseline 3 applies.

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

Purpose2/5

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

"Talmud Scroller. One reading or plan, line by line" essentially restates the tool name and title without stating what a "reading or plan" retrieval actually returns. The second sentence describes the whole Talmud product suite (daily readings, plans, search, whole books) rather than this tool, so it fails to distinguish itself from siblings like talmud_get_talmud_text or talmud_get_today.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance or named alternative. The trailing phrase "whole books from the Library, read a passage at a time" faintly gestures at talmud_read_book as a contrasting sibling, but it never states a condition for choosing this tool over that one, leaving the agent to infer.

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

talmud_get_talmud_textTalmud Scroller: Original text of any Talmud page or passage, or a Mishnah such as Pirkei...B
Read-onlyIdempotent
Inspect

Talmud Scroller. Original text of any Talmud page or passage, or a Mishnah such as Pirkei Avot 1:14, from Sefaria

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesA tractate and page, for example "Berakhot 2a", "Bava Metzia 59b" or "Shabbat 31a:6". Spoken forms such as "Bava Metzia page 59 b" also work.

TDQS

B3.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. The description adds only the data source ('from Sefaria'); it says nothing about return format, pagination, or error behavior. With annotations doing the heavy lifting, a 3 is appropriate.

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

Conciseness4/5

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

A single, front-loaded sentence with no waste. The 'Talmud Scroller' branding is slightly redundant with the title, but the content is otherwise tight.

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 single-parameter read tool with full schema coverage and complete annotations, this is close to sufficient. The main gap is sibling disambiguation against talmud_get_reading and talmud_read_book, which the agent would need to resolve on its own.

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

Parameters3/5

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

Schema description coverage is 100% and the schema itself supplies the accepted formats ('Berakhot 2a', spoken forms like 'Bava Metzia page 59 b'). The description adds no syntax or format detail beyond what the schema already provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource — retrieving the original text of a Talmud page, passage, or Mishnah — and even gives a concrete example (Pirkei Avot 1:14). It does not, however, distinguish itself from siblings like talmud_get_reading or talmud_read_book, so an agent cannot tell from the description alone 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 when-to-use guidance, no when-not-to-use, and no mention of alternatives such as talmud_get_reading or talmud_search_readings. The agent must infer usage from the name and the many sibling tools.

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

talmud_get_todayTalmud Scroller: Today's reading, line by line (same as the app shows today)C
Read-onlyIdempotent
Inspect

Talmud Scroller. Today's reading, line by line (same as the app shows today). Talmud: daily readings, plans, search and original text lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional day as YYYY-MM-DD. Defaults to today (UTC).

TDQS

C2.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 and reproducibility profile is covered structurally. The description adds only the 'same as the app shows today' framing, with no detail on response shape, format, or edge cases.

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 description is brief and front-loads the core purpose, which is good. But the trailing sentence describing plans, search, whole books, and passage reading names features this tool does not perform, adding noise rather than earning its place.

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

Completeness3/5

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

For a simple zero-required-param read tool with annotations covering its safety profile and no output schema, the definition is close to adequate. The generic boilerplate about search and library features introduces mild ambiguity about scope that a cleaner description would avoid.

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

Parameters3/5

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

Schema description coverage is 100% and the single optional date parameter is fully documented in the schema (YYYY-MM-DD, defaults to UTC today). The description offers no additional meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The description states a clear verb+resource: retrieving today's Talmud reading, shown line by line. However, it does not differentiate itself from close siblings like talmud_get_reading or talmud_get_card, so an agent cannot tell from the text alone which to prefer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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. The second sentence lists family capabilities (plans, search, library, reading passages) but never says when this specific tool is the right choice over those siblings.

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

talmud_list_booksTalmud Scroller: The whole books in the Library that can be read a passage at a timeC
Read-onlyIdempotent
Inspect

Talmud Scroller. The whole books in the Library that can be read a passage at a time. Talmud: daily readings, plans, search and original text lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds nothing behavioral on top of that (no return shape, no pagination, no scope limits) and merely echoes the title, so it contributes no extra transparency.

Agents need to know what a tool does to the world before 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 redundant: 'read a passage at a time' appears twice and the sentence about 'daily readings, plans, search and original text lookup' does not belong to a list-books tool, so it wastes space rather than front-loading useful scope.

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

Completeness3/5

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

For a zero-parameter list tool with no output schema and full annotation coverage, minimal text can suffice, and the annotations carry the safety profile. However, the description never clarifies what is actually returned (a catalogue of books) or how it relates to the reading/lookup siblings, so it is only marginally complete.

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

Parameters4/5

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

The schema has zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The description does not need to explain inputs, and it correctly implies a no-argument listing 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 largely restates the title ('Talmud Scroller... whole books in the Library') and then lists unrelated app functions ('daily readings, plans, search and original text lookup') that belong to sibling tools. It never plainly states that this tool returns the list of books, so it reads as a tautological restatement rather than a distinct verb+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 indication of when to call this versus talmud_list_readings, talmud_get_reading, talmud_read_book, or the parallel *_list_books siblings. The mention of 'search' and 'original text lookup' arguably points at other tools without saying so, leaving the agent with no routing guidance.

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

talmud_list_readingsTalmud Scroller: All curated daily readings and plansC
Read-onlyIdempotent
Inspect

Talmud Scroller. All curated daily readings and plans. Talmud: daily readings, plans, search and original text lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior3/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 beyond that (no return format, no pagination, no scope). Given full annotation coverage, a middle score is appropriate.

Agents need to know what a tool does to the world before calling 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 bloated with suite-level branding ('Talmud Scroller') and a generic feature list ('search and original text lookup; whole books from the Library, read a passage at a time') that belongs to other tools, not this lister. Sentences are repeated/overlapping rather than front-loaded with the key fact.

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, zero-param list tool with no output schema, the description conveys the resource being listed but omits what the returned list actually contains or how it differs from sibling retrieval tools. Adequate but with clear gaps.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to compensate for. Baseline for a 0-param tool is 4; the description neither needs nor omits parameter detail.

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 phrase 'All curated daily readings and plans' implies a listing of readings and plans, which is on-target for the name talmud_list_readings. However, no explicit verb ('List') is given and nothing distinguishes it from siblings like talmud_list_books, talmud_get_today, or talmud_search_readings. The intent is discernible but vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the 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 guidance and no mention of alternatives. The trailing feature text ('daily readings, plans, search and original text lookup; whole books from the Library') describes the whole app family, not when an agent should pick this list tool over the other talmud_* tools.

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

talmud_read_bookTalmud Scroller: Follow next for the next passage; it carries on into the next chapterC
Read-onlyIdempotent
Inspect

Talmud Scroller. Follow next for the next passage; it carries on into the next chapter. Talmud: daily readings, plans, search and original text lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoPassage within the section, starting at 1.
refNoOptional: jump straight to a passage by its reference, for example "Havamal 139", "Meditations 4.3", "Gita 2.47", "Iliad 1.5" or "10b". Overrides section and n.
bookYesBook id or title from /books, for example pirkei-avot, bekhorot.
sectionNoChapter, book, poem, letter or daf to start at, as listed in the book (for example 5, "chapter 2", "havamal", or 10b for the second side of a daf). Defaults to the beginning; Bekhorot defaults to today's Daf Yomi page while the cycle is in it.

TDQS

C2.9/5.0
Behavior3/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 genuine behavioral context beyond that: reading is chunked ('a passage at a time') and continuation flows across chapter boundaries via 'next'. It does not describe error behavior or what a passage object contains, but the annotations carry most of the burden.

Agents need to know what a tool does to the world before calling 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 restates the tool name ('Talmud Scroller') and then repeats the title almost verbatim before appending a grab-bag clause about daily readings, plans and search that does not belong to this tool. Little is front-loaded as a purpose statement; the trailing feature list is noise that dilutes the signal.

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 100% schema coverage, no output schema, and annotations covering the safety profile, the mechanics an agent needs to call the tool are present elsewhere. The description stops short of the one thing that would help most, routing between this and talmud_get_reading / talmud_get_talmud_text, and its suite-level marketing line muddies rather than completes the picture.

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

Parameters3/5

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

Schema description coverage is 100%: book, section, n and ref are all documented in the schema, including the ref-overrides-section-and-n precedence and daf notation. The description adds no parameter meaning beyond this ('read a passage at a time' is already covered by the n field description), so the baseline 3 applies.

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 conveys that this reads a 'whole book' 'a passage at a time' and lets you 'follow next', so the read-a-book-sequentially purpose is inferable. However, it opens by restating the title and then drifts into a suite-level feature list ('daily readings, plans, search and original text lookup') that describes the whole Talmud toolset rather than this tool, and it never distinguishes itself from siblings like talmud_get_reading or talmud_get_talmud_text.

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

Usage Guidelines3/5

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

'Follow next for the next passage; it carries on into the next chapter' gives actionable navigation guidance for continuing a read. But there is no explicit when-to-use versus alternatives, no statement of when to prefer this over talmud_get_reading, and no prerequisites. Usage is only implied.

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

talmud_search_readingsTalmud Scroller: Search the curated readings, best match firstC
Read-onlyIdempotent
Inspect

Talmud Scroller. Search the curated readings, best match first. Talmud: daily readings, plans, search and original text lookup; whole books from the Library, read a passage at a time

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesWords to search for, for example kindness or Shabbat.

TDQS

C2.7/5.0
Behavior3/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's one genuine behavioural addition is that results are ranked by best match, but it says nothing about result count, snippet content, or empty-match behaviour.

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

Conciseness2/5

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

The title is restated verbatim in the first sentence, and the second sentence is a catalogue blurb covering sibling capabilities (plans, original text lookup, whole books) that does not help invoke this tool. Roughly half the text is filler that should be cut.

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-only search with no output schema and full annotation coverage, the definition is minimally sufficient to call the tool. It still leaves unanswered what a result looks like and how the query is interpreted, so it is adequate but not complete.

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

Parameters3/5

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

Schema coverage is 100% and the schema already documents 'q' with examples ('kindness or Shabbat'), so the description adds no query syntax, matching semantics, or multi-word behaviour beyond it. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose3/5

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

The first clause gives a specific verb+resource ('Search the curated readings') with a ranking behaviour ('best match first'), which is better than a tautology. However, the second sentence is product-family boilerplate ('daily readings, plans, search and original text lookup; whole books from the Library') that describes the whole Talmud suite rather than this tool, and it never distinguishes this search tool from siblings like talmud_get_reading, talmud_list_readings, or talmud_get_talmud_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?

'Best match first' hints at ranked search results, but there is no statement of when to use this versus talmud_list_readings (browse) or talmud_get_reading (fetch one), and no prerequisites or exclusions. An agent must infer the routing decision entirely.

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

wardrobeconnect_find_clothesWardrobe Connect: Find clothes that match a descriptionA
Read-onlyIdempotent
Inspect

Wardrobe Connect. Find clothes that match a description. Use when the user describes a piece of clothing they want ("black pleated wide-leg trousers", "cream cable-knit jumper like the one I saved"). Natural requests are fine ("a navy midi wrap dress for a summer wedding under £60 in a size 12"): the occasion is kept out of the search and returned in occasion, and a price or size in the words is used when max_price or size is not passed. Returns eBay listings in the Clothing, Shoes and Accessories category, closest matches first and then cheapest first (from a best-match and a price-sorted search), plus search links for other shops and a Facebook Marketplace search phrase. Listings must match the colour and fabric named, the same kind of garment (by title and by eBay category, so socks never answer a search for trainers), and men's or women's if given; kids' items only when asked for. Adult, fetish and costume listings are never shown, repeat listings of the same item count once, and listings far below the typical price for the search (usually bait or junk) are left out

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesA clear description of the item: colour, type, fabric or style, brand if known.
sizeNoThe user's size, for example M, XL, 12, UK 9, US 8.5, EU 39 or W32. Numbers without UK, US or EU are read in the country's usual sizes. Dress and shoe sizes are converted between UK, US and EU, and dress sizes to S, M and L. Listings that state a different size are left out; listings that state the size come first (size_listed true), then ones that don't say.
countryNoTwo-letter country code. Defaults to where the request comes from. Supported: US, GB, IE, CA, AU, DE, FR, IT, ES.
conditionNonew, used (pre-owned) or any. Default any. pre-owned and second-hand are read as used.
max_priceNoMost the user wants to pay, in their local currency, shipping included.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the safety-oriented annotations (readOnly/idempotent/non-destructive) by disclosing return composition, ordering logic (best-match then cheapest, from two searches), and a detailed set of filtering rules: colour/fabric enforcement, garment-kind matching by title and category, gendered results, kids only on request, exclusion of adult/fetish/costume listings, dedup of repeats, and removal of junk/bait pricing.

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?

Purpose is front-loaded before the usage examples and the detailed filtering/ranking rules, and each clause carries real information. It is dense and somewhat run-on, and the trailing list of filter rules could be tightened, but the length is broadly justified by the tool's complexity.

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

Completeness5/5

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

There is no output schema, so the description carries the full burden of explaining returns — and it does: eBay listings, ranking order, search links for other shops, and a Facebook Marketplace search phrase. Combined with the detailed filtering rules, an agent has enough to select and invoke this correctly.

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

Parameters4/5

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

With 100% schema coverage the baseline is 3, and the description genuinely adds precedence semantics: a price or size mentioned in the natural-language query is only used when max_price/size are not explicitly passed, and occasion is deliberately excluded from the search. It also confirms adult/kids/gender filtering behavior that the schema does not express.

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

Purpose5/5

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

States a specific verb+resource ('Find clothes that match a description') and clearly distinguishes itself from the text-vs-image sibling (wardrobeconnect_find_clothes_by_image) by framing the input as a natural-language description. It also names the concrete output source (eBay listings in the Clothing, Shoes and Accessories category).

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

Usage Guidelines4/5

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

Gives a clear trigger condition ('Use when the user describes a piece of clothing they want') with several representative example queries, including a fully natural one. It does not explicitly name a sibling alternative or a when-not-to-use condition (e.g. image input belongs to find_clothes_by_image), leaving that to inference from the tool name.

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

wardrobeconnect_find_clothes_by_imageWardrobe Connect: Find clothes that look like a pictureA
Read-onlyIdempotent
Inspect

Wardrobe Connect. Find clothes that look like a picture. Use when the user shares or points at a picture of an outfit or item (a Pinterest pin, a saved post, a photo). Give the image's direct https link. Returns visually similar eBay listings from the Clothing, Shoes and Accessories category only, in eBay's look-alike order. If the picture does not look like one piece of clothing (the results are scattered across unrelated kinds), matches is empty and the say line asks what the item is. Adding a short description in q is strongly recommended: results must then match it, which removes look-alikes of the wrong kind

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoWhich item in the picture, for example "the camel coat". Results must match it, and it is used as a fallback text search.
sizeNoClothing or shoe size to match, for example M, 10 or UK 8.
countryNoTwo-letter country code for the eBay site and currency, for example US or GB.
conditionNoany, new or used.
image_urlYesDirect https link to a JPEG, PNG or WebP picture, 6 MB at most.
max_priceNoHighest price, in the local currency.

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the restricted category (Clothing, Shoes and Accessories only), eBay's look-alike ordering, the fallback behavior when the image is not one item (`matches` empty and a say line asks what the item is), and the effect of q on filtering results. These are substantive behavioral traits not covered by the readOnly/idempotent/destructive annotations.

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

Conciseness4/5

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

Front-loaded and mostly efficient: purpose, usage, required image link, return behavior, fallback case, and q guidance. The opening brand line 'Wardrobe Connect.' is redundant with the namespace/title, but the rest of the sentences earn their place.

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

Completeness5/5

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

Given no output schema, the description supplies enough return-shape context (`matches` empty, say line asks what the item is) and category/order details. Annotations cover the safety profile and the schema covers all parameters, so an agent has what it needs to invoke the tool correctly.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful guidance for q, calling it 'strongly recommended' and explaining that results must match it to remove wrong-kind look-alikes, which strengthens the schema's own q description.

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: 'Find clothes that look like a picture' and returns visually similar eBay listings. The image-based nature is clear from the description and tool name, but it does not explicitly name or contrast with the sibling wardrobeconnect_find_clothes tool.

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

Usage Guidelines4/5

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

Gives clear when-to-use context: 'Use when the user shares or points at a picture of an outfit or item (a Pinterest pin, a saved post, a photo).' It also advises adding a short q description, but does not state when-not to use this tool or name an alternative text-search sibling.

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. 118 tool updates
    • First observedappealmyclaim_draft_appeal_letter
    • First observedappealmyclaim_explain_denial_code
    • First observedappealmyclaim_get_appeal_deadlines
    • First observedappealmyclaim_get_appeal_rights
    • First observedbible_get_card
    • First observedbible_get_passage
    • First observedbible_get_reading
    • First observedbible_get_today
    • First observedbible_list_readings
    • First observedbible_search_readings
    • First observedbookslikethis_find_similar_books
    • First observedbookslikethis_get_author_books
    • First observedbookslikethis_get_book
    • First observedcancelmysub_get_cancel_reminder
    • First observedcancelmysub_get_cancel_steps
    • First observedcancelmysub_identify_charge
    • First observedcancelmysub_list_services
    • First observedcheapestprice_check_price
    • First observedfaredeals_cheapest_dates
    • First observedfaredeals_find_deals
    • First observedfaredeals_look_up_place
    • First observedfindmymoney_get_sources
    • First observedfindmymoney_get_state_search
    • First observedformguide_compare_teams
    • First observedformguide_get_fixtures
    • First observedformguide_get_results
    • First observedformguide_get_table
    • First observedformguide_get_team
    • First observedgita_get_card
    • First observedgita_get_chapter
    • First observedgita_get_reading
    • First observedgita_get_today
    • First observedgita_get_verse
    • First observedgita_list_books
    • First observedgita_list_readings
    • First observedgita_read_book
    • First observedgita_search_readings
    • First observedgurbani_get_ang
    • First observedgurbani_get_card
    • First observedgurbani_get_reading
    • First observedgurbani_get_shabad
    • First observedgurbani_get_today
    • First observedgurbani_list_books
    • First observedgurbani_list_readings
    • First observedgurbani_read_book
    • First observedgurbani_search_readings
    • First observedhalalornot_ask_is_it_halal
    • First observedhalalornot_check_crypto
    • First observedhalalornot_check_fund
    • First observedhalalornot_check_ingredients
    • First observedhalalornot_check_medicine
    • First observedhalalornot_check_product_by_barcode
    • First observedhalalornot_explain_ingredient
    • First observedhalalornot_explain_schools
    • First observedhalalornot_get_prayer_times
    • First observedhalalornot_list_rules
    • First observedhalalornot_list_topics
    • First observedhalalornot_screen_stock
    • First observedhalalornot_search_products
    • First observedjobspotter_get_job
    • First observedjobspotter_search_jobs
    • First observedlore_get_card
    • First observedlore_get_reading
    • First observedlore_get_today
    • First observedlore_list_books
    • First observedlore_list_readings
    • First observedlore_read_book
    • First observedlore_search_readings
    • First observedlowermybill_get_bill_help
    • First observedlowermybill_get_bill_script
    • First observedlowermybill_get_call_reminder
    • First observedmedbillcheck_check_price
    • First observedmedbillcheck_check_whole_bill
    • First observedmedbillcheck_draft_bill_letter
    • First observedmedbillcheck_look_up_hospital
    • First observedmedbillcheck_search_services
    • First observedmizan_calculate_zakat
    • First observedmizan_find_halal_alternatives
    • First observedmizan_list_standards
    • First observedmizan_purify_dividend
    • First observedmizan_screen_company
    • First observedmizan_screen_portfolio
    • First observedplanmyworkout_get_exercise
    • First observedplanmyworkout_get_workout_plan
    • First observedplanmyworkout_list_exercises
    • First observedplatepal_get_barcode_nutrition
    • First observedplatepal_get_food_nutrition
    • First observedplatepal_get_meal_ideas
    • First observedpricedropback_check_price_drop_claim
    • First observedpricedropback_get_claim_reminder
    • First observedpricedropback_get_store_policy
    • First observedpricedropback_list_stores
    • First observedspinmyday_list_vibes
    • First observedspinmyday_spin_my_day
    • First observedstoics_get_card
    • First observedstoics_get_reading
    • First observedstoics_get_today
    • First observedstoics_list_books
    • First observedstoics_list_readings
    • First observedstoics_read_book
    • First observedstoics_search_readings
    • First observedsupplementcheck_check_dose
    • First observedsupplementcheck_check_stack
    • First observedsupplementcheck_get_nutrient
    • First observedsupplementcheck_get_supplement
    • First observedsyncmycycle_get_todays_phase
    • First observedsyncmycycle_get_week_ahead
    • First observedsyncmycycle_list_phases
    • First observedtalmud_get_card
    • First observedtalmud_get_reading
    • First observedtalmud_get_talmud_text
    • First observedtalmud_get_today
    • First observedtalmud_list_books
    • First observedtalmud_list_readings
    • First observedtalmud_read_book
    • First observedtalmud_search_readings
    • First observedwardrobeconnect_find_clothes
    • First observedwardrobeconnect_find_clothes_by_image

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    An MCP server providing comprehensive Islamic utilities, including prayer times, azan, Hijri calendar, du'a, zakat, and the 99 Names of Allah.
    34
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides read-only access to Quran data — reciters, surahs, full-text search, ayah retrieval, prayer times, live radio stations, and Hijri dates — so AI agents can answer Islamic content queries. Runs locally via stdio or remotely over stateless HTTP for Claude, ChatGPT, and other MCP clients.
    8
    ISC
  • A
    license
    Not graded
    quality
    B
    maintenance
    Remote MCP server exposing Wasilah's Islamic reference data, enabling prayer-time, Qibla, Hijri-date, and Quran-audio queries via natural language.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server providing Malaysian/global prayer times (JAKIM + Aladhan fallback), nearest mosque/surau finder, and Islamic calendar events.
    4
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.