Skip to main content
Glama
adathouse
by adathouse

cdgmcp

A Model Context Protocol (MCP) server that exposes a Congress.gov-style legislative GraphQL API to MCP clients (such as VS Code, Claude Desktop, or other agents). It provides high-level tools for querying bills, actions, committee activities and cosponsors, plus a raw GraphQL escape hatch for advanced queries.

Features

Tools

Tool

Description

search_bills

Search/list bills with filters (congress, chamber, type, title, latest action, dates, sponsor).

get_bill

Fetch a single bill's full details, with optional actions, cosponsors, committee activities, titles and text versions.

search_committee_activities

Find committee referrals/activities and their related bills.

search_actions

Search the legislative action history (e.g. "Passed House", "Became Public Law").

search_cosponsors

Search cosponsorship records across bills.

get_node

Fetch any object directly by its Relay global id.

graphql_query

Run an arbitrary read-only GraphQL query (mutations rejected).

The API is built with Hot Chocolate 16.2.0 and follows Relay conventions. The search tools are connection-based: each returns pageInfo.endCursor, which you can pass back as the after argument to fetch the next page.

Resources

URI

Description

cdg://schema

The live GraphQL schema (SDL).

cdg://guide

Data model and usage guide.

cdg://endpoint

The configured GraphQL endpoint.

Related MCP server: CongressMCP-full

Example questions it can answer

  • What bills have been recently introduced in the House or Senate?

  • What bills have passed the House or Senate and became law recently?

  • What bills have been referred to the Commerce Committee recently?

  • Of the bills referred to the Agriculture Committee, which cosponsors recur across them?

Configuration

The GraphQL endpoint defaults to http://dotnet10-dev:5208/graphql/. Override it with the CDG_GRAPHQL_ENDPOINT environment variable.

Build & run

npm install
npm run build
npm start          # or: node dist/index.js

For development (no build step) use:

npm run dev        # runs src/index.ts via tsx

Use with VS Code

Add to your .vscode/mcp.json (or user mcp.json):

{
  "servers": {
    "cdgmcp": {
      "command": "node",
      "args": ["${workspaceFolder}/cdgmcp/dist/index.js"],
      "env": {
        "CDG_GRAPHQL_ENDPOINT": "http://dotnet10-dev:5208/graphql/"
      }
    }
  }
}

The server communicates over stdio.

This is supposed to be a standalone testing something, but I haven't seen it work.

HOST=0.0.0.0 npx @modelcontextprotocol/inspector node dist/index.js

Available Tools

7 tools
get_billGet bill detailsA

Fetch a single bill's full details. Identify it either by cdgId or by the combination of congress + billType + number. Optionally include related actions, cosponsors, committee activities, titles and text versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdgIdNoThe bill's cdgId. Provide this OR congress+billType+number.
congressNoCongress number, e.g. 119.
billTypeNoBill type code, e.g. HR, S, HJRES.
numberNoBill number, e.g. 1234.
includeActionsNoInclude the action history.
includeCosponsorsNoInclude the list of cosponsors.
includeCommitteeActivitiesNoInclude committee referral/activity history.
includeTitlesNoInclude all titles for the bill.
includeTextVersionsNoInclude text version documents.

TDQS

A3.7/5.0
Behavior2/5

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 does not disclose any behavioral traits such as side effects, authentication needs, rate limits, or error handling. The description only states what the tool does, not how it behaves.

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

Conciseness5/5

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

The description is two sentences, concise, and front-loaded with the main purpose. Every part adds value with no redundancy.

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

Completeness3/5

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

No output schema exists, so the description should hint at return fields. It says 'full details' but does not specify what that includes beyond the optional inclusions. With 9 parameters, more detail on the response would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, so parameter descriptions already exist. The description adds context on the identification options (cdgId vs congress+billType+number) and optional booleans, but this largely reinforces schema info without adding new meaning.

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

Purpose5/5

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

The description clearly states the tool fetches a single bill's full details, and specifies two distinct identification methods. This is specific and distinguishes from sibling tools like search_bills, which is for listing multiple bills.

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

Usage Guidelines4/5

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

The description explains how to identify the bill (cdgId or congress+billType+number) and mentions optional inclusions. However, it does not explicitly state when to use this versus alternatives like search_actions or search_cosponsors, though context from sibling names implies when to use those.

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

get_nodeFetch an object by Relay global IDA

Fetch any object directly by its Relay global id (the opaque id field returned on Bills, Actions, CommitteeActivities, Cosponsors, BillTitles and TextVersions). Returns the concrete type's fields. Use this when you already have a node's global id; to look a bill up by congress/type/number use get_bill instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe Relay global object id (the `id` field).

TDQS

A4.4/5.0
Behavior3/5

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

No annotations provided, so description must cover behavior. It mentions return type ('concrete type's fields') but does not disclose behavior on invalid IDs, error handling, or rate limits, leaving gaps.

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

Conciseness5/5

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

Two sentences, no wasted words, key information front-loaded.

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

Completeness4/5

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

For a simple single-parameter tool with no output schema, the description adequately covers purpose, usage, and parameter semantics, though it omits potential failure modes.

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

Parameters4/5

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

Schema coverage is 100% with a basic description. The tool description adds context about the 'id' being an opaque Relay global ID from specific types, which goes beyond the schema's minimal description.

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

Purpose5/5

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

The description clearly states the action ('Fetch any object') and the resource ('by Relay global id'), and distinguishes it from sibling tool get_bill by specifying when to use each.

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

Usage Guidelines5/5

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

Explicitly states when to use ('when you already have a node's global id') and when not to ('to look a bill up by congress/type/number use get_bill instead'), providing a clear alternative.

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

graphql_queryRun a raw GraphQL queryA

Execute an arbitrary read-only GraphQL query against the legislative API. Use this for complex questions the specialised tools do not cover (e.g. cross-referencing committee activities with bill cosponsors). Read the 'cdg://schema' resource for the full schema. Mutations are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesA GraphQL query document. Must be a query (no mutations).
variablesNoOptional variables object for the query.

TDQS

A4.1/5.0
Behavior4/5

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 clearly states that the tool is read-only and that mutations are rejected. This is key behavioral information. However, it does not mention authentication, rate limits, or error handling, which would be helpful.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose. It includes a usage example and a resource reference. Every sentence adds value without redundancy.

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

Completeness3/5

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

Given the complexity of a raw GraphQL tool, the description lacks information about the return format or response structure (no output schema exists). It does mention reading the input schema but not the output. The description is adequate but incomplete for a tool that returns arbitrary data.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents both parameters (query and variables) adequately. The tool description does not add significant meaning beyond confirming that query must not be a mutation. It does not elaborate on the variables parameter structure.

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

Purpose5/5

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

The description uses the specific verb 'Execute' and identifies the resource as 'read-only GraphQL query against the legislative API'. It clearly distinguishes itself from sibling tools by stating 'Use this for complex questions the specialised tools do not cover', making its purpose and scope unambiguous.

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

Usage Guidelines4/5

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

The description explicitly says when to use (complex questions not covered by specialized tools) and provides an example. It does not explicitly state when not to use, but the context implies that specialized tools should be preferred. The reference to reading the schema resource provides further guidance.

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

search_actionsSearch bill actionsA

Search the legislative action history across bills. Use this to find events like 'Passed House', 'Passed Senate', 'Became Public Law', or to inspect actions by type/code. Each result includes the related bill.

ParametersJSON Schema
NameRequiredDescriptionDefault
textContainsNoSubstring to match within the action text, e.g. 'Passed House', 'Became Public Law', 'Signed by President'.
actionTypeNoExact action type, e.g. 'Floor', 'BecameLaw', 'IntroReferral'.
actionCodeNoExact action code.
actionDateAfterNoOnly actions on/after this date (YYYY-MM-DD).
actionDateBeforeNoOnly actions on/before this date (YYYY-MM-DD).
sortByNoField to sort by. Default: actionDate.
sortOrderNoSort direction. Default: DESC (newest first).
limitNoMax results to return (1-50). Default 10.
afterNoRelay pagination cursor. Pass the `pageInfo.endCursor` from a previous result to fetch the next page.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided; description discloses that results include related bill but does not explicitly state read-only nature or other behavioral traits like rate limits.

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

Conciseness5/5

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

Two sentences front-loaded with purpose, efficient and no wasted words.

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

Completeness3/5

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

Covers main use cases but omits pagination explanation and default sort order; no output schema requires more detail on return values.

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

Parameters3/5

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

Schema coverage is 100% with good descriptions; description adds value via examples but does not detail all parameters beyond schema.

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

Purpose5/5

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

The description clearly states the tool searches legislative action history across bills, uses specific verb 'Search', and distinguishes from siblings like search_bills by focusing on actions.

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

Usage Guidelines4/5

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

Provides concrete examples of when to use (e.g., find 'Passed House'), but lacks explicit comparison to alternatives or when-not-to-use guidance.

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

search_billsSearch billsA

Search and list bills/resolutions with flexible filters. Use this for questions like 'bills recently introduced in the House', 'bills that became law recently' (latestActionContains: 'Became Public Law'), or 'bills that passed the Senate' (latestActionContains: 'Passed Senate'). Results are paginated; increase 'limit' (max 50) for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
congressNoCongress number, e.g. 119 for the 119th Congress.
billTypeNoBill type code: HR, S, HJRES, SJRES, HCONRES, SCONRES, HRES, SRES.
originChamberNoChamber where the bill originated.
titleContainsNoCase-sensitive substring to match within the bill title.
latestActionContainsNoSubstring to match within the latest action text. Examples: 'Became Public Law', 'Passed House', 'Passed Senate', 'Referred to the Committee'.
introducedAfterNoOnly bills introduced on/after this date (YYYY-MM-DD).
introducedBeforeNoOnly bills introduced on/before this date (YYYY-MM-DD).
sponsorStateNoTwo-letter state code of the bill sponsor, e.g. 'CA'.
sponsorPartyNoParty of the bill sponsor, e.g. 'R', 'D', 'I'.
sponsorBioguideIdNoBioguide ID of the bill sponsor.
sortByNoField to sort by. Default: introducedDate.
sortOrderNoSort direction. Default: DESC (newest first).
limitNoMax results to return (1-50). Default 10.
afterNoRelay pagination cursor. Pass the `pageInfo.endCursor` from a previous result to fetch the next page.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It mentions pagination and limit max, but does not state read-only nature or any side effects. Adequate but could be more explicit about behavioral traits.

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

Conciseness5/5

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

Two sentences plus examples; front-loaded with purpose, no fluff. Every sentence earns its place.

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

Completeness4/5

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

Given 14 parameters, no required, and no output schema, the description covers the essential usage and pagination. It could mention the return format, but is fairly complete for a list tool.

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

Parameters3/5

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

Schema coverage is 100% with good descriptions; the description adds value through examples (e.g., latestActionContains: 'Became Public Law') but does not significantly augment parameter understanding beyond the schema.

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

Purpose5/5

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

The description clearly states 'Search and list bills/resolutions with flexible filters' and provides concrete query examples, distinguishing this from sibling tools like search_actions (actions on bills) and get_bill (single bill).

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

Usage Guidelines4/5

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

The description explicitly gives usage examples (e.g., 'bills recently introduced in the House') and shows parameter combinations. It does not explicitly say when not to use or name alternatives, but the examples are clear enough.

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

search_committee_activitiesSearch committee activitiesA

Find committee activities (e.g. referrals) and the bills they relate to. Use this for questions like 'bills referred to the Commerce Committee recently' (committeeNameContains: 'Commerce', activityNameContains: 'Referred'). Each result includes the related bill summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
committeeNameContainsNoSubstring to match within the committee name, e.g. 'Commerce', 'Agriculture', 'Judiciary'.
committeeCodeNoExact committee system code, e.g. 'HSAG' or 'HSIF'.
chamberNoChamber, e.g. 'House' or 'Senate'.
activityNameContainsNoSubstring to match within the activity name, e.g. 'Referred', 'Markup', 'Discharged', 'Reported'.
sortByNoField to sort by. Default: activityTimestamp.
sortOrderNoSort direction. Default: DESC (newest first).
limitNoMax results to return (1-50). Default 10.
afterNoRelay pagination cursor. Pass the `pageInfo.endCursor` from a previous result to fetch the next page.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description must disclose all behavioral traits. It mentions that each result includes a related bill summary, which is useful. However, it does not cover other aspects like pagination behavior (despite the 'after' parameter), rate limits, or whether the tool is read-only. The description is adequate but 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.

Conciseness5/5

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

The description is two sentences long and well-structured. The first sentence states the core purpose, and the second gives a practical example. Every sentence serves a clear purpose with no redundant or vague wording.

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

Completeness4/5

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

Given the complexity of 8 optional parameters and no output schema, the description covers the essential context: what the tool does, a typical query example, and the nature of the results (includes bill summary). It could mention pagination or default sorting, but the provided information is sufficient for basic use.

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

Parameters4/5

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

The schema already describes all 8 parameters with 100% coverage. The description adds value by providing a concrete usage example mapping 'committeeNameContains' and 'activityNameContains' to a query, which clarifies how to use these parameters together.

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

Purpose5/5

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

The description clearly states the tool finds committee activities and their related bills, providing a specific verb-resource pair. The example with 'committeeNameContains' and 'activityNameContains' distinguishes it from siblings like search_bills or search_actions, which focus on other aspects.

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

Usage Guidelines4/5

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

The description gives a concrete example of when to use it (e.g., 'bills referred to the Commerce Committee recently'), making the usage context clear. However, it does not explicitly mention when not to use it or compare with sibling tools beyond the implicit differentiation.

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

search_cosponsorsSearch cosponsorsA

Search bill cosponsorship records across bills. Useful for finding all the bills a member has cosponsored, or analysing cosponsorship by state/party. To get the cosponsors of a specific bill, prefer get_bill with includeCosponsors: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
bioguideIdNoBioguide ID of the cosponsoring member.
fullNameContainsNoSubstring to match within the member's full name.
stateNoTwo-letter state code, e.g. 'TX'.
partyNoParty, e.g. 'R', 'D', 'I'.
isOriginalCosponsorNoFilter to original cosponsors only (true) or later ones (false).
sortByNoField to sort by. Default: sponsorshipDate.
sortOrderNoSort direction. Default: DESC.
limitNoMax results to return (1-50). Default 10.
afterNoRelay pagination cursor. Pass the `pageInfo.endCursor` from a previous result to fetch the next page.

TDQS

A3.9/5.0
Behavior2/5

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 does not state that the tool is read-only, mention any side effects, authentication requirements, rate limits, or pagination behavior beyond the 'after' parameter. The description is minimal and lacks transparency about the nature of the operation.

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

Conciseness5/5

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

The description is short, with two sentences that front-load the purpose and provide usage guidance. No irrelevant information, every sentence earns its place.

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

Completeness3/5

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

Given the tool has 9 parameters and no output schema, the description provides a general purpose and use cases but does not describe the output structure or return format. It is moderately complete but could be improved by mentioning typical query results.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add significant extra meaning to the parameters beyond what the schema provides, though it implies using bioguideId for finding a member's cosponsored bills.

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

Purpose5/5

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

The description clearly states 'Search bill cosponsorship records across bills' and distinguishes from sibling tool get_bill which retrieves cosponsors for a specific bill. The verb 'search' and resource 'cosponsorship records' are specific.

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

Usage Guidelines5/5

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

The description explains when to use this tool (to find all bills a member cosponsored or analyze by state/party) and explicitly states an alternative: 'To get the cosponsors of a specific bill, prefer get_bill with includeCosponsors: true.'

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

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct entity or operation: bill lookup, generic node fetch, arbitrary GraphQL queries, and searches for actions, bills, committees, and cosponsors. No two tools have overlapping purposes.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (e.g., get_bill, search_actions), but graphql_query breaks this by using a noun_noun format. Overall naming is still consistent and predictable.

Tool Count5/5

Seven tools is well-scoped for the legislative domain, covering core entities (bills, actions, committees, cosponsors) plus a generic query tool. Not too many or too few.

Completeness5/5

The tool set covers bill retrieval, search, and relational data (actions, committees, cosponsors). The graphql_query tool fills any gaps, making the surface effectively complete for read-only legislative data access.

Maintenance

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server for the Congress.gov API that consolidates 91 operations into 6 comprehensive legislative tools that can be used by any MCP client (i.e. Claude Desktop), or MCP-compatible AI agent, to query and reason about congressional data.
    14
    1
    JavaScript
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    The 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.
    24
    32
    Sustainable Use v1.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying U.S. legislative data from Congress.gov API using MCP resources for direct lookups and tools for searching and retrieving related data.
    8
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying legislative data from the LegiScan API, including bills and votes, via natural language through an MCP gateway.
    10
    MIT

Latest Blog Posts

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/adathouse/cdgmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server