home / mcp / propublica mcp server

ProPublica MCP Server

Provides access to ProPublica's Nonprofit Explorer API for searching nonprofits, retrieving Form 990 data, and exporting CRM-ready insights.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "asachs01-propublica-mcp": {
      "url": "https://propublica-mcp-lk97f.ondigitalocean.app",
      "headers": {
        "LOG_LEVEL": "INFO",
        "API_RATE_LIMIT": "60",
        "PROPUBLICA_API_BASE_URL": "https://api.propublica.org"
      }
    }
  }
}

You run a ProPublica MCP Server to access and analyze nonprofit Form 990 data through the MCP transport protocol. This server lets you search nonprofits, fetch organization profiles and filings, analyze financial trends, and export data for CRM workflows, enabling AI-assisted prospect research and CRM integration.

How to use

You connect an MCP client to the server using HTTP transport for remote deployments or stdio transport for local development. The server implements the MCP 2025-03-26 Streamable HTTP transport, so you can query nonprofit data, get organizational details, view Form 990 filings, analyze finances, and export results for CRM import.

How to install

Prerequisites You need a compatible MCP client (for example Claude Desktop or Cursor). For development, ensure Python 3.8 or higher and Git are installed.

Option 1: DXT Extension (Recommended) Install from GitHub Releases by downloading the propublica-mcp-[version].dxt file and installing it in your MCP client.

For Claude Desktop use one of these commands after downloading the DXT file or using the latest release URL. ``bash claude-desktop install propublica-mcp-[version].dxt ` `bash claude-desktop install https://github.com/asachs01/propublica-mcp/releases/latest/download/propublica-mcp.dxt ``

Option 2: Docker (Production) Pull and run the latest image.

# Pull the latest image
docker pull ghcr.io/asachs01/propublica-mcp:latest

# Run the server
docker run -it --rm ghcr.io/asachs01/propublica-mcp:latest

Option 3: Cloud Deployment Follow the cloud deployment setup to host the server and obtain a public URL as described in the deployment guides for DigitalOcean App Platform or Cloudflare Workers.

Option 4: Local Python Installation (Development) Clone the project and run locally with Python.

# Clone the repository
git clone https://github.com/asachs01/propublica-mcp.git
cd propublica-mcp

# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Install the package
pip install -e .

# Run the server in stdio mode (local MCP clients)
python -m propublica_mcp.server

# Or run the server in HTTP mode for remote MCP clients
python -m propublica_mcp.server --http --host 0.0.0.0 --port 8080

Additional notes

Cloud deployments must deploy from the deploy branch and aim for stable, released versions. DigitalOcean and Cloudflare deployments will use the deploy branch for production.

Available deployment examples

These blocks show common server configuration examples for MCP clients and remote/local usage.

MCP server configuration examples

HTTP remote server configuration (remote MCP client) — URL provided by the hosting platform.

{
  "mcpServers": {
    "propublica_mcp": {
      "transport": {
        "type": "http",
        "url": "https://propublica-mcp-lk97f.ondigitalocean.app"
      },
      "description": "ProPublica Nonprofit Explorer MCP Server (Remote)"
    }
  }
}

Local HTTP server configuration (local development)

Start a local HTTP server and point MCP clients to http://localhost:8080.

# Start HTTP server locally
python -m propublica_mcp.server --http --host 0.0.0.0 --port 8080

Then configure as a remote MCP server in your client with the local URL.

{
  "mcpServers": {
    "propublica_mcp": {
      "transport": {
        "type": "http",
        "url": "http://localhost:8080"
      },
      "description": "ProPublica Nonprofit Explorer MCP Server (Local HTTP)"
    }
  }
}

Available tools

search_nonprofits

Search nonprofit organizations by name, location, and category.

get_organization

Retrieve detailed organization information by EIN.

get_organization_filings

Fetch Form 990 filings for a given organization.

analyze_nonprofit_financials

Analyze financial trends across multiple years for nonprofits.

search_similar_nonprofits

Find similar nonprofit organizations based on criteria.

export_nonprofit_data

Format data for CRM imports and downstream systems.