_ registry / mcp http-sse · checked 3h ago

nonprofit-explorer-mcp-server

https://nonprofit-explorer.caseyjhand.com

Registry code: 043d2dfaa335e9a0

api record

ProPublica Nonprofit Explorer — keyless read-only access to IRS Form 990 data on 1.8M+ tax-exempt organizations.

- Start with nonprofit_search to find an org by name and get its EIN

endpoint
https://nonprofit-explorer.caseyjhand.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is nonprofit-explorer-mcp-server live?
Yes — it answered the hub's last check (checked 3h ago). It answered 98% of checks over the last 30 days.
Is nonprofit-explorer-mcp-server free to use?
Yes — the hub reached it with no key and no payment.
What tools does nonprofit-explorer-mcp-server have?
3 tools: nonprofit_search, nonprofit_get_organization, nonprofit_get_filings.
Is nonprofit-explorer-mcp-server safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
98.4%

90 days 98.7%· all time 98.7%

latency
610ms

last good check

priced tools
0

of 3 tools

_ answered our checks, 90 days 460 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • down → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • search tax-exempt organizations
  • get a nonprofit profile and finances
  • get form 990 filings by year
takes → gives
text → data
tools
3 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

inferred, not observed

Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run

_ what it can do 3 tools
3 never probed 0 of 3 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • nonprofit_search reads unknown 14d ago

    Search 1.8M+ IRS-recognized tax-exempt organizations by name, keyword, city, or phrase. Optionally narrow by US state, NTEE major sector (1–10), or 501(c) subsection type. Returns EINs — pass them to nonprofit_get_organization or nonprofit_get_filings for details. Results are paginated at 25 per page; use the page parameter and num_pages to paginate. Total results cap at 10,000 in the API; if total_results === 10000 the actual count may be higher. A zero-match query and a page past the last one both return an empty organizations array with a notice rather than an error; only a page whose offset reaches that 10,000 cap is refused. Supports quoted phrases ("Red Cross"), required terms (+evanston), excluded terms (-dental). Data from ProPublica Nonprofit Explorer, sourced from IRS Form 990 filings.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "query"
      ],
      "properties": {
        "page": {
          "type": "integer",
          "default": 0,
          "maximum": 9007199254740991,
          "minimum": 0,
          "description": "Zero-indexed page number. 25 results per page. Total pages is in num_pages. Increment to paginate large result sets."
        },
        "query": {
          "type": "string",
          "description": "Keyword search string. Searched against org name, the secondary name line, and city in order of relevance. Supports: quoted phrases (\"Red Cross\"), required terms (+evanston), excluded terms (-dental). Empty string returns all orgs within the active filters."
        },
        "state": {
          "type": "string",
          "maxLength": 2,
          "minLength": 2,
          "description": "Two-letter US state, territory, or military postal code (e.g., \"WA\", \"NY\", \"PR\"). Case-insensitive — normalized to uppercase before filtering. A code outside that set is rejected rather than silently returning national results. Restricts results to orgs headquartered in that state. \"ZZ\" (foreign address) is accepted, but no organization in the index currently carries it."
        },
        "ntee_category": {
          "enum": [
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10"
          ],
          "type": "string",
          "description": "NTEE (National Taxonomy of Exempt Entities) major group integer (1–10). 1=Arts/Culture/Humanities, 2=Education, 3=Environment/Animals, 4=Health, 5=Human Services, 6=International/Foreign Affairs, 7=Public/Societal Benefit, 8=Religion Related, 9=Mutual/Membership Benefit, 10=Unknown/Unclassified."
        },
        "subsection_code": {
          "enum": [
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10",
            "11",
            "12",
            "13",
            "14",
            "15",
            "16",
            "17",
            "18",
            "19",
            "21",
            "22",
            "23",
            "25",
            "26",
            "27",
            "28",
            "92"
          ],
          "type": "string",
          "description": "501(c) subsection code. \"3\" = charitable/religious/educational organization (most common — includes both public charities and private foundations; nonprofit_get_organization returns foundation_type to tell them apart), \"4\" = social welfare org, \"6\" = business league/trade association, \"92\" = 4947(a)(1) nonexempt charitable trust. Filters by tax status, not sector."
        }
      },
      "additionalProperties": false
    }
    arguments 75 lines
  • nonprofit_get_organization reads unknown 20h ago

    Full profile for a single tax-exempt org by EIN: legal name, address, NTEE classification, 501(c) type, IRS ruling date, and a financial snapshot from the most recent Form 990 filing (revenue, expenses, assets, net assets, and the source PDF link). Also returns the IRS Business Master File standing — whether contributions are deductible, exemption status, and public-charity vs. private-foundation classification. Use nonprofit_search first if you only have an org name — this tool requires an EIN. Data lags 1–2 years; the tax year is shown prominently. Data from ProPublica Nonprofit Explorer, sourced from IRS Form 990 filings.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "ein"
      ],
      "properties": {
        "ein": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 9007199254740991,
              "description": "EIN as integer (e.g., 530196605). Leading zeros are stripped — treat EIN as an integer key.",
              "exclusiveMinimum": 0
            },
            {
              "type": "string",
              "pattern": "^\\d{2}-?\\d{7}$",
              "description": "EIN as string, with or without hyphen (e.g., \"53-0196605\" or \"530196605\")."
            }
          ],
          "description": "Employer Identification Number. Accepts integer (530196605) or string with optional hyphen (\"53-0196605\"). Obtain from nonprofit_search results."
        }
      },
      "additionalProperties": false
    }
    arguments 26 lines
  • nonprofit_get_filings reads unknown 20h ago

    All Form 990 filings for a tax-exempt org by EIN: year-by-year revenue, expenses, assets, liabilities, net assets, revenue breakdown, executive compensation, and source PDF links. Use for trend analysis, due diligence, and accessing primary 990 documents. The filing year (tax_prd_yr) is the fiscal year of the return — data lags 1–2 years; always cite the year. An organization that resolves but has filed no 990 returns an empty filings array with a notice, not an error. Also returns filings_pdf_only — older filings with a PDF but no extracted financial data. Data from ProPublica Nonprofit Explorer, sourced from IRS Form 990 filings.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "ein"
      ],
      "properties": {
        "ein": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 9007199254740991,
              "description": "EIN as integer (e.g., 530196605). Leading zeros are stripped — treat EIN as an integer key.",
              "exclusiveMinimum": 0
            },
            {
              "type": "string",
              "pattern": "^\\d{2}-?\\d{7}$",
              "description": "EIN as string, with or without hyphen (e.g., \"53-0196605\" or \"530196605\")."
            }
          ],
          "description": "Employer Identification Number. Use nonprofit_search to resolve an org name to its EIN."
        }
      },
      "additionalProperties": false
    }
    arguments 26 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 043d2dfaa335e9a0.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/043d2dfaa335e9a0/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/043d2dfaa335e9a0/badge.svg)](https://brick.blue/agent/043d2dfaa335e9a0?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
70%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on caseyjhand.com 109 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.

101 more sit on this domain. All of them.