About
Pilot MCP server for the NIH RePORTER API
README
⚠️ DISCLAIMER: This is a proof of concept and is not intended for production use.
📖 Overview
This project is a pilot study for the creation of an MCP server for the NIH's grant database: RePORTER. The server provides the following tools:
Search & discovery
- find_project_ids: The primary search tool. Returns a paginated page of project IDs matching search criteria, plus overview statistics (year, institute, and activity code distributions) for that page. Use
offsetandlimitto page through large result sets. - search_spending_categories: Searches NIH spending categories by plain-English name and returns matching
(id, name)pairs. Use this to resolve a topic (e.g., "aging", "breast cancer") into the numeric IDs required by thespending_categoriesfilter. - get_project_information: Retrieves specified metadata for projects by their project number (award amounts, principal investigators, abstracts, organizations, and other project details).
Analysis & summaries
- get_search_preview: Returns key portfolio statistics by sampling up to 500 matching projects. Fast but approximate for large portfolios — use it first to characterize a search before committing to a full analysis.
- get_search_summary: Fetches ALL matching projects to provide complete, accurate statistics. Use this when you need exact totals (e.g., "total funding for cancer research"). Automatically splits queries over 15,000 results into sub-queries; slower for large result sets.
- get_top_awarded: Ranks entities by total funding and project count for a search portfolio. Supports grouping by PI, organization name, NIH institute, activity code, organization state, or funding mechanism.
- get_portfolio_crosstab: Returns a cross-tabulation of grant counts and total funding across any two project dimensions (e.g., fiscal year × activity code), suitable for stacked bar charts, heatmaps, or tables.
Interactive UI
- create_search_dashboard: Builds a comprehensive dashboard for a search, with key metrics and visualizations (award amount distribution, institute and activity-code breakdowns).
- get_project_table: Displays matching projects as an interactive, sortable, searchable, paginated table (project number, title, PI, fiscal year, award amount, activity code, institute, organization). Performs the search internally.
Each tool is registered with the MCP server and can be called by an LLM or other MCP client.
Search Parameters
SearchParams now supports NIH spending category filtering via spending_categories:
{
"spending_categories": {
"values": [27, 31],
"match_all": false
}
}
values: List of NIH spending category numeric IDs (Appendix I, FY2024).match_all:truerequires projects to match all listed categories;falsematches at least one.
🚀 Quick Start
The code as written is intended for cloud deployment. Contact the admins if you are interested in testing the cloud deployment. Otherwise, the repository may be forked and modified for local implementation.
📐 Project Structure
src/reporter/- Main MCP server packageapp.py- FastMCP server setup (registers tools, prompts, routes, and skills)main.py- Entry pointtools/- MCP tool implementations (search, summaries, dashboards, tables)models/- Pydantic models for search parameters and API fields (e.g.,SearchParams,IncludeField, spending categories)prompts.py- Custom MCP promptsroutes.py- Custom HTTP routesinstructions/- Server instructions loaded at startupskills/- Reference skills exposed as MCP resources (spending-categories, award-type-lookup)utils.py- Shared helpers for querying the RePORTER API and building distributions
scripts/- Scripts for querying the API outside of the MCP servertests/- Unit testseval/- Evaluation harnesses (phoenix/,databricks_eval/,mcp-data-check/)agent/- Example agents that connect to the MCP server
📚 Resources
💬 Contact
For any questions please contact Mark Aronson
Installing Nih Reporter
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/GSA-TTS/mcp-server-nih-reporterFAQ
Is Nih Reporter MCP free?
Yes, Nih Reporter MCP is free — one-click install via Unyly at no cost.
Does Nih Reporter need an API key?
No, Nih Reporter runs without API keys or environment variables.
Is Nih Reporter hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Nih Reporter in Claude Desktop, Claude Code or Cursor?
Open Nih Reporter on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Nih Reporter with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
