search_nonprofits
Pack: propublica-nonprofit · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)
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 — every tool in the catalog, including this one — or use one-click install buttons:
{
"mcpServers": {
"pipeworx": {
"url": "https://pipeworx.io/mcp"
}
}
}
Connect to just the propublica-nonprofit pack
{
"mcpServers": {
"propublica-nonprofit": {
"url": "https://gateway.pipeworx.io/propublica-nonprofit/mcp"
}
}
}
See Getting Started for client-specific install steps.