search_nonprofits
Pack: propublica-nonprofit · Endpoint: https://gateway.pipeworx.io/propublica-nonprofit/mcp
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/search_nonprofits for the schema, then POST the same URL with its arguments for the data.
Search US nonprofits by name. Returns EIN, name, city, state, revenue, assets, and NTEE code. Example: search_nonprofits(“red cross”, “NY”). Use get_organization with the EIN for full details.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Name or keyword to search for (e.g., “habitat for humanity”) |
state | string | no | Two-letter state code to filter results (e.g., “CA”, “NY”) |
Example call
Arguments
{
"query": "red cross"
}
curl
curl -X POST https://gateway.pipeworx.io/propublica-nonprofit/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_nonprofits","arguments":{"query":"red cross"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('search_nonprofits', {
"query": "red cross"
});
More examples
{
"query": "habitat for humanity",
"state": "CA"
}
Response shape
Always returns: query, state, total_results, organizations
| Field | Type | Description |
|---|---|---|
query | string | The search query used |
state | string | null | The state filter applied (uppercase), or null if not provided |
total_results | number | Total number of matching nonprofits found |
organizations | array | Array of matching nonprofit organizations |
Full JSON Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query used"
},
"state": {
"type": [
"string",
"null"
],
"description": "The state filter applied (uppercase), or null if not provided"
},
"total_results": {
"type": "number",
"description": "Total number of matching nonprofits found"
},
"organizations": {
"type": "array",
"description": "Array of matching nonprofit organizations",
"items": {
"type": "object",
"properties": {
"ein": {
"type": [
"number",
"null"
],
"description": "Employer Identification Number"
},
"name": {
"type": [
"string",
"null"
],
"description": "Organization name"
},
"city": {
"type": [
"string",
"null"
],
"description": "City location"
},
"state": {
"type": [
"string",
"null"
],
"description": "State code"
},
"ntee_code": {
"type": [
"string",
"null"
],
"description": "NTEE classification code"
},
"subsection_code": {
"type": [
"number",
"null"
],
"description": "IRS subsection code"
},
"ruling_date": {
"type": [
"string",
"null"
],
"description": "Tax-exempt ruling date"
},
"tax_period": {
"type": [
"number",
"null"
],
"description": "Most recent tax period"
},
"asset_amount": {
"type": [
"number",
"null"
],
"description": "Total assets amount"
},
"income_amount": {
"type": [
"number",
"null"
],
"description": "Total income amount"
},
"revenue_amount": {
"type": [
"number",
"null"
],
"description": "Total revenue amount"
}
}
}
}
},
"required": [
"query",
"state",
"total_results",
"organizations"
]
}
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"propublica-nonprofit": {
"url": "https://gateway.pipeworx.io/propublica-nonprofit/mcp"
}
}
}
See Getting Started for client-specific install steps.