Skip to main content
Glama
amurshak

CongressMCP-full

by amurshak

Congressional Records and Hearings - Legislative records, communications, and hearings

records_and_hearings

Retrieve congressional records, communications, and hearings by date, congress, chamber, or keywords; get full-text content and metadata for legislative research.

Instructions

Congressional Records and Hearings - Access legislative records, communications, and hearings.

CONGRESSIONAL RECORDS (3 operations):
• search_congressional_record/daily/bound - Search legislative records by date/volume

COMMUNICATIONS (8 operations):
• House: search_house_communications/requirements, get_details/matching
• Senate: search_senate_communications, get_senate_communication_details
• Committee: get_committee_communication_details

HEARINGS (5 operations):
• search_hearings, get_hearings_by_congress/chamber, get_hearing_details/content

REQUIRED PARAMETERS (the schema marks every parameter optional because
one shared schema covers every operation -- these operations fail
without the values below):
• congress -- get_hearings_by_congress
• congress + chamber -- get_hearings_by_congress_and_chamber
• congress + chamber + jacket_number -- get_hearing_details,
  get_hearing_content
• congress + communication_type + communication_number --
  get_senate_communication_details, get_house_communication_details
• congress + chamber + communication_type + communication_number --
  get_committee_communication_details
• requirement_number -- get_house_requirement_details,
  get_house_requirement_matching_communications
(search_congressional_record/daily/bound and every other search_*
operation need none of the above)

Key params: operation, year/month/day, keywords, congress, chamber, jacket_number
Returns structured record/hearing data with full text content and metadata.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dayNo
sortNo
yearNo
limitNo
monthNo
chamberNo
congressNo
keywordsNo
operationYes
issue_numberNo
to_date_timeNo
jacket_numberNo
volume_numberNo
from_date_timeNo
communication_typeNo
requirement_numberNo
communication_numberNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when success is false: the section-9 error envelope
itemsNoResults of other kinds (communications, requirements), as returned by Congress.gov
recordsNoCongressional Record results
successYesWhether the operation was successful
summaryYesHuman-readable summary of the results
hearingsNoHearing results
item_kindNoWhat `items` contains (communication, requirement, daily_record, bound_record, ...)
operationYesThe operation that was performed
results_countYesNumber of items returned (equals the populated list's length)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed48 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 / HearingSummary / description
      Previous value: -"Summary of a committee hearing."New value: +"Summary of a committee hearing (list-level fields)."
    • addedOutput schema / $defs / HearingSummary / properties / chamber / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / HearingSummary / properties / chamber / default
      Added value: +null
    • changedOutput schema / $defs / HearingSummary / properties / chamber / description
      Previous value: -"Chamber (House/Senate)"New value: +"Chamber (House/Senate/NoChamber)"
    • removedOutput schema / $defs / HearingSummary / properties / chamber / type
      Removed value: -"string"
    • addedOutput schema / $defs / HearingSummary / properties / committee / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / HearingSummary / properties / committee / default
      Added value: +null
    • changedOutput schema / $defs / HearingSummary / properties / committee / description
      Previous value: -"Committee that held the hearing"New value: +"Committee (detail operations only)"
    • removedOutput schema / $defs / HearingSummary / properties / committee / type
      Removed value: -"string"
    • addedOutput schema / $defs / HearingSummary / properties / congress / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / HearingSummary / properties / congress / default
      Added value: +null
    • removedOutput schema / $defs / HearingSummary / properties / congress / type
      Removed value: -"integer"
    • addedOutput schema / $defs / HearingSummary / properties / date / default
      Added value: +null
    • addedOutput schema / $defs / HearingSummary / properties / title / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / HearingSummary / properties / title / default
      Added value: +null
    • changedOutput schema / $defs / HearingSummary / properties / title / description
      Previous value: -"Hearing title"New value: +"Hearing title (detail operations only)"
    • removedOutput schema / $defs / HearingSummary / properties / title / type
      Removed value: -"string"
    • addedOutput schema / $defs / HearingSummary / properties / update_date
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Last update timestamp",
      +  "title": "Update Date"
      +}
    • addedOutput schema / $defs / HearingSummary / properties / url / default
      Added value: +null
    • changedOutput schema / $defs / HearingSummary / properties / url / description
      Previous value: -"Congress.gov URL for hearing details"New value: +"Congress.gov API URL for hearing details"
    • changedOutput schema / $defs / HearingSummary / required
      Previous value: -[
      -  "congress",
      -  "chamber",
      -  "jacket_number",
      -  "title",
      -  "committee",
      -  "date",
      -  "url"
      -]New value: +[
      +  "jacket_number"
      +]
    • changedOutput schema / $defs / RecordSummary / description
      Previous value: -"Summary of a Congressional Record entry."New value: +"Summary of a Congressional Record issue (list-level fields)."
    • addedOutput schema / $defs / RecordSummary / properties / congress
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Congress number",
      +  "title": "Congress"
      +}
    • addedOutput schema / $defs / RecordSummary / properties / date / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / RecordSummary / properties / date / default
      Added value: +null
    • removedOutput schema / $defs / RecordSummary / properties / date / type
      Removed value: -"string"
    • addedOutput schema / $defs / RecordSummary / properties / id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Record id",
      +  "title": "Id"
      +}
    • addedOutput schema / $defs / RecordSummary / properties / issue / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / RecordSummary / properties / issue / default
      Added value: +null
    • removedOutput schema / $defs / RecordSummary / properties / issue / type
      Removed value: -"integer"
    • removedOutput schema / $defs / RecordSummary / properties / section
      Removed value: -{
      -  "description": "Section of the record (House, Senate, Extensions)",
      -  "title": "Section",
      -  "type": "string"
      -}
    • addedOutput schema / $defs / RecordSummary / properties / session
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Session number",
      +  "title": "Session"
      +}
    • addedOutput schema / $defs / RecordSummary / properties / title / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / RecordSummary / properties / title / default
      Added value: +null
    • changedOutput schema / $defs / RecordSummary / properties / title / description
      Previous value: -"Title or topic"New value: +"Title, where available"
    • removedOutput schema / $defs / RecordSummary / properties / title / type
      Removed value: -"string"
    • addedOutput schema / $defs / RecordSummary / properties / url / default
      Added value: +null
    • changedOutput schema / $defs / RecordSummary / properties / url / description
      Previous value: -"Congress.gov URL for full text"New value: +"URL for the issue, where available"
    • addedOutput schema / $defs / RecordSummary / properties / volume / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / RecordSummary / properties / volume / default
      Added value: +null
    • removedOutput schema / $defs / RecordSummary / properties / volume / type
      Removed value: -"integer"
    • removedOutput schema / $defs / RecordSummary / required
      Removed value: -[
      -  "volume",
      -  "issue",
      -  "date",
      -  "section",
      -  "title",
      -  "url"
      -]
    • changedOutput schema / description
      Previous value: -"Response from the records and hearings tool."New value: +"Response from the records and hearings tool.\n\nCommunications and House requirements arrive in `items` as the API's\nown dicts, labeled by `item_kind`."
    • 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 (communication, requirement, daily_record, bound_record, ...)",
      +  "title": "Item Kind"
      +}
    • addedOutput schema / properties / items
      Added value: +{
      +  "default": [],
      +  "description": "Results of other kinds (communications, requirements), as returned by Congress.gov",
      +  "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: +{
      +  "HearingSummary": {
      +    "description": "Summary of a committee hearing.",
      +    "properties": {
      +      "chamber": {
      +        "description": "Chamber (House/Senate)",
      +        "title": "Chamber",
      +        "type": "string"
      +      },
      +      "committee": {
      +        "description": "Committee that held the hearing",
      +        "title": "Committee",
      +        "type": "string"
      +      },
      +      "congress": {
      +        "description": "Congress number",
      +        "title": "Congress",
      +        "type": "integer"
      +      },
      +      "date": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Hearing date",
      +        "title": "Date"
      +      },
      +      "jacket_number": {
      +        "description": "Hearing jacket number",
      +        "title": "Jacket Number",
      +        "type": "string"
      +      },
      +      "title": {
      +        "description": "Hearing title",
      +        "title": "Title",
      +        "type": "string"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Congress.gov URL for hearing details",
      +        "title": "Url"
      +      }
      +    },
      +    "required": [
      +      "congress",
      +      "chamber",
      +      "jacket_number",
      +      "title",
      +      "committee",
      +      "date",
      +      "url"
      +    ],
      +    "title": "HearingSummary",
      +    "type": "object"
      +  },
      +  "RecordSummary": {
      +    "description": "Summary of a Congressional Record entry.",
      +    "properties": {
      +      "date": {
      +        "description": "Publication date",
      +        "title": "Date",
      +        "type": "string"
      +      },
      +      "issue": {
      +        "description": "Issue number",
      +        "title": "Issue",
      +        "type": "integer"
      +      },
      +      "section": {
      +        "description": "Section of the record (House, Senate, Extensions)",
      +        "title": "Section",
      +        "type": "string"
      +      },
      +      "title": {
      +        "description": "Title or topic",
      +        "title": "Title",
      +        "type": "string"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Congress.gov URL for full text",
      +        "title": "Url"
      +      },
      +      "volume": {
      +        "description": "Congressional Record volume",
      +        "title": "Volume",
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "volume",
      +      "issue",
      +      "date",
      +      "section",
      +      "title",
      +      "url"
      +    ],
      +    "title": "RecordSummary",
      +    "type": "object"
      +  }
      +}
    • addedOutput schema / description
      Added value: +"Response from the records and hearings tool."
    • addedOutput schema / properties / hearings
      Added value: +{
      +  "default": [],
      +  "description": "Hearing results",
      +  "items": {
      +    "$ref": "#/$defs/HearingSummary"
      +  },
      +  "title": "Hearings",
      +  "type": "array"
      +}
    • addedOutput schema / properties / operation
      Added value: +{
      +  "description": "The operation that was performed",
      +  "title": "Operation",
      +  "type": "string"
      +}
    • addedOutput schema / properties / records
      Added value: +{
      +  "default": [],
      +  "description": "Congressional Record results",
      +  "items": {
      +    "$ref": "#/$defs/RecordSummary"
      +  },
      +  "title": "Records",
      +  "type": "array"
      +}
    • 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"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "success",
      +  "operation",
      +  "results_count",
      +  "summary"
      +]
    • changedOutput schema / title
      Previous value: -"records_and_hearingsOutput"New value: +"RecordsHearingsResponse"
  3. First observedv2.0.0

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It explains the shared-schema quirk, states that operations fail without certain values, and mentions that it returns structured record/hearing data with full text content. It does not discuss pagination, authentication, or rate limits, but the read-only nature of the operations is strongly implied by the search/get operation names.

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

Conciseness4/5

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

The description is well-structured with clear section headers and bullet lists, and the required-parameters section earns its length because it resolves a critical schema inconsistency. It is longer than ideal and contains some redundancy and ambiguous shorthand, but the complexity of a multi-operation dispatcher tool justifies most of the detail.

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

Completeness3/5

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

The description covers operation families, required parameter combinations, and return data, which is substantial for a tool with 17 params and 16 operations. However, exact operation-name derivation is not fully unambiguous from the slash notation, and several parameters remain undocumented. An agent could still struggle to construct a valid operation string with confidence.

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 does map required parameter combinations to specific operations and highlights key params, which is valuable. However, several schema params (sort, limit, from_date_time, to_date_time, issue_number, volume_number) are not explained, and the slash notation leaves exact operation string values ambiguous in places.

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

Purpose4/5

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

The description clearly identifies the tool as an access point for congressional records, communications, and hearings, and enumerates the operation families. It distinguishes this tool from bill/member/committee tools by its domain focus, though the slash-separated operation shorthand (e.g., search_congressional_record/daily/bound) creates some ambiguity about exact operation names.

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 explicit guidance on which parameters are required for which operations, and warns that operations fail without them despite the schema marking all parameters optional. It does not explicitly route users to sibling tools, but the operation-family breakdown and required-parameter table provide strong within-tool usage direction.

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