Skip to main content
Glama

Get NIH institution profile

get_institution_profile
Read-onlyIdempotent

Use this tool when the user asks about one named institution — 'what is Harvard's NIH funding history', 'which PIs does this university fund', 'what mechanisms does it win'. entity_id is the canonical institution identifier (from the institution ranking); grant-search results do NOT carry one. Read-only institution profile: funding history, mechanism mix, top PIs. fiscal_year_start/fiscal_year_end scope EVERY aggregate section — the mechanism-mix, funding-trend AND top-PIs sections all report only that fiscal-year window, and provenance.fiscal_year_window echoes the window actually applied; omit both arguments for all fiscal years. meta.found and profile.organization are deliberately window-independent (they answer existence/identity, so a real entity with no funding in the window stays found with its name). meta.found is always an explicit boolean: false (with profile=null) when the entity_id matches nothing in the corpus, true otherwise — branch on it instead of null-checking funding fields. The funding-trend rows' fiscal_year is int OR null: null means 'fiscal year not reported', never 0, and such a group belongs to no fiscal-year window, so it is absent from every scoped section. Bounds: entity_id 2-256 characters, fiscal years 1985-2100.

Input Schema

NameRequiredDescriptionDefault
entity_idYes
fiscal_year_endNo
fiscal_year_startNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover readOnly, idempotent, non-destructive and closed-world, yet the description adds substantial non-obvious behavior: fiscal-year scoping applies to every aggregate section, provenance.fiscal_year_window echoes the applied window, meta.found is an explicit boolean with profile=null on miss, and meta.found/profile.organization are deliberately window-independent. It also discloses the null fiscal_year semantics (never 0, belongs to no window), which is genuine behavioral disclosure not present in structured fields.

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

Conciseness4/5

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

Usage guidance is front-loaded before the data-shape details, and nearly every sentence carries unique semantics. It is dense and long, with some near-overlap between the window-independence sentence and the meta.found boolean sentence, so it is efficient but not maximally tight.

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

Completeness5/5

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

For a single-entity lookup with an output schema, the description supplies everything an agent needs beyond the schema: identifier provenance, scoping rules, miss handling, and null-year edge cases. No material gap remains even though return values are formally covered by the output schema.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden and does so: entity_id is defined as the canonical institution identifier with its source and a 2-256 character bound, and fiscal_year_start/end are explained as scoping EVERY aggregate section (mechanism-mix, funding-trend, top-PIs) with omit-both meaning all years and a 1985-2100 bound. This far exceeds the schema's bare titles and defaults.

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

Purpose5/5

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

The description names a specific verb and resource ('Read-only institution profile: funding history, mechanism mix, top PIs') plus a concrete triggering intent ('the user asks about one named institution'). It is instantly separable from get_pi_profile, rank_institutions, and search_grants, since it is explicitly scoped to one institution's NIH profile.

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

Usage Guidelines4/5

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

It gives explicit trigger context with quoted example queries and tells the agent where entity_id comes from ('from the institution ranking') while warning that grant-search results do NOT carry one — effectively routing between siblings. It stops short of naming the reciprocal tools (rank_institutions, search_grants, get_pi_profile) as in-when/when-not alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources