get_committee_reports
Retrieve committee report data from Congress.gov to access legislative information by congress, report type, number, or date range.
Instructions
Retrieve committee report information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CommitteeReportEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) report_type: Type of report - hrpt: House Report - srpt: Senate Report - erpt: Executive Report report_number: Specific report 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: Committee report data from Congress.gov API
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| report_type | No | ||
| report_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
Implementation Reference
- server.py:434-493 (handler)The primary handler function for the 'get_committee_reports' MCP tool. It is decorated with @mcp.tool() which registers it as a tool. The function constructs API requests to Congress.gov for committee reports based on provided parameters and handles errors.@mcp.tool() async def get_committee_reports( congress: int | None = None, report_type: str | None = None, report_number: int | None = None, offset: int = 0, limit: int = 20, from_datetime: str | None = None, to_datetime: str | None = None ) -> dict: """ Retrieve committee report information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CommitteeReportEndpoint.md Args: congress: Congress number (e.g., 118 for 118th Congress) report_type: Type of report - hrpt: House Report - srpt: Senate Report - erpt: Executive Report report_number: Specific report 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: Committee report data from Congress.gov API """ base_url = "https://api.congress.gov/v3/committee-report" url = base_url if congress: url += f"/{congress}" if report_type: url += f"/{report_type}" if report_number: url += f"/{report_number}" params = { "api_key": congress_gov_api_key, "format": "json", "offset": offset, "limit": min(limit, 250) # API max limit for committee reports } 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 committee report information: {str(e)}", "status_code": getattr(e.response, "status_code", None) }