Skip to main content
Glama

Get Opportunity

get_opportunity
Read-onlyIdempotent

Fetch full details for a Grants.gov opportunity by ID. Returns synopsis text, eligibility, award ceiling/floor, attachments, contact info, and version history.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
opportunity_idYesNumeric opportunity ID (returned by search_opportunities as "id")

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesNumeric opportunity ID
cfdasYesCFDA/Assistance Listing Numbers
titleYesOpportunity title
agencyYesAgency name
numberYesOpportunity number
synopsisYesFull synopsis description text
agency_codeYesAgency code
attachmentsYesOpportunity attachments and documents
award_floorYesMinimum award amount
eligibilityYesEligibility requirements
archive_dateYesArchive date
contact_nameYesAgency contact person name
posting_dateYesDate opportunity was posted
award_ceilingYesMaximum award amount
contact_emailYesAgency contact email address
contact_phoneYesAgency contact phone number
response_dateYesResponse submission date
grants_gov_urlYesDirect link to opportunity on Grants.gov
applicant_typesYesList of eligible applicant types
expected_awardsYesExpected number of awards
closing_date_descYesClosing date description
estimated_fundingYesEstimated total funding available
funding_categoriesYesList of funding activity categories
funding_instrumentsYesList of funding instrument types

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "opportunity_id": 381934
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "agency": {
      +      "description": "Agency name",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "agency_code": {
      +      "description": "Agency code",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "applicant_types": {
      +      "description": "List of eligible applicant types",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "archive_date": {
      +      "description": "Archive date",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "attachments": {
      +      "description": "Opportunity attachments and documents",
      +      "items": {
      +        "properties": {
      +          "download_url": {
      +            "description": "URL to download attachment",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "file_name": {
      +            "description": "Attachment file name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "folder": {
      +            "description": "Attachment folder name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "award_ceiling": {
      +      "description": "Maximum award amount",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "award_floor": {
      +      "description": "Minimum award amount",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "cfdas": {
      +      "description": "CFDA/Assistance Listing Numbers",
      +      "items": {
      +        "properties": {
      +          "number": {
      +            "description": "CFDA number",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "title": {
      +            "description": "Program title",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "closing_date_desc": {
      +      "description": "Closing date description",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "contact_email": {
      +      "description": "Agency contact email address",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "contact_name": {
      +      "description": "Agency contact person name",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "contact_phone": {
      +      "description": "Agency contact phone number",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "eligibility": {
      +      "description": "Eligibility requirements",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "estimated_funding": {
      +      "description": "Estimated total funding available",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "expected_awards": {
      +      "description": "Expected number of awards",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "funding_categories": {
      +      "description": "List of funding activity categories",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "funding_instruments": {
      +      "description": "List of funding instrument types",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "grants_gov_url": {
      +      "description": "Direct link to opportunity on Grants.gov",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "id": {
      +      "description": "Numeric opportunity ID",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "number": {
      +      "description": "Opportunity number",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "posting_date": {
      +      "description": "Date opportunity was posted",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "response_date": {
      +      "description": "Response submission date",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "synopsis": {
      +      "description": "Full synopsis description text",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "title": {
      +      "description": "Opportunity title",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "number",
      +    "title",
      +    "agency_code",
      +    "agency",
      +    "synopsis",
      +    "eligibility",
      +    "award_ceiling",
      +    "award_floor",
      +    "estimated_funding",
      +    "expected_awards",
      +    "funding_instruments",
      +    "funding_categories",
      +    "applicant_types",
      +    "cfdas",
      +    "posting_date",
      +    "response_date",
      +    "closing_date_desc",
      +    "archive_date",
      +    "contact_name",
      +    "contact_email",
      +    "contact_phone",
      +    "attachments",
      +    "grants_gov_url"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's job is lighter. It adds value by listing the returned data fields, which helps the agent understand what is retrieved without requiring a call.

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?

The description is two sentences: the first clearly states the purpose, the second enumerates return fields. Every sentence earns its place, and there is no redundancy or unnecessary information.

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?

Given the tool's simplicity (one required parameter), rich annotations, high schema coverage, and existence of an output schema, the description is complete. It tells the agent what the tool does, what it returns, and how to use it (via parameter).

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%, so baseline is 3. The description does not add any information about the parameter beyond what is already in the schema. The parameter is well-documented in the schema itself.

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 clearly states 'Fetch full details for a Grants.gov opportunity by ID', using a specific verb and resource. It lists the returned fields (synopsis, eligibility, etc.), which distinguishes it from sibling tools like search_opportunities that return only summary data.

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 does not explicitly state when to use this tool versus alternatives. The parameter description hints that the ID comes from search_opportunities, but the main description lacks direct usage guidance, such as 'use this after search_opportunities to get full details'.

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.

TDQS

A3.6/5.0
Disambiguation2/5

Many tools have overlapping purposes: ask_pipeworx/ask_pipeworx_grounded/deep_research all handle broad queries; multiple Polymarket tools exist for edge finding; entity_profile/compare_entities/recent_changes/resolve_entity overlap on company data. An agent would struggle to pick the right tool.

Naming Consistency2/5

Naming patterns are mixed: some use verb_noun (search_opportunities, get_opportunity), some are phrases (ask_pipeworx_grounded, polymarket_edge_tracker), and some are vague (recall, forget). No consistent convention across the set.

Tool Count2/5

32 tools is high, but the core issue is that the server name 'Grants Gov' implies a narrow focus, yet only 2 tools are about grants. The sheer number of unrelated tools makes the set feel bloated and unfocused.

Completeness3/5

For the actual domain of general data querying and prediction markets, the tool surface is fairly complete, covering many sources. However, for 'Grants Gov' it is severely incomplete (missing all but opportunities). Overall, the scope is broad but lacks depth in any one area.