Nonprofit MCP Server

MCP server for nonprofit financials via ProPublica — IRS Form 990 data for 1.8M+ nonprofits.

Remote serverstreamable-http

What is the Nonprofit MCP server?

MCP server for nonprofit financials via ProPublica — IRS Form 990 data for 1.8M+ nonprofits. Exposed over MCP by the nonprofit mcp server, that capability becomes something an assistant can invoke while it works, not something you go and do afterwards.

What it actually does

  • Declarative tool definitions — single file per tool, framework handles registration and validation
  • Unified error handling — handlers throw, framework catches, classifies, and formats
  • Pluggable auth: none, jwt, oauth
  • Swappable storage backends: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • Structured logging with optional OpenTelemetry tracing
  • STDIO and Streamable HTTP transports

Its toolset

Everything the assistant can do here goes through one of these:

  • nonprofit_search — Search 1.8M+ IRS-recognized tax-exempt organizations by name, keyword, city, or phrase with optional state, NTEE sector, and 501(c) filters
  • nonprofit_get_organization — Full profile for one org by EIN: legal identity, IRS classification, ruling date, and a financial snapshot from the most recent Form 990
  • nonprofit_get_filings — All Form 990 filings for an org by EIN: year-by-year financials, program-expense ratio, executive compensation, and source PDF/XML links
  • Prerequisites — The Prerequisites tool exposed by this server
  • Installation — The Installation tool exposed by this server

Configuration

You will need 5 environment variables: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, MCP_HTTP_HOST, MCP_HTTP_ENDPOINT_PATH, MCP_PUBLIC_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

  • Bun v1.3.11 or higher (or Node.js v24+). - No API key required — ProPublica Nonprofit Explorer is a keyless public API.

Adding it to your client

Being a remote server, there is no local install. You register the endpoint with your client, authorise it once, and the tools appear.

When to reach for it

This sits in the file and storage access group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Nonprofit's toolset — nonprofit_search, nonprofit_get_organization, nonprofit_get_filings and 2 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Caveats

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the nonprofit mcp server does with a few real requests.

Available tools

ToolWhat it does
nonprofit_searchSearch 1.8M+ IRS-recognized tax-exempt organizations by name, keyword, city, or phrase with optional state, NTEE sector, and 501(c) filters
nonprofit_get_organizationFull profile for one org by EIN: legal identity, IRS classification, ruling date, and a financial snapshot from the most recent Form 990
nonprofit_get_filingsAll Form 990 filings for an org by EIN: year-by-year financials, program-expense ratio, executive compensation, and source PDF/XML links
PrerequisitesThe Prerequisites tool exposed by this server.
InstallationThe Installation tool exposed by this server.

How to install the Nonprofit MCP server

{
  "mcpServers": {
    "nonprofit-explorer-mcp-server": {
      "type": "streamable-http",
      "url": "https://nonprofit-explorer.caseyjhand.com/mcp"
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Bun v1.3.11 or higher (or Node.js v24+). - No API key required — ProPublica Nonprofit Explorer is a keyless public API.
VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
MCP_HTTP_HOSTEndpoint or connection string the server talks to.Optional
MCP_HTTP_ENDPOINT_PATHFilesystem location the server is allowed to use.Optional
MCP_PUBLIC_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Nonprofit to nonprofit search.
  • Use Nonprofit to nonprofit get organization.
  • Use Nonprofit to nonprofit get filings.

Frequently asked questions

It connects Nonprofit to MCP-compatible AI assistants such as Claude and Cursor, exposing 5 tools (nonprofit_search, nonprofit_get_organization, nonprofit_get_filings, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Nonprofit directly.