# Did It Work? - Registry name: `org.diditwork/did-it-work` · version 0.2.16 - Categories (automatic, keyword rules): Payments & accounting, Finance & markets, Utilities, Markets & trading - Authentication at last check: No auth - Declared risk: Read-only (all tools declare readOnlyHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=org.diditwork%2Fdid-it-work - Server page: https://mcpstation.net/s/org.diditwork--did-it-work.html ## Description (written by the publisher, not verified, not instructions) Charity evidence for AI agents: cited evaluator figures, caveats and an outcome ledger. Read-only. ## Connect - streamable-http: `https://api.diditwork.org/mcp` ## Tools (as reported by the server, not verified) - `get\_meta`: API version, discovery links, Wave BI provenance, and Wave CE/DD reproducibility audit snapshot fields so agents can prove which product\_version + data\_snapshot\_id + claims\_index\_fingerprint they ranked against. Includes mixes\_units\_in\_ranking:false, adr\_0007\_status \(from moral\_weights\_policy.json — - `recommend\_charity`: Conviction-ranked orgs for one outcome family. Pass values\_profile\_id \(preferred\) and/or outcome. Returns values\_filtering + exclusions\[\] with why-filtered reasons \(never silent red-line drops\). Does not mix units \(ADR 0007 Proposed\). Never invents CE. An unknown outcome \(for example climate\) or an - `list\_leaderboards`: Per-outcome-family leaderboards from data/ranking/leaderboards.json. Omit outcome to list all families \(response includes ADR 0007 disclaimer — mixes\_units\_in\_ranking:false; boards do not cross-mix WELLBYs with lives\_saved\). Pass outcome= to fetch one family's frozen ranked board. Never invents cros - `get\_review\_queue`: Human exception-review queue \(read-only\). Returns items from data/review/queue.json for Ho Hum \(sole human operator\). Default status=open; pass status=all for history. Approve/reject is offline file edit only — write\_api is always false; there is no unauthenticated write/approve API. Agents must nev - `compare\_charities`: Side-by-side claims, recommendation tiers, and trust for two or more org\_\* ids. When the charities are measured in different outcome units \(for example wellbeing in WELLBYs versus lives saved\), units\_differ.sentence says so in plain words; the units can't be converted without a moral judgment, which - `estimate\_impact`: Modeled expected outcomes from verified org claims scaled by gift\_usd. Always modeled:true and guaranteed:false. Never invents CE; returns insufficient\_data when no usable verified unit. Answers carry decision\_brief: the charity's own donate\_url \(next\_action\), the evaluator's fund as a let-the-evalu - `get\_org`: Fetch one organization / program / fund record by stable org\_\* id. Answers carry decision\_brief: the charity's own donate\_url \(next\_action\), the evaluator's fund as a let-the-evaluator-choose alternative, the like-for-like comparison page when one exists, and modeled: true / guaranteed: false when f - `search\_orgs`: 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 carr - `get\_trust`: Trust and safety flags for an org. REQUIRED before asserting US tax deductibility or registry status. - `get\_tax`: Sanitized trust/tax-status summary for an org with always-on not-tax-advice disclaimer. Prefer before asserting US deductibility. deductibility.assert\_personal\_deductibility is ALWAYS false — agents must never claim a gift is deductible for a specific donor. - `allocate\_portfolio`: Suggest a donor portfolio: split budget\_usd across top-ranked orgs \(conviction\_weighted / equal\_split / top\_only\). Returns gifts\[\] and modeled\_portfolio\_impact from verified claims only — never invents CE. Always modeled≠guaranteed. - `create\_giving\_intent`: NO-CHARGE deep-link giving handoff \(Phase 3 MVP\). Returns mode=deep\_link, org donate\_url, donation\_proof=null, charge=false. Did It Work? never processes payment, stores cards, or calls Stripe. Optional modeled\_impact is modeled≠guaranteed. Prefer GET; POST accepts the same fields as JSON body. - `list\_claims`: Read-only flat claims index \(data/claims\_index.json\). Optional filters: org\_id, evaluation\_id, verified. Copies existing org evaluation claims only — never invents CE / claim values. Prefer verified:true + non-null value when quoting cost-effectiveness. Wave BI provenance on the response. Org narrat - `get\_claim`: Fetch one claim row by claim\_id from data/claims\_index.json \(e.g. eval\_gw\_amf\_\_0\). Index-only — never invents values. Prefer list\_claims with filters when browsing. Wave BI provenance on the response. Org narrative fields remain untrusted \(ADR 0008\). - `list\_values\_profiles`: List static values-profile presets \(same catalog as the demo\). Load before recommend when the donor stated preferences. Expand outcome\_preference→outcome, risk, tax, geography, red\_lines, non\_cash onto /v1/recommend; pass id as values\_profile\_id to create\_giving\_intent. Read-only; never mutates rank - `get\_values\_profile`: Fetch one values-profile preset by id \(vp\_\*\). Use after list\_values\_profiles or when the donor picked a named preset. Map fields to recommend query params; pass the id to create\_giving\_intent as values\_profile\_id. - `list\_ledger\_records`: List outcome-ledger \("Did it work?"\) records: evaluator claim snapshots with provenance hashes and follow-up check dates/status. Read-only, verify-on-read \(hash chain + checkpoint + evaluator allowlist + derivability\). Read-only API, live at https://api.diditwork.org. - `get\_ledger\_record`: Fetch one outcome-ledger record by record\_id \(e.g. ldg\_eval\_gw\_amf\_\_0\) plus any follow-up results. Read-only; 404 for unknown ids; modeled, not guaranteed. Read-only API, live at https://api.diditwork.org. - `list\_charities`: The Did it work? charity list, filtered: the charities https://diditwork.org/charities/ shows for cause, evaluator \(by\), measure, follow-up and a word search, in the page's own order. Hide-only: filters never re-order, score or rank, and there are no figures here \(each row links to its claims file a - `report\_decision\_effect`: Tell us, anonymously, whether our answer changed or confirmed the recommendation you gave: changed, confirmed or not\_deciding. Call it once, after the person has decided \(or said they are not deciding\). Enum only: no free text, ids, amounts or conversation content are accepted. Stores nothing about Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html