MCP server for bolsai Brazilian financial data API. Provides 10 tools for querying stock prices, fundamentals, dividends, FIIs, macro indicators, and financial statements from the Brazilian market.
Bolsai MCP server provides 11 well-named financial tools with consistent verb_noun patterns (get_*, list_, search_, screen_). All tools have descriptions meeting the 10-1024 character guideline. Input schemas are present and typed for all tools. However, output schemas are NOT documented, descriptions state what data is returned but do not formally specify response structure. Parameter descriptions are present but lack detail on valid ranges, constraints, and interdependencies. Error handling is basic (generic _error() function) and does not guide recovery. No tool annotations (readOnlyHint, destructiveHint) despite all tools being READ_ONLY. This is a solid community-grade server with good naming and basic structure, but falls short of production-grade polish on output documentation and error messaging.
Compare fundamental indicators across multiple stocks side by side.
Get dividend history with yield, annual summary, and individual payments. Works for both stocks and FIIs. FII tickers (ending in 11) are auto-detected.
Get FII (Real Estate Fund) details: P/VP, dividend yield, NAV, and distributions.
Get raw CVM financial statements (income, balance sheet, cash flow).
Get fundamental indicators: P/L, P/VP, EV/EBITDA, ROE, margins, debt ratios, and more. Returns 27+ indicators for Brazilian stocks. Uses the latest available data unless a specific reference_date is provided.
Get Brazilian macroeconomic indicator data.
Output schemas undocumented. Descriptions state what data is returned (e.g. 'Returns 27+ indicators') but do not formally specify response field names, types, or structure. LLMs cannot plan downstream operations or extract fields reliably.
Error handling is generic and does not guide recovery. The _error() function returns API status codes (401, 404, 429) with URLs but does not tell the LLM what to do next. Missing actionable recovery guidance per pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 72 | 2026-07-28+ | v2 |
Get historical OHLCV stock prices with adjusted values for splits and dividends. Data available from 1986 to present.
Get the current stock price with daily change, 52-week range, and YTD return.
List all available sectors with company counts. Use this to discover valid sector names for search_companies and screen_stocks.
Screen ALL Brazilian stocks by fundamental metrics. Scans ~264 companies in one call.
Search for Brazilian listed companies by name or sector. Use list_sectors first to see valid sector names.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all 11 tools being READ_ONLY. Tool annotations are a current MCP pattern (2026-07-28) and improve LLM reasoning about side effects and retry safety.
Parameter constraints lack detail. compare_stocks 'tickers' accepts '2-5' and 'comma-separated' but does not validate format at entry or return clear error if violated. screen_stocks 'filters' description lists supported metrics but does not explain filter syntax (is it 'pl_lt=15' or 'pl < 15'?). get_price_history 'limit' default is 30, max 5000, but not enforced or documented as a hard constraint.
Parameter interdependencies undocumented. screen_stocks has 'filters', 'sector', 'sort', 'order', and 'limit' parameters but does not clarify: Are filters mutually exclusive with sector? Does sector override filters? Can sort/order be applied to any metric? This forces the LLM to guess.