GnistAI GnistAI
Log in

Getting Started with NSF Awards

Search NSF research awards and grants — keyword search, PI lookup, institution filtering. Covers all NSF-funded research across science, engineering, and education.

All Tutorials   |   Overview   |   Playground   |   MCP   |   REST API   |   Home
Science

Data source: NSF Award API

Overview

NSF Awards wraps NSF Award API, handling authentication, pagination, and rate limits for you. This tutorial covers all 4 tools with working code examples you can copy and run.

Prerequisites

  1. Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
  2. Choose your integration method: MCP protocol or REST API.

Connect via MCP

Add to your MCP client config (Claude Desktop, Cursor, etc.):

MCP Config
{
  "mcpServers": {
    "gnist-nsf-awards": {
      "url": "https://context.gnist.ai/mcp/nsf-awards/",
      "headers": {
        "Gnist-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Tools (4)

search_awards

Search NSF research awards and grants by keyword. Covers all NSF-funded research across science, engineering, and education. Includes award details, principal investigators, institutions, and funding amounts. Returns: List of matching awards with title, PI, institution, funding amount, and abstract excerpt. Use award id with get_award for full details.

ParameterTypeRequiredDescription
keywordstringrequiredSearch term for NSF awards (e.g. "machine learning", "climate change", "quantum computing").
awardee_nameanyoptionalInstitution name to filter by (e.g. "MIT", "Stanford University").
start_date_startanyoptionalFilter awards starting after this date (MM/DD/YYYY format).
start_date_endanyoptionalFilter awards starting before this date (MM/DD/YYYY format).
limitintegeroptionalNumber of results (1–25, default 25). (default: 25)
curl -X POST "https://context.gnist.ai/mcp/nsf-awards/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_awards", "arguments": {"keyword": "machine learning"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/nsf-awards/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'keyword': 'machine learning'},
            'name': 'search_awards'}},
)
print(resp.json())

get_award

Get detailed information about a specific NSF award. Returns the full award record including abstract, PI, institution, funding, and program information. Use the id from search_awards results. Returns: Award details with abstract, PI, institution, funding amount, dates, and program info. Returns found=false if award not found.

ParameterTypeRequiredDescription
award_idstringrequiredNSF award ID (e.g. "2548201"). Found in search_awards results.
curl -X POST "https://context.gnist.ai/mcp/nsf-awards/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_award", "arguments": {"award_id": "2548201"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/nsf-awards/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'award_id': '2548201'}, 'name': 'get_award'}},
)
print(resp.json())

search_by_pi

Search NSF awards by principal investigator name. Find all NSF grants awarded to a specific researcher. Optionally filter by keyword to narrow to a research area. Returns: List of awards for the specified PI with title, institution, funding, and dates.

ParameterTypeRequiredDescription
pi_last_namestringrequiredPrincipal investigator's last name.
pi_first_nameanyoptionalPrincipal investigator's first name (optional, narrows results).
keywordanyoptionalOptional keyword to further filter results.
limitintegeroptionalNumber of results (1–25, default 25). (default: 25)
curl -X POST "https://context.gnist.ai/mcp/nsf-awards/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_by_pi", "arguments": {"pi_last_name": "example"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/nsf-awards/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'pi_last_name': 'example'}, 'name': 'search_by_pi'}},
)
print(resp.json())

report_feedback

Report a bug, feature request, or general feedback for this data source. Use this when something doesn't work as expected, when you'd like a new feature, or when you have suggestions for improvement. Args: feedback: Describe the issue or suggestion. feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: general)
curl -X POST "https://context.gnist.ai/mcp/nsf-awards/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "report_feedback", "arguments": {"feedback": "example"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/nsf-awards/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'feedback': 'example'}, 'name': 'report_feedback'}},
)
print(resp.json())

Common Patterns

Search then retrieve
Use search_awards to find items, then get_award to get full details. This two-step pattern is common for exploring data before drilling down.
Pagination
Several tools support limit, offset, or page parameters. Start with small limits during development, then increase for production queries.

FAQ

What data does NSF Awards provide?

Search NSF research awards and grants — keyword search, PI lookup, institution filtering. Covers all NSF-funded research across science, engineering, and education. It exposes 4 tools: search_awards, get_award, search_by_pi, report_feedback.

What do I need to get started?

A Gnist API key (free tier: 100 calls/day). Sign up at https://context.gnist.ai/signup.

What format does the NSF Awards API return?

JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.

Next Steps

Related Tutorials