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
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues