Skip to content

v3.1.0 — personal data behind a local switch, faster analytics

Latest

Choose a tag to compare

@chilango74 chilango74 released this 27 Oct 06:35
· 0 commits to main since this release

v3.1.0 — personal data behind a local switch, faster analytics, paired with Planner 0.5.1

okama-mcp 3.1.0

Personal client data

  • anonymous is the default: pseudonyms only, every persistent client write refused.
  • New client_data_mode_set / client_data_mode_get switch and report the mode. The
    policy lives next to the database (<database>.mcp-access.json), is re-read on every
    call, is shared by concurrent connections and survives a restart. It stores no client
    data.
  • personal_data enables client create/update/delete, residency notes, plan versions,
    meetings and bounded history. Planner owns every read, write and deletion: MCP imports
    no database driver, executes no SQL and runs no cascade of its own.
  • Refusals come back as one fixed localized caption in all five languages — no values,
    paths, table names or schema text.
  • Forecasts and reports stay anonymous; export still requires an unchanged, signed
    privacy proof. HTTP exposes no client or local report tools.

Speed

The server adds no new cache; the heavy calls are okama calculations, and new installs
resolve okama 4.0.1. Measured on a Ryzen 7 8845H, median of five repetitions, fresh
portfolio per repetition:

Path Workload okama 4.0.0 okama 4.0.1
PortfolioDCF.wealth_index() (get_dcf_wealth_index) 30/70 SPY/AGG, monthly indexed withdrawals, 256 months 54.7 ms 6.8 ms
AssetList.get_rolling_cagr() 3 assets, 60-month window, 182 points 37.9 ms 2.3 ms

Run ranges do not overlap. The forecast path behind monte_carlo_forecast
(30 years, 8,192 scenarios) shows overlapping ranges (0.59–1.10 s versus 0.66–0.88 s),
so no improvement is claimed there. Ratios are workload-specific.

Local models

  • The interface defects reported with a local model were fixed in 3.0.0: complete nested
    input schemas, namespace capability descriptions, actionable RATE/INFL/RATIO
    corrections, exact-match ranking and pagination.
  • 3.1.0 adds a personal-data refusal that is one short localized sentence instead of a
    generic error, and an access mode the model can read (client_data_mode_get) instead
    of guessing from failed calls.
  • No model-specific improvement is claimed: the replay with the reporter's model is still
    open in #17 because the runtime and a reproducible task are missing.

Changed

  • Requires okama-planner[reports]>=0.5.1,<0.6.0; the development source override is
    gone, so MCP and its CI resolve the published companion.
  • 52 tools in a standard install; local stdio with client tools and Excel export exposes 70.
  • Build migrated from Poetry to uv/hatchling. Install commands are unchanged.
  • The legacy --allow-personal-data flag now only initializes an absent policy; it cannot
    override a mode saved through MCP.

Fixed

  • Personal-data refusals no longer collapse into the generic invalid-input caption.

Upgrade

uvx --refresh --from okama-mcp==3.1.0 okama-mcp stdio
# or
pip install -U okama-mcp okama

Restart the MCP client so it reloads the tool schemas. Databases without a saved policy
start anonymous. Full notes: docs/releases/3.1.0.md.