Skip to main content
Glama

Edgrapi — US Government Data API

Get federal grant opportunities (Grants.gov)

get_grants
Read-onlyIdempotent

Federal grant funding opportunities from Grants.gov, normalized into flat JSON. Each carries the opportunity id and number, title, agency, status, open and close dates, the Assistance Listing (CFDA) numbers, and the grants.gov link. Defaults to open opportunities (posted + forecasted). Completes the gov-funding trio with get_opportunities (contracts) and get_awards (spending).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
alnNoAssistance Listing (CFDA) number, e.g. '93.217'.
limitNoRecords to return, 1-100 (default 20).
agencyNoAgency code filter, e.g. 'HHS-OPHS'.
offsetNoStart record number (default 0).
statusNoPipe/comma list of forecasted, posted, closed, archived (default posted|forecasted).
keywordNoFull-text keyword filter.
categoryNoFunding category code, e.g. 'HL' (health).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already signal read-only, open-world, idempotent, non-destructive behavior. The description adds useful behavior beyond that: results are normalized to flat JSON, include a specific field set, and default to open opportunities (posted + forecasted). It doesn't address sorting, data freshness, or pagination behavior, but the safety profile is covered.

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

Conciseness5/5

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

Three sentences with no filler: the first scopes the tool, the second states output fields, and the third covers defaults and sibling differentiation. Key information is front-loaded.

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?

Even without an output schema, the description enumerates the returned fields and the default status filter. Combined with complete parameter schemas and sibling names, an agent has enough context to select and invoke this tool correctly.

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

Parameters3/5

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

Schema coverage is 100% and every one of the 7 parameters has a descriptive entry with examples. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

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 resource (federal grant funding opportunities from Grants.gov), specifies output shape (flat JSON with key fields), and explicitly separates this tool from get_opportunities (contracts) and get_awards (spending). This prevents agent confusion among the gov-funding siblings.

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 identifies the alternative tools in the same domain via the 'gov-funding trio' sentence. However, it does not state explicit conditions like 'use this when the request concerns grants rather than contracts or spending,' so the routing guidance is clear but not fully formalized.

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