Skip to main content
Glama
amurshak

CongressMCP-full

by amurshak

Congressional Voting and Nominations - House votes and presidential nominations

voting_and_nominations

Retrieve House votes and presidential nominations from Congress.gov, including member-level vote records, nomination actions, committees, and hearings.

Instructions

Congressional Voting and Nominations - Access House votes and presidential nominations.

HOUSE VOTING (6 operations):
• get_house_votes_by_congress/session, get_house_vote_details/enhanced
• get_house_vote_member_votes/xml - Individual member vote records

NOMINATIONS (7 operations):
• search_nominations, get_latest_nominations, get_nomination_details
• get_nomination_actions/committees/hearings/nominees, get_nominations_by_congress

REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• congress -- get_house_votes_by_congress, get_nominations_by_congress
• congress + session -- get_house_votes_by_session
• congress + session + vote_number -- get_house_vote_details(_enhanced),
  get_house_vote_member_votes(_xml)
• congress + nomination_number -- get_nomination_details,
  get_nomination_actions, get_nomination_committees,
  get_nomination_hearings
• congress + nomination_number + ordinal -- get_nomination_nominees
(search_nominations, get_latest_nominations need none of the above)

Key params: operation, congress, session, vote_number, keywords, nomination_number
Returns structured vote/nomination data with member details and legislative actions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNo
limitNo
ordinalNo
sessionNo
to_dateNo
congressNo
keywordsNo
from_dateNo
operationYes
vote_numberNo
nomination_numberNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when success is false: the section-9 error envelope
itemsNoResults of other kinds (per-member votes), as parsed from the source data
votesNoVote results
successYesWhether the operation was successful
summaryYesHuman-readable summary of the results
item_kindNoWhat `items` contains (member_vote, ...)
operationYesThe operation that was performed
nominationsNoNomination results
results_countYesNumber of items returned (equals the populated list's length)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed55 schema fields changedv2.2.0
    • addedOutput schema / $defs / ErrorInfo
      Added value: +{
      +  "description": "Section-9 error payload: stable code, human message, secret-safe\ndetail, actionable remediation. Mirrors the bill-text tools' envelope\n(documentation/fulltext/04-tools-responses.md section 9).",
      +  "properties": {
      +    "code": {
      +      "description": "Stable machine-readable error code (lowercase)",
      +      "title": "Code",
      +      "type": "string"
      +    },
      +    "detail": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": true,
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Structured context; never carries secrets",
      +      "title": "Detail"
      +    },
      +    "message": {
      +      "description": "What went wrong",
      +      "title": "Message",
      +      "type": "string"
      +    },
      +    "remediation": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "What the caller should do about it",
      +      "title": "Remediation"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "title": "ErrorInfo",
      +  "type": "object"
      +}
    • changedOutput schema / $defs / NominationSummary / description
      Previous value: -"Summary of a nomination."New value: +"Summary of a nomination (list-level fields)."
    • addedOutput schema / $defs / NominationSummary / properties / citation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Citation (e.g. PN123)",
      +  "title": "Citation"
      +}
    • addedOutput schema / $defs / NominationSummary / properties / congress
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Congress number",
      +  "title": "Congress"
      +}
    • addedOutput schema / $defs / NominationSummary / properties / is_military
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Whether a military nomination",
      +  "title": "Is Military"
      +}
    • addedOutput schema / $defs / NominationSummary / properties / latest_action
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Most recent action text",
      +  "title": "Latest Action"
      +}
    • addedOutput schema / $defs / NominationSummary / properties / nominee / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / NominationSummary / properties / nominee / default
      Added value: +null
    • changedOutput schema / $defs / NominationSummary / properties / nominee / description
      Previous value: -"Name of the nominee"New value: +"Nominee name (detail operations only)"
    • removedOutput schema / $defs / NominationSummary / properties / nominee / type
      Removed value: -"string"
    • addedOutput schema / $defs / NominationSummary / properties / organization / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / NominationSummary / properties / organization / default
      Added value: +null
    • removedOutput schema / $defs / NominationSummary / properties / organization / type
      Removed value: -"string"
    • addedOutput schema / $defs / NominationSummary / properties / position / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / NominationSummary / properties / position / default
      Added value: +null
    • changedOutput schema / $defs / NominationSummary / properties / position / description
      Previous value: -"Position being nominated for"New value: +"Position (detail operations only)"
    • removedOutput schema / $defs / NominationSummary / properties / position / type
      Removed value: -"string"
    • addedOutput schema / $defs / NominationSummary / properties / received_date / default
      Added value: +null
    • changedOutput schema / $defs / NominationSummary / properties / received_date / description
      Previous value: -"Date nomination was received"New value: +"Date the nomination was received"
    • removedOutput schema / $defs / NominationSummary / properties / status
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "description": "Current status of nomination",
      -  "title": "Status"
      -}
    • addedOutput schema / $defs / NominationSummary / properties / update_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Last update timestamp",
      +  "title": "Update Date"
      +}
    • addedOutput schema / $defs / NominationSummary / properties / url / default
      Added value: +null
    • changedOutput schema / $defs / NominationSummary / properties / url / description
      Previous value: -"Congress.gov URL for nomination details"New value: +"Congress.gov API URL for nomination details"
    • changedOutput schema / $defs / NominationSummary / required
      Previous value: -[
      -  "nomination_number",
      -  "nominee",
      -  "position",
      -  "organization",
      -  "received_date",
      -  "status",
      -  "url"
      -]New value: +[
      +  "nomination_number"
      +]
    • changedOutput schema / $defs / VoteSummary / description
      Previous value: -"Summary of a vote."New value: +"Summary of a House roll-call vote (list-level fields)."
    • addedOutput schema / $defs / VoteSummary / properties / chamber / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / VoteSummary / properties / chamber / default
      Added value: +null
    • changedOutput schema / $defs / VoteSummary / properties / chamber / description
      Previous value: -"Chamber where vote occurred (House/Senate)"New value: +"Chamber where the vote occurred"
    • removedOutput schema / $defs / VoteSummary / properties / chamber / type
      Removed value: -"string"
    • addedOutput schema / $defs / VoteSummary / properties / congress
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Congress number",
      +  "title": "Congress"
      +}
    • addedOutput schema / $defs / VoteSummary / properties / date / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / VoteSummary / properties / date / default
      Added value: +null
    • changedOutput schema / $defs / VoteSummary / properties / date / description
      Previous value: -"Date of the vote"New value: +"Start date/time of the vote"
    • removedOutput schema / $defs / VoteSummary / properties / date / type
      Removed value: -"string"
    • removedOutput schema / $defs / VoteSummary / properties / description
      Removed value: -{
      -  "description": "Description of what was voted on",
      -  "title": "Description",
      -  "type": "string"
      -}
    • addedOutput schema / $defs / VoteSummary / properties / legislation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Legislation voted on (e.g. 'HR 5348')",
      +  "title": "Legislation"
      +}
    • addedOutput schema / $defs / VoteSummary / properties / result / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / VoteSummary / properties / result / default
      Added value: +null
    • changedOutput schema / $defs / VoteSummary / properties / result / description
      Previous value: -"Vote result (Passed, Failed, etc.)"New value: +"Vote result (Passed, Failed, ...)"
    • removedOutput schema / $defs / VoteSummary / properties / result / type
      Removed value: -"string"
    • addedOutput schema / $defs / VoteSummary / properties / session
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Session number",
      +  "title": "Session"
      +}
    • addedOutput schema / $defs / VoteSummary / properties / url / default
      Added value: +null
    • changedOutput schema / $defs / VoteSummary / properties / url / description
      Previous value: -"Congress.gov URL for vote details"New value: +"Congress.gov API URL for vote details"
    • removedOutput schema / $defs / VoteSummary / properties / vote_counts / additionalProperties
      Removed value: -{
      -  "type": "integer"
      -}
    • addedOutput schema / $defs / VoteSummary / properties / vote_counts / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": {
      +      "type": "integer"
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / VoteSummary / properties / vote_counts / default
      Added value: +null
    • changedOutput schema / $defs / VoteSummary / properties / vote_counts / description
      Previous value: -"Vote breakdown (Yea, Nay, Present, Not Voting)"New value: +"Tallies (detail operations only)"
    • removedOutput schema / $defs / VoteSummary / properties / vote_counts / type
      Removed value: -"object"
    • changedOutput schema / $defs / VoteSummary / properties / vote_number / description
      Previous value: -"Vote number"New value: +"Roll call vote number"
    • addedOutput schema / $defs / VoteSummary / properties / vote_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Vote type (Yea-And-Nay, 2/3 Yea-And-Nay, ...)",
      +  "title": "Vote Type"
      +}
    • changedOutput schema / $defs / VoteSummary / required
      Previous value: -[
      -  "vote_number",
      -  "chamber",
      -  "date",
      -  "description",
      -  "result",
      -  "vote_counts",
      -  "url"
      -]New value: +[
      +  "vote_number"
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/ErrorInfo"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Present when success is false: the section-9 error envelope"
      +}
    • addedOutput schema / properties / item_kind
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "What `items` contains (member_vote, ...)",
      +  "title": "Item Kind"
      +}
    • addedOutput schema / properties / items
      Added value: +{
      +  "default": [],
      +  "description": "Results of other kinds (per-member votes), as parsed from the source data",
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "title": "Items",
      +  "type": "array"
      +}
    • changedOutput schema / properties / results_count / description
      Previous value: -"Number of results returned"New value: +"Number of items returned (equals the populated list's length)"
  2. Changed11 schema fields changedv2.1.0
    • addedOutput schema / $defs
      Added value: +{
      +  "NominationSummary": {
      +    "description": "Summary of a nomination.",
      +    "properties": {
      +      "nomination_number": {
      +        "description": "Nomination number",
      +        "title": "Nomination Number",
      +        "type": "string"
      +      },
      +      "nominee": {
      +        "description": "Name of the nominee",
      +        "title": "Nominee",
      +        "type": "string"
      +      },
      +      "organization": {
      +        "description": "Organization/agency",
      +        "title": "Organization",
      +        "type": "string"
      +      },
      +      "position": {
      +        "description": "Position being nominated for",
      +        "title": "Position",
      +        "type": "string"
      +      },
      +      "received_date": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Date nomination was received",
      +        "title": "Received Date"
      +      },
      +      "status": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Current status of nomination",
      +        "title": "Status"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Congress.gov URL for nomination details",
      +        "title": "Url"
      +      }
      +    },
      +    "required": [
      +      "nomination_number",
      +      "nominee",
      +      "position",
      +      "organization",
      +      "received_date",
      +      "status",
      +      "url"
      +    ],
      +    "title": "NominationSummary",
      +    "type": "object"
      +  },
      +  "VoteSummary": {
      +    "description": "Summary of a vote.",
      +    "properties": {
      +      "chamber": {
      +        "description": "Chamber where vote occurred (House/Senate)",
      +        "title": "Chamber",
      +        "type": "string"
      +      },
      +      "date": {
      +        "description": "Date of the vote",
      +        "title": "Date",
      +        "type": "string"
      +      },
      +      "description": {
      +        "description": "Description of what was voted on",
      +        "title": "Description",
      +        "type": "string"
      +      },
      +      "result": {
      +        "description": "Vote result (Passed, Failed, etc.)",
      +        "title": "Result",
      +        "type": "string"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Congress.gov URL for vote details",
      +        "title": "Url"
      +      },
      +      "vote_counts": {
      +        "additionalProperties": {
      +          "type": "integer"
      +        },
      +        "description": "Vote breakdown (Yea, Nay, Present, Not Voting)",
      +        "title": "Vote Counts",
      +        "type": "object"
      +      },
      +      "vote_number": {
      +        "description": "Vote number",
      +        "title": "Vote Number",
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "vote_number",
      +      "chamber",
      +      "date",
      +      "description",
      +      "result",
      +      "vote_counts",
      +      "url"
      +    ],
      +    "title": "VoteSummary",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / description
      Added value: +"Response from the voting and nominations tool."
    • addedOutput schema / properties / nominations
      Added value: +{
      +  "default": [],
      +  "description": "Nomination results",
      +  "items": {
      +    "$ref": "#/$defs/NominationSummary"
      +  },
      +  "title": "Nominations",
      +  "type": "array"
      +}
    • addedOutput schema / properties / operation
      Added value: +{
      +  "description": "The operation that was performed",
      +  "title": "Operation",
      +  "type": "string"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "title": "Result",
      -  "type": "string"
      -}
    • addedOutput schema / properties / results_count
      Added value: +{
      +  "description": "Number of results returned",
      +  "title": "Results Count",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / success
      Added value: +{
      +  "description": "Whether the operation was successful",
      +  "title": "Success",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / summary
      Added value: +{
      +  "description": "Human-readable summary of the results",
      +  "title": "Summary",
      +  "type": "string"
      +}
    • addedOutput schema / properties / votes
      Added value: +{
      +  "default": [],
      +  "description": "Vote results",
      +  "items": {
      +    "$ref": "#/$defs/VoteSummary"
      +  },
      +  "title": "Votes",
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "success",
      +  "operation",
      +  "results_count",
      +  "summary"
      +]
    • changedOutput schema / title
      Previous value: -"voting_and_nominationsOutput"New value: +"VotingNominationsResponse"
  3. First observedv2.0.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It warns that the schema marks all parameters optional but operations actually fail without required values, and it explains that operations return structured vote/nomination data. This is valuable beyond the schema, though it does not cover error conditions or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with sections, bullet lists, and bolded categories. Every section earns its place, and the critical warning about optional-looking required parameters is prominent. The format makes the 13 operations and their parameter requirements easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 11 parameters and no annotations, the description provides enough operational context to select an operation and know which parameters are required. The output schema exists, so return-value details do not need to be described. Minor gaps remain around exact parameter formats and operation string values, but overall this is a complete enough definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists key parameters and maps required parameter combinations to operations, which is genuinely helpful. However, it leaves several parameters (sort, limit, from_date, to_date, keywords) without any semantic detail beyond their names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool provides access to House votes and presidential nominations, then enumerates all 13 operations by category. This clearly distinguishes it from sibling tools focused on bills, members, committees, and treaties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool ('Access House votes and presidential nominations') and provides operation-specific required parameter mappings. It does not explicitly name when to prefer a sibling tool over this one, but the scope is well-defined and the operation breakdown is practical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.