BREAKING: the compact tool surface is now the default
The server now publishes 15 compact tools (for example list_entities, search_transactions, manage_transactions) instead of the 85 actual_* tools. The same 85 operations are still there behind them. A call to an actual_* name is refused on the default surface with a message that names the setting.
- To keep the old names: set
MCP_TOOL_SURFACE=legacy(85 tools), orMCP_TOOL_SURFACE=allto publish both sets (100 tools). - To migrate: see Migrating to the compact tools, which maps every old name to its compact call.
MCP_TOOLStakes compact names on the compact surface.- Not on the compact surface:
actual_session_listandactual_session_close. Uselegacyorallif you need them.
Also new in this release: five MCP prompts (monthly_review, spending_check, spending_patterns, budget_cleanup, categorize_uncategorized) and a rewritten README with a quick start and a verify step.
🎉 Release v0.30.0
📦 Docker Images
# Docker Hub
docker pull agigante80/actual-mcp-server:0.30.0
# GitHub Container Registry
docker pull ghcr.io/agigante80/actual-mcp-server:0.30.0📝 Changelog
- test(gate): migrate the step 9 regression scripts to the compact tools (#680) (1cce9f7)
- test(manual): migrate the live suite's support code to the compact tools (#680) (e5ceaa5)
- chore(release): bump version to 0.30.0 (ef52b45)
- docs(readme): link the client guides once in the quick start, keeping the Docker Hub upload under its byte limit (#667) (00af91b)
- fix(docs): state the route trigger value in the migration table (#669) (5f1daa1)
- docs(guides): add the compact-tools migration guide with a generated name table (#669) (bbf637b)
- fix(docs): give run_query an example it can serve, fail the sizes test under CI without a build (#668) (7c576b3)
- docs(readme): generate the capabilities section from the compact registry (#668) (0b4e694)
- fix(docs): pin the claude mcp add argument order, correct the quoting reason (#667) (d8ee822)
- docs(readme): quick start with one-command Claude Code install, paste-in prompt and verify step (#667) (00cb767)
- docs(readme): open with what the server is for, examples and honest client list (#666) (64acc98)
- test(e2e): keep legacy tool names out of the instructions test (#680) (dd594f4)
- test(e2e): look up both tool-name spellings in the initialize instructions (#680) (0e56466)
- test(e2e): expect the compact tool names in the initialize instructions (#680) (03db705)
- test(prompts): expect the prompts on the default surface now that it is compact (#680) (9bdca20)
- fix(config): name the surface in two refusals, correct MCP_TOOLS docs for the compact default (#680) (d362458)
- feat(config)!: default MCP_TOOL_SURFACE to compact (#680) (9651e98)
- fix(prompts): page categorize_uncategorized by remaining rows, check template calls against the compact schemas (#665) (9c4b9c9)
- feat(prompts): add the categorize_uncategorized prompt (#665) (d14752d)
- feat(prompts): add the budget_cleanup prompt (#664) (110b5ae)
- feat(prompts): add the spending_patterns prompt (#663) (dafdad0)
- feat(prompts): add the spending_check prompt (#662) (5f3af1c)
- feat(prompts): add the monthly_review prompt (#661) (4f885ed)
- test(e2e): state the measured peak ratio behind the 200 call budget (#681) (49053e2)
- test(e2e): correct compact arguments and pace the HTTP leg at 200 calls (#681) (0bea3f6)
- test(e2e): cover the compact surface and guard against legacy names (#681) (0ebefa1)
- docs(roadmap): close Compact tool surface, open Compact default, prompts and first-run docs (8ddf961)
- fix(prompts): answer a malformed prompts/get with -32602, close two validator gaps (#660) (43b5cbe)
- feat(prompts): MCP prompts capability, registry and validators (#660) (deee968)
📊 What this release ships
@actual-app/apipinned at26.11.0- 15 tools over 85 operations registered and validated on this tag
🔒 Security
This release has been scanned for vulnerabilities. Check the Security tab for details.
Full Changelog: v0.29.0...v0.30.0