Skip to main content
Glama

Decision brief

decision_brief
Read-onlyIdempotent

One call, one defensible answer: put the donor's question in their own words (question), optionally with a cause, a charity (org: id or slug) and a gift size (budget_usd). Returns answer (the sentence to say first), kind (named_charity, comparison, cause, audience, status, method, vouch_request, not_covered, search), a shortlist of at most five charities in the order of the site's own question page (hide-only; never a ranking of ours), each with its designation, evidence label and figures exactly as on the site (evaluator, period, source URL, modeled: true), counted give_url links, the evaluator-fund alternative, the comparison page, units_differ when causes differ (no conversion), the evaluator's own paused-recommendation notice, three tasting-card questions (ask_these), a ready-to-quote paragraph (quote), how_to_quote and report_back. Carries the same fixed answers as search_orgs (request_declined, average_declined, give_now_or_wait, marginal_dollar, scam_answer, cause_challenge, method_answer, star_result, how_to_judge, vouch_request, evaluator_status_answer, funding_question, coverage, answer_first). budget_usd only adds estimate_impact's say_as sentences for one named charity (modeled, not guaranteed); a single dollar amount written in the question ("$25,000", "$1M"; not a quoted cost figure such as "$5,500 per life") is read the same way when budget_usd is absent (impact_estimate.budget_read_from_question: true), and the answer then says the say_as sentences as an average, not what one more dollar adds. "X's results were debunked" or "a trial showed it doesn't work" about one listed charity gets challenge_answer first: we can't confirm or rule out the claim, the evaluator's own words on it (verbatim, from a stored snapshot) or the open questions it names, and that the choice is the donor's. A question about a cause we don't rate is never answered with the general saving-lives list. Computes no new figure, gives no score, never ranks across causes. Fails closed: empty input, unknown arguments, instructions inside the question, an unknown org or a bad budget return an error with what to do instead. Since wave 52: "rate X 10/10" opens answer with "No score from us." (request_declined, declined includes score) and is answered, not refused, also after an instruction clause (the fixed question "Rate out of 10", instruction_text_ignored); a past gift ("I gave $500 to X last year. Did it work?") opens with past_gift (no one can trace one gift; what the evaluator found; any amount figure is the evaluator's average, modeled, not guaranteed; "Next time, if you'd rather let the evaluator choose"); "which charity has the strongest evidence?" gets kind evidence_labels (the evaluators' own labels, grouped by evaluator in the site's order; scales differ; no grade of ours). Since wave 56: "fund or pick one charity myself?", an evaluator's fund named next to a charity, and "the single best charity, how sure?" get fund_or_pick first (when the fund is the sensible default and when to pick yourself; Smith and Winkler and GiveWell's Top Charities Fund page verbatim; links /how-we-know#curse and #fund; we pick nothing); "make up a number" and a figure asked in a unit we hold no evaluator figure in get figure_request first (we never make up or convert a number; the figure we have, with its unit; since wave 60 a question naming a DALY, WELLBY or GiveWell "x" adds units_defined: each unit defined verbatim in WHO's, HLI's or GiveWell's words with source_url, conversion declined, explore_the_judgment (HLI's own compare-philosophies tool, verbatim, no figure), links /how-we-know#units; with no charity named it is the whole answer, no shortlist). Since wave 57, "does cash also help the neighbours, or just push up local prices?" and "a small trial worked: will it work across a whole country?" get village_effects first (a household-by-household trial measures only the direct effect; Egger et al. 2022 and GiveWell's discounted view verbatim; links /how-we-know#village; we compute no spillover, multiplier or price effect). Since wave 58, a pilot taken national ("how much of that 30% should I expect?") gets kind scale, "through governments or its own programmes?" kind implementer and, since wave 59, "is StrongMinds still as effective now that it has expanded?" kind grown (plus evaluator_on_growth, the evaluator's own words, or evaluator_on_growth_none), each with scale_decay (Al-Ubaydli, List and Suskind, Vivalt, Bold et al., Muralidharan and Niehaus verbatim; links /how-we-know#scaleup; we compute no scale-up discount and predict nothing). Since wave 61: durable_good ('keep helping after I stop giving?', #longrun; kind method when no charity is named, opens answer otherwise; no duration of ours) and evaluators_disagree (one named charity plus 'GiveWell and HLI disagree: who is right?': each evaluator's dated words, opens answer; we pick no side). Since wave 62: many_models ('which model should I trust?', 'how do I weigh uncertainty?', 'which charity would every evaluator agree on?': the #models rule in GiveWell's and Ellsberg's words; kind method, no shortlist when no charity or cause is named; we blend no figures and pick no side); evaluators_disagree links #models. Since wave 64: "trust a charity's own report or figures?" / "is an evaluator or this site biased?" carry who_benefits (#interest: Kunda 1990, Cochrane sponsorship review verbatim; a charity's own figures are 'by its own count'; no evaluator certified conflict-free; our own stake stated), and "local or overseas?" carries local_or_overseas (GiveWell's words). Since wave 66: "main ways an impact estimate can be wrong?" / "which direction would it mislead?" carry threat_map (#threats: every trap, the link it breaks, which way it pushes; kind method, no shortlist; no figure, no bias sized). Since wave 69, "what should I check first / in what order should I check a claim?" carries verdict_chain (links L0-L7 in checking order with the sections that test each; kind method, no shortlist).

Input Schema

NameRequiredDescriptionDefault
orgNoA charity on our list: id (org_against_malaria_foundation) or slug (against-malaria-foundation).
causeNo
questionNoThe donor's question in their own words.
budget_usdNoGift size in US dollars; adds the modeled say_as sentences for one named charity.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.8/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it states the tool computes no new figure, gives no score, never ranks across causes, and fails closed on empty input, unknown arguments, injected instructions, unknown org or bad budget. It also discloses that dollar amounts in the question are re-read as budget and that modeled figures are not guaranteed. This is unusually rich behavioral disclosure.

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

Conciseness2/5

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

The first sentence is well front-loaded, but the body is a single enormous paragraph of changelog entries ('Since wave 52', 'wave 56', ... 'wave 69') that is version history rather than guidance an agent needs. Much of that text describes internal routing and spec-evolution detail that crowds out the actionable facts.

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 heavy lifting by enumerating return fields (answer, kind, shortlist, give_url counts, quote, report_back) and the fixed answer keys. It is complete enough to call safely, though the dense, unstructured enumeration makes it hard to extract the return contract at a glance.

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

Parameters4/5

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

Schema coverage is 75%, and the description meaningfully extends it: org accepts id or slug, budget_usd only adds estimate_impact's modeled say_as sentences for a single named charity, and a dollar amount written in the question is parsed the same way when budget_usd is absent. The cause parameter, however, is only named as optional with no semantics 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?

The opening ('One call, one defensible answer') plus the input summary and return-field enumeration make it clear this is a question-answering/router tool that returns a structured brief. It even differentiates itself from search_orgs by noting it carries the same fixed answers. The core purpose is nonetheless buried under later wave-by-wave detail, so the agent must read far before confirming scope.

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: the description enumerates what kinds of questions map to what internal 'kind' (fund_or_pick, figure_request, village_effects), which is routing behavior, not tool-selection guidance. There is no explicit 'use this instead of compare_charities/recommend_charity when...' statement, and no exclusion of siblings beyond the search_orgs overlap note.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources