Propublica MCP Server

A Model Context Protocol (MCP) server that provides access to ProPublica's Nonprofit Explorer API for nonprofit organization search and analysis

Local serverstdioPython

What is the Propublica MCP MCP server?

Propublica MCP MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. A Model Context Protocol (MCP) server that provides access to ProPublica's Nonprofit Explorer API for nonprofit organization search and analysis.

What you get

A Model Context Protocol (MCP) server that provides access to ProPublica's Nonprofit Explorer API, enabling AI models to search and analyze nonprofit organizations' Form 990 data for CRM integration and prospect research.

  • Search nonprofit organizations by name, location, and category
  • Retrieve detailed organization profiles and contact information
  • Access Form 990 financial data and filing history
  • Analyze financial trends across multiple years
  • Export data in CRM-ready formats
  • Built with FastMCP for optimal performance

What the assistant can call

Once Propublica MCP is connected, these are the calls the assistant has available:

  • search_nonprofits — Search for nonprofit organizations
  • get_organization — Get detailed organization information by EIN
  • get_organization_filings — Retrieve Form 990 filings for an organization
  • analyze_nonprofit_financials — Analyze financial trends across multiple years
  • search_similar_nonprofits — Find similar organizations
  • export_nonprofit_data — Format data for CRM import
  • Prerequisites — The Prerequisites tool exposed by this server
  • Installation — The Installation tool exposed by this server
  • Contributing — 1. Follow the existing code style 2. Add tests for new features 3. Update documentation as needed 4. Ensure all tests pass before submitting

Setting it up

The server ships on a container image as ghcr.io/asachs01/propublica-mcp, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.

Configuration and credentials

You will need 2 environment variables: PROPUBLICA_API_BASE_URL, GITHUB_TOKEN. 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.

  • Compatible MCP client (Claude Desktop, Cursor, etc.) - For development: Python 3.8 or higher, Git

Choosing this one

Plenty of knowledge and memory servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Propublica MCP's toolset — search_nonprofits, get_organization, get_organization_filings and 6 more — is a fair guide to whether it matches your workflow. It is maintained by asachs01; 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.

Before you rely on it

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 9 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Propublica MCP.
  • 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 propublica mcp mcp server does with a few real requests.

Available tools

ToolWhat it does
search_nonprofitsSearch for nonprofit organizations
get_organizationGet detailed organization information by EIN
get_organization_filingsRetrieve Form 990 filings for an organization
analyze_nonprofit_financialsAnalyze financial trends across multiple years
search_similar_nonprofitsFind similar organizations
export_nonprofit_dataFormat data for CRM import
PrerequisitesThe Prerequisites tool exposed by this server.
InstallationThe Installation tool exposed by this server.
Contributing1. Follow the existing code style 2. Add tests for new features 3. Update documentation as needed 4. Ensure all tests pass before submitting

How to install the Propublica MCP MCP server

Then configure as remote server:
```json
{
  "mcpServers": {
    "propublica-mcp": {
      "transport": {
        "type": "http",
        "url": "http://localhost:8080"
      },
      "description": "ProPublica Nonprofit Explorer MCP Server (Local HTTP)"
    }
  }
}

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

Configuration

  • Compatible MCP client (Claude Desktop, Cursor, etc.) - For development: Python 3.8 or higher, Git
VariableDescriptionRequired
PROPUBLICA_API_BASE_URLEndpoint or connection string the server talks to.Yes
GITHUB_TOKENCredential the server authenticates with.Yes

Example prompts to try

  • Use Propublica MCP to search nonprofits.
  • Use Propublica MCP to get organization.
  • Use Propublica MCP to get organization filings.

Frequently asked questions

It connects Propublica MCP to MCP-compatible AI assistants such as Claude and Cursor, exposing 9 tools (search_nonprofits, get_organization, get_organization_filings, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Propublica MCP directly.