bill-commons
Server Details
Search 209k+ US state bills, all 50 states + DC: full text, sponsors, votes, status. Free.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- GDACS-droid/billcommons
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 11 of 11 tools scored. Lowest: 2.9/5.
Each tool serves a clearly distinct purpose: search, specific retrievals (bill, votes, hearings, sessions), analysis (compare, trace, similar), and a composite evidence builder. Descriptions explicitly clarify boundaries (e.g., search_legislation vs. list_topics; get_bill_record vs. trace_legislative_history).
All tool names follow a consistent verb_noun pattern (build_, compare_, find_, get_, list_, search_, trace_). The verbs are distinct and descriptive, and the same noun style is used throughout (e.g., bill_record, vote_details, legislative_history).
11 tools is well within the ideal 3-15 range for a legislative data server. Each tool addresses a specific need without redundancy, and the count feels appropriate for the breadth of coverage.
The tool set provides comprehensive coverage for legislative research: search, record retrieval, history, version comparison, similarity, votes, hearings, sessions, topic browsing, and evidence packet generation. No obvious dead ends or missing critical operations for a read-only legislative analysis domain.
Available Tools
11 toolsbuild_legislative_evidence_packetAInspect
Compile a citation-ready evidence packet for a bill: full official record, legislative history timeline, votes with member-level detail, and hearings -- each explicitly labeled official vs. derived with source URLs.
Returns a `how_to_cite` block with a one-line `cite_as` sentence, a human
`permalink`, a JSON `download_url`, and a `snapshot_id` that changes if and
only if a cited fact about the bill changes -- so a reader can check later
whether the citation still holds. Snapshots are NOT archived; the id is a
change detector, not a way to retrieve an older packet.
Pass `question` to record what the packet was assembled to answer; it is
echoed into the artifact so a filed packet carries its own scope.| Name | Required | Description | Default |
|---|---|---|---|
| bill_id | Yes | ||
| question | No | ||
| include_full_text | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: snapshot_id changes only when cited facts change, snapshots are NOT archived, and `question` is echoed into the artifact. It does not mention permissions or explicitly state read-only behavior, but the 'compile' framing implies non-mutating.
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 multi-sentence but every sentence earns its place: purpose, return structure, snapshot semantics, and parameter note. It is front-loaded with the core action and avoids filler.
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 no output schema, the description explains return values well, including the citation block and download artifacts. It misses include_full_text semantics and potential error conditions, but for a complex assembly tool it is largely 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?
Schema coverage is 0%, so the description must compensate for parameter meaning. It explains `question` well, but `include_full_text` is not described at all, and `bill_id` only relies on its name. This is partial compensation; include_full_text's effect on the packet remains ambiguous.
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 opens with a specific verb and resource: 'Compile a citation-ready evidence packet for a bill.' It enumerates the packet's contents (official record, legislative history, votes, hearings) and explicitly distinguishes labed sources as official vs. derived, setting it apart from sibling tools like get_bill_record or trace_legislative_history.
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 clearly conveys when this tool is appropriate: when a comprehensive, citation-ready packet is needed rather than a single bill detail or vote list. It does not explicitly name alternatives or state when not to use it, but the scope is evident enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_bill_versionsAInspect
Deterministic diff (unified + structured) between two versions of a bill's extracted text. Defaults to earliest vs. latest texted version if version ids are omitted. Errors if fewer than 2 versions have extracted text. Result is labeled 'derived' (computed by Bill Commons, not an official document).
| Name | Required | Description | Default |
|---|---|---|---|
| bill_id | Yes | ||
| version_id_a | No | ||
| version_id_b | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses that the result is deterministic, labeled 'derived', and computed by Bill Commons (not official). It also mentions the error condition. However, it lacks details on permissions, rate limits, or the exact structure of the output.
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 two sentences, front-loaded with the main purpose, and every sentence adds value. No wasted words.
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 no output schema, the description covers key aspects: default behavior, error condition, and nature of the result. It could be more specific about the output format (unified + structured details), but overall it is complete for a tool with simple parameters and no annotations.
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 coverage is 0%, so description compensates by explaining that version_id_a and version_id_b are optional with default behavior (earliest vs latest) and that bill_id is required. This adds meaning beyond the raw schema, though it could clarify value formats.
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 performs a deterministic diff between two bill versions, specifying 'unified + structured' output. This distinguishes it from sibling tools like get_bill_record or search_legislation, which do not compare versions.
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?
Explicitly states default behavior when version ids are omitted (earliest vs latest) and error condition (fewer than 2 versions with extracted text). This guides the agent on when and how to use the tool effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_billsAInspect
Find bills with similar titles via deterministic trigram similarity, across jurisdictions. Labeled 'derived' -- not an official cross-reference or companion-bill designation.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| bill_id | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses deterministic algorithm, cross-jurisdiction scope, and derived labeling, adding behavioral context beyond a bare 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?
Two efficient sentences front-load the action and include a crucial caveat, with no waste.
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 no output schema, the description provides sufficient context for a simple tool, but lacks details on output 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?
Schema coverage is 0%, and the description does not describe the parameters (bill_id, limit) beyond the schema, failing to add value.
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 finds bills with similar titles using trigram similarity, across jurisdictions, distinguishing it from siblings like search_legislation.
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 use for title similarity matching but provides no explicit guidance on when to use vs siblings like get_bill_record or search_legislation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_sessionsAInspect
List legislative sessions currently flagged active, optionally filtered by jurisdiction (two-letter state code or name).
| Name | Required | Description | Default |
|---|---|---|---|
| jurisdiction | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the operation is a read (list) and mentions filtering, but does not disclose output format, field details, or any side effects. Adequate for a simple list but leaves uncertainty.
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?
Single sentence of 15 words, front-loads the verb, no filler. Every word earns its place.
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?
No output schema, so description should hint at return fields. It describes input and purpose but omits output structure (e.g., session names, dates). Partially complete for a simple list tool.
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 has 0% coverage, but description adds meaning to the only parameter 'jurisdiction' by specifying accepted values: 'two-letter state code or name.' This compensates for the sparse 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?
Description specifies verb 'List' and resource 'legislative sessions currently flagged active', clearly distinguishing it from sibling tools like get_jurisdiction_coverage (list jurisdictions) or get_bill_record (single bill).
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?
Implies usage context: retrieving active sessions with optional jurisdiction filter. No explicit when-not or alternative guidance, but the tool is unique among siblings, so context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bill_recordAInspect
Fetch the full record for one bill: metadata, sponsors, subjects, actions, versions, and vote-event summaries. Look up by canonical bill_id (UUID), or by jurisdiction + identifier (+ optional session to disambiguate).
| Name | Required | Description | Default |
|---|---|---|---|
| bill_id | No | ||
| session | No | ||
| identifier | No | ||
| jurisdiction | No | ||
| include_full_text | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as fetching data but does not explicitly state whether it is read-only or any potential side effects. For a read operation, this is adequate but not thorough.
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 two sentences, concise and front-loaded with the purpose. Every word adds value with no redundancy.
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 has 5 parameters, no annotations, and no output schema, the description covers the essential lookup methods and return contents. It lacks details on response structure or pagination, but for a straightforward fetch tool, it is sufficient.
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 coverage is 0%, but the description adds meaning by explaining the lookup logic (bill_id vs. jurisdiction+identifier+session) and the optional disambiguation via session. The 'include_full_text' parameter is mentioned but not explained. Overall, adds significant value beyond the raw 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 it fetches the full record for one bill, listing components like sponsors, subjects, actions, versions, and vote-event summaries. It distinguishes from sibling tools by specifying it retrieves a single bill's complete 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 indicates when to use the tool (when needing full bill record) and provides two lookup methods (by bill_id or by jurisdiction+identifier+session). However, it does not explicitly exclude cases where other sibling tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jurisdiction_coverageAInspect
Return the jurisdiction_coverage state-machine status for one state (abbreviation or name), or the full 51-jurisdiction coverage matrix if state is omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavior. It mentions 'state-machine status' but does not disclose side effects, auth needs, or rate limits; it is implicitly read-only but not stated.
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 a single, front-loaded sentence that conveys the tool's purpose and parameter behavior without any extraneous text.
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 no output schema, the description could better explain the return format of the state-machine status, but the tool is simple with one optional parameter, so the deficit is minor.
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 meaning to the sole parameter 'state', explaining it accepts abbreviation or name and that omission returns the full matrix, going beyond the sparse 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 tool returns jurisdiction coverage state-machine status, specifying the resource and differentiating between a single state and the full matrix.
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 when to use the tool (for one state or all) but does not provide when-not-to-use or alternative sibling tools, which would improve selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcoming_hearingsCInspect
List upcoming (future-dated) legislative hearings/events, optionally filtered by jurisdiction and/or bill.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| bill_id | No | ||
| jurisdiction | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of disclosure. It only states the tool lists future-dated hearings with optional filters, but does not disclose any behavioral traits such as pagination, ordering, rate limits, authentication needs, or what happens if no hearings match.
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 a single concise sentence with parenthetical clarification, which is efficient and front-loaded. However, it lacks structure such as bullet points or explicit parameter breakdowns.
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 3 optional parameters, no output schema, and no annotations, the description is minimal. It omits important context like return format, pagination behavior, acceptable values for jurisdiction, or ordering. An agent would lack enough information to use the tool correctly without additional documentation.
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 input schema has 3 parameters (limit, bill_id, jurisdiction), all optional, but schema description coverage is 0%. The description mentions filtering by jurisdiction and bill (which map to bill_id and jurisdiction), but does not explain the 'limit' parameter or provide any additional meaning beyond parameter names. It fails to compensate for the low coverage.
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 'List' and the resource 'upcoming (future-dated) legislative hearings/events, and mentions optional filters by jurisdiction and/or bill. This differentiates it from sibling tools like get_bill_record which focus on bills rather than hearings.
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 explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it. It merely describes what the tool does without context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vote_detailsAInspect
Fetch vote event(s) with member-level (yes/no/other/absent) vote records. Provide vote_event_id for one vote, or bill_id for all recorded votes on that bill.
| Name | Required | Description | Default |
|---|---|---|---|
| bill_id | No | ||
| vote_event_id | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the core behavior (fetching vote records) and parameter logic, but lacks detail on authorization, rate limits, or what happens if both parameters are null.
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 two sentences, no unnecessary words. The first sentence states the primary action, and the second specifies parameter usage. Front-loaded and efficient.
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 simplicity (2 optional params, no output schema), the description covers the key behavioral aspects. However, it omits what happens if both parameters are provided, and could briefly note the typical output structure.
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 coverage is 0%, but the description clearly explains the roles of bill_id and vote_event_id, including that providing one gives different results. This adds significant meaning beyond the schema's names and types.
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 fetches vote event(s) with member-level vote records. It specifies the two usage patterns (by vote_event_id or by bill_id), which distinguishes it from siblings like get_bill_record or trace_legislative_history.
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 guidance on when to use each parameter (vote_event_id for one vote, bill_id for all votes on a bill), but does not explicitly compare this tool to sibling tools or advise when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_topicsAInspect
List Bill Commons' curated cross-state topic trackers (e.g. artificial intelligence, youth online safety, platform accountability, cybersecurity, cryptocurrency, data privacy, local government & preemption) -- the entry point for "what subjects does Bill Commons track across all 50 states + DC" and "how do I get every bill in one". Each topic is a title/subject membership rule tuned for precision over recall, with a live bill_count and how_to_fetch_bills. This tool does not itself return bill rows -- pair it with search_legislation or the REST API's /topics/{slug} for the bills.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It transparently discloses that the tool does not return bill rows itself, explains the topic structure (title/subject membership rule tuned for precision over recall), and mentions the presence of live bill_count and how_to_fetch_bills. This is rich behavioral context beyond a simple 'list topics' definition.
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 front-loaded: it starts with the core action, lists examples, explains the tool's purpose, and ends with a critical pairing note. Every sentence adds value, and the length is appropriate for the tool's complexity.
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 zero-parameter tool with no output schema, the description is remarkably complete. It describes what the topics are, provides examples, notes the precision-over-recall tuning, and explicitly states what the tool does not do (return bills) while pointing to alternatives. This fully equips the agent to invoke the tool correctly.
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 tool has zero parameters, so the description doesn't need to explain parameter semantics. The baseline of 4 applies, and the description clearly explains what the tool does, which is sufficient for a parameterless tool.
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 (List), the resource (curated cross-state topic trackers), and includes concrete examples. It explicitly distinguishes itself from sibling tools by noting it does not return bill rows and pointing to search_legislation for that purpose.
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 explicit guidance on when to use this tool: as the entry point for discovering what subjects Bill Commons tracks and how to get bills in one. It also tells the user to pair it with search_legislation or the REST API's /topics/{slug} for actual bills, offering clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_legislationAInspect
Search FULL BILL TEXT -- not just known-bill-number lookup. q is
matched against titles, descriptions, AND ingested document text via
Postgres websearch_to_tsquery (supports "quoted phrases", OR, and
-exclusion, same syntax as a search engine), with a fuzzy pg_trgm
title-similarity fallback when the exact query has no hits. q can
ALSO be a bill number ("HB 123", "H.B. 123", "hb123" all match) and
that fast path is tried first. Optionally filter by jurisdiction
(two-letter state code or name), chamber, and status.
For a curated cross-state slice of a subject (e.g. "every AI bill in the
country") rather than an ad-hoc keyword search, call list_topics first --
its membership rules also match on structured subject tags this
full-text search does not see.| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| limit | No | ||
| status | No | ||
| chamber | No | ||
| jurisdiction | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so richly: it discloses query syntax (websearch_to_tsquery), quoted phrases/OR/-exclusion, fuzzy title fallback, bill-number fast path, and optional filters. It also reveals the limitation that structured subject tags are not searched, which is valuable 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 front-loaded with the core purpose, then logically expands into query syntax, fallback behavior, bill-number handling, filters, and alternative tool guidance. Every sentence adds meaningful information without filler.
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?
The description covers query semantics, filtering, fallback behavior, and alternative tool usage, which is strong for a search tool. It lacks explicit mention of return format or pagination/limit behavior, and with no output schema or annotations this is a minor but real gap.
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 q parameter is heavily documented: accepted forms include bill numbers, phrases, operators, and fallback behavior. Jurisdiction gets format guidance (state code or name). However, the remaining params (limit, chamber, status) are only named without value enumerations or additional semantics, leaving some compensation gaps given 0% schema coverage.
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 searches full bill text, explicitly distinguishing it from known-bill-number lookup and sibling tools like get_bill_record. It also highlights the bill-number fast path and optional filters, making its scope unambiguous.
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?
It provides explicit when-to-use guidance: use for ad-hoc keyword searches, and for curated cross-state topics call list_topics first. It also contrasts with known-bill-number lookup, giving clear context for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_legislative_historyAInspect
Full chronological legislative history for a bill: merged timeline of actions, version publications, and votes, plus related-bill links.
| Name | Required | Description | Default |
|---|---|---|---|
| bill_id | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility. It describes the output content (timeline, actions, votes, links) but lacks details on side effects, authentication, rate limits, or data freshness. It correctly implies a read-only query but is not exhaustive.
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 a single sentence that immediately states the core purpose. It is front-loaded, uses clear language, and contains no unnecessary words. Every element earns its place.
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 has one required parameter and no output schema, the description provides a reasonable overview of what the tool returns. It could be more complete by mentioning any limitations (e.g., jurisdiction scope), but overall it gives enough information for basic 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 schema has 0% description coverage for the single parameter bill_id. The description only mentions 'for a bill' without explaining what bill_id is, its format, or how to obtain it. It fails to compensate for the missing 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 returns a full chronological legislative history including actions, version publications, votes, and related-bill links. It uses the verb 'trace' in the name and specifies the resource (bill history), effectively distinguishing it from sibling tools like get_vote_details or compare_bill_versions.
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 does not mention use cases, exclusions, or prerequisites, leaving the agent without context for tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityCmaintenanceSearch bills and speaker-attributed hearing transcripts across all 50 US state legislatures.71MIT
- AlicenseAqualityCmaintenanceProvides access to legislative data from all 50 US states through the LegiScan API, enabling comprehensive search and retrieval of bills, votes, legislators, and legislative session information.101710MIT
- Alicense-qualityAmaintenanceSearch bills, legislators, committees, and events across all 50 US states, DC, and 5 US territories via MCP.1591Apache 2.0
- Alicense-qualityCmaintenanceAccess U.S. state legislative data including bills, legislators, and votes across all 50 states via the OpenStates API.11MIT