Skip to main content
Glama
anguslin

MCP Capitol Trades Server

by anguslin

MCP Capitol Trades Server

A Model Context Protocol (MCP) server that extracts politician stock trades with prices from Capitol Trades. Get detailed trade information including politicians, dates, transaction types, sizes, and prices. No API Key required.

✨ Why This MCP Server?

  • πŸ†“ 100% Free - No API key required

  • πŸš€ Easy Setup - Install and go

  • πŸ“Š Analytics Tools - Top stocks, buy momentum, party analysis

  • 🎯 Advanced Filtering - By stock, politician, party, transaction type

  • πŸ’° Real-time Data - Prices and transaction details

Related MCP server: quiver-quant-mcp

Quick Start

Get politician stock trades with prices from Capitol Trades. Simply ask Cursor or VS Code AI to get trades for any stock!

Example: "Get politician trades for Microsoft in the last 90 days"

Installation

Choose Option 1 for a quick start from npm, or Option 2 to build from source.

npm install -g @anguslin/mcp-capitol-trades

That's it! The package is installed globally.

πŸŽ‰ No API key or authentication needed! All data is public Congressional financial disclosures.

Option 2: Install from Source

If you want to build from source or contribute:

git clone https://github.com/anguslin/mcp-capitol-trades
cd mcp-capitol-trades
npm install
npm run build

βœ… Status: Build folder contains the compiled JavaScript at build/src/index.js

Configuration

Configure Cursor/VS Code to use the MCP server.

Step 1: Open MCP Settings

  1. Press Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS)

  2. Type "MCP Settings" and select "MCP: Edit Settings" or "Preferences: Open User Settings (JSON)"

Step 2: Add Configuration

If you installed from npm (Option 1):

{
  "mcpServers": {
    "mcp-capitol-trades": {
      "command": "mcp-capitol-trades"
    }
  }
}

If you installed from source (Option 2):

{
  "mcpServers": {
    "mcp-capitol-trades": {
      "command": "node",
      "args": [
       "C:/Users/anguslin/Projects/mcp-capitol-trades/build/src/index.js"
      ]
    }
  }
}

Important: Update the path to your actual project location for source installs!

Step 3: Save and Restart

  1. Save the settings file (Ctrl+S / Cmd+S)

  2. Restart Cursor/VS Code completely to load the MCP server

Verify Installation

After restarting, you should see the MCP Capitol Trades server available in your AI chat interface.

Tools Provided

Tool

Description

get_politician_trades

Extract politician trades with advanced filtering options

get_top_traded_assets

Get the most traded assets (stocks, ETFs, mutual funds, bonds) by politicians ranked by volume

get_politician_stats

Get comprehensive statistics for a specific politician

get_asset_stats

Get comprehensive statistics for a specific asset (stock, ETF, mutual fund, bond)

get_buy_momentum_assets

Get assets (stocks, ETFs, mutual funds, bonds) with high buy momentum from politician activity

get_party_buy_momentum

Get buy momentum broken down by political party for all asset types


get_politician_trades

Extract politician trades with advanced filtering options. Get detailed trade information including transaction types, sizes, and prices.

Parameters:

  • symbol (optional): Asset ticker or name (e.g., 'Apple', 'AAPL', 'VOO')

  • politician (optional): Politician name (e.g., 'Nancy Pelosi')

  • party (optional): "DEMOCRAT" or "REPUBLICAN"

  • type (optional): Array - ["BUY", "SELL", "RECEIVE", "EXCHANGE"]

  • days (optional): 30, 90, 180, or 365 (default: 90)

Example Prompts:

"Show me all politician trades for Apple"
"What did Nancy Pelosi trade recently?"
"Get Democrat buys in the last 90 days"
"Find all Republican trades for Microsoft"
"What trades did Nancy Pelosi make in the last 30 days?"

get_top_traded_assets

Get the most traded assets (stocks, ETFs, mutual funds, bonds) by politicians over a time period, ranked by number of trades.

Parameters:

  • limit (optional): Number of top assets to return (default: 10, max: 50)

  • days (optional): 30, 90, 180, or 365 (default: 90)

Example Prompts:

"What assets are politicians trading the most?"
"Show me the top 20 most traded assets in the last 180 days"
"What are the most popular assets among politicians?"

get_politician_stats

Get comprehensive statistics for a specific politician including total trades, buy/sell ratio, top holdings, and trading activity breakdown.

Parameters:

  • politician (required): Politician name (e.g., 'Nancy Pelosi', 'Michael')

  • days (optional): 30, 90, 180, or 365 (default: 90)

Example Prompts:

"Get detailed stats for Nancy Pelosi's trading"
"Show me Michael Jordan's trading statistics"
"What are Nancy Pelosi's top holdings?"
"Give me a breakdown of Pelosi's trading activity"

get_asset_stats

Get comprehensive statistics for a specific asset (stock, ETF, mutual fund, bond) including total trades, buy/sell ratio, most active traders, and trading activity breakdown.

Parameters:

  • symbol (required): Ticker or asset name (e.g., 'Apple', 'AAPL', 'VOO', 'Microsoft')

  • days (optional): 30, 90, 180, or 365 (default: 90)

Example Prompts:

"Show me detailed statistics for Microsoft"
"What are the stats for VOO trading?"
"Who are the most active traders of Apple stock?"
"Get buy/sell breakdown for NVDA"

get_buy_momentum_assets

Get assets (stocks, ETFs, mutual funds, bonds) with high buy momentum from politician trading activity. Shows assets where politicians are net buyers with scoring based on volume and conviction.

Parameters:

  • limit (optional): Number of top assets to return (default: 10, max: 50)

  • days (optional): 30, 90, 180, or 365 (default: 90)

Example Prompts:

"Which stocks should I be buying?"
"Show me assets with strong buy momentum"
"What are politicians buying the most?"
"Find stocks with high buying pressure from congress"

get_party_buy_momentum

Get buy momentum broken down by political party. Shows consensus assets (stocks, ETFs, mutual funds, bonds) where both parties are buying, Democrat favorites, and Republican favorites.

Parameters:

  • limit (optional): Number of top assets per category (default: 5, max: 20)

  • days (optional): 30, 90, 180, or 365 (default: 90)

Example Prompts:

"What are Democrats vs Republicans buying?"
"Show me party-specific buy momentum"
"Which stocks do Democrats favor?"
"What are Republicans buying most?"
"Find consensus stocks that both parties are buying"

Tips

  • Search by company name or ticker (e.g., "Apple" or "AAPL")

  • Search by politician first, last, or full name (e.g., "Nancy", "Pelosi", "Nancy Pelosi")

  • Supports ETFs and bonds too (e.g., "VOO", "VBTLX")

  • All parameters are optional for flexible queries

  • Use natural language to query any of the tools above

Technical Details

  • Protocol: Model Context Protocol (MCP)

  • Transport: stdio

  • Language: TypeScript

  • Runtime: Node.js 18+

  • Dependencies:

    • @modelcontextprotocol/sdk - MCP SDK

    • axios - HTTP client

    • cheerio - HTML parsing (static, fast, no browser required)

Additional Documentation

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Support

For issues, questions, or contributions, please open an issue on the GitHub repository.

Available Tools

6 tools
get_asset_statsB

Get comprehensive statistics for a specific asset (stock, ETF, mutual fund, bond) including total trades, buy/sell ratio, most active traders, and trading activity breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back for trades. Must be one of: 30, 90, 180, or 365 days
symbolYesThe ticker symbol or company/asset name (e.g., 'Apple', 'AAPL', 'VOO', 'Microsoft').

TDQS

B3.3/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 full burden. It lists output components but does not disclose behavioral traits such as whether it is read-only, response structure, or any limitations. The description only says what stats are included, not 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.

Conciseness5/5

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

The description is a single, focused sentence that front-loads the main action and lists key output components without unnecessary detail or repetition.

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

Completeness3/5

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

The tool has only 2 well-documented parameters, but the lack of an output schema means the description must convey return structure. It lists several stats but not a full breakdown, and it lacks usage alternatives. It is adequate but has gaps in usage and output details.

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 documents both parameters with clear descriptions, covering 100% of parameters. The description adds minimal extra value by clarifying accepted asset types, but does not enhance parameter semantics beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states 'Get comprehensive statistics for a specific asset' which identifies the verb and resource, and lists asset types (stock, ETF, mutual fund, bond). It distinguishes from sibling tools like get_top_traded_assets by emphasizing 'specific asset', though it does not explicitly name alternatives.

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

Usage Guidelines3/5

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

Usage is implied through 'specific asset' but there is no explicit guidance on when to use this tool versus siblings. No exclusions or alternative tool suggestions are provided.

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

get_buy_momentum_assetsA

Get assets (stocks, ETFs, mutual funds, bonds) with high buy momentum from politician trading activity. Shows assets where politicians are net buyers (more buys than sells) with scoring based on volume and conviction.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back for trades. Must be one of: 30, 90, 180, or 365 days
limitNoNumber of top assets to return (default: 10, max: 50)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It meaningfully explains that the tool shows assets where politicians are net buyers (more buys than sells) and mentions scoring based on volume and conviction. This adds value beyond the tool name and gives insight into how results are derived, though it does not discuss data freshness or limitations.

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 consists of two concise sentences that are front-loaded with the primary action and resource, followed by clarifying detail. Every sentence earns its place with no filler or redundancy.

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?

The tool is relatively simple with only two optional parameters and no output schema. The description explains what the tool does and the core behavioral logic, which is sufficient for a user to understand when to use it and what to expect. It could be slightly more complete with explicit mention of output format, but that is not essential given the tool's simplicity.

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?

The input schema already provides full descriptions for both parameters (days and limit), achieving 100% schema coverage. The description does not add any additional parameter-specific semantics beyond what the schema states, so the baseline score of 3 is appropriate.

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 starts with 'Get assets' immediately indicating the action and resource, and specifies the asset types (stocks, ETFs, mutual funds, bonds) and the specific filter (high buy momentum from politician trading activity). This clearly distinguishes it from sibling tools like get_top_traded_assets, which likely covers all trades volume, whereas this focuses on buy momentum.

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 provides clear context: use this tool when you want to see assets with high buy momentum from political trading. It implies a specific use case without explicitly stating when not to use it or naming alternatives, but the purpose is clear enough to guide selection among siblings.

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

get_party_buy_momentumA

Get buy momentum broken down by political party. Shows consensus assets (stocks, ETFs, mutual funds, bonds) where both parties are buying, Democrat favorites, and Republican favorites with detailed buy/sell breakdowns.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back for trades. Must be one of: 30, 90, 180, or 365 days
limitNoNumber of top assets per category to return (default: 5, max: 20)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral disclosure burden. It describes the output categories and the 'detailed buy/sell breakdowns,' which helps set expectations. However, it does not address potential behaviors such as sorting, default parameter effects, or whether the data is real-time or historical, leaving some ambiguity.

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 main purpose, and then enumerates the specific categories returned. Every sentence adds valuable detail without redundancy or wasted words.

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?

The description sufficiently explains the tool's scope and output categories for a read-only analytical tool. It mentions consensus assets, party favorites, and breakdowns, which gives a clear picture of the returned data. However, without an output schema, more detail on the exact response structure could enhance completeness, but it is not a major gap.

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?

The input schema already provides full descriptions for both parameters (days and limit) with enums and defaults, so schema coverage is 100%. The description adds no additional information about these parameters, so it does not enhance parameter understanding beyond what the schema already offers.

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's function: retrieving buy momentum data specifically broken down by political party. It further distinguishes itself from siblings by naming the distinct categories (consensus, Democrat favorites, Republican favorites), making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies the tool is for party-based buy momentum analysis, but it does not explicitly state when to use it over alternatives like get_buy_momentum_assets or get_top_traded_assets. There are no exclusion criteria or mention of intended scenarios, so guidance is implied rather than explicit.

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

get_politician_statsA

Get comprehensive statistics for a specific politician including total trades, buy/sell ratio, top holdings, and trading activity breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back for trades. Must be one of: 30, 90, 180, or 365 days
politicianYesThe politician name to search for (e.g., 'Nancy Pelosi', 'Michael').

TDQS

A4/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 discloses the output contents (total trades, buy/sell ratio, top holdings, activity breakdown) and implies a read-only aggregation behavior. While it does not mention rate limits, errors, or data freshness, it provides solid transparency about what information the tool returns.

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 a single, well-structured sentence that front-loads the primary action ('Get comprehensive statistics') and immediately lists the included data categories. Every phrase contributes meaning, with no redundancy or filler.

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?

Since there is no output schema, the description compensates by enumerating the return components (total trades, buy/sell ratio, top holdings, activity breakdown). It does not specify the exact response structure or edge-case behavior, but for a stats tool with only two parameters, this is adequately complete for an agent to understand the expected result.

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% because both parameters ('politician' and 'days') have descriptive text and 'days' includes an enum. The tool description does not add extra meaning beyond the schema; it simply confirms the politician focus. As a result, the description neither enhances nor detracts from the schema's clarity.

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 a specific verb 'Get' and resource 'comprehensive statistics for a specific politician', explicitly listing the contained metrics (total trades, buy/sell ratio, top holdings, trading activity breakdown). This clearly distinguishes it from sibling tools like get_politician_trades (which likely returns raw trades) and asset-focused tools.

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

Usage Guidelines3/5

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

The description implies usage for high-level aggregate statistics on a single politician, which indirectly differentiates it from raw trade lists or asset-level metrics. However, it does not explicitly state when to use this tool over alternatives or mention any exclusions, leaving the agent to infer based on the name and siblings.

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

get_politician_tradesB

Get politician trades with advanced filters. Filter by issuer, politician, party, transaction type, and time period.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back for trades. Must be one of: 30, 90, 180, or 365 days
typeNoFilter by transaction type(s). Can specify any combination of 'BUY', 'SELL', 'RECEIVE', 'EXCHANGE'. If all 4 are specified or empty array, treats as ALL (no filter).
partyNoFilter by party affiliation. Options: 'DEMOCRAT' or 'REPUBLICAN'. If null or not provided, treats as ALL (no filter).
symbolNoOptional: The ticker symbol or company/asset name (e.g., 'Apple', 'AAPL', 'VOO'). If provided, filters trades for that asset.
politicianNoOptional: The politician name to search for (e.g., 'Michael', 'Nancy Pelosi'). If provided, filters trades for that politician.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only lists filter categories. It does not mention default timeframes (90 days), how filters combine (AND/OR), response format, pagination, or any side effects. This is a significant gap for a tool with 5 optional parameters.

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

Conciseness4/5

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

The description is concise and front-loaded with the primary action. It contains no unnecessary words and is easily parsed. However, it could be slightly more informative without harming conciseness, such as mentioning defaults or that all filters are optional.

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

Completeness2/5

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

Given the tool's complexity (5 optional parameters, no annotations, no output schema), the description is incomplete. It fails to explain default behavior, how multiple filters combine, what the response includes, or any rate limits. The schema covers parameters, but the overall context is lacking.

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 the baseline is 3. The description adds little beyond the schema; it merely summarizes filter cats, such as 'issuer' for symbol and 'time period' for days. It does not explain parameter interactions or provide additional detail.

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's function: retrieving politician trades. It specifies the resource ('politician trades') and lists the available filters (issuer, politician, party, transaction type, time period), which distinguishes it from sibling tools that focus on stats or momentum.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention any exclusions, preferred use cases, or situational context. It only implies a general purpose, leaving the agent to infer when it is appropriate.

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

get_top_traded_assetsA

Get the most traded assets (stocks, ETFs, mutual funds, bonds) by politicians over a time period, ranked by number of trades.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to look back for trades. Must be one of: 30, 90, 180, or 365 days
limitNoNumber of top assets to return (default: 10, max: 50)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It states the ranking criterion ('ranked by number of trades') and the scope ('by politicians'), but it does not disclose return format, whether buys and sells are combined, or any other caveats. As a read-only 'Get' tool, the safety profile is inferable, but additional details would improve transparency.

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 a single, well-structured sentence that front-loads the core purpose and includes all key details (asset types, actor, time period, ranking) without redundancy or wasted words.

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 list tool with two optional parameters and no output schema, the description is largely complete. It tells the agent what the tool returns (top traded assets) and how they are ranked. However, lacking any mention of the response structure is a minor gap, given the absence of an output schema.

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% for both parameters (days and limit), so the baseline is 3. The description adds a semantic link by mentioning 'over a time period' (mapping to days) but does not explain limit or provide value beyond the schema's existing descriptions.

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 identifies the verb ('Get'), the resource ('most traded assets'), and the specific qualifiers ('by politicians over a time period, ranked by number of trades'). It effectively distinguishes itself from siblings like get_asset_stats (per-asset stats) and get_buy_momentum_assets (momentum-based) by focusing on aggregated trade frequency.

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

Usage Guidelines3/5

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

The description implies a use case (ranking assets by politician trading activity) but does not explicitly state when to use this tool versus alternatives like get_politician_trades or get_party_buy_momentum. There is no mention of exclusions or specific scenarios, so guidance is implied rather than explicit.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.1
    • First observedget_asset_stats
    • First observedget_buy_momentum_assets
    • First observedget_party_buy_momentum
    • First observedget_politician_stats
    • First observedget_politician_trades
    • First observedget_top_traded_assets

TDQS

A4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: ranking top assets, per-politician stats, per-asset stats, buy momentum assets, party-specific buy momentum, and filtered trade listings. Even though several tools involve assets, the specific focus and output differ enough to avoid confusion.

Naming Consistency5/5

All tool names follow a consistent 'get_' + descriptive noun phrase pattern (e.g., get_politician_stats, get_buy_momentum_assets). The naming is uniform, lowercase with underscores, making it predictable and easy to navigate.

Tool Count5/5

The server has 6 tools, well within the ideal 3-15 range. Each tool covers a distinct informational need for tracking political trading activity, and none feel superfluous or missing.

Completeness5/5

The tool surface comprehensively covers the domain of congressional trading analytics: rankings, entity-specific stats, momentum analysis, party breakdowns, and raw trade queries with filters. No obvious gaps exist for the intended use case.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying and analysis of US congressional stock-trade disclosures from capitoltrades.com, providing tools for filtering, ranking, and exporting trade data.
    1
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying alternative financial data including congressional trades, insider transactions, government contracts, and WallStreetBets activity through the Quiver Quantitative API.
    1
    -
  • A
    license
    B
    quality
    A
    maintenance
    Provides access to Unusual Whales market data including options flow, dark pool activity, congressional trades, and more via natural language queries.
    16
    7 npm
    79
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying of U.S. congressional stock trade data, including price history, recent trades, buy signals, stock activity, and politician activity, through natural language tools.
    1
    MIT