member_vote_positions

Pack: congress-member-votes · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/member_vote_positions for the schema, then POST the same URL with its arguments for the data.

ANSWERS “how did Rep. X vote on bill Y” / “what were X’s last 20 votes” / “did X vote against the budget resolution” — one House member’s recorded position (Yea, Nay, Present, Not Voting, or not on the roll) on roll calls, newest first, from the U.S. House Clerk’s roll-call votes. Filter by bill (e.g. “H R 1”), question_contains (matched against question, bill number and description) or a roll range. Quorum calls and Speaker elections are left out unless include_non_recorded is true. Every response names its congress, session, the last roll it covers and data_as_of. House only: a Senate request, an unknown member, or a Congress/session not held each return a named reason, never an empty list.

Parameters

NameTypeRequiredDescription
billstringnoLegislation number as the Clerk prints it, e.g. “H R 1”, “H J RES 104”, “S 2403” (punctuation and spacing ignored; exact match).
question_containsstringnoCase-insensitive text to match in the vote question, bill number or description, e.g. “suspend the rules”, “continuing appropriations”.
from_rollnumbernoFirst roll number to consider.
to_rollnumbernoLast roll number to consider.
include_non_recordedbooleannoInclude quorum calls and Speaker-election rolls (default false).
limitnumbernoRolls to return (default 20, max 50).

Example call

Arguments

{
  "bioguide_id": "P000197",
  "bill": "H CON RES 14",
  "congress": 119,
  "session": 1
}

curl

curl -X POST https://gateway.pipeworx.io/congress-member-votes/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"member_vote_positions","arguments":{"bioguide_id":"P000197","bill":"H CON RES 14","congress":119,"session":1}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('member_vote_positions', {
  "bioguide_id": "P000197",
  "bill": "H CON RES 14",
  "congress": 119,
  "session": 1
});

Response shape

FieldTypeDescription
foundboolean
sourcestring
chamberstring
congressnumber
sessionnumber
data_as_ofstring
rolls_coveredobject
live_topupobject
memberobject
matched_rollsnumber
returnednumber
tally_over_returned_rollsobject
notestring
votesarray
Full JSON Schema
{
  "type": "object",
  "properties": {
    "found": {
      "type": "boolean"
    },
    "source": {
      "type": "string"
    },
    "chamber": {
      "type": "string"
    },
    "congress": {
      "type": "number"
    },
    "session": {
      "type": "number"
    },
    "data_as_of": {
      "type": "string"
    },
    "rolls_covered": {
      "type": "object",
      "properties": {
        "first": {
          "type": "number"
        },
        "last": {
          "type": "number"
        },
        "count": {
          "type": "number"
        }
      },
      "additionalProperties": true
    },
    "live_topup": {
      "type": "object",
      "properties": {
        "rolls_added_beyond_stored_table": {
          "type": "number"
        },
        "stored_table_through_roll": {
          "type": "number"
        }
      },
      "additionalProperties": true
    },
    "member": {
      "type": "object",
      "properties": {
        "bioguide_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "party": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "matched_rolls": {
      "type": "number"
    },
    "returned": {
      "type": "number"
    },
    "tally_over_returned_rolls": {
      "type": "object",
      "properties": {
        "Yea": {
          "type": "number"
        },
        "Nay": {
          "type": "number"
        },
        "Present": {
          "type": "number"
        },
        "Not Voting": {
          "type": "number"
        },
        "Not on roll": {
          "type": "number"
        },
        "Candidate-name vote": {
          "type": "number"
        }
      },
      "additionalProperties": true
    },
    "note": {
      "type": "string"
    },
    "votes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "roll_number": {
            "type": "number"
          },
          "date": {
            "type": "string"
          },
          "bill": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "vote_type": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "position": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}

Connect

Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://pipeworx.io/mcp"
    }
  }
}
Connect to just the congress-member-votes pack
{
  "mcpServers": {
    "congress-member-votes": {
      "url": "https://gateway.pipeworx.io/congress-member-votes/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build October 23, 2026