get_members
Retrieve detailed member information from the U.S. Congress.gov API using filters like bioguide ID, date ranges, and current member status to access 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 | ||
| current_member | No | ||
| from_datetime | No | ||
| limit | No | ||
| offset | No | ||
| to_datetime | No |
Implementation Reference
- server.py:269-321 (handler)The handler function for the 'get_members' tool. Decorated with @mcp.tool() for registration in the MCP server. Queries the Congress.gov API /v3/member endpoint with parameters for specific member, pagination, date filtering, and current member status. Returns API JSON or error.@mcp.tool() 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:269-269 (registration)The @mcp.tool() decorator registers the get_members function as an MCP tool.@mcp.tool()
- server.py:270-277 (schema)The function signature and docstring define the input schema (parameters with types and defaults) and output (dict) for the tool, used by MCP for validation.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: