@pipeworx/mcp-grants-gov 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Grants.gov MCP — open federal funding opportunities, no auth.
4
4
 
5
- Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1679+ live data sources.
5
+ Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1681+ live data sources.
6
6
 
7
7
  ## Tools
8
8
 
@@ -57,7 +57,7 @@ directly, instead of just this one's:
57
57
  }
58
58
  ```
59
59
 
60
- Both URLs reach the same gateway and the same 1679+ data sources. The
60
+ Both URLs reach the same gateway and the same 1681+ data sources. The
61
61
  only difference is which pack's tools are listed **directly**; `ask_pipeworx`
62
62
  reaches all of them from either one.
63
63
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pipeworx/mcp-grants-gov",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Grants.gov MCP — open federal grant opportunities (free, no auth)",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -26,7 +26,7 @@
26
26
  "@cloudflare/workers-types": "^4.20260405.1"
27
27
  },
28
28
  "pipeworx": {
29
- "sourceHash": "v1-671eb104fcca50f3eff7d54f17431de8e700cdf62cae8639b4c12b8651223d4e",
30
- "sourceCommit": "76aa8f5d9b5dc2f665563030647c68e661478864"
29
+ "sourceHash": "v1-be925a6e6350a16b702fd0c26a84dc08a92ebe3529b5908765bf64aeb6a04074",
30
+ "sourceCommit": "d82b03e5d3bf01fd0dfba214ff31dabe330f2ab6"
31
31
  }
32
32
  }
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.pipeworx-io/grants-gov",
4
4
  "title": "Grants Gov",
5
5
  "description": "Grants.gov MCP — open federal grant opportunities (free, no auth)",
6
- "version": "0.1.1",
6
+ "version": "0.1.2",
7
7
  "websiteUrl": "https://pipeworx.io/packs/grants-gov",
8
8
  "repository": {
9
9
  "url": "https://github.com/pipeworx-io/mcp-grants-gov",
package/src/index.ts CHANGED
@@ -672,7 +672,9 @@ const tools: McpToolExport['tools'] = [
672
672
  type: 'string',
673
673
  description: 'forecasted | posted | closed | archived (default posted; use a pipe to combine, e.g. "posted|forecasted")',
674
674
  },
675
- agencies: { type: 'string', description: 'Comma-separated agency codes (e.g., "EPA,USDA,NIH")' },
675
+ open_only: { type: 'boolean', description: 'true restricts to currently-open or forthcoming opportunities (same as status "posted|forecasted"); omit or false leaves status at its default. Alias for status when a caller only knows open/not-open, not the exact status vocabulary.' },
676
+ agencies: { type: 'string', description: 'Comma-separated agency codes (e.g., "EPA,USDA,NIH"). A parent department code (e.g. "HHS") also matches its sub-agencies (NIH, CDC, FDA, ...) — Grants.gov indexes opportunities under the posting sub-agency, not just the department.' },
677
+ agency: { type: 'string', description: 'Alias for `agencies` — a single agency or department code (e.g. "NIH" or "HHS").' },
676
678
  funding_categories: {
677
679
  type: 'string',
678
680
  description: 'Comma-separated category codes (e.g., "ED" education, "ENV" environment, "ST" science)',
@@ -735,14 +737,16 @@ async function grantsPost<T>(path: string, body: unknown): Promise<T> {
735
737
  }
736
738
 
737
739
  async function searchOpps(args: Record<string, unknown>) {
740
+ const status = (args.status as string) ?? (args.open_only === true ? 'posted|forecasted' : 'posted');
738
741
  const body: Record<string, unknown> = {
739
742
  rows: Math.min(1000, Math.max(1, (args.limit as number) ?? 25)),
740
743
  startRecordNum: (args.offset as number) ?? 0,
741
744
  sortBy: 'openDate|desc',
742
- oppStatuses: (args.status as string) ?? 'posted',
745
+ oppStatuses: status,
743
746
  };
744
747
  if (args.keyword) body.keyword = String(args.keyword);
745
- if (args.agencies) body.agencies = String(args.agencies);
748
+ const agencies = args.agencies ?? args.agency;
749
+ if (agencies) body.agencies = String(agencies);
746
750
  if (args.funding_categories) body.fundingCategories = String(args.funding_categories);
747
751
  if (args.aln) body.cfda = String(args.aln);
748
752
 
package/src/server.ts CHANGED
@@ -9,7 +9,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprot
9
9
  import pack from './index.js';
10
10
 
11
11
  const server = new Server(
12
- { name: '@pipeworx/mcp-grants-gov', version: '0.1.1' },
12
+ { name: '@pipeworx/mcp-grants-gov', version: '0.1.2' },
13
13
  { capabilities: { tools: {} } },
14
14
  );
15
15