Labsco
MCP SERVER

Charity MCP Server

by briancasteel

Verify a US charity from the IRS database — look it up by EIN, search by name and location, and check whether donations to it are tax-deductible.

Company Registries & Business Intelligence Data
Summary
The prompt templates are what make the tools land correctly.

Charity verification is a domain where the wrong phrasing does harm — "not found" and "revoked" mean very different things to someone about to donate, and a model left to its own devices will blur them. Shipping the decision tree and the response templates alongside the tools is the difference between a lookup API and something you would put in front of a donor.

What it is

An MCP server over CharityAPI, which fronts the IRS nonprofit database. Three tools cover the verification questions people actually ask, and the server ships a set of prompt templates that give an assistant a decision tree for using them — which tool fits which situation, what to do when a status comes back revoked, and how to phrase the answer.

What you get
  • `charity_lookup` — the full IRS record for one organisation by `ein`, including tax-deductibility status and codes, classification and activity codes, and the current ruling
  • `charity_search` — find organisations by `query`, `city` or `state` when you do not have the EIN, with `limit` and `offset` for pagination
  • `public_charity_check` — a direct yes-or-no on whether an organisation qualifies as a tax-deductible public charity
  • 14 specialized prompt templates, split between verification workflows and quick reference — including a red-flag guide for revoked, conditional and suspended organisations, and response templates for verified, failed and not-found outcomes
  • EIN format validation, so a malformed identifier fails locally with a message rather than as an API error
Requirements

A CharityAPI account and its API key, supplied as `CHARITY_API_KEY`, with `CHARITY_API_BASE_URL` pointing at `https://api.charityapi.org`. Node.js 18 or higher; `npm install` and `npm run build` from a clone, then point the client at `build/index.js` over stdio. Rate limiting defaults to 100 requests per minute and is configurable through `RATE_LIMIT_REQUESTS_PER_MINUTE`.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary