v0.3.0
a large rewrite of the MCP server with new tooling, testing, and observability.
Highlights
- MCP tool annotations — all 19 tools now declare read/write intent (READONLY, WRITE_IDEMPOTENT, WRITE_CREATE, etc.)
- MCP resources & prompts — 3 resources (categories, accounts, institutions) and 4 guided prompts (spending analysis, budget review, financial health check, transaction categorization)
- Log analyzer & session evaluator —
scripts/analyze_logs.pyandscripts/eval_session.pyfor measuring token usage and identifying optimization opportunities - Token-optimized responses — compact categories (just id+name), lean bulk update responses, smarter compact transaction format
- Local CI script —
uv run python scripts/ci.pyruns the same checks as GitHub Actions
Server changes
- Consolidated logging — removed redundant analytics tracking, simplified to structlog
- Deleted ~200 lines of dead code (unused Pydantic models, duplicate helpers)
- Bulk transaction updates return compact
{transaction_id, status}instead of echoing full objects get_transaction_categoriesreturns compact{id, name}pairs by default (verbose=True for full)- Compact transactions now include
categoryId, only includepending/noteswhen present
Testing & CI
- 151 tests across 13 test files (up from ~70)
- GitHub Actions CI on Python 3.10–3.13 (ruff, mypy, pytest)
- Ruff linting and formatting enforced
- Code review workflow with sticky comments
Dependencies
- mcp 1.18 → 1.26
- monarchmoneycommunity 1.2 → 1.3
- pytest 8 → 9
- starlette 0.48 → 0.52, typer 0.19 → 0.24, uvicorn 0.38 → 0.41
- All deps bumped to latest