Content
# Open Grant Data
An AI-native, public-domain dataset of **756,453 U.S. funders**, **95,735 grant
opportunities**, and a **7.5M-edge who-funds-whom grant graph** — the open alternative
to the paywalled funder databases.
This data has long been gatekept behind ~$1,500–2,000/year subscriptions. This release
puts it back in the open — **CC0, no strings, no account, no API key** — with modern
embeddings and a ready-to-use MCP server so any AI assistant can work with it out of
the box.
> Snapshot: **June 2026**, point-in-time. Not maintained going forward. Raw text ships
> with every row, so you can re-embed with any future model — it can't go stale on you.
## Use it in 30 seconds (no install)
> New here? **[Getting started + troubleshooting →](GETTING_STARTED.md)** (also as a
> [web page](https://qwntl-labs-open-grant-data-mcp.hf.space/)).
Add the hosted MCP server to your assistant:
- **Claude** (paid plan — Pro/Max/Team/Enterprise): Settings → Connectors →
*Add custom connector* → `https://qwntl-labs-open-grant-data-mcp.hf.space/mcp`
- **ChatGPT** (Plus/Pro): Settings → Connectors → Advanced → enable *Developer mode* →
*Add MCP server* → same URL
Typical searches take a few seconds (~2–5s). After a server restart, the first query
can take a minute or two while the dataset reloads.
Then ask things like *"Find funders for a rural health clinic in Kentucky that needs
about $75k"* — your assistant gets ranked funder shortlists, open grants with deadlines,
and (the good stuff) **funders that already fund organizations like yours**, evidenced
by real grant history with dollar amounts.
## What's in it
| Path | Rows | Contents |
|------|------|----------|
| `funder/` | 756,453 | Funder profiles: name, EIN, 22-type taxonomy, mission, NTEE, location, officers (public 990 Part VII), grant-size ranges, + embedding |
| `grants/` | 95,735 | Opportunities: title, full description, AI-extracted eligibility, award ranges, deadlines, source links, + embedding |
| `graph/edges/` | 7,525,377 | **The who-funds-whom graph**: funder → recipient grants with year and USD amount |
| `graph/recipients_emb/` | 1,810,300 | Grantee organizations: name, EIN, state, NTEE, mission, + embedding |
Dataset: [huggingface.co/datasets/qwntl-labs/open-grant-data](https://huggingface.co/datasets/qwntl-labs/open-grant-data)
· Embeddings: `mixedbread-ai/mxbai-embed-large-v1`, 1024-dim, int8-quantized (see `DATA_DICTIONARY.md`).
## Run it yourself (power users)
The hosted server's full source is in [`server/`](server/) — it runs identically as a
**local MCP** (stdio) or your own HTTP deployment:
```bash
pip install -r server/requirements.txt --extra-index-url https://download.pytorch.org/whl/cpu
export DATA_DIR=./data HF_REPO=qwntl-labs/open-grant-data # auto-downloads (~5.5 GB; loading needs ~12 GB RAM)
python server/server.py # serve HTTP on :7860 (MCP endpoint: http://localhost:7860/mcp)
python server/server.py --stdio # local MCP (Claude Desktop, Cursor, etc.)
```
First run: start the HTTP mode once so the ~5.5 GB dataset downloads and loads before
you wire up `--stdio` — otherwise the first tool call in Claude Desktop can time out
mid-download.
Claude Desktop config:
```json
{ "mcpServers": { "open-grant-data": {
"command": "python", "args": ["/path/to/server/server.py", "--stdio"],
"env": { "DATA_DIR": "/path/to/data" } } } }
```
Or skip MCP entirely — it's plain Parquet:
```python
import duckdb
f = "hf://datasets/qwntl-labs/open-grant-data/funder/part-*.parquet" # or ./data/funder/part-*.parquet
duckdb.sql(f"SELECT organization_name, city, state_code FROM '{f}' WHERE state_code='KY' LIMIT 5")
```
## Tools your assistant gets ([full spec](MCP_TOOLS.md))
- `find_funders` — hybrid semantic + filtered funder search, ranked and explained
- `funders_who_fund_orgs_like_mine` — the strongest prospecting move, backed by the real grant graph
- `find_grants` — open opportunities, deadline- and award-aware
- `get_funder` — deep profile incl. officers and top grantees with amounts
- `similar_funders`, `lookup_funder` — expand and resolve
## Licenses & provenance
- **Data: CC0 1.0** (`LICENSE-DATA.txt`) — public-domain dedication of all rights GrantX
holds. The facts, the graph, the embeddings, and the compilation can never be
re-gatekept (see the third-party text note below).
- **Code & docs: MIT** (`LICENSE`). Published by QWNTL Labs, a d/b/a of GrantX Inc.
- 100% public-source: IRS 990 / 990-PF filings (public records; facts are not
copyrightable) + grants.gov (U.S. government work, public domain) and state &
foundation portals. Nothing comes from licensed or subscription databases. The CC0
dedication waives GrantX's own rights — the compilation, embeddings, and derived
fields. Grant titles and descriptions reproduce text as published on the originating
portals: grants.gov text is public domain (U.S. government work), while text from
state government and private foundation portals may remain under its publishers'
rights and is not covered by the CC0 dedication.
## Privacy
Public-record data, deliberately scrubbed before release: **street addresses and phone
numbers removed**. Officer names/titles/compensation are retained (published on the
public IRS 990, already openly available). 990 Schedule B donors are non-public and are
not included. AI-derived fields (grant eligibility) are provided as-is — **verify
against the primary source before relying on them.** Concerns about a specific
record can be raised at
[github.com/qwntl-oss/open-grant-data/issues](https://github.com/qwntl-oss/open-grant-data/issues).