Skip to main content
Glama

Search Nonprofits (Grantee Benchmarking)

search_nonprofits
Read-only

Search the ~2M-org universe of US nonprofits (IRS Business Master File) — the RECIPIENT / grantee side, distinct from search_funders (the grantmaker side). Use this to benchmark peer organizations, research a cause's landscape, or find well-funded peers and then look up WHO funds them.

Each result carries 990 financials (revenue, program-expense ratio, employees, governance score) and recipient-side funding signals: total_grants_received (tracked foundation $ received), funder_count (distinct funders), avg_grant_size_received, and funder_concentration_hhi.

CHOOSING THE RIGHT TOOL:

  • Want FUNDERS to apply to → use search_funders.

  • Want to research/benchmark RECIPIENT nonprofits (peers, "who received $X", landscape of a cause) → use search_nonprofits.

  • Found a well-funded peer and want their funders → note its funder_count, then use get_foundation_grants / search_funders to find who funds that work.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoCase-insensitive exact city name.
limitNoMaximum number of results (1-50)
metroNoColloquial metro/region ("Bay Area", "NYC", "Chicago", "Greater Boston") or a city name ("Cleveland", "Portland, OR") → resolved to its MSA codes. Prefer over city for metro-area intent. An unrecognized name does not error: the search runs without the metro filter and the result carries `geo_notice`.
queryNoCase-insensitive substring match on the organization name.
stateNo2-letter US state code (e.g. "IL").
sort_byNoreceived (default) | revenue | funders | name.received
msa_codesNoExplicit CBSA codes if you already know them.
ntee_codesNoNTEE classification PREFIXES (e.g. ["K31"] food banks, ["E"] health, ["B20"] schools). Prefix match, so "K" = all food/agriculture, "K31" = food banks specifically.
active_onlyNoOnly IRS-active orgs (default True).
max_revenueNo
min_revenueNo
max_receivedNoMaximum total received.
min_receivedNoMinimum total grant dollars RECEIVED (the key grantee-benchmarking filter — "received over $1M").
min_employeesNoMinimum employee count.
min_funder_countNoMinimum distinct funders.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description correctly does not need to restate safety. It adds meaningful behavioral context by describing the underlying IRS data source, the ~2M-org scope, and the exact recipient-side funding signals returned in each result. No contradiction with annotations is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than minimal, but every section earns its place: the opening defines scope, the middle explains result content, and the closing provides tool-selection guidance. It is structured with clear headings and front-loaded with the most important distinction (grantee vs. funder). Slightly verbose because of the inline code fields, but well organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter tool with an output schema, the description is complete: it explains the domain, the result payload, the key tool-routing decisions, and the likely downstream workflow. The schema covers the remaining parameter details, and the output schema handles return-value expectations. Nothing essential is missing for correct tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 87%, so the schema already carries most parameter meaning. The description adds useful high-level context about the result fields (total_grants_received, funder_count, etc.) and mentions broad use cases, but it does not add per-parameter guidance beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and subject ('Search the ~2M-org universe of US nonprofits (IRS Business Master File)') and explicitly positions it as the 'RECIPIENT / grantee side, distinct from search_funders'. This clearly differentiates it from its primary sibling tool, so an agent can identify what it does without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'CHOOSING THE RIGHT TOOL' section provides explicit conditional routing: use search_funders when the intent is to find funders to apply to, use search_nonprofits for recipient benchmarking, and use get_foundation_grants/search_funders after finding a well-funded peer. This is clear, actionable guidance with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool serves a distinct purpose: find_funders_for_peers uses peer-based collaborative filtering, search_funders does name/topic lookup, search_open_grants finds active RFPs, search_nonprofits searches recipients, get_funder_* tools provide different aspects of funder data, and utilities like health_check and list_tools are separate. No overlap.

Naming Consistency3/5

Naming conventions are mixed: 'find_', 'get_', 'search_', 'health_check', 'list_tools', 'get_ntee_codes'. While verbs are descriptive, there is no single consistent pattern (e.g., all search_ or all get_). This could cause slight confusion.

Tool Count5/5

12 tools is well-scoped for a foundation discovery server. Each tool addresses a clear need (prospecting, detail, financials, jobs, utilities) without being excessive or insufficient.

Completeness5/5

The tool set covers the full lifecycle of foundation research: finding funders (by peers, name, open grants), getting detailed profiles, grants, stats, financials, NTEE codes, and even funder jobs. The inclusion of recipient-side search (search_nonprofits) complements the funder side, leaving no obvious gaps.

Resources