Skip to main content
Glama
imam-db

reimburse-buddy

by imam-db

check_claim

Run deterministic policy rules on an expense claim and get gap codes for missing evidence, cap breaches, and duplicates. Use it for every money figure before approving or rejecting items.

Instructions

Run the deterministic policy rules on a claim. ALWAYS use this for any money figure.

evidence_ids: IDs you found (inbox MSG-..., calendar EVT-..., memo MEMO-...). human_decisions: {item_id: approve_full | approve_capped | reject}; works for any item category. Items with status needs_evidence list gap codes (e.g. boarding_pass_missing, hotel_over_cap, late_checkout_unjustified, duplicate_suspected). ignored_evidence explains IDs that did not count.

Input Schema

NameRequiredDescriptionDefault
claim_idYes
evidence_idsNo
human_decisionsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does a fair job: it discloses that items can come back with status needs_evidence, enumerates real gap codes (boarding_pass_missing, hotel_over_cap, late_checkout_unjustified, duplicate_suspected), and explains that ignored_evidence reports IDs that did not count. The remaining gap is whether calling it mutates claim state or is a pure evaluation, which matters a lot for a tool accepting human_decisions.

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

Conciseness5/5

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

The mandate is front-loaded in the first two sentences, then the per-parameter notes are compact and each carries non-obvious information. No filler sentences and nothing repeated from the schema.

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

Completeness4/5

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

For a 3-param tool with no annotations and no output schema, the description supplies parameter formats and describes key result fields (gap codes, ignored_evidence, needs_evidence status), which is close to sufficient. It still leaves open whether the call persists decisions and how to interpret an item that is neither approved nor flagged.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it largely does: evidence_ids is given concrete ID formats per source (MSG-, EVT-, MEMO-), and human_decisions is given its allowed vocabulary (approve_full | approve_capped | reject) plus the note that it works for any item category. claim_id itself is left entirely unexplained, which is the one uncovered parameter.

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

Purpose5/5

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

States a specific verb and resource ("Run the deterministic policy rules on a claim") and implicitly distinguishes itself from get_policy (which supplies the rules) and draft_decision (which drafts output). The word "deterministic" also tells the agent the result is reproducible, not a model opinion.

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?

"ALWAYS use this for any money figure" is an explicit, unambiguous triggering condition that an agent can act on directly. It stops short of naming which sibling to avoid in a specific scenario (e.g. draft_decision vs check_claim), so it is clear context without full alternative routing.

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