Congress[.]gov MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Congress[.]gov MCP Servershow me recent bills about healthcare"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Congress.gov MCP server
Ever wonder what our (US) Congress is up to? Tired of reading the news to find out? Ask the US Congress API yourself.
Unofficial MCP server for the Congress.gov API
Installation
Installing via Smithery
To install congress_gov_mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @AshwinSundar/congress_gov_mcp --client claudeManual Installation
Prerequisites
Install uv. The easiest way on macOS and Linux is:
curl -LsSf https://astral.sh/uv/install.sh | shGet a Congress.gov API key.
Install Claude Desktop, Claude Code, or another client that supports MCP Integrations
Initial Setup
Complete Prerequisites
Clone this repository, and
cdin:git clone http://github.com/AshwinSundar/congress_gov_mcpcd congress_gov_mcpInstall dependencies:
uv syncCreate a
.envfile from the template:cp .env.template .envAdd your Congress.gov API key to the
.envfile:
congress_gov_mcp/.env
CONGRESS_GOV_API_KEY="your-api-key-here"
Client Configuration
Claude Desktop
Complete Prerequisites
Copy the absolute path to your
uvinstallation:
which uvAdd the following to your Claude Desktop configuration file, inside the
mcpServersblock:macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"congress_gov_mcp": {
"command": "/absolute_path/to/uv",
"args": [
"run",
"/absolute_path_to/congress_gov_mcp/server.py"
]
}
}
}
Claude Code
Complete Prerequisites
Add the following to
.mcp.jsonin the directory you are running Claude Code in, inside themcpServersblock:
{
"mcpServers": {
"congress_gov_mcp": {
"command": "uv",
"args": [
"run",
"/absolute_path_to/congress_gov_mcp/server.py"
]
}
}
}
Related MCP server: OpenDiscourse MCP
Roadmap
api.congress.gov
/bill
/{congress}
/{congress}/{billType}
/{congress}/{billType}/{billNumber}
/actions
/amendments
/committees
/cosponsors
/relatedbills
/subjects
/summaries
/text
/titles
/amendment
/{congress}
/{congress}/{amendmentType}
/{congress}/{amendmentType}/{amendmentNumber}
/actions
/cosponsors
/amendments
/text
/summaries
/{congress}
/{congress}/{billType}
/congress
/{congress}
/current
/member
/{bioguideId}
/sponsored-legislation
/cosponsored-legislation
/committee
/{systemCode}
/bills
/reports
/nominations
/meetings
/hearings
/house-communication
/senate-communication
/committee-report
/{congress}
/{congress}/{reportType}
/{congress}/{reportType}/{reportNumber}
/text
/committee-print
/{congress}
/{congress}/{printType}
/{congress}/{printType}/{printNumber}
/text
/committee-meeting
/{congress}
/{congress}/{chamber}
/meetings
/hearing
/{congress}
/{congress}/{chamber}
/{congress}/{chamber}/{hearingNumber}
/house-vote
/{congress}
/{congress}/{session}
/{congress}/{session}/{rollCallNumber}
/congressional-record
/{volume}
/{volume}/{pagePrefix}
/{volume}/{pagePrefix}/{pageNumber}
/daily-congressional-record
/{volume}
/{volume}/{issue}
/bound-congressional-record
/{year}
/{year}/{month}
/{year}/{month}/{day}
/house-communication
/{congress}
/{congress}/{communicationType}
/{congress}/{communicationType}/{communicationNumber}
/house-requirement
/{congress}
/{congress}/{requirementNumber}
/senate-communication
/{congress}
/{congress}/{communicationType}
/{congress}/{communicationType}/{communicationNumber}
/nomination
/{congress}
/{congress}/{nominationNumber}
/actions
/hearings
/crsreport
/{productCode}
/treaty
/{congress}
/{congress}/{treatyNumber}
/actions
/committees
Available Tools
21 toolsget_amendmentsB
Retrieve amendments from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/AmendmentEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) amendment_type: Type of amendment - hamdt: House Amendment - samdt: Senate Amendment - suamdt: Senate Unprinted Amendment amendment_number: Specific amendment number (requires congress and amendment_type) 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: Amendment data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| amendment_type | No | ||
| amendment_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the API endpoint documentation link and return format ('dict: Amendment data'), but lacks critical behavioral details like rate limits, authentication requirements, error handling, pagination behavior beyond offset/limit, or what happens when parameters are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns) and uses bullet points for parameter details. While the external documentation link adds some length, every sentence provides value. It could be slightly more front-loaded with a clearer summary before the parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no annotations and no output schema, the description does a good job with parameter documentation but has significant gaps. It lacks behavioral context (rate limits, auth), doesn't explain the return structure beyond 'dict', and provides no sibling differentiation. The parameter documentation compensates somewhat, but overall completeness is only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 7 parameters, the description provides excellent parameter semantics beyond the bare schema. It explains each parameter's purpose, provides examples (e.g., '118 for 118th Congress'), enumerates amendment_type values with descriptions, clarifies dependencies ('requires congress and amendment_type'), and specifies format requirements ('YYYY-MM-DDTHH:MM:SSZ format').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieve') and resource ('amendments from the Congress.gov API'), making the purpose unambiguous. It doesn't explicitly differentiate from sibling tools like 'get_bills' or 'get_members', but the specific resource focus provides implicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_bills' or other legislative data tools. It mentions parameter dependencies ('requires congress and amendment_type') but offers no contextual usage advice for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_billsB
Retrieve a list of bills. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/BillEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) bill_type: Type of bill - hr: House of Representatives Bill - s: Senate Bill - hjres: House Joint Resolution - sjres: Senate Joint Resolution - hconres: House Concurrent Resolution - sconres: Senate Concurrent Resolution - hres: House Simple Resolution - sres: Senate Simple Resolution bill_number: Specific bill number (requires congress and bill_type) 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) sort: Sort order ('updateDate+asc' or 'updateDate+desc')
Returns: dict: Bill data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| bill_type | No | ||
| bill_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No | ||
| sort | No | updateDate+desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool retrieves data and links to external docs, but fails to describe key traits like rate limits, authentication needs, error handling, or pagination behavior beyond basic parameter defaults. This is inadequate for a tool with 8 parameters and no structured safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, organized parameter list, and return note, but includes a redundant external documentation link that could be trimmed. Most sentences earn their place by providing essential information, though slight verbosity in the link reduces efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no annotations, no output schema), the description covers parameters thoroughly but lacks behavioral context and output details. It is minimally viable for basic use but incomplete for full agent understanding, as it omits guidance on errors, data structure, or integration with siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates fully by detailing all 8 parameters, including examples (e.g., congress number 118), enumerated options for bill_type, defaults, formats (e.g., YYYY-MM-DDTHH:MM:SSZ), and constraints (e.g., limit max 250). This adds significant meaning beyond the bare schema, making parameter usage clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Retrieve a list of bills,' which clearly states the verb ('retrieve') and resource ('bills'), making the purpose explicit. However, it does not differentiate this tool from its siblings (e.g., get_amendments, get_committees), which also retrieve legislative data, so it lacks sibling distinction, preventing a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as other sibling tools like get_amendments or get_members. It mentions a link to external documentation but does not offer explicit usage context, prerequisites, or exclusions, leaving the agent with minimal direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bound_congressional_recordB
Retrieve bound congressional record information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/BoundCongressionalRecordEndpoint.md
Args: year: Year month: Month (1-12) day: Day (1-31) 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: Bound congressional record data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| month | No | ||
| day | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API source and a documentation link, which adds some context, but doesn't describe key behaviors like authentication requirements, rate limits, error handling, or pagination details (beyond offset/limit parameters). The description doesn't contradict annotations (none exist), but it lacks sufficient behavioral details for a mutation-free read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It starts with the core purpose, includes a documentation link, lists parameters with helpful details (defaults, ranges, formats), and specifies the return type. Every sentence adds value, though the documentation link could be more integrated into usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is moderately complete. It covers parameters thoroughly but lacks output details (only mentions 'dict' return), behavioral context (e.g., rate limits), and differentiation from siblings. For a read-only API tool, this is adequate but has clear gaps in guiding effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the input schema, which has 0% description coverage. It explains all 7 parameters with clear semantics: year, month, day, offset (starting record), limit (max 250, default 20), and datetime ranges in specific formats. This compensates well for the schema's lack of descriptions, though it doesn't clarify parameter interactions or dependencies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieve bound congressional record information from the Congress.gov API.' It specifies the verb ('retrieve'), resource ('bound congressional record information'), and source ('Congress.gov API'), which is specific and actionable. However, it doesn't explicitly differentiate this tool from its sibling 'get_congressional_record' or 'get_daily_congressional_record', which appears to be a related tool for congressional records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions a link to full documentation but doesn't specify use cases, prerequisites, or comparisons with sibling tools like 'get_congressional_record' or 'get_daily_congressional_record'. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_committee_meetingsB
Retrieve committee meeting information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CommitteeMeetingEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) chamber: Chamber (house, senate) 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: Committee meeting data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| chamber | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API endpoint and return format ('dict: Committee meeting data'), but lacks critical behavioral details: whether this is a read-only operation, rate limits, authentication requirements, error handling, pagination behavior beyond offset/limit, or what specific data fields are included. The external documentation link is helpful but doesn't replace direct disclosure in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns) and uses bullet points effectively. Every sentence adds value: the first states the purpose, the second provides documentation reference, and the parameter explanations are essential. While slightly verbose due to detailed param documentation, this is justified given the 0% schema coverage. It could be more front-loaded by moving the returns statement earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters with 0% schema coverage and no output schema, the description does a good job documenting parameters but has significant gaps. It lacks behavioral context (no annotations), doesn't explain the return structure beyond 'dict', and provides no usage guidance. For a data retrieval tool with multiple filtering parameters, the description is minimally adequate but leaves the agent to guess about important aspects like error cases, data format, and practical constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides excellent parameter documentation with clear explanations, examples, and constraints for all 6 parameters, despite 0% schema description coverage. It adds substantial value beyond the bare schema by explaining what each parameter means (e.g., 'Congress number (e.g., 118 for 118th Congress)'), format requirements ('YYYY-MM-DDTHH:MM:SSZ format'), and practical constraints ('max 250, default 20'). This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve committee meeting information') and resource ('from the Congress.gov API'), providing a specific verb+resource combination. It distinguishes itself from siblings like 'get_committees' by focusing on meetings rather than committee entities. However, it doesn't explicitly differentiate from other meeting-related tools that might exist in the broader context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While it mentions the API endpoint documentation, it doesn't specify use cases, prerequisites, or comparisons with sibling tools like 'get_hearings' or 'get_committees'. The agent must infer usage from the tool name and parameter set alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_committee_printsB
Retrieve committee print information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CommitteePrintEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) print_type: Type of print - hprt: House Print - sprt: Senate Print - jprt: Joint Committee Print print_number: Specific print 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: Committee print data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| print_type | No | ||
| print_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the API endpoint and parameter defaults, it doesn't describe important behavioral aspects: whether this is a read-only operation, what authentication might be required, rate limits, error conditions, or what the returned data structure looks like. The link to external documentation is helpful but doesn't substitute for self-contained behavioral description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns) and uses bullet points for parameter details. Every sentence earns its place, though the external documentation link could be more integrated. The description is appropriately sized for a 7-parameter tool without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is moderately complete. It excels at parameter documentation but lacks behavioral context and output details. The absence of annotations means the description should cover more about the tool's operational characteristics, but it doesn't fully address this gap despite the parameter coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides excellent parameter semantics despite 0% schema description coverage. It clearly explains all 7 parameters with examples (e.g., '118 for 118th Congress'), enumerated values for print_type (hprt, sprt, jprt), format specifications (YYYY-MM-DDTHH:MM:SSZ), and practical constraints (max 250 records). This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieve committee print information from the Congress.gov API.' It specifies the resource (committee prints) and verb (retrieve). However, it doesn't explicitly differentiate this tool from its siblings like get_committee_reports or get_hearings, which also retrieve congressional documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions a link to full documentation but gives no explicit context about when this specific tool is appropriate compared to sibling tools like get_committee_reports or get_hearings. There's no mention of prerequisites, constraints, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_committee_reportsB
Retrieve committee report information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CommitteeReportEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) report_type: Type of report - hrpt: House Report - srpt: Senate Report - erpt: Executive Report report_number: Specific report 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: Committee report data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| report_type | No | ||
| report_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the API endpoint and provides parameter details, it doesn't describe important behavioral aspects like authentication requirements, rate limits, error handling, pagination behavior (beyond offset/limit parameters), or what happens when parameters are omitted. The link to external documentation partially compensates but doesn't provide immediate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, Args, Returns) and uses bullet points for enumerated values. It's appropriately sized for a 7-parameter tool, though the external documentation link could be considered extraneous. Every sentence earns its place by providing necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no annotations, no output schema), the description is moderately complete. It thoroughly documents parameters but lacks behavioral context and output details. The absence of an output schema means the description should ideally explain return values beyond 'Committee report data from Congress.gov API,' but it doesn't provide structure or examples of the returned data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage (titles only, no descriptions), the description provides excellent parameter semantics compensation. It clearly explains all 7 parameters with examples (e.g., '118 for 118th Congress'), enumerated values for report_type, format specifications (YYYY-MM-DDTHH:MM:SSZ), defaults, and constraints (max 250). This adds substantial meaning beyond what the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Retrieve committee report information from the Congress.gov API,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate this tool from its many siblings (like get_committee_meetings, get_committee_prints, get_committees), which all retrieve different types of congressional data from the same API.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With 20 sibling tools available (including get_committee_meetings and get_committee_prints for similar committee-related data), there's no indication of what distinguishes committee reports from other committee outputs or when this specific retrieval is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_committeesB
Retrieve committee information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CommitteeEndpoint.md
Args: system_code: Specific committee system code (e.g., "hsag" for House Agriculture) 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: Committee data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| system_code | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving data and includes a link to external documentation, but doesn't describe key behaviors like whether this is a read-only operation, error handling, rate limits, authentication needs, or response structure. The link adds some context but doesn't compensate for missing behavioral details in the description itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns) and uses bullet points for parameters. It's appropriately sized, though the external link might be considered extraneous. Every sentence adds value, and the information is front-loaded with the core purpose stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no annotations, no output schema), the description is partially complete. It covers parameters well but lacks behavioral context, usage guidelines, and output details. The external link provides a fallback, but the description itself doesn't fully address the tool's operational needs, especially for an API call with multiple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains each parameter's purpose with examples (e.g., 'hsag' for House Agriculture), default values, formats (YYYY-MM-DDTHH:MM:SSZ), and constraints (max 250 for limit). This effectively compensates for the schema's lack of documentation, though it could benefit from more context on parameter interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Retrieve committee information from the Congress.gov API,' which includes a specific verb ('Retrieve') and resource ('committee information'). It distinguishes from siblings by focusing on committees rather than bills, members, votes, etc., though it doesn't explicitly contrast with similar tools like 'get_committee_meetings' or 'get_committee_reports.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions a link to full documentation but doesn't specify use cases, prerequisites, or exclusions. With sibling tools like 'get_committee_meetings' and 'get_committee_reports' available, this lack of differentiation is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_congressB
Retrieve congress information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CongressEndpoint.md
Args: congress: Specific congress number (e.g., 118 for 118th Congress) or None for all offset: Starting record (default 0) limit: Maximum records to return (max 250, default 20)
Returns: dict: Congress data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| offset | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the API endpoint and provides a link to documentation, but doesn't disclose key behavioral traits: whether this is a read-only operation, rate limits, authentication requirements, error handling, or what specific data fields are returned. The description is minimal beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and well-structured with clear sections (Args, Returns). The first sentence states the purpose, followed by documentation link and parameter details. Every sentence adds value, though the documentation link could be more integrated rather than standalone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations and no output schema, the description provides basic parameter semantics and return type indication ('dict: Congress data'). However, it lacks details about the structure of returned data, error cases, authentication, or how it differs from sibling tools, leaving significant gaps for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining all three parameters: 'congress' (specific number or None for all), 'offset' (starting record), and 'limit' (max records with constraints). It provides practical examples and constraints beyond what the bare schema shows, though it doesn't explain parameter interactions or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieve congress information from the Congress.gov API.' It specifies the verb ('retrieve') and resource ('congress information'), though it doesn't explicitly differentiate from siblings like 'get_members' or 'get_committees' which retrieve different types of congressional data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools retrieving different congressional data types (e.g., bills, members, committees), there's no indication of what 'congress information' specifically includes or when to choose this over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_congressional_recordA
Retrieve congressional record information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/DailyCongressionalRecordEndpoint.md
Args: volume: Volume number page_prefix: Page prefix - h: House section - s: Senate section - e: Extensions of Remarks section - d: Daily Digest section page_number: Specific page 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: Congressional record data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| volume | No | ||
| page_prefix | No | ||
| page_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API source and provides some parameter details (like limit max of 250), but doesn't cover important aspects like rate limits, authentication requirements, error handling, or what specific data fields are returned in the 'congressional record data'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns) and uses bullet points for parameter explanations. It's appropriately sized for a 7-parameter tool, though the documentation link could be more integrated rather than standalone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, 0% schema coverage, no annotations, and no output schema, the description does a good job with parameters but leaves gaps in behavioral context. It explains what the tool does and documents parameters well, but doesn't provide enough information about the return structure, error conditions, or how this differs from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 7 parameters, the description provides excellent parameter semantics compensation. It explains each parameter clearly, including the meaning of page_prefix values (h, s, e, d), default values for offset and limit, format requirements for timestamps, and the maximum limit constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and the resource 'congressional record information from the Congress.gov API', making the purpose understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'get_daily_congressional_record' or 'get_bound_congressional_record', which appear to be related alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_daily_congressional_record' or 'get_bound_congressional_record'. It mentions a documentation link but doesn't explain the specific use case or context for this particular endpoint compared to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crsreportA
Retrieve CRS (Congressional Research Service) report information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/CRSReportEndpoint.md
Args: product_code: Specific product code for CRS report 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: CRS report data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| product_code | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API source and default/limit values for parameters, but lacks critical behavioral details such as authentication requirements, rate limits, error handling, or whether it's a read-only operation. This is a significant gap for an API tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose, followed by a documentation link and structured parameter details. Every sentence earns its place, though the link could be integrated more seamlessly. It avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an API tool with 5 parameters, no annotations, and no output schema, the description is partially complete. It excels in parameter semantics but lacks behavioral context (e.g., auth, errors) and output details, leaving gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully. It provides detailed semantics for all 5 parameters, including purpose (e.g., 'product_code: Specific product code for CRS report'), defaults, formats (e.g., timestamp format), and constraints (e.g., 'max 250'). This adds substantial value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Retrieve CRS report information') and resource ('from the Congress.gov API'), distinguishing it from sibling tools like get_bills or get_members. It precisely identifies what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying the data source (Congress.gov API) and linking to full documentation, but it does not explicitly state when to use this tool versus alternatives like get_committee_reports or get_hearings. No exclusions or clear alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_congressional_recordB
Retrieve daily congressional record information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/DailyCongressionalRecordEndpoint.md
Args: volume: Volume number issue: Issue identifier 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: Daily congressional record data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| volume | No | ||
| issue | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API endpoint documentation link and some parameter defaults/constraints (limit max 250, default 20), but doesn't cover important behavioral aspects like rate limits, authentication requirements, error handling, pagination behavior, or what happens when parameters are omitted. For a tool with 6 parameters and no annotations, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns) and efficiently conveys necessary information. The API documentation link is appropriately placed. While slightly verbose due to listing all parameters, each sentence serves a clear purpose and the structure helps the agent parse the information effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, no output schema), the description does a decent job but has notable gaps. It thoroughly documents parameters and states the return type, but lacks behavioral context (rate limits, auth, error handling) and doesn't explain the relationship to sibling tools. For a read-only API tool, this is minimally adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides excellent parameter documentation despite 0% schema description coverage. It clearly explains all 6 parameters with their purposes, defaults, constraints (limit max 250), and format requirements (from_datetime/to_datetime format). This fully compensates for the lack of schema descriptions and gives the agent meaningful guidance on how to use each parameter effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieve daily congressional record information from the Congress.gov API.' It specifies both the action ('retrieve') and the resource ('daily congressional record information'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate this tool from its sibling 'get_congressional_record' or 'get_bound_congressional_record', which appear to be related tools for congressional records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools related to congressional records (get_congressional_record, get_bound_congressional_record), there's no indication of how this 'daily' version differs or when it should be preferred. The description only states what the tool does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hearingsA
Retrieve hearing information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/HearingEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) chamber: Chamber (house, senate) hearing_number: Specific hearing 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: Hearing data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| chamber | No | ||
| hearing_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the API endpoint and provides parameter details, it doesn't describe important behavioral aspects like rate limits, authentication requirements, error handling, pagination behavior (beyond offset/limit parameters), or what happens when parameters are omitted. For a 7-parameter tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, documentation link, args, returns) and uses bullet points effectively. While it could be slightly more concise by integrating some parameter details, every sentence serves a purpose and the information is front-loaded with the core functionality stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no annotations and no output schema, the description provides good parameter documentation but lacks behavioral context. The return value description ('Hearing data from Congress.gov API') is vague without an output schema. Given the complexity and absence of structured metadata, the description should do more to explain behavior, error cases, and result format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by providing clear documentation for all 7 parameters. Each parameter gets specific details: congress includes an example (118), chamber lists valid values (house, senate), hearing_number is explained, offset and limit have defaults, and datetime parameters specify exact format requirements. This adds substantial value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Retrieve hearing information') and resource ('from the Congress.gov API'), distinguishing it from sibling tools like get_bills or get_committees. It provides a precise verb+resource combination that leaves no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_committee_meetings or other sibling tools. While it mentions the API endpoint documentation, it doesn't offer any contextual advice about appropriate use cases, prerequisites, or comparisons with related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_house_communicationB
Retrieve House communication information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/HouseCommunicationEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) communication_type: Type of communication - ec: Executive Communication - ml: Memorial - pm: Presidential Message - pt: Petition communication_number: Specific communication 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 communication data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| communication_type | No | ||
| communication_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the API source and provides a documentation link, but doesn't describe authentication requirements, rate limits, error behavior, or what specific data fields are returned. 'Retrieve' implies a read operation, but there's no explicit safety declaration. The description adds minimal behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and uses bullet points effectively for parameter details. It's appropriately sized for a 7-parameter tool. The external documentation link is useful but doesn't disrupt the flow. Minor improvement could be front-loading more critical information before the parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter retrieval tool with no annotations and no output schema, the description provides good parameter documentation but lacks important context. It doesn't explain the return data structure, pagination behavior (beyond offset/limit parameters), error conditions, or authentication requirements. The external documentation link helps but doesn't make the description itself complete for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides excellent parameter documentation that fully compensates. It explains all 7 parameters with clear examples (e.g., '118 for 118th Congress'), enumerated values for communication_type, format specifications ('YYYY-MM-DDTHH:MM:SSZ'), and default values. This adds substantial meaning beyond what the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieve House communication information from the Congress.gov API' which specifies both the action (retrieve) and resource (House communication information). It distinguishes from siblings like 'get_senate_communication' by specifying 'House' communication. However, it doesn't explicitly differentiate from other data retrieval tools like 'get_bills' or 'get_committees' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_senate_communication' and 'get_bills' available, there's no indication of when House communications specifically are needed versus other legislative data sources. The external documentation link is helpful but doesn't provide in-description usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_house_requirementB
Retrieve House requirement information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/HouseRequirementEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) requirement_number: Specific requirement 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 requirement data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| requirement_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the API endpoint and return format ('dict: House requirement data'), but lacks critical behavioral details: whether this is a read-only operation, what authentication might be required, rate limits, error handling, or what specific data structure is returned. The external documentation link partially compensates but isn't self-contained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose statement, documentation link, parameter details, and return format. The Args/Returns sections are clearly organized. Slightly verbose with the full URL, but each sentence serves a purpose. Could be more front-loaded by moving the return format closer to the purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with no annotations and no output schema, the description does reasonably well on parameters but lacks behavioral context. The external documentation link helps but creates dependency. Without understanding what 'House requirement' data contains or how it differs from other congressional data, an agent might struggle to use this appropriately versus siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides excellent parameter documentation that fully compensates. Each of the 6 parameters gets clear explanations with examples (e.g., '118 for 118th Congress'), format specifications ('YYYY-MM-DDTHH:MM:SSZ format'), and constraints ('max 250, default 20'). This adds substantial value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and resource 'House requirement information from the Congress.gov API', making the purpose unambiguous. It doesn't explicitly differentiate from siblings like get_bills or get_committees, but the specificity of 'House requirement' provides inherent distinction. The link to external documentation adds precision but doesn't fully substitute for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like get_bills or get_house_votes. The description mentions the API endpoint but doesn't explain what 'House requirement' means or when this specific data type would be needed versus other congressional data types available in sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_house_votesB
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
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| session | No | ||
| roll_call_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While it mentions the API source and return format ('dict: House vote data'), it lacks critical behavioral information: whether this is a read-only operation, authentication requirements, rate limits, error handling, or pagination behavior beyond offset/limit parameters. The external documentation link doesn't compensate for missing behavioral details in the description itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably structured with clear sections (purpose, args, returns) but includes unnecessary elements. The external documentation link in the first sentence doesn't help an AI agent select/invoke the tool and could be omitted. The parameter explanations are helpful but make the description longer than necessary for optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters with 0% schema coverage and no output schema, the description provides good parameter documentation but lacks important contextual information. It doesn't explain the return structure beyond 'dict: House vote data,' doesn't mention error conditions or authentication needs, and provides no guidance on tool selection among siblings. For a data retrieval tool with many parameters, this leaves significant gaps in understanding how to effectively use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage (titles only, no descriptions), the description provides substantial parameter semantics beyond the schema. It explains each parameter's purpose, provides examples (e.g., '118 for 118th Congress'), format requirements ('YYYY-MM-DDTHH:MM:SSZ format'), and constraints ('max 250, default 20'). This significantly compensates for the schema's lack of descriptions, though it doesn't cover all possible edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieve House vote information from the Congress.gov API.' It specifies the resource (House vote information) and the source (Congress.gov API). However, it doesn't explicitly differentiate this from sibling tools like get_bills or get_members, which would be needed for a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., get_bills, get_members, get_committees), there's no indication of when House vote retrieval is appropriate versus other congressional data tools. The link to external documentation doesn't substitute for explicit usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_membersB
Retrieve member information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/MemberEndpoint.md
Args: bioguide_id: Specific member bioguide ID (e.g., "A000374") 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) current_member: Filter by current member status (true/false)
Returns: dict: Member data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| bioguide_id | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No | ||
| current_member | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the API endpoint documentation link and describes some parameter behaviors (defaults, max values), it doesn't disclose important behavioral traits like rate limits, authentication requirements, error handling, pagination behavior beyond offset/limit, or what happens when multiple filters conflict. The description is functional but lacks comprehensive behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, args, returns) and efficiently communicates essential information. While the external documentation link adds value, the description itself is appropriately sized and front-loaded with the core purpose. Every sentence serves a clear function in explaining the tool's usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no annotations, no output schema), the description provides solid parameter documentation but lacks complete behavioral context. The return value description ('dict: Member data from Congress.gov API') is minimal without explaining the structure or content of the returned data. For a tool with multiple filtering parameters and no output schema, more detail about the response format would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides excellent parameter semantics that fully compensate for the 0% schema description coverage. It clearly explains each of the 6 parameters with specific examples ('A000374'), format requirements ('YYYY-MM-DDTHH:MM:SSZ'), constraints ('max 250'), defaults, and filtering logic. This goes well beyond what the bare schema provides and gives the agent practical guidance on how to use each parameter effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieve') and resource ('member information from the Congress.gov API'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its many siblings (like get_committees or get_bills), which all appear to retrieve different types of congressional data from the same API.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With 19 sibling tools that all retrieve different congressional data types, there's no indication of what distinguishes member information retrieval from other data types or when an agent should choose this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nominationB
Retrieve nomination information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/NominationEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) nomination_number: Specific nomination 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: Nomination data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| nomination_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions retrieval and includes parameter details, but lacks critical behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, error handling, or pagination behavior beyond offset/limit. The link to external documentation is insufficient for direct agent use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized, with a clear purpose statement, documentation link, parameter explanations, and return value note. Every sentence adds value, though the external link might distract slightly from self-contained clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no annotations, no output schema), the description is partially complete. It excels in parameter semantics but lacks behavioral context (e.g., safety, limits) and output details beyond 'dict: Nomination data'. This leaves gaps for an agent to invoke it confidently without external resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the input schema, which has 0% description coverage. It explains all six parameters with clear semantics: congress as 'Congress number (e.g., 118)', nomination_number as 'Specific nomination number', offset as 'Starting record', limit with 'max 250', and datetime formats. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve nomination information') and resource ('from the Congress.gov API'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from its siblings (like get_bills or get_members) beyond the 'nomination' focus, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions a documentation link but doesn't specify use cases, prerequisites, or comparisons with sibling tools (e.g., get_bills for legislation vs. get_nomination for nominations), leaving the agent without contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_senate_communicationB
Retrieve Senate communication information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/SenateCommunicationEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) communication_type: Type of communication - ec: Executive Communication - pm: Presidential Message - pom: Petition or Memorial communication_number: Specific communication 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: Senate communication data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| communication_type | No | ||
| communication_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It mentions the API endpoint documentation link and basic return format ('dict: Senate communication data'), but doesn't disclose important traits like whether this is a read-only operation, rate limits, authentication requirements, error handling, or what specific data fields are returned. The description is functional but lacks operational transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, Args, Returns) and uses bullet points for parameter details. While somewhat lengthy due to 7 parameters, every sentence adds value - the API documentation link is useful, parameter explanations are necessary given poor schema coverage, and the return statement is minimal but adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no annotations and no output schema, the description is moderately complete. It thoroughly documents parameters but lacks behavioral context (rate limits, auth, error handling) and only vaguely describes returns ('dict: Senate communication data'). Given the complexity and absence of structured metadata, more operational details would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for 7 parameters, the description compensates well by providing clear explanations for all parameters, including examples (e.g., '118 for 118th Congress'), enumerated values for communication_type, format specifications ('YYYY-MM-DDTHH:MM:SSZ format'), and default values. This adds substantial meaning beyond what the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and resource 'Senate communication information from the Congress.gov API', making the purpose explicit. It distinguishes this tool from siblings like 'get_house_communication' by specifying Senate communications, but doesn't explain how it differs from other data retrieval tools in the same API family beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. While it's clearly for Senate communications (versus House communications), there's no mention of when to use this versus other congressional data tools like get_bills or get_committee_reports, nor any context about typical use cases or prerequisites for Senate communication data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_summariesA
Retrieve bill summaries from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/SummariesEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) bill_type: Type of bill - hr: House of Representatives Bill - s: Senate Bill - hjres: House Joint Resolution - sjres: Senate Joint Resolution - hconres: House Concurrent Resolution - sconres: Senate Concurrent Resolution - hres: House Simple Resolution - sres: Senate Simple Resolution 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) sort: Sort order ('updateDate+asc' or 'updateDate+desc')
Returns: dict: Summary data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| bill_type | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No | ||
| sort | No | updateDate+desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API endpoint and provides parameter details, but doesn't describe important behavioral aspects like rate limits, authentication requirements, error conditions, or pagination behavior beyond the offset/limit parameters. The description doesn't contradict any annotations (since none exist), but leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and uses bullet points for the bill_type parameter. It's appropriately sized for a 7-parameter tool. However, the first sentence could be more front-loaded with key information, and the external documentation link could be better integrated rather than appearing as the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no annotations and no output schema, the description provides good parameter documentation but lacks important contextual information. It doesn't explain what 'summary data' contains, how results are structured, or provide examples of return values. The external documentation link helps, but the description itself should provide more complete guidance for agent usage given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description provides excellent parameter semantics that fully compensate. It explains all 7 parameters with clear explanations, examples (e.g., '118 for 118th Congress'), enumerated values for bill_type, format specifications (YYYY-MM-DDTHH:MM:SSZ), and default values. This adds substantial meaning beyond what the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve') and resource ('bill summaries from the Congress.gov API'), making the purpose immediately understandable. It distinguishes itself from siblings by focusing specifically on summaries rather than bills, amendments, or other legislative documents. However, it doesn't explicitly contrast with similar tools like 'get_bills' in terms of what summaries contain versus full bill text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available (like get_bills, get_amendments, get_committee_reports), there's no indication of when summaries are appropriate versus full documents or other legislative data. The only contextual guidance is the link to external documentation, which doesn't help the agent make tool selection decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_swaggerD
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_treatyB
Retrieve treaty information from the Congress.gov API. Full documentation for this endpoint -> https://github.com/LibraryOfCongress/api.congress.gov/blob/main/Documentation/TreatyEndpoint.md
Args: congress: Congress number (e.g., 118 for 118th Congress) treaty_number: Specific treaty 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: Treaty data from Congress.gov API
| Name | Required | Description | Default |
|---|---|---|---|
| congress | No | ||
| treaty_number | No | ||
| offset | No | ||
| limit | No | ||
| from_datetime | No | ||
| to_datetime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that it retrieves data from an external API and mentions default values and limits (max 250 records), which adds useful context. However, it doesn't cover important behavioral aspects like error handling, authentication requirements, rate limits, pagination behavior beyond offset/limit, or what happens when parameters are null. The link to documentation partially compensates but isn't self-contained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, documentation link, parameter details in a formatted Args section, and return value description. It's appropriately sized for a 6-parameter tool. The documentation link is useful but could be more integrated. Every sentence earns its place, though the 'Returns' line is somewhat vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no annotations, and no output schema, the description is moderately complete. It covers all parameters and mentions the API source, but lacks details about the return structure (beyond 'dict'), error conditions, authentication, or rate limiting. For a read-only API tool with multiple filters, more behavioral context would be helpful, though the parameter documentation is solid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 provides clear explanations for all 6 parameters: congress number, treaty number, pagination controls (offset/limit), and datetime filters with format examples. This adds significant meaning beyond the bare schema. However, it doesn't explain parameter interactions (e.g., how treaty_number affects other filters) or what 'null' values mean for optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieve treaty information from the Congress.gov API.' It specifies the verb ('Retrieve') and resource ('treaty information'), and distinguishes it from siblings by focusing on treaties rather than bills, amendments, etc. However, it doesn't explicitly differentiate from hypothetical treaty-related siblings beyond naming the endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the API endpoint documentation but doesn't explain when treaty retrieval is appropriate compared to other data types (bills, members, etc.) available in the sibling tools. There's no mention of prerequisites, typical use cases, or constraints beyond parameter defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource type within the Congress.gov domain, such as amendments, bills, committees, members, etc. The descriptions clearly differentiate the data each tool retrieves, with no overlap in purpose or functionality.
All tools follow a consistent 'get_' prefix with snake_case naming, clearly indicating retrieval operations. The pattern is uniform across all 21 tools, making them predictable and easy to understand.
With 21 tools, the count is on the higher side for a single server, but it aligns with the comprehensive scope of the Congress.gov API covering many legislative entities. It feels slightly heavy but is reasonable given the domain complexity.
The tool set provides broad coverage of legislative data types, including bills, amendments, committees, members, votes, and more. Minor gaps may exist, such as lack of update or delete operations, but this is typical for a read-only API wrapper and agents can work effectively with the provided retrieval tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Nonpartisan U.S. Congress data: bill decodes, rep lookup, bilingual EN/ES, read-only, no accounts.
U.S. federal policy data — bills, Congress members, voting records, and civic info.
Access U.S. congressional data - bills, votes, members, committees - via MCP.
Congress MCP — US Congress data via GovTrack API (free, no auth required)
Related MCP Servers
- AlicenseAqualityAmaintenanceThe open Congress.gov MCP server. Provides comprehensive access to the Congress.gov API through 6 organized toolsets, enabling AI systems to retrieve and interact with legislative data from the United States Congress with a clean, unified interface.2432Sustainable Use v1.0
- FlicenseNot gradedqualityDmaintenanceEnables access to comprehensive U.S. legislative and governmental data from GovInfo.gov and Congress.gov APIs, including bills, Congressional records, Federal Register documents, member information, and committee activities.1
- AlicenseNot gradedqualityDmaintenanceEnables querying U.S. legislative data from Congress.gov API using MCP resources for direct lookups and tools for searching and retrieving related data.8MIT
- AlicenseAqualityAmaintenanceMCP server for the Congress.gov API that tracks US federal legislative process, providing tools to search bills and get bill details.111Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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