get_members
Retrieve U.S. Congress member details using bioguide IDs, date ranges, or current status filters to access official legislative data.
Instructions
Retrieve member information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/MemberEndpoint.md
Args: bioguide_id: Specific member bioguide ID (e.g., "A000374") 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) current_member: Filter by current member status (true/false)
Returns: dict: Member data from Congress.gov API
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bioguide_id | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No | ||
| current_member | No |
Implementation Reference
- server.py:270-321 (handler)The handler function for the 'get_members' MCP tool. It is registered via the @mcp.tool() decorator and implements the logic to fetch member data from the Congress.gov API using requests, handling parameters like bioguide_id, pagination, date ranges, and current member filter.async def get_members( bioguide_id: str | None = None, offset: int = 0, limit: int = 20, from_datetime: str | None = None, to_datetime: str | None = None, current_member: bool | None = None ) -> dict: """ Retrieve member information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/MemberEndpoint.md Args: bioguide_id: Specific member bioguide ID (e.g., "A000374") 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) current_member: Filter by current member status (true/false) Returns: dict: Member data from Congress.gov API """ base_url = "https://api.congress.gov/v3/member" url = base_url if bioguide_id: url += f"/{bioguide_id}" params = { "api_key": congress_gov_api_key, "format": "json", "offset": offset, "limit": min(limit, 250) # API max limit for members } if from_datetime: params["fromDateTime"] = from_datetime if to_datetime: params["toDateTime"] = to_datetime if current_member is not None: params["currentMember"] = str(current_member).lower() 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 member information: {str(e)}", "status_code": getattr(e.response, "status_code", None) }
- server.py:18-18 (registration)Initialization of the FastMCP server instance where tools like get_members are registered via decorators.mcp = FastMCP("usgov_mcp")
- server.py:278-291 (schema)The docstring and type annotations in the function signature define the input schema and output type for the get_members tool.""" Retrieve member information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/MemberEndpoint.md Args: bioguide_id: Specific member bioguide ID (e.g., "A000374") 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) current_member: Filter by current member status (true/false) Returns: dict: Member data from Congress.gov API """