lynx-mi/lynx-mi-mcp
Enables analysis of Apple's insider trading activity, political intelligence scores, and market data through tools like get_trades_by_ticker and get_nexus_score for comprehensive market intelligence on the company.
Integrates with Google Gemini CLI to provide access to Lynx MI's market intelligence platform, enabling analysis of insider trades, market sentiment, political intelligence, and sector flows through the MCP protocol.
Provides tools to analyze Tesla's insider trading patterns, including recent trades, insider activity, and market intelligence through specific ticker-based queries and analytics.
π Lynx MI β MCP Server
Model Context Protocol server for Lynx Market Intelligence
Give your AI coding assistant real-time access to SEC insider trading data, market sentiment, political intelligence, and more.
What is this?
This MCP server connects AI coding assistants like Claude, Cursor, Windsurf, and Cline directly to Lynx MI β a market intelligence platform that tracks SEC insider trades, congressional stock transactions, lobbying activity, and more.
Once connected, you can ask your AI assistant questions like:
"What insider trades happened at NVDA this week?"
"Show me the top insiders by performance over 90 days"
"Which sectors are insiders buying the most right now?"
"Are any insiders trading near upcoming earnings dates?"
"What's the Nexus political intelligence score for AAPL?"
Related MCP server: mcp-finnhub
Prerequisites
Node.js 18+
A Lynx MI account with an Advanced subscription or higher
A Personal API Key (generate at lynx-mi.com/settings)
Quick Setup
Claude Desktop
Add this to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"lynx-mi": {
"command": "npx",
"args": ["-y", "lynx-mi-mcp-server"],
"env": {
"LYNX_MI_API_KEY": "sk_live_your_key_here"
}
}
}
}Cursor
Go to Settings β MCP Servers β Add new server and use:
{
"command": "npx",
"args": ["-y", "@lynx-mi/mcp-server"],
"env": {
"LYNX_MI_API_KEY": "sk_live_your_key_here"
}
}Windsurf / Cline
Add to your MCP configuration:
{
"lynx-mi": {
"command": "npx",
"args": ["-y", "@lynx-mi/mcp-server"],
"env": {
"LYNX_MI_API_KEY": "sk_live_your_key_here"
}
}
}Google Gemini CLI
Add to your ~/.gemini/settings.json:
{
"mcpServers": {
"lynx-mi": {
"command": "npx",
"args": ["-y", "@lynx-mi/mcp-server"],
"env": {
"LYNX_MI_API_KEY": "sk_live_your_key_here"
}
}
}
}Available Tools
π Trades
Tool | Description |
| Recent SEC insider trades with filters |
| All insider activity for a stock |
| All trades by a specific insider |
| Search insiders by name |
| Search tickers by symbol or name |
π Market Intelligence
Tool | Description |
| Current market insider buy/sell ratio |
| Stocks with highest insider volume |
| Detailed insider profile & stats |
π¬ Pro Analytics
Tool | Description |
| Money flow by sector (leading indicator) |
| Hidden company connections via shared insiders |
| Network graph of insider-company relationships |
| Most connected insiders & companies |
| Volume heatmap by ticker |
| Trades near upcoming earnings (β οΈ high signal) |
| Compare insider's last two SEC filings |
| Trade conviction score breakdown |
π Leaderboard
Tool | Description |
| Top insiders by 30/90-day returns |
| Specific insider's rank & stats |
ποΈ Nexus (Political Intelligence)
Tool | Description |
| Combined political + lobbying + insider score |
| US Congress member stock trades |
| Corporate lobbying reports & spend |
Time-Series & Supply Chain Intelligence
In addition to real-time insider trading, Lynx MI provides deep, historical time-series data and relational graphs to power advanced AI quantitative analysis:
Congressional & Executive Trading (STOCK Act): Query historical time-series data of stock transactions by US Senators, Representatives, and their families. Track portfolio changes aligned with specific legislative events or committee assignments to uncover political information advantages.
Corporate Lobbying Expenditures (LDA): Access quarter-by-quarter historical time-series of lobbying spend. Track which bills and government agencies specific companies are targeting, offering predictive insights into upcoming regulatory headwinds or tailwinds.
Supplier & Customer Supply Chain Graph: Extract complex B2B dependencies. Map out tier-1 and tier-2 suppliers, key customer relationships, and revenue exposure. If one company inside the network crashes or secures a massive contract, your AI assistant can trace the direct financial impact down the supply chain using our Nexus endpoints.
Example Conversations
Research a stock
You: What's the insider trading activity at Tesla?
Claude: Uses
get_trades_by_tickerwith ticker="TSLA" I found 12 insider trades at Tesla in the last 90 days...
Detect signals
You: Are there any suspicious trades near earnings?
Claude: Uses
get_earnings_proximityI found 5 trades within 7 days of upcoming earnings...
Political intelligence
You: What's the political risk for Apple?
Claude: Uses
get_nexus_scorewith ticker="AAPL" Apple's Nexus score is 72/100, driven by heavy lobbying spend...
Getting Your API Key
Go to lynx-mi.com and create an account
Subscribe to the Advanced plan or higher
Navigate to Settings β API Key
Click Generate API Key
Copy the
sk_live_...key into your MCP configuration
Development
# Install dependencies
npm install
# Run in development mode
LYNX_MI_API_KEY=sk_live_... npm run dev
# Build for production
npm run build
# Test the built server
LYNX_MI_API_KEY=sk_live_... npm startPricing
The MCP server is free and open source. You only pay for the Lynx MI subscription that provides the API key:
Plan | Price | MCP Access |
Free | $0/mo | β |
Recreational | $9.99/mo | β |
Advanced | $24.99/mo | β All tools |
Enterprise | $49.99/mo | β All tools + Nexus |
License
MIT Β© Lynx MI
Available Tools
21 toolsget_congressional_tradesC
Get recent stock trades by US Congress members (House and Senate). Filterable by ticker.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | No | Optional: filter by ticker symbol | |
| days | No | Look back N days (default: 90) | |
| limit | No | Max results (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions filtering by ticker but lacks details on permissions, rate limits, data freshness, pagination, or error handling. For a data retrieval tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely conciseβtwo sentences that directly state the tool's purpose and a key feature (filtering). It's front-loaded with essential information and has zero wasted words, making it highly efficient for quick understanding.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain return values, data format, or behavioral traits like rate limits. For a tool with three parameters and no structured safety hints, more context is needed to ensure reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the three parameters (ticker, days, limit). The description adds minimal value beyond the schema by mentioning ticker filtering but doesn't elaborate on parameter interactions or semantics. Baseline 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get recent stock trades by US Congress members (House and Senate).' It specifies the resource (stock trades), actors (Congress members), and scope (recent, filterable). However, it doesn't explicitly differentiate from sibling tools like 'get_latest_trades' or 'get_trades_by_insider', which might overlap in functionality.
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 minimal usage guidance: 'Filterable by ticker.' It doesn't specify when to use this tool versus alternatives like 'get_trades_by_insider' or 'get_latest_trades', nor does it mention any prerequisites, exclusions, or optimal contexts for use. The guidance is insufficient for informed tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conviction_scoreC
Get the conviction score breakdown for a specific trade. Scores factor in trade size relative to holdings, cluster patterns, C-suite status, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| trade_id | Yes | The unique trade ID (UUID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions factors like trade size, cluster patterns, and C-suite status, which add some context about how the score is calculated. However, it lacks critical details such as whether this is a read-only operation, what the output format looks like, potential rate limits, or error conditions. The description is insufficient for a tool with no annotation coverage.
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, efficient sentence that front-loads the core purpose. It avoids unnecessary words and directly states what the tool does. However, it could be slightly more structured by separating usage guidelines or behavioral details, but it earns its place as concise and well-focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a scoring tool with no annotations and no output schema, the description is incomplete. It explains the factors considered in the score but doesn't cover the return values, error handling, or operational constraints. For a tool that likely outputs a structured score breakdown, more context is needed to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'trade_id' documented as a UUID. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't clarify format examples or constraints). Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't need to compensate but also adds no extra 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 action ('Get') and resource ('conviction score breakdown for a specific trade'), specifying what the tool does. It distinguishes from siblings by focusing on conviction scores rather than other data types like trades, correlations, or network info. However, it doesn't explicitly differentiate from get_nexus_score (another scoring tool), leaving some ambiguity.
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 doesn't mention prerequisites (e.g., needing a valid trade ID), exclusions, or comparisons to sibling tools like get_nexus_score or get_insider_profile, which might offer related insights. Usage is implied only by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_correlationsA
Find other stocks traded by the same insiders who trade a given ticker. Reveals hidden connections between companies through shared insider activity.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | The source ticker to find correlations for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what the tool does ('Find other stocks', 'Reveals hidden connections') but does not disclose behavioral traits such as whether it requires authentication, rate limits, data freshness, or what the output format looks like (e.g., list of tickers with correlation scores). This leaves significant gaps for an agent to understand how to invoke and interpret results.
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 and concise with two sentences that efficiently convey the tool's purpose and value. Every sentence earns its place by stating the action and the insight gained, with no redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (finding correlations based on insider activity) and the absence of annotations and output schema, the description is incomplete. It explains the purpose but lacks details on behavioral aspects, output format, and usage nuances. However, it adequately covers the core functionality for a read-only query tool with a single parameter.
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 100% coverage with a clear description for the 'ticker' parameter. The description adds minimal semantic value beyond the schema by implying the ticker is used to find correlations through shared insider activity, but it does not provide additional details like format constraints or examples. With high schema coverage, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Find other stocks', 'Reveals hidden connections') and identifies the resource ('stocks traded by the same insiders who trade a given ticker'). It distinguishes from siblings by focusing on correlation through shared insider activity rather than direct trades, profiles, or other metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('to find correlations for' a ticker) but does not explicitly state when to use this tool versus alternatives like get_insider_network or get_trades_by_ticker. It suggests the tool reveals connections through shared insider activity, which provides some guidance but lacks explicit comparisons or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_proximityA
Flag insider trades that occurred suspiciously close to upcoming earnings dates. A powerful signal for potential information asymmetry.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool is 'a powerful signal' but lacks details on what 'Flag' entails (e.g., returns a list, triggers alerts, requires authentication), rate limits, or data sources. This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.
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 that are front-loaded with the main purpose and efficiently add context about the tool's significance ('A powerful signal for potential information asymmetry'). Every word contributes to understanding without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (analyzing insider trades relative to earnings dates), no annotations, and no output schema, the description is incomplete. It lacks details on return values (e.g., what data is flagged), behavioral traits, or error handling, making it adequate but with clear gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage, so the baseline is 3. The description does not add specific parameter details beyond the schema, but since there is only one optional parameter ('limit'), the tool's core functionality is well-defined without heavy reliance on parameters, justifying a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Flag') and resource ('insider trades'), specifying the condition 'that occurred suspiciously close to upcoming earnings dates'. It distinguishes from siblings like 'get_latest_trades' or 'get_trades_by_insider' by focusing on temporal proximity to earnings events, not just retrieving trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for detecting 'potential information asymmetry' around earnings dates, suggesting context for regulatory or investigative scenarios. However, it does not explicitly state when to use this tool versus alternatives like 'get_congressional_trades' or 'search_insider', nor does it provide exclusions or prerequisites for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filing_diffB
Compare an insider's last two SEC filings to see what changed β position size, price, title, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| insider_name | Yes | Full name of the insider |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only comparison operation but fails to specify critical details like error handling (e.g., if the insider has fewer than two filings), output format, or any rate limits or authentication requirements.
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, efficient sentence that front-loads the core purpose and includes specific examples of changes. There is no wasted verbiage, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of comparing SEC filings and the lack of annotations or output schema, the description is incomplete. It omits details on output structure, error conditions, and behavioral constraints, leaving significant gaps for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter 'insider_name' as a full name. The description adds no additional semantic context, such as name formatting examples or how it matches against SEC data, maintaining the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Compare'), resource ('an insider's last two SEC filings'), and scope ('what changed β position size, price, title, and more'), distinguishing it from sibling tools like get_insider_profile or get_latest_trades that focus on different aspects of insider data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as get_latest_trades for recent activity or get_insider_profile for general information. It also lacks prerequisites, like whether the insider must have at least two filings available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_networkC
Build a network graph centered on an insider or company, showing all connected entities. Reveals the web of insider relationships.
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | The insider name or ticker symbol to center the graph on | |
| node_type | No | Whether node_id is an insider name or company ticker (default: 'insider') | |
| depth | No | Graph traversal depth: 1 or 2 (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Reveals the web of insider relationships,' which implies a read-only operation, but does not specify permissions, rate limits, data freshness, or output format. For a tool with no annotations and no output schema, this is insufficient to inform the agent about key behavioral traits like response structure or constraints.
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 concise and front-loaded, with two sentences that directly state the tool's purpose. There is no unnecessary information, and each sentence contributes to understanding the tool's function. However, it could be slightly improved by integrating usage hints or behavioral details without adding 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 complexity of building a network graph, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral traits, output format, and usage context. While the purpose is clear, the agent would struggle to understand how to interpret results or when to prefer this tool over siblings, making it inadequate for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the input schema already documents all parameters well. The description adds minimal value beyond the schema, as it does not explain parameter interactions or provide additional context. For instance, it does not clarify how 'depth' affects the graph or what 'connected entities' entail. Baseline 3 is appropriate since the schema handles most of the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Build a network graph centered on an insider or company, showing all connected entities.' It specifies the verb ('build'), resource ('network graph'), and scope ('centered on an insider or company'), but does not explicitly differentiate it from sibling tools like 'get_network_top' or 'get_insider_profile', which might have overlapping functionality. This makes it clear but not fully distinguished from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the purpose but does not specify scenarios, prerequisites, or exclusions. For example, it does not compare to 'get_network_top' or 'get_insider_profile', leaving the agent to infer usage based on tool names alone. This lack of explicit context reduces its effectiveness in guiding tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_profileC
Get a detailed profile of a specific insider: trading history, avg trade size, sectors, and behavioral patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| insider_name | Yes | Full name of the insider |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a detailed profile, implying a read-only operation, but does not disclose any behavioral traits such as rate limits, authentication requirements, data freshness, or potential errors. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get a detailed profile of a specific insider') and lists key components without unnecessary elaboration. It is appropriately sized for the tool's complexity, with no wasted words, though it could be slightly more structured by separating usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (detailed profile with multiple data points), lack of annotations, and no output schema, the description is incomplete. It does not explain what the return values include beyond high-level categories, nor does it cover behavioral aspects like performance or limitations. For a tool with rich expected output and no structured support, the description should provide more context to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'insider_name' documented as 'Full name of the insider'. The description adds no additional meaning beyond this, as it does not explain parameter semantics like format constraints or examples. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema already handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a detailed profile of a specific insider' with specific components like trading history, average trade size, sectors, and behavioral patterns. It distinguishes itself from siblings like get_insider_network or get_insider_rank by focusing on a comprehensive individual profile rather than network connections or rankings. However, it could be more specific about what distinguishes it from get_trades_by_insider, which might overlap in trading 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 no guidance on when to use this tool versus alternatives. It does not mention when to choose this over siblings like search_insider, get_trades_by_insider, or get_insider_network, nor does it specify any prerequisites or exclusions. The context is implied (e.g., when detailed insider info is needed), but explicit usage guidelines are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_rankC
Get a specific insider's rank and performance stats on the leaderboard.
| Name | Required | Description | Default |
|---|---|---|---|
| insider_name | Yes | Full name of the insider |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation by using 'Get', but doesn't specify authentication needs, rate limits, error handling, or the format of returned stats. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for a simple tool, making it easy to parse and understand quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'rank and performance stats' entail, how they're formatted, or any prerequisites like authentication. For a tool that likely returns structured data, more context is needed to fully guide the agent.
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 no specific meaning beyond the input schema, which has 100% coverage for the single parameter 'insider_name'. Since the schema already fully documents the parameter, the baseline score of 3 is appropriate, as the description doesn't compensate with additional context or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('a specific insider's rank and performance stats on the leaderboard'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'get_insider_profile' or 'get_leaderboard', which might provide overlapping or related information, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_insider_profile' for broader details or 'get_leaderboard' for overall rankings, leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_tradesA
Get the most recent insider trades filed with the SEC. Filter by ticker symbol, insider name, signal type (buy/sell/corp), and time window. Returns trade details including conviction scores.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | No | Filter by stock ticker symbol (e.g. AAPL, TSLA) | |
| insider_name | No | Filter by insider's name | |
| signal_type | No | Filter by signal type: 'buy' (open-market purchases), 'sell' (open-market sales), 'corp' (corporate actions like grants/exercises) | |
| days | No | Look back N days (default: 7) | |
| limit | No | Max results to return (default: 25, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool's behavior as a read operation ('Get', 'Returns') and mentions filtering capabilities and return content. However, it omits details like rate limits, authentication needs, pagination, or error handling, which are important for a tool with multiple parameters and no output schema.
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, followed by filtering options and return details in a single, efficient sentence. Every part earns its place without redundancy, making it easy to scan and understand quickly.
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 5 parameters, no annotations, and no output schema, the description is moderately complete. It covers the tool's purpose, filtering, and return content, but lacks behavioral details (e.g., rate limits, defaults beyond schema) and does not explain the structure of returned trade details or conviction scores, leaving gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds minimal value beyond the schema by listing filter types (ticker, insider name, signal type, time window) and mentioning conviction scores in returns, but does not provide additional syntax, format, or usage details for parameters. Baseline 3 is appropriate given high 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's purpose with specific verbs ('Get', 'Filter', 'Returns') and resources ('most recent insider trades filed with the SEC', 'trade details including conviction scores'). It distinguishes itself from siblings like get_trades_by_insider and get_trades_by_ticker by emphasizing recency and multiple filtering dimensions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its filtering parameters (ticker, insider name, signal type, time window), suggesting when to use it for specific queries. However, it lacks explicit guidance on when to choose this tool over alternatives like get_trades_by_insider or search_insider, and does not mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leaderboardB
Get the insider trading performance leaderboard β which insiders have the best 30/90-day returns after their trades.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Performance window in days (default: 90) | |
| limit | No | Max results (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the performance window (30/90-day returns) but does not disclose behavioral traits such as data freshness, rate limits, authentication needs, or what 'best' means (e.g., sorted by highest returns). This leaves significant gaps for a tool that likely involves data aggregation and ranking.
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, efficient sentence that front-loads the core purpose ('Get the insider trading performance leaderboard') and adds essential context ('which insiders have the best 30/90-day returns after their trades'). Every word earns its place with zero 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 annotations and no output schema, the description is incomplete for a tool that returns ranked data. It lacks details on output format (e.g., list structure, fields included), sorting criteria, or handling of ties. For a leaderboard tool with two parameters, this leaves the agent guessing about key behavioral aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions in the schema. The description adds no additional parameter semantics beyond implying a default focus on 30/90-day returns, which aligns with the 'days' parameter but doesn't provide extra details like format constraints or interaction effects. Baseline 3 is appropriate given high 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 verb ('Get') and resource ('insider trading performance leaderboard'), specifying what insiders are ranked by ('best 30/90-day returns after their trades'). It distinguishes from siblings like get_insider_rank or get_top_movers by focusing on post-trade returns rather than other metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing insider performance based on returns, but does not explicitly state when to use this tool versus alternatives like get_insider_rank or get_top_movers. It provides context (30/90-day returns) but lacks explicit guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lobbying_activityB
Get corporate lobbying reports β which companies are spending on lobbying, in what issue areas, and how much.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | No | Optional: filter by company ticker | |
| limit | No | Max results (default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read operation ('Get') but does not specify permissions, rate limits, data freshness, or response format. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
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, efficient sentence that front-loads the core purpose without unnecessary details. Every word contributes to understanding the tool's function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose but lacks behavioral details and usage guidelines. Without annotations or output schema, more context on permissions, data format, or limitations would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (ticker and limit). The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints. The baseline score of 3 is appropriate when the schema handles parameter documentation effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving corporate lobbying reports with specific details about companies, issue areas, and spending amounts. It uses specific verbs ('Get') and resources ('corporate lobbying reports'), but does not explicitly differentiate from sibling tools like 'get_congressional_trades' or 'get_earnings_proximity', which focus on different data domains.
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 sibling tools or contexts where other tools might be more appropriate, such as for insider trading data or market sentiment. Usage is implied by the data domain but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_sentimentA
Get the current market-wide insider sentiment ratio (buy vs. sell activity), showing whether corporate insiders are net buyers or sellers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool retrieves 'current' data, implying real-time or recent information, but does not disclose behavioral traits such as data freshness, rate limits, authentication needs, or potential latency. For a tool with zero annotation coverage, this leaves significant gaps in understanding its operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the tool's purpose without any wasted words. It is front-loaded with the core functionality and appropriately concise for a no-parameter tool.
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 no parameters, no output schema, and no annotations, the description provides basic purpose but lacks completeness. It does not explain return values (e.g., format of the sentiment ratio), data sources, or limitations, which are important for a tool with no structured fields to compensate.
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 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description appropriately does not add param details, earning a baseline score of 4 for not overloading with unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Get') and resource ('current market-wide insider sentiment ratio'), explaining it shows 'buy vs. sell activity' and whether insiders are 'net buyers or sellers'. It effectively distinguishes from siblings like get_congressional_trades or get_insider_profile by focusing on aggregate market sentiment rather than individual trades or profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for assessing overall market sentiment from insider activity, but does not explicitly state when to use this tool versus alternatives like get_sector_flow or get_trade_heatmap. It provides context but lacks specific guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_topB
Get the most connected insiders and companies in the network graph. Shows who are the most influential nodes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does ('get' and 'shows') but lacks critical details: whether this is a read-only operation, how data is sourced or updated, what 'most connected' means (e.g., by degree centrality), or any limitations like rate limits or authentication needs. The description is too vague for a tool with no annotation coverage.
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 concise with two sentences that directly address the tool's function. The first sentence states the core purpose, and the second adds context about 'influential nodes.' There's no wasted verbiage, though it could be slightly more structured (e.g., by clarifying 'influential').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of network analysis and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'most connected' entails (e.g., metrics used, time frame), how results are returned, or any behavioral traits. For a tool that likely returns structured network data, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (since there are no parameters to describe). The description doesn't need to add parameter semantics, so a baseline score of 4 is appropriate. It mentions 'network graph' which implicitly defines the scope but doesn't conflict with the empty 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's purpose: 'Get the most connected insiders and companies in the network graph' specifies the verb (get) and resource (network graph nodes). It distinguishes from some siblings like 'get_insider_profile' or 'get_trades_by_ticker' by focusing on network connectivity rather than individual profiles or trades. However, it doesn't explicitly differentiate from 'get_insider_network' which might cover similar ground.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'most connected insiders and companies' but doesn't specify use cases, prerequisites, or exclusions. Given siblings like 'get_insider_network' that might overlap, the lack of comparative guidance is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nexus_scoreA
Get the Nexus political intelligence score for a ticker. Combines congressional trading activity, lobbying spend, and insider trading into a single risk/opportunity score.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what the tool does (calculates a score from multiple sources) but lacks details on permissions, rate limits, data freshness, or response format. For a tool with no annotation coverage, this leaves significant gaps in understanding its operational behavior.
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 that are front-loaded with the core purpose and efficiently explain the score's composition. Every sentence adds value without redundancy, making it appropriately sized and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (aggregating multiple data sources) and lack of annotations or output schema, the description is moderately complete. It explains what the tool does but does not cover behavioral aspects like error handling or output details. This is adequate for a read-only tool but could be more comprehensive given the data integration involved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'ticker' documented as 'Stock ticker symbol' in the schema. The description does not add further meaning beyond this, such as format examples or constraints. Baseline 3 is appropriate since the schema handles parameter documentation adequately.
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 ('Get') and resource ('Nexus political intelligence score for a ticker'), specifying it combines congressional trading activity, lobbying spend, and insider trading into a single risk/opportunity score. This distinguishes it from siblings like get_congressional_trades or get_lobbying_activity, which focus on individual components rather than an aggregated score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning the score combines specific data sources, suggesting it should be used when a comprehensive political intelligence metric is needed. However, it does not explicitly state when to use this tool versus alternatives like get_conviction_score or get_market_sentiment, nor does it provide exclusions or prerequisites for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_flowA
Aggregate insider money flow by sector. Shows which sectors are seeing the most insider buying vs. selling β a leading indicator of sector rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look back N days (default: 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what the tool does (aggregates and shows insider money flow) but lacks details on permissions, rate limits, data freshness, or output format. For a tool with no annotation coverage, this is a significant gap in transparency about how it behaves operationally.
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 core functionality and followed by explanatory context. Every word earns its place, with no redundancy or fluff, making it highly efficient and easy for an agent to parse quickly.
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 annotations and no output schema, the description adequately covers the tool's purpose but lacks details on behavioral aspects like data sources, update frequency, or error handling. For a tool with one parameter and high schema coverage, it's minimally viable but could be more complete by addressing operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'days' documented in the schema. The description does not add any parameter-specific information beyond what the schema provides, such as valid ranges or effects on aggregation. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('aggregate', 'shows') and resources ('insider money flow by sector'), distinguishing it from siblings like get_congressional_trades or get_insider_profile by focusing on sector-level aggregation rather than individual trades or profiles. It explains the output's significance as a leading indicator of sector rotation, adding valuable context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing sector rotation based on insider activity, but does not explicitly state when to use this tool versus alternatives like get_market_sentiment or get_top_movers. No exclusions or prerequisites are mentioned, leaving the agent to infer context from the tool's focus on insider money flow by sector.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_moversB
Get stocks with the highest insider trading activity (by volume). Shows which tickers have the most insider interest right now.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look back N days (default: 7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool retrieves data based on insider trading activity by volume but does not disclose critical behavioral traits such as whether it requires authentication, rate limits, data freshness, or what the output format looks like (e.g., list of tickers with metrics). This leaves significant gaps for the agent to understand how to invoke and interpret results.
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 concise and front-loaded, consisting of two sentences that efficiently convey the tool's purpose and context without unnecessary details. Every sentence adds value: the first defines the action and resource, and the second provides additional context on what it shows, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a data retrieval tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., authentication, rate limits) and does not explain the return values or structure, which is critical for the agent to use the tool effectively. The description provides basic purpose but fails to address key contextual needs for invocation and interpretation.
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 100% description coverage for the single parameter 'days,' so the schema already documents it fully. The description does not add any parameter-specific information beyond what the schema provides, such as default behavior or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description does not compensate but also does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('stocks with the highest insider trading activity'), and distinguishes it from siblings by focusing on volume-based ranking of insider interest. It explicitly mentions 'by volume' and 'most insider interest right now,' which differentiates it from tools like get_insider_rank or get_leaderboard that might use other metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('Shows which tickers have the most insider interest right now') but does not explicitly state when to use this tool versus alternatives like get_insider_rank or get_latest_trades. It provides a general purpose but lacks specific guidance on exclusions or comparisons with sibling tools, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_heatmapB
Returns a heatmap of insider trading activity by ticker, showing volume, trade count, net value, and bullish/bearish sentiment for each stock.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look back N days (default: 7, max: 90) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool returns data but doesn't disclose behavioral traits like rate limits, authentication needs, data freshness, or format of the heatmap (e.g., JSON structure, image). For a tool with no annotations, this leaves significant gaps in understanding 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and details without waste. Every part ('Returns a heatmap... showing volume...') directly contributes to understanding the tool's function.
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 annotations, no output schema, and a simple single parameter, the description is adequate but incomplete. It covers the purpose and data elements but lacks details on output format, behavioral constraints, or usage context, making it minimally viable for a read-only 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 description coverage is 100%, so the schema already documents the single parameter 'days' with its type, default, and max. The description adds no parameter-specific information beyond what's in the schema, maintaining the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Returns a heatmap'), resource ('insider trading activity by ticker'), and scope ('showing volume, trade count, net value, and bullish/bearish sentiment for each stock'). It distinguishes from siblings like get_latest_trades (specific trades) or get_insider_profile (individual insider data) by focusing on aggregated visual data across stocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. While the description implies it's for aggregated insider trading analysis, it doesn't specify scenarios (e.g., market sentiment analysis, stock screening) or contrast with siblings like get_market_sentiment (broader sentiment) or get_top_movers (price-based movers).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trades_by_insiderB
Get all trades by a specific corporate insider across all companies. Useful for tracking an executive's full trading pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| insider_name | Yes | Full name of the insider (e.g. 'Mark Zuckerberg') | |
| days | No | Look back N days (default: 365) | |
| limit | No | Max results (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving 'all trades' and tracking patterns, but doesn't disclose critical traits such as whether this is a read-only operation, potential rate limits, authentication needs, data freshness, or what happens if no trades are found. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
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 core purpose and followed by a brief usage hint. Every sentence earns its place without redundancy, making it appropriately sized 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 complexity (a query tool with 3 parameters), no annotations, and no output schema, the description is incomplete. It covers the basic purpose but lacks details on behavioral traits, output format, or error handling. For a tool with no structured support, this is adequate but has clear gaps, meeting the minimum viable standard.
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 100% description coverage, so the schema already documents all parameters (insider_name, days, limit) with their types and defaults. The description adds no additional meaning beyond what the schema provides, such as explaining trade-offs or usage nuances. Baseline 3 is appropriate when the schema does the heavy lifting.
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 ('Get') and resource ('all trades by a specific corporate insider across all companies'), making the purpose explicit. However, it doesn't explicitly distinguish this tool from sibling tools like 'get_trades_by_ticker' or 'search_insider', which might have overlapping functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Useful for tracking an executive's full trading pattern,' which implies a context for when to use this tool. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'get_trades_by_ticker' or 'search_insider', nor does it mention any exclusions or prerequisites, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trades_by_tickerA
Get all insider trading activity for a specific stock ticker. Shows who is buying/selling, volumes, and conviction scores.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g. AAPL) | |
| days | No | Look back N days (default: 90) | |
| limit | No | Max results (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'Shows who is buying/selling, volumes, and conviction scores,' which hints at output content, but lacks details on permissions, rate limits, data freshness, or pagination behavior. For a read operation with no annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose and key output details without redundancy. The first sentence states the core function, and the second elaborates on data shown, making it front-loaded and waste-free.
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 annotations and no output schema, the description provides basic purpose and output hints but lacks behavioral context (e.g., error handling, data scope). It is minimally adequate for a read tool but incomplete for full agent understanding without structured support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions in the schema (e.g., ticker as stock symbol, days as lookback). The description adds no additional parameter semantics beyond implying ticker filtering and output fields, so it meets the baseline of 3 without compensating for gaps.
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 ('Get') and resource ('all insider trading activity for a specific stock ticker'), specifying what data is retrieved (buying/selling, volumes, conviction scores). It distinguishes from siblings like get_congressional_trades (congressional focus) or get_trades_by_insider (insider-based filtering).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for ticker-specific insider trading analysis, but does not explicitly state when to use this tool versus alternatives like get_latest_trades (time-based) or search_ticker (broader search). No exclusions or prerequisites are mentioned, leaving some ambiguity in context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_insiderA
Search for corporate insiders by name. Returns matching names for use as filters in other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Partial or full insider name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While it mentions the return type ('matching names'), it lacks details on behavioral traits such as search algorithm (e.g., partial/full match, case sensitivity), result limits, pagination, error handling, or performance expectations. This leaves significant gaps for a tool with no annotation coverage.
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 extremely concise and front-loaded, consisting of two sentences that efficiently convey purpose and usage without any redundant information. Every sentence earns its place by adding distinct value: the first defines the action, and the second explains the output's utility.
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 low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and usage but lacks details on behavioral aspects like result format, limitations, or error cases. Without annotations or output schema, more context would improve completeness for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'query' fully documented in the schema as 'Partial or full insider name to search for'. The description adds no additional semantic context beyond what the schema provides, such as examples or formatting rules, so it meets the baseline score for high 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's purpose with a specific verb ('Search') and resource ('corporate insiders by name'), distinguishing it from siblings like get_insider_profile or get_trades_by_insider that retrieve different data types. It explicitly mentions the output's intended use ('for use as filters in other tools'), which adds clarity beyond basic search functionality.
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 clear context on when to use this tool: for searching insider names to obtain filters for other tools. However, it does not explicitly state when not to use it or name specific alternatives (e.g., search_ticker for tickers instead of insiders), which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tickerC
Search for stock tickers by symbol or company name. Returns matching tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Partial ticker symbol or company name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the action ('search') and return ('matching tickers'), but lacks details on behavioral traits like rate limits, authentication needs, error handling, or what 'matching' entails (e.g., partial matches, case sensitivity). This is inadequate for a tool with no annotation coverage.
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 highly concise and front-loaded: two sentences with zero waste. The first sentence states the purpose, and the second clarifies the return value. Every word earns its place, making it easy to scan and understand quickly.
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 annotations and no output schema, the description is incomplete. It doesn't explain the return format (e.g., structure of 'matching tickers'), error cases, or usage constraints. For a search tool with potential complexity (e.g., matching logic), more context is needed to ensure proper agent invocation.
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 100% description coverage, with the 'query' parameter documented as 'Partial ticker symbol or company name.' The description adds minimal value beyond this, only restating 'by symbol or company name.' Baseline is 3 since the schema does the heavy lifting, but the description doesn't compensate with additional context (e.g., examples or format specifics).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for stock tickers by symbol or company name.' It specifies the verb ('search') and resource ('stock tickers'), and distinguishes it from siblings like 'search_insider' (which searches for insiders, not tickers). However, it doesn't explicitly differentiate from all siblings (e.g., 'get_trades_by_ticker' might involve tickers but is for trades, not searching).
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 doesn't mention any prerequisites, exclusions, or specific contexts (e.g., vs. 'get_top_movers' for trending tickers or 'search_insider' for insider data). Without such guidance, users might struggle to choose between related tools.
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.
21 tool updates
v0.1.0- First observed
get_congressional_trades - First observed
get_conviction_score - First observed
get_correlations - First observed
get_earnings_proximity - First observed
get_filing_diff - First observed
get_insider_network - First observed
get_insider_profile - First observed
get_insider_rank - First observed
get_latest_trades - First observed
get_leaderboard - First observed
get_lobbying_activity - First observed
get_market_sentiment - First observed
get_network_top - First observed
get_nexus_score - First observed
get_sector_flow - First observed
get_top_movers - First observed
get_trade_heatmap - First observed
get_trades_by_insider - First observed
get_trades_by_ticker - First observed
search_insider - First observed
search_ticker
TDQS
Scored across 21 tools
Every tool has a clearly distinct purpose with no ambiguity, as each targets a specific aspect of the insider trading and political intelligence domain (e.g., get_congressional_trades for congressional activity, get_conviction_score for trade analysis, get_orrelations for network insights). The descriptions precisely differentiate their functions, ensuring agents can easily select the right tool without confusion.
All tool names follow a consistent verb_noun pattern using snake_case, starting with 'get_' or 'search_' followed by a descriptive noun phrase (e.g., get_insider_profile, search_ticker). This uniformity makes the set predictable and readable, aiding agents in understanding and navigating the tools efficiently.
With 21 tools, the count is slightly high but reasonable for the comprehensive scope of insider trading and political intelligence analysis. Each tool appears to serve a specific, non-redundant function, though it may feel heavy for simpler use cases; overall, it's well-scoped for the domain's complexity.
The tool surface provides complete coverage of the domain, including data retrieval (e.g., trades, profiles, scores), analysis (e.g., correlations, heatmaps), and search capabilities (insiders, tickers). It supports full workflows from discovery to deep analysis with no obvious gaps, enabling agents to handle a wide range of tasks without dead ends.
Maintenance
Related MCP Connectors
MCP server giving AI agents one-connection access to China A-share market intelligence: financials,
MCP server for OpenMM β exposes market data, account, trading, and strategy tools to AI agents
MCP server for stocksense-ai documentation, generated by doc2mcp.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP server that exposes 16 free investment-research signals (insider trades, SEC filings, short data, and live quotes) to any MCP-compatible LLM.43 npm100MIT
- AlicenseBqualityDmaintenanceMCP server providing comprehensive access to Finnhub financial market data API for AI assistants like Claude Desktop.1510MIT
- AlicenseAqualityBmaintenanceComprehensive MCP server for real-time stock, cryptocurrency, options, and fundamental analysis, including SEC filings and insider trading data.2637 npmMIT
- AlicenseAqualityAmaintenanceThis MCP server connects AI assistants to a Public.com brokerage account, enabling natural language trading of stocks, options, and crypto, along with portfolio management, quotes, and orders.3765Apache 2.0