Skip to content

Releases: severity1/nz-akahu-mcp

v0.1.4

Choose a tag to compare

@severity1 severity1 released this 29 May 08:16

Fix: tool names now fit the Kiro 64-character limit

The Kiro host rejected this server's tools with API Error: 400 Tool name(s) exceed Kiro API limit of 64 characters - 9 of 14 tools failed because the marketplace-plugin-composed name mcp__plugin_<pluginName>_<serverKey>__<namespace>_<tool> ran past 64 chars.

This release shortens the FastMCP mount namespaces and the plugin's mcpServers key, dropping the composed prefix from 39 to 32 chars. All 14 tools now clear the limit (worst case 61).

Tool name changes (action may be required)

If you script against tool names or have them pinned, the bare tool names have changed namespace prefixes:

Old prefix New prefix
accounts_* acct_*
transactions_* txn_*
identity_* id_*

For example accounts_list_accounts -> acct_list_accounts, transactions_get_transactions -> txn_get_transactions, identity_get_me -> id_get_me.

The marketplace plugin name stays nz-akahu-mcp, so existing installs keep working with no reinstall and no change to the severity1-marketplace repo. The PyPI package, uvx nz-akahu-mcp invocation, and all tool behavior are unchanged.

Also

  • Added a regression guard asserting every composed plugin-path tool name fits the 64-char cap.
  • Synced uv.lock to the released version.

Full changelog: v0.1.3...v0.1.4

v0.1.3

Choose a tag to compare

@severity1 severity1 released this 25 May 12:21

What's Changed

  • chore(ci): bump GitHub Actions to Node.js 24 runtimes by @severity1 in #3
  • refactor: FastMCP 3.3 typed elicitation in safety.py and report_transaction_issue by @severity1 in #4

Full Changelog: v0.1.2...v0.1.3

v0.1.2

Choose a tag to compare

@severity1 severity1 released this 25 May 02:50

Highlights

This release adds the Claude Desktop Extension (.mcpb) as the recommended Claude Desktop install path. Claude Code users continue with the marketplace plugin.

Install in Claude Desktop (new)

Download nz-akahu-mcp-0.1.2.mcpb from the assets below and double-click to install. Claude Desktop auto-generates a settings UI for your Akahu tokens and stores them in your OS keychain (Windows Credential Manager / macOS Keychain).

Background: Claude Desktop has no UI to set marketplace-plugin userConfig values (anthropics/claude-code#39455, #39827). The .mcpb Desktop Extension path is the working alternative; same PyPI package under the hood (uvx-launched).

Install in Claude Code (unchanged)

/plugin marketplace add severity1/severity1-marketplace
/plugin install nz-akahu-mcp@severity1-marketplace

The plugin is now pinned to v0.1.2; users on prior versions can /plugin marketplace update severity1-marketplace.

What changed

  • New mcpb/ overlay (manifest + .mcpbignore + dev README) packed by CI into the .mcpb Release asset
  • build-mcpb workflow job: npx @anthropic-ai/mcpb pack + gh release upload
  • README restructured per-client; plugin/README.md retitled Claude Code-only
  • v0.1.2 across pyproject.toml, plugin/.claude-plugin/plugin.json, mcpb/manifest.json (lockstep enforced by CI)

No tool signatures or behavior changed. 14 tools, read-only by default, per-call elicit for every write.

What's Changed

  • feat: ship .mcpb Desktop Extension as the Claude Desktop install path by @severity1 in #2

Full Changelog: v0.1.1...v0.1.2

v0.1.1 - Claude marketplace plugin

Choose a tag to compare

@severity1 severity1 released this 25 May 01:08

Highlights

  • New distribution channel: Claude marketplace plugin. nz-akahu-mcp is now installable in both Claude Code and Claude Desktop via the severity1 marketplace, in addition to the existing uvx nz-akahu-mcp PyPI path.
  • No more shell env wrangling. Tokens prompt at install and store in your OS keychain (macOS Keychain on macOS, Windows Credential Manager on Windows). The package itself is unchanged.

Install (preferred)

In Claude Code:

/plugin marketplace add severity1/severity1-marketplace
/plugin install nz-akahu-mcp@severity1-marketplace

In Claude Desktop: Cowork -> Plugins -> Add marketplace -> severity1/severity1-marketplace -> Install nz-akahu-mcp.

Known issue: Claude Desktop's install-time prompt may not fire (anthropics/claude-code#39827). Workaround: use Configure options on the installed plugin after install. The plugin works correctly once configured.

The existing manual install paths (claude mcp add, hand-edited claude_desktop_config.json) are kept in the README under "(manual)" sections for users hacking on source or pinning a git ref.

What's in this release

  • plugin/.claude-plugin/plugin.json - manifest with userConfig for Akahu user/app tokens (sensitive: true) and the read-only / automation-bypass safety flags
  • plugin/.mcp.json - launches uvx nz-akahu-mcp with ${user_config.KEY} substitution into the matching AKAHU_* env vars
  • plugin/README.md - plugin-side install/configure/uninstall guide
  • README.md - marketplace plugin promoted to preferred path; manual sections demoted with redirect callouts
  • PUBLISHING.md - documents the lockstep pyproject.toml + plugin/.claude-plugin/plugin.json version bump now required for releases
  • .gitignore - anchors /.mcp.json to root so plugin/.mcp.json ships with the repo

What did NOT change

  • No changes to the Python package source. The 14 tools, the three-layer write safety, and all behavior are identical to v0.1.0.
  • No new dependencies.
  • No CLI flag changes.

Tested

  • ruff lint clean
  • mypy strict-mode clean
  • 151 pytest tests pass with 100% line + branch coverage

v0.1.0

Choose a tag to compare

@severity1 severity1 released this 24 May 12:30

First PyPI release of nz-akahu-mcp: an unofficial MCP server for the
Akahu open-finance API (NZ), distributed as a single
PyPI package.

What's in v0.1.0

14 tools, pure Akahu API primitives. No baked-in analytical opinions;
the LLM reasons over raw transaction data.

  • accounts/: list_accounts, get_account, get_account_balance,
    get_pending_transactions, refresh_all_accounts, refresh_account
  • transactions/: get_transactions, get_transaction,
    get_transactions_by_ids, get_pending_transactions,
    search_transactions, report_transaction_issue
  • identity/: get_me, verify_name

Safety

  • Read-only by default (AKAHU_READ_ONLY=true). Every write tool refuses
    until you flip the flag.
  • Per-call consent for every write via ctx.elicit().
  • Automation bypass opt-in for a small subset of idempotent, rate-limited
    writes (refresh_all_accounts, refresh_account) via
    AKAHU_AUTOMATION_BYPASS=true.

Install

claude mcp add nz-akahu \
  --scope user \
  --env AKAHU_APP_TOKEN=app_token_... \
  --env AKAHU_USER_TOKEN=user_token_... \
  -- uvx nz-akahu-mcp

Full install options (Claude Code, Claude Desktop, pip+venv) in the
README.

Requirements

Disclaimer

Unofficial integration. Not affiliated with Akahu, your bank, or any
financial institution.