Skip to main content
Glama
chetto1983

Broker Analysis MCP

by chetto1983

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BROKER_ANALYSIS_HOMENoDirectory holding hooks.json, alerts/*.jsonl and charts/~/.broker-analysis
BROKER_ANALYSIS_WEBHOOK_ALLOWNoURL prefix of allow-listed webhook targets; webhooks are off without it

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
risk_metricsA

Risk and performance of one security or index from daily total-return prices.

Returns CAGR, close-to-close and range-based volatility (Garman-Klass, Parkinson, Rogers-Satchell), Sharpe with its standard error, Probabilistic Sharpe Ratio, Sortino, Omega, maximum drawdown, CDaR, Calmar, historical and Cornish-Fisher one-day VaR and expected shortfall. With a benchmark ticker (converted to the security's currency) also daily beta and correlation, Bloomberg-style beta (two years of weekly returns, adjusted 0.67 raw + 0.33), Jensen's alpha, Treynor, M2, information ratio and tracking error, and Morningstar-style up and down capture on monthly returns. period: 1y, 2y, 3y, 5y, 10y or max. risk_free_annual as a decimal (0.03 = 3%).

technical_indicatorsA

Snapshot of standard technical indicators with adjustable parameters: close, two SMAs with the price's distance from each, RSI, MACD, Bollinger bands, ATR in currency and as % of the close, 52-week high and low with distances. Keys carry the period (sma50, rsi14, atr14). Use a period long enough for the slow SMA. For custom indicators, expressions, conditions or a chart use custom_analysis.

fundamental_ratiosA

Ratios from the latest annual statements (USMx accounting and financial ratios sheet): valuation (P/E, EV/EBITDA, EV/EBIT, P/B, P/S, FCF yield), profitability and DuPont (ROE = net margin x asset turnover x equity multiplier, ROA, ROIC, margins), turnover (receivables, inventory, days sales/inventory/payables, cash conversion cycle), liquidity (current, quick, cash ratios, operating cash flow coverage, working capital), leverage and coverage, payout. With risk_free_annual and equity_risk_premium (decimals, from the analyst) also CAPM cost of equity, WACC, EVA and unlevered beta; beta defaults to Yahoo's. Also the Piotroski F-score (financial strength, 0-9), Altman Z and Z'' (distress) and Beneish M-score (earnings manipulation), with their components in scores; not computed for banks and insurers. Ratios not meaningful (losses, banks without current assets) are null.

peer_comparisonA

Fundamental ratios and scores for several companies side by side (2 to 10 tickers), for relative valuation within one sector. Failed tickers are reported, not dropped silently. Score components and their inputs are left out: call fundamental_ratios for one company.

etf_analysisA

ETF cost and replication quality: TER, tracking difference (fund minus benchmark, annualised) and tracking error against a benchmark ticker, which is converted to the fund's currency. Prefer a total-return index or a reference ETF on the same index.

list_indicator_catalogA

Parametric building blocks for custom_analysis and create_hook: every catalog indicator with its typed parameters (default, min, max), outputs and pane; the functions allowed in expressions and conditions; the expression syntax.

custom_analysisA

User-defined technical analysis on one ticker, with an optional chart.

indicators: catalog indicators with parameters, e.g. [{"id": "ema20", "fn": "ema", "params": {"n": 20}}, {"id": "rsi14", "fn": "rsi"}, {"id": "bb", "fn": "bollinger", "params": {"n": 20, "k": 2}}] series: derived series by expression, e.g. [{"id": "dist", "expr": "close / bb.lower - 1"}] conditions: true/false rules evaluated on every bar, e.g. [{"name": "Oversold in uptrend", "when": "rsi14 < 30 and close > sma200"}, {"name": "Golden cross", "when": "crosses_above(sma50, sma200)"}] For each: active now, number and dates of events, and forward returns after events against all bars (5 and 20 sessions) with a t statistic. levels: horizontal lines, e.g. [{"price": 25.5, "label": "support"}]. Returns JSON with last values and condition reports, plus the PNG chart when chart is true. Call list_indicator_catalog first to see indicators, parameters and functions.

create_hookA

Save a condition hook: when the condition fires on a new bar, a JSON event is delivered.

action: {"type": "file", "target": "alerts_name"} appends JSON lines on the server, or {"type": "webhook", "target": "https://..."} posts JSON (only to prefixes the operator allowed). Past events are not replayed. Hooks are evaluated by run_hooks or the broker-analysis-hooks command (schedule it with cron). Analysis alerts only: nothing is ever traded.

list_hooksB

Saved condition hooks with their condition, action and last delivered event.

run_hooksA

Evaluate every saved hook now and deliver the events newer than each hook's last one.

delete_hookC

Delete a saved hook by id.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation4/5

Most tools target a clearly distinct analysis domain (ETF cost quality, risk/performance, standard technicals, custom expressions, fundamentals, peer comparison) plus a self-contained hook lifecycle. The main fuzziness is technical_indicators vs custom_analysis, which is largely a subset relationship, and slight overlap between etf_analysis and risk_metrics on tracking error/beta; descriptions explicitly redirect between them, which mitigates it.

Naming Consistency4/5

Two predictable patterns coexist: noun_phrase report tools (etf_analysis, risk_metrics, technical_indicators, fundamental_ratios, peer_comparison, custom_analysis) and verb_noun hook tools (list_hooks, create_hook, run_hooks, delete_hook, list_indicator_catalog). The split is semantically motivated and readable, though not a single uniform verb_noun scheme.

Tool Count5/5

11 tools is well within the sweet spot and every tool maps to a distinct capability: six analysis endpoints, one catalog/reference tool, and four hook CRUD/execution tools. Nothing feels padded or missing at the count level.

Completeness4/5

The hook lifecycle (create, list, run, delete) plus a broad analysis surface covers the stated domain with no dead ends for typical workflows. Minor gaps: no update/edit hook (must delete and recreate) and no way to inspect delivered event history beyond each hook's last event.

Maintenance

ActivityMaintained
ResponsivenessNo issues