Skip to main content
Glama
AshwinSundar

Congress[.]gov MCP Server

by AshwinSundar

get_hearings

Retrieve congressional hearing data from the official Congress.gov API by filtering by congress, chamber, date range, or specific hearing number to access government proceedings.

Instructions

Retrieve hearing information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/HearingEndpoint.md

Args: congress: Congress number (e.g., 118 for 118th Congress) chamber: Chamber (house, senate) hearing_number: Specific hearing number offset: Starting record (default 0) limit: Maximum records to return (max 250, default 20) from_datetime: Start timestamp (YYYY-MM-DDTHH:MM:SSZ format) to_datetime: End timestamp (YYYY-MM-DDTHH:MM:SSZ format)

Returns: dict: Hearing data from Congress.gov API

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chamberNo
congressNo
from_datetimeNo
hearing_numberNo
limitNo
offsetNo
to_datetimeNo

Implementation Reference

  • The handler function for the 'get_hearings' MCP tool. It constructs a URL for the Congress.gov hearings endpoint based on parameters, makes an API request using requests.get, and returns the JSON response or an error dict.
    @mcp.tool() async def get_hearings( congress: int | None = None, chamber: str | None = None, hearing_number: int | None = None, offset: int = 0, limit: int = 20, from_datetime: str | None = None, to_datetime: str | None = None ) -> dict: """ Retrieve hearing information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/HearingEndpoint.md Args: congress: Congress number (e.g., 118 for 118th Congress) chamber: Chamber (house, senate) hearing_number: Specific hearing number offset: Starting record (default 0) limit: Maximum records to return (max 250, default 20) from_datetime: Start timestamp (YYYY-MM-DDTHH:MM:SSZ format) to_datetime: End timestamp (YYYY-MM-DDTHH:MM:SSZ format) Returns: dict: Hearing data from Congress.gov API """ base_url = "https://api.congress.gov/v3/hearing" url = base_url if congress: url += f"/{congress}" if chamber: url += f"/{chamber}" if hearing_number: url += f"/{hearing_number}" params = { "api_key": congress_gov_api_key, "format": "json", "offset": offset, "limit": min(limit, 250) # API max limit for hearings } if from_datetime: params["fromDateTime"] = from_datetime if to_datetime: params["toDateTime"] = to_datetime try: response = requests.get(url, params=params) response.raise_for_status() return response.json() except requests.exceptions.RequestException as e: return { "error": f"Failed to retrieve hearing information: {str(e)}", "status_code": getattr(e.response, "status_code", None) }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AshwinSundar/congress_gov_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server