MCP server providing access to CityFalcon financial news, sentiment analysis, analyst price targets, insider transactions, and DCSC portfolio analysis APIs
17 tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. All tools are READ_ONLY and follow verb_noun naming (get_*, list_). Descriptions exist but are often generic (10-50 chars) and lack actionable context for LLM selection. Parameter descriptions are sparse or missing entirely. No output schemas documented. Error handling is minimal, API errors return generic {'error': str(e)} with no recovery guidance. Tool composition is reasonable (single responsibility), but parameter naming inconsistencies (e.g., 'identifiers' as comma-separated string vs structured array) and missing type constraints (enums for period, classification_name) force LLM guessing. Baseline: avg tool description ~40 chars (well below 194-char production baseline); ~60% of params lack descriptions.
Get analyst price targets for a given ticker symbol
Get classified sectors mapping from DCSC API
Get sentiment analysis for financial entities (stocks, bonds, etc.) over a specified period
Get SEC filings for a given ticker symbol
Get insider transactions for specified identifiers
Get investor relations information for a given ticker symbol
Output schemas not documented. Tools return formatted strings (format_story, format_price_target, etc.) but LLMs cannot infer field structure. Agents cannot extract specific data (e.g., story UUID for follow-up calls) without parsing unstructured text.
Parameter descriptions missing or trivial. 'identifiers' (comma-separated string) lacks format guidance; 'period' (default 'd1') has no enum constraint or explanation of valid values; 'level' and 'slug' in sector tools undescribed. LLMs cannot validate inputs without explicit constraints.
Error handling returns generic {'error': str(e)} with no recovery guidance. HTTP errors, missing API keys, and timeouts all produce identical opaque responses. LLMs cannot distinguish retryable failures from user-fixable ones.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Get the latest financial news stories related to a financial asset or topic, using CityFalcon's Stories endpoint
Get portfolio classification from DCSC API
Get portfolio performance and risk metrics from DCSC API
Get consensus price targets for a given ticker symbol
Get a summary of price targets for a given ticker symbol
Get sector hierarchy from DCSC API for a given level and slug
Get stories similar to a given story UUID from CityFalcon
Get smart portfolio recommendations from DCSC API
Get stories by their UUIDs from CityFalcon
List all available capabilities and tools provided by this MCP server
List all available sectors from DCSC API
Tool descriptions too short (avg 40 chars vs 194-char baseline). 'Get sentiment analysis for financial entities' and 'Get insider transactions for specified identifiers' lack context for when to use them vs similar tools. No dependency hints (e.g., 'Call list_sectors first to get valid slugs').
No pagination support documented. Tools accept 'limit' but no 'offset', 'page', or 'next_cursor'. Large result sets will be truncated silently, and agents cannot iterate through all results.