NIH Reporter MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add nih-reporter -- docker run -i --rm nih-reporter-mcp
README.md

Access the NIH Reporter API for NIH-funded research projects and grants.

NIH Reporter MCP Server

A Model Context Protocol (MCP) server that provides programmatic access to the NIH Reporter API for searching and retrieving information about NIH-funded research projects.

Overview

This MCP server allows AI assistants and other MCP clients to search for and retrieve detailed information about NIH-funded research grants, including:

  • Project details and funding information
  • Principal investigator information
  • Organization details
  • Project abstracts and public health relevance
  • Award amounts and dates
  • Study sections and review information

Features

Available Tools

  1. search_projects - Search for NIH projects using multiple criteria:

    • Fiscal years
    • NIH Institutes/Centers (IC codes)
    • Activity codes (R01, P01, etc.)
    • Organization names
    • Principal investigator names
    • Project numbers
    • Award amount ranges
    • Date ranges
    • Keywords in title/abstract
  2. get_project_details - Get comprehensive details about a specific project by project number or application ID

  3. search_recent_awards - Find recently awarded projects within a specified number of days

  4. search_by_investigator - Search for all projects by a specific principal investigator

  5. get_spending_categories - Get information about NIH spending categories

Prerequisites

  • Docker and Docker Compose installed
  • Basic understanding of MCP (Model Context Protocol)

Quick Start

1. Build the Docker Image

docker-compose build

2. Run the Server

docker-compose up

The server will start and listen for MCP requests via stdin/stdout.

3. Alternative: Build and Run with Docker Only

# Build the image
docker build -t nih-reporter-mcp .

# Run the container
docker run -i nih-reporter-mcp

Configuration for Claude Desktop

To use this MCP server with Claude Desktop, add it to your Claude configuration file:

On macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json

On Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "nih-reporter": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "nih-reporter-mcp"]
    }
  }
}

After adding this configuration, restart Claude Desktop.

Usage Examples

Once connected to an MCP client (like Claude Desktop), you can use natural language to interact with the NIH Reporter API:

Example 1: Search for Recent Cancer Research

"Find recent NIH cancer research projects from the National Cancer Institute awarded in 2025"

This will use the search_projects tool with:

  • agencies: ["NCI"]
  • fiscal_years: [2025]

Example 2: Find Projects by Investigator

"Show me all NIH projects where John Smith is the principal investigator"

This will use the search_by_investigator tool.

Example 3: Get Project Details

"Get detailed information about project R01CA123456"

This will use the get_project_details tool.

Example 4: Search Recent Awards

"What are the newest NIH awards from the last 7 days?"

This will use the search_recent_awards tool.

Using with Azure OpenAI Responses API

You can integrate this MCP server with Azure OpenAI's Responses API using function calling. Here are snippets showing how to define the tools in different languages:

Python

from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

# Configure Azure AD authentication
token_provider = get_bearer_token_provider(
    DefaultAzureCredential(),
    "https://cognitiveservices.azure.com/.default"
)

client = AzureOpenAI(
    base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
    azure_ad_token_provider=token_provider,
    api_version="preview"
)

# Define NIH Reporter search tool
tools = [
    {
        "type": "function",
        "function": {
            "name": "search_projects",
            "description": "Search for NIH-funded research projects using multiple criteria including fiscal years, agencies, activity codes, and keywords",
            "parameters": {
                "type": "object",
                "properties": {
                    "fiscal_years": {
                        "type": "array",
                        "items": {"type": "integer"},
                        "description": "Fiscal years to search (e.g., [2024, 2025])"
                    },
                    "agencies": {
                        "type": "array",
                        "items": {"type": "string"},
                        "description": "NIH Institute/Center codes (e.g., ['NCI', 'NHLBI'])"
                    },
                    "activity_codes": {
                        "type": "array",
                        "items": {"type": "string"},
                        "description": "Grant activity codes (e.g., ['R01', 'K99'])"
                    },
                    "pi_names": {
                        "

Tools (5)

search_projectsSearch for NIH projects using multiple criteria like fiscal years, agencies, activity codes, and keywords.
get_project_detailsGet comprehensive details about a specific project by project number or application ID.
search_recent_awardsFind recently awarded projects within a specified number of days.
search_by_investigatorSearch for all projects by a specific principal investigator.
get_spending_categoriesGet information about NIH spending categories.

Configuration

claude_desktop_config.json
{"mcpServers": {"nih-reporter": {"command": "docker", "args": ["run", "-i", "--rm", "nih-reporter-mcp"]}}}

Try it

Find recent NIH cancer research projects from the National Cancer Institute awarded in 2025
Show me all NIH projects where John Smith is the principal investigator
Get detailed information about project R01CA123456
What are the newest NIH awards from the last 7 days?

Frequently Asked Questions

What are the key features of NIH Reporter?

Search NIH-funded research projects by fiscal year, agency, or activity code. Retrieve comprehensive project details including abstracts and public health relevance. Lookup research grants by principal investigator name. Monitor recent NIH award activity. Access NIH spending category data.

What can I use NIH Reporter for?

Academic researchers tracking funding trends in specific medical fields. Grant writers looking for examples of successful project abstracts. Science journalists investigating NIH spending on specific health initiatives. Institutional administrators verifying grant award details and investigator history.

How do I install NIH Reporter?

Install NIH Reporter by running: docker-compose build && docker-compose up

What MCP clients work with NIH Reporter?

NIH Reporter works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep NIH Reporter docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare