search_opportunities

Pack: grants-gov · Endpoint: https://gateway.pipeworx.io/grants-gov/mcp

Search Grants.gov for currently-open or recently-closed federal funding opportunities. Filter by keyword, opportunity status, agency code, funding category, or date range. Returns opportunity number, title, agency, open/close dates, and assistance listing numbers (formerly CFDA).

Parameters

NameTypeRequiredDescription
keywordstringnoFull-text query
statusstringnoforecasted | posted | closed | archived (default posted; use a pipe to combine, e.g. “posted|forecasted”)
agenciesstringnoComma-separated agency codes (e.g., “EPA,USDA,NIH”)
funding_categoriesstringnoComma-separated category codes (e.g., “ED” education, “ENV” environment, “ST” science)
alnstringnoAssistance Listing Number / CFDA number (e.g., “10.001”)
limitnumbernoRows per page (1-1000, default 25)
offsetnumberno0-based start record (default 0)

Example call

Arguments

{
  "keyword": "climate resilience",
  "status": "posted",
  "agencies": "EPA,NOAA",
  "funding_categories": "ENV",
  "limit": 25
}

curl

curl -X POST https://gateway.pipeworx.io/grants-gov/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_opportunities","arguments":{"keyword":"climate resilience","status":"posted","agencies":"EPA,NOAA","funding_categories":"ENV","limit":25}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('search_opportunities', {
  "keyword": "climate resilience",
  "status": "posted",
  "agencies": "EPA,NOAA",
  "funding_categories": "ENV",
  "limit": 25
});

More examples

{
  "keyword": "research",
  "status": "posted|forecasted",
  "aln": "47.041",
  "limit": 50,
  "offset": 0
}

Response shape

Always returns: total, returned, opportunities

FieldTypeDescription
totalnumberTotal number of opportunities matching search criteria
returnednumberNumber of opportunities returned in this response
opportunitiesarrayList of opportunity search results
Full JSON Schema
{
  "type": "object",
  "properties": {
    "total": {
      "type": "number",
      "description": "Total number of opportunities matching search criteria"
    },
    "returned": {
      "type": "number",
      "description": "Number of opportunities returned in this response"
    },
    "opportunities": {
      "type": "array",
      "description": "List of opportunity search results",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "number",
              "null"
            ],
            "description": "Numeric opportunity ID"
          },
          "number": {
            "type": [
              "string",
              "null"
            ],
            "description": "Opportunity number"
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "Opportunity title"
          },
          "agency_code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Agency code"
          },
          "agency": {
            "type": [
              "string",
              "null"
            ],
            "description": "Agency name"
          },
          "open_date": {
            "type": [
              "string",
              "null"
            ],
            "description": "Opportunity open date"
          },
          "close_date": {
            "type": [
              "string",
              "null"
            ],
            "description": "Opportunity close date"
          },
          "status": {
            "type": [
              "string",
              "null"
            ],
            "description": "Opportunity status"
          },
          "doc_type": {
            "type": [
              "string",
              "null"
            ],
            "description": "Document type"
          },
          "assistance_listing_numbers": {
            "type": "array",
            "description": "Assistance listing numbers (formerly CFDA)",
            "items": {
              "type": "string"
            }
          },
          "grants_gov_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Direct link to opportunity on Grants.gov"
          }
        }
      }
    }
  },
  "required": [
    "total",
    "returned",
    "opportunities"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "grants-gov": {
      "url": "https://gateway.pipeworx.io/grants-gov/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build June 27, 2026