get_committees
Retrieve committee information from the Congress.gov API using system codes, date ranges, and pagination parameters to access legislative committee data.
Instructions
Retrieve committee information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CommitteeEndpoint.md
Args: system_code: Specific committee system code (e.g., "hsag" for House Agriculture) 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 data from Congress.gov API
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| from_datetime | No | ||
| limit | No | ||
| offset | No | ||
| system_code | No | ||
| to_datetime | No |
Implementation Reference
- server.py:383-431 (handler)The handler function decorated with @mcp.tool(), which registers and implements the 'get_committees' tool. It queries the Congress.gov API for committee information based on provided parameters.@mcp.tool() async def get_committees( system_code: str | None = None, offset: int = 0, limit: int = 20, from_datetime: str | None = None, to_datetime: str | None = None ) -> dict: """ Retrieve committee information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CommitteeEndpoint.md Args: system_code: Specific committee system code (e.g., "hsag" for House Agriculture) 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 data from Congress.gov API """ base_url = "https://api.congress.gov/v3/committee" url = base_url if system_code: url += f"/{system_code}" params = { "api_key": congress_gov_api_key, "format": "json", "offset": offset, "limit": min(limit, 250) # API max limit for committees } 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 information: {str(e)}", "status_code": getattr(e.response, "status_code", None) }
- server.py:383-383 (registration)The @mcp.tool() decorator registers the get_committees function as an MCP tool.@mcp.tool()