MCP server for nonprofit financials via ProPublica: IRS Form 990 data for 1.8M+ nonprofits.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Employer Identification Number. Use nonprofit_search_organizations to resolve an org name to its EIN.
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.
| Argument | Type | Description |
|---|---|---|
| ein* | any | Employer Identification Number. Use nonprofit_search_organizations to resolve an org name to its EIN. |
{
"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_organizations to resolve an org name to its EIN."
}
},
"additionalProperties": false
}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_organizations 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.
| Argument | Type | Description |
|---|---|---|
| ein* | any | Employer Identification Number. Accepts integer (530196605) or string with optional hyphen ("53-0196605"). Obtain from nonprofit_search_organizations results. |
{
"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_organizations results."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Zero-indexed page number. 25 results per page. Total pages is in num_pages. Increment to paginate large result sets. |
| query* | string | 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 | string | 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 |
| string |
| 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 | string | 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. |
{
"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
}