Skip to main content
Glama
AshwinSundar

Congress[.]gov MCP Server

by AshwinSundar

get_house_votes

Retrieve House of Representatives voting records from Congress.gov by specifying congress number, session, roll call number, or date range to access official vote data.

Instructions

Retrieve House vote information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/HouseRollCallVoteEndpoint.md

Args: congress: Congress number (e.g., 118 for 118th Congress) session: Session number (1 or 2) roll_call_number: Specific roll call vote number 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: House vote data from Congress.gov API

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
congressNo
from_datetimeNo
limitNo
offsetNo
roll_call_numberNo
sessionNo
to_datetimeNo

Implementation Reference

  • The handler function for the 'get_house_votes' MCP tool. It constructs a URL to the Congress.gov API endpoint for house votes based on provided parameters (congress, session, roll_call_number), adds pagination and date filters, makes a GET request using the API key, and returns the JSON response or an error dictionary.
    async def get_house_votes( congress: int | None = None, session: int | None = None, roll_call_number: int | None = None, offset: int = 0, limit: int = 20, from_datetime: str | None = None, to_datetime: str | None = None ) -> dict: """ Retrieve House vote information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/HouseRollCallVoteEndpoint.md Args: congress: Congress number (e.g., 118 for 118th Congress) session: Session number (1 or 2) roll_call_number: Specific roll call vote number 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: House vote data from Congress.gov API """ base_url = "https://api.congress.gov/v3/house-vote" url = base_url if congress: url += f"/{congress}" if session: url += f"/{session}" if roll_call_number: url += f"/{roll_call_number}" params = { "api_key": congress_gov_api_key, "format": "json", "offset": offset, "limit": min(limit, 250) # API max limit for house votes } 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 house vote information: {str(e)}", "status_code": getattr(e.response, "status_code", None) }
  • server.py:325-325 (registration)
    The @mcp.tool() decorator registers the get_house_votes function as an MCP tool in the FastMCP server instance 'mcp'.
    async def get_house_votes(
  • The function signature with type hints and defaults defines the input schema for the tool, including optional parameters for filtering and pagination.
    congress: int | None = None, session: int | None = None, roll_call_number: int | None = None, offset: int = 0, limit: int = 20, from_datetime: str | None = None, to_datetime: str | None = None ) -> dict:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AshwinSundar/congress_gov_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server