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
| Name | Type | Required | Description |
|---|---|---|---|
bill | string | no | Legislation number as the Clerk prints it, e.g. “H R 1”, “H J RES 104”, “S 2403” (punctuation and spacing ignored; exact match). |
question_contains | string | no | Case-insensitive text to match in the vote question, bill number or description, e.g. “suspend the rules”, “continuing appropriations”. |
from_roll | number | no | First roll number to consider. |
to_roll | number | no | Last roll number to consider. |
include_non_recorded | boolean | no | Include quorum calls and Speaker-election rolls (default false). |
limit | number | no | Rolls 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
| Field | Type | Description |
|---|---|---|
found | boolean | |
source | string | |
chamber | string | |
congress | number | |
session | number | |
data_as_of | string | |
rolls_covered | object | |
live_topup | object | |
member | object | |
matched_rolls | number | |
returned | number | |
tally_over_returned_rolls | object | |
note | string | |
votes | array |
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.