get_crsreport
Retrieve Congressional Research Service reports from Congress.gov using product codes, date ranges, or pagination to access authoritative legislative analysis and policy research.
Instructions
Retrieve CRS (Congressional Research Service) report information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CRSReportEndpoint.md
Args: product_code: Specific product code for CRS report 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: CRS report data from Congress.gov API
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| from_datetime | No | ||
| limit | No | ||
| offset | No | ||
| product_code | No | ||
| to_datetime | No |
Implementation Reference
- server.py:1084-1133 (handler)The core handler function for the 'get_crsreport' MCP tool, decorated with @mcp.tool() for automatic registration. Includes type-annotated parameters serving as input schema and comprehensive docstring describing usage and API details.@mcp.tool() async def get_crsreport( product_code: str | None = None, offset: int = 0, limit: int = 20, from_datetime: str | None = None, to_datetime: str | None = None ) -> dict: """ Retrieve CRS (Congressional Research Service) report information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CRSReportEndpoint.md Args: product_code: Specific product code for CRS report 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: CRS report data from Congress.gov API """ base_url = "https://api.congress.gov/v3/crsreport" url = base_url if product_code: url += f"/{product_code}" params = { "api_key": congress_gov_api_key, "format": "json", "offset": offset, "limit": min(limit, 250) } 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 CRS report information: {str(e)}", "status_code": getattr(e.response, "status_code", None) }