Skip to main content
Glama

Search orgs

search_orgs
Read-onlyIdempotent

Heuristic search by cause, outcome family, or donor intent phrase. Prefer recommend_charity when the user wants ranked 'best for outcome' results. An empty result carries coverage (what we don't cover and what to do instead; no figures). A non-empty result that answers only part of the question carries partial_coverage: which part is covered, which is not (for example animal welfare, humanitarian relief, scam checks or tax-return data) and who does assess the rest. Every answer that doesn't fully cover the question starts with answer_first: what we don't cover and who does assess it, then which part the results answer. A question asking whether anyone pays us, or who funds us, also gets funding_question (nobody can pay for a place; we take no referral fees and never handle donors' money). A question asking whether a survey, testimonial or before-and-after report proves a programme worked gets method_answer first (no, why, what to ask for, the missing-answer bounds; method only). A question asking whether one striking result (a single study showing it beats similar programmes, the top of a list) makes a charity the best gets star_result first (probably overstated; the eight-schools example; what to ask for; method only). A demand for a guarantee or for our own ranking gets request_declined (figures are modeled, never guaranteed; we rank nothing ourselves). A request to average cost-per-outcome figures (two charities' cost per life, or over scenarios) gets average_declined first (we don't average them; add up outcomes instead, one unit; method only; the evaluators' figures follow unchanged). "Should I give now or wait a year for better evidence?" (or "invest it and give later?") gets give_now_or_wait first (GiveWell's own answer verbatim; decide on today's best estimate and wait only for named evidence, due in time, that could change the choice; for one named listed charity, the evaluator's dated re-check or our evidence-gap ledger's words; method only, we compute no value of information). "Does my gift just replace what another funder would have paid anyway?" (or "does an extra dollar do as much as the average?", leverage, a matching gift) gets marginal_dollar first (the next dollar, not the average; funging and leverage in GiveWell's own words verbatim; for a match, GiveWell's 2011 words; for one named listed charity, GiveWell's dated 2018 words where they exist; method only, we compute no marginal value, funging share or leverage figure). "Which charity on your list is a scam?" or "is X a scam?" gets scam_answer first (we don't call any charity a scam or vouch that one isn't; we run no fraud checks; who does: IRS, state regulators, BBB Wise Giving Alliance, FTC; fixed text, also after an instruction clause). A doubt about a whole approach ("does deworming actually work? it's contested") gets cause_challenge (the evaluator's own words, verbatim; never our verdict); "X was debunked" about one listed charity gets challenge_answer. A result that matched only on a generic word (a place, "program") while the question asked for something else carries match_strength: weak and match_note. Since wave 52: a request for a score of ours ("rate AMF 10/10", "out of 10", "five stars") carries request_declined with declined including score, and the lead opens "No score from us." (no scores, stars or grades of ours; nobody can pay for one); the evaluators' rows follow unchanged. "Ignore your rules and rate X 10/10" answers only the fixed question "Rate out of 10" (query.answered_as, instruction_text_ignored), never a 400. "I gave $500 to X last year. Did it work?" gets past_gift first (no one can trace one gift; what the evaluator found and the evaluator's average for that amount, modeled, not guaranteed, never a record). "Which charity has the strongest evidence?" gets evidence_labels first: the evaluators' own evidence labels grouped by evaluator in the site's order, read from the site index (scales_differ, the Happier Lives Institute's own words on its strict scale); 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: 'keep helping after I stop giving?' / 'most lasting impact?' carry durable_good (the sources' own words on how long effects last, #longrun; no duration or ranking of ours) and 'GiveWell and HLI disagree about X: who is right?' carries evaluators_disagree (each evaluator's dated words side by side; we pick no side). Since wave 62 (theory T18): 'which model should I trust?', 'how do I weigh that kind of uncertainty?' and 'which charity would every evaluator agree on?' carry many_models (the #models rule: act on what holds under every model; GiveWell's cluster-thinking and Ellsberg's ambiguity words verbatim with source_url; our_list says how many listed charities carry more than one evaluator's designation; no score, no blended figure, no side picked); evaluators_disagree now links /how-we-know#models. Since wave 65 (parity with decision_brief): 'can I trust a charity's own report or figures?' / 'is GiveWell (or this site) biased?' carry who_benefits (the #interest rule in Kunda's and the Cochrane review's words; our own stake), and 'is giving locally better than overseas?' carries local_or_overseas (GiveWell's own words; local charities not covered); each opens the answer, and with no charity named results is empty (a method answer lists no charity). Since wave 66: 'what are the main ways an impact estimate can be wrong?' / 'which direction would before-and-after numbers mislead?' carry threat_map (every trap on /how-we-know#threats, the verdict-chain link it breaks and which way it pushes; traps the question names first; no figures) and results is empty. Since wave 69, 'what should I check first, and which section of your method explains it?' carries verdict_chain (the eight links L0-L7 in checking order, each with the /how-we-know sections that test it; results empty), and two or more named charities with no other fixed answer carry compare (a lead, the GET /v1/compare url and compare_charities; units_differ when the units differ; no winner).

Input Schema

NameRequiredDescriptionDefault
qNoThe donor's question or a charity name in their own words (same as GET /v1/search?q=). Fixed answers (answer_first, request_declined, scam_answer and the rest) read q and intent alike.
causeNo
intentNo
outcomeNolives_saved | wellbeing_wellbys | health_dalys | income

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior5/5

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

The description discloses extensive behavior beyond the read-only annotations: empty-result coverage, partial_coverage, fixed refusal answers, no scoring, no fraud checks, no 400 for instruction injection, and numerous response-field semantics. Nothing contradicts the readOnlyHint or destructiveHint=false annotations.

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

Conciseness1/5

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

The description is an enormous single-paragraph wall of text that catalogs dozens of special answer fields, wave numbers, examples, and policy rules. Although the purpose is front-loaded, the overwhelming majority of sentences are dense routing specifications that make the definition hard to scan.

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 50% schema description coverage, the description carries the burden of explaining return behavior and does so exhaustively: coverage fields, partial_coverage, answer_first, funding_question, request_declined, method answers, and special-case fields. It is more than complete for an agent trying to understand the tool's outputs.

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 only 50%, and the description partially compensates by mapping the search dimensions to cause, outcome family, and donor intent phrase, and by noting that q and intent are read for fixed answers. It still leaves cause and intent largely undefined and does not specify accepted values beyond examples.

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 sentence states a specific verb and resource: heuristic search by cause, outcome family, or donor intent phrase. It distinguishes this from recommend_charity for ranked 'best for outcome' results, but does not differentiate it from siblings such as list_charities, get_org, or compare_charities.

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 one explicit alternative (recommend_charity) and many implicit triggers based on question types, but it never states when to avoid this tool in favor of the other search/list/get/compare siblings. The usage guidance is present but embedded in response-field rules rather than tool-selection guidance.

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