Skip to main content
Glama
rdwj

NIH RePORTER MCP Server

by rdwj

Nih Search Projects

nih_search_projects
Read-only

Search NIH RePORTER for federally funded research projects using filters like keyword, PI, agency, activity code, fiscal year, and award amount.

Instructions

Search the NIH RePORTER database for federally funded research projects.

NIH RePORTER (Research Portfolio Online Reporting Tools) provides access to data on all research projects funded by the National Institutes of Health. This includes grants, contracts, and intramural projects across all 27 NIH institutes and centers.

Text search supports multi-word queries. With text_operator="and" (default), all words must appear in the searched fields. With "or", any word matching is sufficient. Wrap phrases in quotes for exact phrase matching within the text parameter.

Multiple criteria are combined with AND logic (e.g., text + agency narrows results to projects matching both). Within list parameters like agencies or activity_codes, values use OR logic.

Common activity codes: R01 - Research Project Grant (most common) R21 - Exploratory/Developmental Research R03 - Small Research Grant P01 - Program Project Grant U01 - Research Project Cooperative Agreement K01 - Mentored Research Scientist Career Development K08 - Mentored Clinical Scientist Career Development K23 - Mentored Patient-Oriented Research Career Development T32 - Institutional Training Grant F31 - Predoctoral Fellowship F32 - Postdoctoral Fellowship

Common agency abbreviations: NCI (Cancer), NIMH (Mental Health), NIGMS (General Medical Sciences), NIAID (Allergy/Infectious Diseases), NHLBI (Heart/Lung/Blood), NIA (Aging), NINDS (Neurological Disorders), NIDA (Drug Abuse), NICHD (Child Health), NIDDK (Diabetes/Digestive/Kidney)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textNoFree-text search across project titles, abstracts, and terms. Supports multi-word queries; word matching is controlled by text_operator.
limitNoMaximum number of results to return (1-50).
offsetNoStarting index for pagination. Use with search_id to page through results.
statesNoUS state abbreviations for organization location. Example: ["CA", "MA", "NY"].
pi_nameNoPrincipal Investigator name. Use "Last, First" for exact matching or a single name for broad matching. Partial names are supported (implicitly wildcarded).
sort_byNoSort order for results. 'relevance' ranks by text match quality (best with text searches), 'date' by project start date descending, 'amount' by award amount descending.relevance
agenciesNoNIH institute/center abbreviations. Examples: NCI, NIMH, NIGMS, NIAID, NHLBI, NIA, NINDS, NIDA, NICHD, NIDDK, NEI, NIBIB, NIEHS, NHGRI, NCATS, FIC, NLM, NCCIH.
search_idNoReuse a previous search_id to page through an existing result set without re-specifying criteria. Returned in every search response.
text_fieldsNoWhich text fields to search. 'all' searches titles, abstracts, and terms. 'title', 'abstract', or 'terms' restricts to that single field.all
detail_levelNo'summary' returns key fields (title, PI, org, amount, dates). 'full' returns all available fields including abstracts.summary
fiscal_yearsNoFiscal years to include. NIH fiscal year runs Oct 1 - Sep 30. Example: [2024, 2025].
organizationNoResearch organization name (implicitly wildcarded). Example: "Johns" matches "Johns Hopkins University".
text_operatorNoHow multi-word text queries are combined. "and" requires all words to appear (default), "or" matches any word.and
activity_codesNoNIH activity codes to filter by. Common codes: R01 (Research Project), R21 (Exploratory), R03 (Small Grant), P01 (Program Project), U01 (Cooperative Agreement), K01/K08/K23 (Career Development), T32 (Training Grant), F31/F32 (Fellowship).
award_amount_maxNoMaximum award amount in dollars.
award_amount_minNoMinimum award amount in dollars.
funding_mechanismNoFunding mechanism codes: RP (Research Projects), SB (SBIR/STTR), RC (Research Centers), OR (Other Research), TR (Training Individual), TI (Training Institutional), CO (Construction).
exclude_subprojectsNoExclude subprojects from results. Usually True to avoid duplicate counting of large program projects.
include_active_onlyNoWhen True, only return currently active projects.
project_start_afterNoFilter to projects starting on or after this date. Format: YYYY-MM-DD.
spending_categoriesNoRCDC spending category IDs (OR logic). Common IDs: 132 (Cancer), 140 (Cardiovascular), 224 (Diabetes), 284 (HIV/AIDS), 338 (Infectious Diseases), 443 (Mental Health), 525 (Neurosciences), 4372 (Machine Learning/AI), 4531 (Data Science).
project_start_beforeNoFilter to projects starting on or before this date. Format: YYYY-MM-DD.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, so the safety profile is already covered. The description adds useful behavioral context: AND/OR combination logic, exact phrase quoting, and that search_id enables paging without re-specifying criteria. It does not mention rate limits, result caps, or anything beyond the schema. With annotations carrying the safety burden, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded and clear, but the large inline reference lists for activity codes and agencies are bulky and partially duplicate the schema descriptions (which already list common codes). It is informative but not tightly structured; the code lists could be seen as padding since the schema already covers many of them.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-parameter read-only search tool with an output schema present, the description covers query semantics, value conventions, and paging via search_id. It is largely complete; the main gap is the absence of guidance on choosing between this tool and its siblings, but return values are covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds genuine value beyond the schema by supplying the common activity code and agency abbreviation reference tables, which help the agent construct valid values for those parameters. That elevates it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states a specific verb and resource: search the NIH RePORTER database for federally funded research projects. It provides rich scope detail (grants, contracts, intramural, 27 institutes). It does not, however, differentiate itself from the sibling nih_get_project or explain how it relates to it, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains query semantics (AND across criteria, OR within lists, text_operator behavior) which implicitly guides usage, but it never states when to use this search tool versus nih_get_project or nih_find_publications. No explicit when/when-not guidance or named alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.