Hosted MCP connector for TipRanks financial data and analyst research. Provides tools for equity research, earnings analysis, smart-money screening, and financial/technical data via Claude integration.
The TipRanks MCP server provides 12 tools with reasonable naming conventions and basic descriptions, but critical structural gaps significantly limit production readiness. All tool names follow verb_noun patterns (get_*, start with action verbs). However, descriptions are inconsistent in depth, some tools (get_assets_data, get_earnings_history) provide context on what data is returned, while others (get_top_smart_score_stocks, get_trending_stocks) lack specificity about output structure and when to use them. Most critically: NO INPUT SCHEMAS are visible in the provided source code. The examples show tool registration via 'mcp_servers' with 'mcp_toolset' in Anthropic's SDK, but the actual MCP server implementation (tool definitions, input schemas, output structures) is not included in the repository snapshot. This means schema validation cannot be performed, input parameters exist for only 2 of 12 tools in the visible code, and even those lack type/format constraints. Output schemas are completely absent from documentation. Error handling is not defined. Tool composition appears reasonable (each tool has one clear responsibility), but the lack of schema visibility is a HARD constraint per the rubric: 'If tool definitions are inferred rather than directly visible, cap per-tool scores at 50.'
Returns analyst consensus, average price target, Smart Score, key fundamentals, 52-week range, and next earnings date in a single call.
Provides the strongest argument on both the bull and bear side for a stock.
Provides key takeaways and tone from the most recent earnings call.
Provides actual vs. estimate track record for earnings, including beat/miss history and stock reaction patterns.
Provides revenue and earnings trend, margins, and notable line items for a stock.
Screening tool that returns stocks where hedge funds are buying.
CRITICAL: No input schemas visible in source code. Tools show parameter names (ticker, none) but lack JSON Schema definitions with types, constraints, or validation rules.
Output schemas completely undocumented. The system prompt mentions tools return 'analyst consensus, average price target, Smart Score, key fundamentals' but the actual response structure is not defined. LLMs cannot reliably parse responses or chain results without knowing expected fields.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Screening tool that returns stocks with insider buying activity.
Provides consensus rating, price target, and recent rating moves for a stock.
Provides technical analysis including trend, key levels, and momentum read for a stock.
Screening tool that returns stocks with top analyst consensus ratings.
Screening tool that returns TipRanks' composite winners ranked by Smart Score.
Screening tool that returns stocks drawing the most attention currently.
Tool definitions inferred from example code, not directly visible. Source provides examples/due-diligence-agent/due_diligence_agent.py which calls tools, but does not include the actual MCP server implementation (e.g., no src/server.ts or server.py showing tool registration with SchemaObject).
Screening tools (get_top_smart_score_stocks, get_trending_stocks, get_hedge_fund_activity, get_insider_transactions, get_top_rated_stocks) lack pagination parameters and result limits. The rubric requires 'Tools returning lists should accept page/offset and limit parameters and return a total count or next_cursor.' These 5 tools return lists but show no limit/offset params in visible code.
Descriptions lack specificity on output content and use cases. E.g., 'Screening tool that returns stocks drawing the most attention currently' (get_trending_stocks) does not explain what metrics define 'attention' (volume, mentions, analyst activity?) or the returned fields. Compare to the rubric baseline: 'Average tool description length: 194 chars', this is ~70 chars, well below the baseline.
No error handling guidance visible. If get_assets_data receives an invalid ticker, what error is returned? Can the LLM retry with a different ticker, or is it fatal? No error classification or recovery hints present.