get_hearings
Retrieve congressional hearing data from the Congress.gov API by specifying congress, chamber, date range, and other parameters to access official legislative 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
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| chamber | No | ||
| hearing_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
Implementation Reference
- server.py:613-669 (handler)The handler function for the 'get_hearings' MCP tool. Decorated with @mcp.tool() for automatic registration. Fetches hearing data from the Congress.gov API using provided parameters, handles pagination and date filtering, and returns JSON response or error.@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) }
- server.py:613-613 (registration)The @mcp.tool() decorator registers the get_hearings function as an MCP tool.@mcp.tool()