get_committees
Retrieve committee data from the U.S. Congress.gov API to access legislative committee information, including membership, activities, and historical records.
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 |
|---|---|---|---|
| system_code | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
Implementation Reference
- server.py:383-432 (handler)The main handler function for the 'get_committees' MCP tool. Decorated with @mcp.tool() which registers it with the MCP server. Fetches committee data from the Congress.gov API 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) }