Skip to main content
Glama
jhalsey87

Grants.gov MCP Server

by jhalsey87
README.md
# Grants.gov API MCP Server

Model Context Protocol (MCP) server that provides access to the Grants.gov API for searching and retrieving federal grant opportunities.

## Features

This MCP server enables Claude to:
- Search for federal grant opportunities across all agencies
- Retrieve detailed information about specific opportunities
- Analyze funding trends and patterns
- Query by keywords, agencies, statuses, funding categories, and more
- Access open opportunities from the entire federal government

## Tools

### Core Tools

1. **search_opportunities** - Search for grant opportunities with comprehensive filtering options
   - Keywords in titles and descriptions
   - Federal agency codes (HHS, DOE, NSF, etc.)
   - Opportunity status (forecasted, posted, closed, archived)
   - Funding categories and instruments
   - Eligibility requirements
   - Assistance Listing Numbers (ALN)
   - Supports up to 1000 results per query

2. **get_opportunity_details** - Get complete information about a specific opportunity by ID
   - Full eligibility requirements
   - Application deadlines
   - Funding amounts
   - Contact information
   - Application instructions

### Efficiency Tools

3. **search_opportunities_light** - Lightweight search returning only essential fields
   - Reduces response size for large result sets
   - Returns: opportunityId, opportunityNumber, opportunityTitle, agencyName, openDate, closeDate, estimatedFunding, oppStatus

4. **analyze_opportunity_trends** - Server-side trend analysis and aggregation
   - Processes up to 1000 opportunities server-side
   - Returns aggregated summaries including:
     - Total opportunities and estimated funding
     - Distribution by federal agency
     - Distribution by funding category
     - Distribution by opportunity status
     - Common themes in opportunity titles
   - Designed to avoid context limits when analyzing large datasets

## Installation

### Using Docker (Recommended)

1. Build the Docker image:
```bash
docker build -t grants-gov-mcp .
```

2. Add to Claude Code:
```bash
claude mcp add --transport stdio -s user grants-gov -- docker run -i --rm grants-gov-mcp
```

3. Add to Claude Desktop (`claude_desktop_config.json`):
```json
{
  "mcpServers": {
    "grants-gov": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "grants-gov-mcp"]
    }
  }
}
```

### Using Python Directly

1. Install dependencies:
```bash
pip install -r requirements.txt
```

2. Add to Claude Code:
```bash
claude mcp add --transport stdio -s user grants-gov -- python /path/to/server.py
```

## Usage Examples

### Search for opportunities by keyword
```
Find current grant opportunities related to climate change
```

### Search by agency
```
What grant opportunities are currently open from the Department of Energy?
```

### Analyze funding trends
```
Analyze health-related grant opportunities from HHS over the past year
```

### Get specific opportunity details
```
Get details for grant opportunity EPA-R-001
```

### Search with multiple filters
```
Find forecasted and posted opportunities from NSF in the education category
```

## API Details

### No Authentication Required

The Grants.gov search2 and fetchOpportunity endpoints do not require authentication or API keys.

### Opportunity Statuses

- **forecasted** - Future opportunities not yet open for applications
- **posted** - Currently open for applications
- **closed** - No longer accepting applications
- **archived** - Historical opportunities

### Common Agency Codes

- HHS - Department of Health and Human Services
- DOE - Department of Energy
- NSF - National Science Foundation
- ED - Department of Education
- USDA - Department of Agriculture
- DOD - Department of Defense
- NASA - National Aeronautics and Space Administration
- And many more...

### Funding Instruments

- G - Grant
- CA - Cooperative Agreement
- PC - Procurement Contract
- O - Other

## Grants.gov Search Parameters

The API supports numerous search parameters:

- **keyword** - Text search in titles and descriptions
- **oppNum** - Specific opportunity number
- **agencies** - Federal agency codes (pipe-separated)
- **oppStatuses** - Opportunity statuses (pipe-separated)
- **fundingCategories** - Funding category codes (pipe-separated)
- **fundingInstruments** - Funding instrument types
- **eligibilities** - Eligible applicant types
- **aln** - Assistance Listing Number
- **sortBy** - Field to sort results by
- **rows** - Number of results (max 1000)
- **startRecordNum** - Pagination offset

## Development

The server is built using:
- Python 3.11+
- MCP SDK
- Grants.gov API v1

## Useful Links

- [Grants.gov](https://www.grants.gov/)
- [Grants.gov API Guide](https://www.grants.gov/api/api-guide)
- [Search2 API Documentation](https://grants.gov/api/common/search2)
- [Model Context Protocol](https://modelcontextprotocol.io/)

## License

MIT

## Related Projects

- [MCP NIH Reporter](https://github.com/jhalsey87/MCP_NIH_Reporter) - NIH research awards
- [MCP NSF Awards](https://github.com/jhalsey87/MCP_NSF_Awards) - NSF research awards

Maintenance

ActivityInactive
ResponsivenessNo issues