{
  "markdown": "# @pipeworx/grantconnect-au\n\nGrantConnect (Australia) MCP — Commonwealth grant opportunities and grants awarded, from grants.gov.au. Keyless.\n\nPart of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1476+ live data sources.\n\n## Tools\n\n- `au_grants_search(query, agency, category, recipient_state, selection_process, min_value, max_value, awarded_from, awarded_to, sort, order, limit, offset)` — awarded grants. Free text is a case-insensitive substring across `recipient_name`, `purpose`, `grant_program`, `grant_activity`; multiple words are AND-ed. Newest first by default, `sort: \"value\"` ranks by AUD.\n- `au_grant_award(ga_id)` — one award in full, **with the linked grant opportunity inlined** when the award records a `go_id`. GrantConnect publishes awards and opportunities as separate reports; this is the join.\n- `au_grants_by_recipient(recipient_name | abn, awarded_from, awarded_to, limit, offset)` — every award to one organisation plus the funding total: total AUD, award count, first/last award date, per-agency breakdown. ABN is accepted spaced (`48 008 389 151`) or unspaced.\n- `au_grant_opportunities_open(query, agency, category, closing_within_days, limit, offset)` — opportunities whose `close_date` is still in the future, soonest first, with `days_until_close` computed at request time.\n- `au_grants_top_recipients(agency, category, recipient_state, awarded_from, awarded_to, limit, scan_limit)` — recipients ranked by total AUD. Reports `rows_scanned`, `total_matching_awards` and `ranking_covers_all_matching_awards`.\n- `grantconnect_coverage()` — which reports/date windows are actually loaded, row counts, min/max dates, and any ingest windows in `error`.\n\n## Auth\n\nNone.\n\n## Data sources\n\n- GrantConnect — https://www.grants.gov.au (Commonwealth Grants Rules and Guidelines reporting: grant opportunities + grants awarded)\n\n## Gotchas\n\nGrantConnect has no JSON API — it publishes dated report downloads only, which is why `grantconnect_coverage` matters: while the ingest backfills, a year you ask about may simply not be loaded yet, and every tool returns `{ found: false, reason, hint }` rather than an empty-looking answer. Recipient identity is messy at source: names are the legal entity as the recipient typed it (so one organisation appears under several spellings), and `recipient_abn` is published spaced and is blank on some rows — `au_grants_by_recipient` normalises the ABN and reports `matched_recipient_names` so you can see what was actually aggregated. `is_aggregate` rows bundle many small grants into one record (`aggregate_number` says how many), so award counts are not payment counts. Because PostgREST aggregate functions are disabled on this project, `au_grants_top_recipients` ranks from a bounded scan taken largest-award-first and states `rows_scanned` versus `total_matching_awards` — treat a ranking with `ranking_covers_all_matching_awards: false` as a ranking of the big-ticket end, not the whole table. Finally, `close_date` on opportunities carries a real time of day and addenda can move it: `addenda_count > 0` means the notice was amended after publication.\n\n## Quick Start\n\nAdd to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"grantconnect-au\": {\n      \"url\": \"https://gateway.pipeworx.io/grantconnect-au/mcp\"\n    }\n  }\n}\n```\n\n### What this endpoint actually serves\n\n`tools/list` at `https://gateway.pipeworx.io/grantconnect-au/mcp` returns the tools in the table\nabove **plus the shared Pipeworx meta-tools** — `ask_pipeworx`,\n`discover_tools`, `search_within`, `remember`/`recall` and the rest of the\ngateway-wide set. So the tool count you see is larger than this table: a\nsingle-pack endpoint currently lists roughly 30 shared tools alongside the\npack's own. The connection's `initialize` response states its exact scope, and\nis the authoritative answer for a given day.\n\nThis is deliberate, not multiplexing by accident. The meta-tools are what let a\nscoped connection answer a question this pack does not cover — via\n`ask_pipeworx`, which routes across the whole catalog — without you adding a\nsecond MCP server. There is currently no way to mount a pack endpoint without\nthem; if the extra schemas cost you more context than the routing is worth,\nconnect to the full gateway once rather than to several pack endpoints.\n\nOr connect to the full Pipeworx gateway to get every pack's tools listed\ndirectly, instead of just this one's:\n\n```json\n{\n  \"mcpServers\": {\n    \"pipeworx\": {\n      \"url\": \"https://gateway.pipeworx.io/mcp\"\n    }\n  }\n}\n```\n\nBoth URLs reach the same gateway and the same 1476+ data sources. The\nonly difference is which pack's tools are listed **directly**; `ask_pipeworx`\nreaches all of them from either one.\n\n## Using with ask_pipeworx\n\nInstead of calling tools directly, you can ask questions in plain English —\nthis works on the pack endpoint above as well as on the full gateway:\n\n```\nask_pipeworx({ question: \"your question about Grantconnect Au data\" })\n```\n\nThe gateway picks the right tool and fills the arguments automatically.\n\n## More\n\n- [Docs and guides](https://pipeworx.io/docs)\n- [pipeworx.io](https://pipeworx.io)\n\n## License\n\nMIT\n",
  "bytes": 5206,
  "sha": "f5d9c355a47a58f2f8b5e90dc2de1b5489af8e602f953e77a8e39862418641ce",
  "repo_slug": "pipeworx-io/mcp-grantconnect-au",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pipeworx_io_grantconnect_au_6a2bd167/readme"
}