github agigante80/actual-mcp-server v0.22.17
Release v0.22.17

3 hours ago

🎉 Release v0.22.17

📦 Docker Images

# Docker Hub
docker pull agigante80/actual-mcp-server:0.22.17

# GitHub Container Registry
docker pull ghcr.io/agigante80/actual-mcp-server:0.22.17

✨ Highlights: Chat-client tool surface

  • Toolsets (#483). New MCP_TOOLSETS, MCP_TOOLS and MCP_READ_ONLY choose which tools a deployment publishes. MCP_TOOLSETS=chat publishes a 12-tool preset sized for chat clients with a small context (about 26 KB of tool definitions instead of 108 KB). A hidden tool is refused when called, not just left out of the list. With none of the variables set, the published list is byte-identical to before. Designed by @andycarlberg in #520 and reimplemented on develop with him as co-author: thank you, Andy.
  • actual_rules_create_batch (#485). Create up to 50 rules in one call, with per-item succeeded / failed results. The README "Batch Operations" section now lists every bulk path.
  • actual_budget_updates_batch (#516) writes through the adapter's category and month guards and reports per-item results; an unknown category is a failure, not a success.
  • Smaller tool list (#486). The seven heaviest tool definitions are about 25% smaller (tools/list for all 83 tools: 108,164 to 101,827 bytes), with validation unchanged. A unit test now caps the size.

⚠️ Behaviour changes

  • actual_transactions_update_batch (#517): invalid input and whole-call failures (budget precondition, timeout, lock) now fail the tool call with a JSON-RPC error instead of resolving with failed: [{id: 'batch'}]. Per-item outcomes are unchanged.

Upgrade note

actual_rules_create now refuses a rule whose conditions or actions name a category, payee or account id that does not exist in the budget, with a not-found error naming the id, instead of storing a rule that points at nothing. Rules already stored are untouched. actual_rules_create_or_update, actual_rules_update, actual_payees_update and link-schedule values are not checked yet.

📝 Changelog

  • chore(release): bump version to 0.22.17 (e686c18)
  • refactor(tools): trim the seven heaviest tool schemas and add a tools/list size budget (#486) (b09732f)
  • chore(release): bump version to 0.22.16 (dcfd3d8)
  • test(toolsets): derive non-queue writers and guard the MCP_TOOLS examples (#483) (f6a11ce)
  • feat(toolsets): add MCP_TOOLSETS, MCP_TOOLS, MCP_READ_ONLY and the chat preset (#483) (6454425)
  • chore(release): bump version to 0.22.15 (9f5b0a5)
  • test(manual): read the rules batch negative without a second unwrap (#485) (21e7f94)
  • feat(tools): add actual_rules_create_batch and guard rule references (#485) (2d3513e)
  • fix(tools): actual_budget_updates_batch writes through adapter guards with per-item results (#516) (f274279)
  • fix(tools): actual_transactions_update_batch reports validation and whole-call errors as tool errors (#517) (2792765)
  • docs(plans): record #477 closed as split, all five tickets taken in house (37e2d52)
  • docs(roadmap): add the phase roadmap and the Chat-client tool surface plan (b157848)

📊 What this release ships

  • @actual-app/api pinned at 26.10.0
  • All 83 MCP tools registered and validated on this tag

🔒 Security

This release has been scanned for vulnerabilities. Check the Security tab for details.

Full Changelog: v0.22.14...v0.22.17

Don't miss a new actual-mcp-server release

NewReleases is sending notifications on new releases.