Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

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

Tools

Functions exposed to the LLM to take actions

NameDescription
portfolio_summaryA

The user's current holdings + P&L + annualized returns (offline, read-only). Use to answer 'what do I hold / how am I doing'.

risk_reportA

Drawdown-first risk panel for the held portfolio: max drawdown (depth/dates/recovery + CI), Ulcer, CDaR, and Sharpe/Sortino/Calmar with bootstrap confidence intervals, plus the annualized time-weighted return (it rides on the same daily history). Offline, read-only. Use to answer 'how risky / how deep are the drawdowns' — and for the time-weighted return portfolio_summary can't compute.

rebalance_checkA

Buy/sell/hold suggestions to move current holdings toward the target allocation (ASSET_TARGET). There are exactly 4 modes: 'to_total' (rebalance the whole book back to target weights — ALSO deploys new_cash into the rebalance if you pass it) and 'bands' (trade only sleeves that drifted past the 5%/25% threshold — the one mode that IGNORES new_cash); 'fixed_dca' (spread new_cash across the target mix) and 'cash_flow_only' (put new_cash into the most-underweight sleeves) — these two REQUIRE new_cash > 0 and suggest all-HOLD when it is 0. Offline + read-only — it suggests, never trades. A NEW target ticker can't be sized offline (no cached price); those appear under 'unpriced'.

securities_factsA

Published fund facts for each of the user's holdings (offline, read-only): type (ETF vs stock), expense ratio, AUM, average volume, age, category. Use to answer 'what am I paying / how big / how liquid / how old are my funds'. Reads the 7-day metadata cache; uncached holdings appear under 'missing'.

discover_gapsA

Roles the user's portfolio is light in (≤3% of market value) and the largest low-cost ETFs that fill each (offline, read-only, propose-only). Use to answer 'what am I missing / what could I consider adding'. The candidate listing is deterministic; for the full per-candidate screen call screen_candidate.

screen_candidateA

Judge a NEW ticker against the user's book (offline, read-only, propose-only): cost, liquidity, age, concentration, overlap with what they hold, and whether it diversified their past drawdowns — each with a reason and the figures behind it. Use to answer 'is TICKER a good fit'. Fetches TICKER's price history on demand if it isn't cached (unless ASSET_MCP_OFFLINE is set). Never a buy recommendation or a return forecast.

propose_allocationA

Propose a strategic target allocation for a risk posture (conservative / moderate / aggressive) over the user's book + the curated universe, and validate it against a canonical reference (60-40 / all-weather / permanent) with a walk-forward held-out drawdown verdict. Use to answer 'what should a moderate portfolio look like for me, and is it sound'. Propose-only: never trades, never a recommendation or return forecast — every weight comes from the deterministic core. The weights are always returned; the verdict needs the reference tickers cached, else it's null with a warm note. Pass benchmark='none' to skip validation.

starter_allocationA

Turn a new user's risk answers into a starting allocation. Pass the three onboarding answers — horizon ('under_3_years' | '3_to_10_years' | 'over_10_years'), loss_response ('sell' | 'hold' | 'buy_more'), cash_buffer ('no' | 'partly' | 'comfortably') — and it maps them to a conservative/moderate/aggressive posture (a fixed, explainable rubric — never your guess) and returns that preset allocation validated against a benchmark (60-40 / all-weather / permanent, or 'none' to skip — default 60-40), same as propose_allocation. Ask the three questions in plain language first, then call this with the chosen answer tokens. Propose-only: a hand-designed starting posture, never a recommendation or a return forecast.

Prompts

Interactive templates invoked by user choice

NameDescription
portfolio_checkupThe full picture: holdings + returns + drawdown-first risk, in plain words.
whats_my_drawdownHow deep my portfolio fell, how long it stayed down, and what that felt like.
should_i_rebalanceWhether my target policy says to act, for a chosen mode (to_total | bands | fixed_dca | cash_flow_only).
fill_my_gapsPortfolio roles I'm light in + screened candidate ETFs for each (propose-only).
find_my_starting_allocationNew here? Answer 3 risk questions and get a starting allocation matched to them.
propose_a_postureA starting allocation for a risk posture (conservative / moderate / aggressive), validated against a benchmark (60-40 / all-weather / permanent, or 'none' to skip).

Resources

Contextual data attached and managed by the client

NameDescription
guaranteesThe trust manifest: what this server will and won't do — four guarantees enforced in code and pinned by tests.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/disin7c9/asset-management'

If you have feedback or need assistance with the MCP directory API, please join our Discord server