Skip to main content
Glama

nonprofit-explorer-mcp-server

Server Details

MCP server for nonprofit financials via ProPublica — IRS Form 990 data for 1.8M+ nonprofits.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/nonprofit-explorer-mcp-server
GitHub Stars
2
Server Listing
nonprofit-explorer-mcp-server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.8/5 across 3 of 3 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool serves a distinct purpose: search for organizations, get organization profile, and get filings. No overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent 'nonprofit_<verb>' pattern with snake_case, making it easy to predict the function.

Tool Count4/5

Three tools is somewhat minimal but covers the core workflow (search, get org, get filings) without being insufficient for the domain.

Completeness4/5

The set covers the primary operations for nonprofit data exploration. Minor gaps like batch retrieval or advanced filtering exist but don't impede basic workflows.

Available Tools

3 tools
nonprofit_get_filingsGet Nonprofit FilingsA
Read-onlyIdempotent
Inspect

All Form 990 filings for a tax-exempt org by EIN: year-by-year revenue, expenses, assets, program-expense ratio (with inputs shown), executive compensation, and source PDF/XML 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. Program expense ratio is computed as (total_expenses − officer comp − other wages − fundraising) / total_expenses for 990/990-EZ; not available for 990-PF. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
einYesEmployer Identification Number. Use nonprofit_search to resolve an org name to its EIN.

Output Schema

ParametersJSON Schema
NameRequiredDescription
einYesEmployer Identification Number as integer.
nameYesLegal org name per IRS.
filingsYesFilings with extracted financial data, sorted newest first.
data_sourceYesProPublica + IRS attribution text.
propublica_urlYesProPublica Nonprofit Explorer URL for this org.
filings_pdf_onlyYesOlder filings with a PDF but no extracted financial data.
total_filings_pdf_onlyYesCount of PDF-only filings (no extracted data).
total_filings_with_dataYesCount of filings with extracted financial data.
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint; description adds context on data lag, program expense ratio computation, and distinction for filings_pdf_only. No contradiction.

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

Conciseness5/5

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

Concise and well-structured: starts with main purpose, then lists data, usage, computation details, and source. Every sentence provides necessary information without redundancy.

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?

Given the tool's complexity, description covers data year lag, computation caveats for program expense ratio, availability of PDF links, and data source. Output schema likely handles return structure, so no gaps.

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

Parameters5/5

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

Schema fully covers EIN parameter with both integer and string formats. Description adds value by explaining how to resolve an org name to EIN using nonprofit_search, enhancing usability.

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?

Description clearly states the tool retrieves Form 990 filings by EIN, listing specific financial data fields. It distinguishes from siblings by mentioning organization info and EIN resolution tools.

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

Usage Guidelines4/5

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

Explicitly recommends use for trend analysis, due diligence, and accessing primary documents. Notes data lag and calculation details, though does not explicitly state when not to use.

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

nonprofit_get_organizationGet Nonprofit OrganizationA
Read-onlyIdempotent
Inspect

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). 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
einYesEmployer Identification Number. Accepts integer (530196605) or string with optional hyphen ("53-0196605"). Obtain from nonprofit_search results.

Output Schema

ParametersJSON Schema
NameRequiredDescription
einYesEmployer Identification Number as integer.
cityYesCity. Null when not on record.
nameYesLegal org name per IRS.
stateYesTwo-letter state abbreviation. Null when not on record.
streinYesEIN in "XX-XXXXXXX" format.
addressYesStreet address. Null when not on record.
zipcodeYesZIP code. Null when not on record.
ntee_codeYesFull NTEE code (e.g., "E210" = hospital). Null when unclassified.
sort_nameYesAlternate or subtitle name from the org record. Null when absent.
data_sourceYesProPublica + IRS attribution text.
ruling_dateYesISO date of IRS recognition (e.g., "1946-07"). Null when not on record.
asset_amountYesMost recent IRS BMF total assets in USD. Null when not reported.
filing_countYesTotal filings with extracted data on record.
income_amountYesMost recent IRS BMF total income in USD. Null when not reported.
latest_filingYesFinancial snapshot from the most recent Form 990. Null if no filings_with_data are available.
propublica_urlYesProPublica Nonprofit Explorer URL for this org.
revenue_amountYesMost recent IRS BMF total revenue in USD. Null when not reported.
subsection_codeYes501(c) subsection number (e.g., 3 = public charity). Null when not classified.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, indicating safety. The description adds valuable context: data lags 1-2 years, the tax year is shown, and the source (ProPublica Nonprofit Explorer from IRS Form 990). No contradiction.

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

Conciseness5/5

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

Two sentences are concise and front-loaded with key purpose. Every clause adds value: purpose, required parameter, data fields, usage guidance, data lag, and source. No wasted words.

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?

Given the tool has an output schema (not shown but referenced), the description covers return values by listing included fields. Also explains data source and lag, providing complete context for a single-parameter, read-only tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds guidance: 'Obtain from nonprofit_search results' and clarifies EIN format (with or without hyphen). This adds meaning beyond the schema.

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 clearly states the tool retrieves a full profile for a single tax-exempt organization by EIN, listing specific data fields (legal name, address, NTEE, etc.) and explicitly distinguishes from sibling tool nonprofit_search by noting that this tool requires an EIN, while search can be used if only a name is available.

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?

Provides explicit guidance on when to use this tool versus nonprofit_search: 'Use nonprofit_search first if you only have an org name — this tool requires an EIN.' Also mentions data lag and that the tax year is shown prominently, setting expectations.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    A Model Context Protocol (MCP) server that provides access to ProPublica's Nonprofit Explorer API, enabling AI models to search and analyze nonprofit organizations' Form 990 data for CRM integration and prospect research.
    Last updated
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    GiveRadar's MCP server gives AI agents verified data on 7 million+ nonprofits across 65+ countries, sourced from official government registries. Tools let agents search charities, verify a charity by registration number or EIN, compare integrity scores, and find similar organizations.
    Last updated

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.