mcpField
N
NZ Open Banking MCP (Akahu)

NZ Open Banking MCP (Akahu)

本地服务
github.com金融数据23 天前更新

关于 NZ Open Banking MCP (Akahu)

NZ Open Banking (Akahu) 是通过 Akahu 开放金融服务查询新西兰银行账户的 MCP 服务,适合借助 AI 助手查看账户与交易的人。默认只读,写入操作须经确认。

主要功能

  1. 01查看账户余额与详情
  2. 02搜索和筛选交易
  3. 03查看待结算交易
  4. 04经确认刷新账户
  5. 05默认只读并保护写入

适用场景

  1. 01查看关联账户的余额
  2. 02查找支付给商家或个人的款项
  3. 03比较不同日期范围的支出

MCP 相关

它向 MCP 客户端提供 14 个工具,用于读取 Akahu 账户和交易数据,以及受保护的账户刷新、交易问题报告和姓名验证。支持通过 stdio 或 HTTPS 服务运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"thatskiff33-nz-openbank": {
"command": "uvx",
"args": [
"nz-openbank-mcp"
],
"env": {
"AKAHU_USER_TOKEN": "<AKAHU_USER_TOKEN>",
"AKAHU_APP_TOKEN": "<AKAHU_APP_TOKEN>",
"AKAHU_READ_ONLY": "<AKAHU_READ_ONLY>",
"AKAHU_AUTOMATION_BYPASS": "<AKAHU_AUTOMATION_BYPASS>",
"AKAHU_MASK_ACCOUNTS": "<AKAHU_MASK_ACCOUNTS>"
}
}
}
}
启动命令uvx nz-openbank-mcp
需要配置的环境变量
AKAHU_USER_TOKEN密钥User token from https://my.akahu.nz/developers.
AKAHU_APP_TOKEN密钥App token from https://my.akahu.nz/developers.
AKAHU_READ_ONLYRefuse all write tools when 'true'. Leave as 'true' unless you specifically need refresh/verify/report writes.
AKAHU_AUTOMATION_BYPASSSkip per-call consent prompts for safe-to-automate writes (account refresh only). Requires read-only=false.
AKAHU_MASK_ACCOUNTSWhen 'true', account numbers show only the bank code, last four digits and suffix. Default 'false' shows them in full. Transaction descriptions are never masked.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypinz-openbank-mcp0.1.7

工具

14

收录的工具列表 · 更新于 今天

此工具无需参数。

详细介绍

nz-openbank-mcp:向 AI 助手询问你的新西兰银行账户

PyPI 版本 Python 版本 CI 覆盖率 100% 许可证 Apache-2.0 最新发布版本 OpenSSF Scorecard Glama MCP 服务评分

添加到 Cursor 下载 Claude Desktop 版 Claude Code 插件

向 AI 助手询问你的新西兰银行账户信息,无需将银行凭据交给任何新的人。nz-openbank-mcp 是一个模型上下文协议服务,通过你创建并控制的 Personal App 与 Akahu(新西兰开放金融服务)通信。它在你自己的设备上运行,默认以只读模式启动,并在进行任何更改前征求确认。

对话示例:助手调用 acct_list_accounts 和 txn_get_transactions,然后按商店汇总 10 月的杂货支出

非官方项目。与 Akahu 或任何银行均无关联,也未获得其认可。

试着这样提问

  • “上个月我在杂货上花了多少钱?分别在哪些商店消费的?”
  • “我在支付哪些订阅服务?每年费用是多少?”
  • “显示我所有账户的余额。”
  • “找出我今年付给房东的所有款项。”
  • “有没有尚未结算的待处理交易?”
  • “比较我 9 月和 10 月的外出就餐支出。”

为何可以放心尝试

默认只读写入工具会拒绝执行,直到你将 AKAHU_READ_ONLY=false。
每次写入都需征求同意启用写入后,每次写入前都会先征求你的同意,并准确显示将要发送的内容。
本地运行,保护隐私在你的设备上通过 stdio 运行,且只与 api.akahu.io 通信。不会记录令牌或交易内容。
账户号码已屏蔽只显示银行代码、末四位数字和后缀。
精简且经过测试基于 Akahu 端点的轻量封装,采用严格类型检查,并在 CI 中强制要求行覆盖率和分支覆盖率达到 100%。

PyPI · Releases · Security policy

它能做什么

该服务提供 14 个工具。其中 10 个仅用于读取;另外 4 个会进行更改,默认关闭,需手动启用。

全部 14 个工具
工具是否写入?用途
acct_list_accounts列出所有已连接账户,显示屏蔽后的号码和余额
acct_get_account按 ID 获取单个账户
acct_get_account_balance仅获取单个账户的余额
acct_get_pending_transactions获取单个账户尚未结算的交易
txn_get_transactions获取已结算的交易,可按账户、日期、类别或金额筛选(默认 100 条)
txn_get_transaction按 ID 获取单笔交易
txn_get_transactions_by_ids在一次请求中获取多笔交易
txn_get_pending_transactions获取所有账户尚未结算的交易
txn_search_transactions对描述和商户名称进行不区分大小写的文本搜索;未指定开始日期时,搜索截至结束日期或今天的 90 天内的交易(默认 50 条)
id_get_me获取 Akahu 用户的个人资料
acct_refresh_all_accounts是请求 Akahu 获取所有账户的最新数据
acct_refresh_account是请求 Akahu 获取单个账户的最新数据
txn_report_transaction_issue是就某笔交易向 Akahu 创建支持工单
id_verify_name是将姓名与账户持有人进行核对;需要额外的权限范围(见 限制),且每次调用可能收费

它没有内置消费报告、预算或预测功能。助手会根据交易自行计算,从而让服务保持小巧、易于审计。

获取 Akahu 令牌

  1. 登录 my.akahu.nz/developers, 并创建一个 Personal App。
  2. 连接你希望助手查看的银行账户。
  3. 复制 App Token(app_token_...)和 User Token (user_token_...)。

请像保护密码一样保管这两种令牌。以下安装步骤会避免将它们存入项目文件。

你还需要 uv。插件、Desktop Extension 和通用客户端配置都会使用 uvx 运行服务;它会获取发行版本及匹配的 Python。

安装

使用场景方式令牌存放位置
Claude Code从此仓库的 marketplace 安装插件OS 钥匙串,安装时提示输入
Claude Desktop.mcpb Desktop ExtensionOS 钥匙串,安装时提示输入
Codex从此仓库的 marketplace 安装插件Codex 启动时的环境
Cursor从此仓库的 marketplace 安装插件Cursor 插件设置
Grok Build从此仓库的 marketplace 安装插件Grok 启动时的环境
claude.ai、ChatGPT、grok.com使用 OAuth 的可自托管 HTTPS 服务你的服务端环境
任何支持 MCP 的其他客户端uvx nz-openbank-mcp客户端环境

以下所有选项都会以 AKAHU_READ_ONLY=true 和 AKAHU_AUTOMATION_BYPASS=false 启动。

Claude Code
/plugin marketplace add thatskiff33/nz-openbank-mcp
/plugin install nz-openbank-mcp@nz-openbank

Claude Code 会要求输入两个令牌和两个安全设置。随后,/mcp 应会将该服务列为已连接。之后若要更改设置,请打开 /plugin,选中插件并选择 Configure options。更多详情(包括更新和移除)请参阅 plugin/README.md。

Claude Desktop

从最新版本下载 nz-openbank-mcp-X.Y.Z.mcpb 并打开,或使用 Settings -> Extensions -> Advanced -> Install Extension。Desktop 会显示一个表单,用于填写令牌和设置。若要更新,请安装更新版本的 .mcpb。

Claude Code 插件不能在 Claude Desktop 中使用,因为 Desktop 目前无法收集插件设置。

Codex、Grok Build

这两个宿主都无法提示输入插件密钥,因此令牌来自启动宿主时所在环境。请从操作系统的密钥存储中读取令牌,而不要将其写入点文件:

# macOS
export AKAHU_USER_TOKEN="$(security find-generic-password -s akahu-user-token -w)"
export AKAHU_APP_TOKEN="$(security find-generic-password -s akahu-app-token -w)"
# Linux (libsecret)
export AKAHU_USER_TOKEN="$(secret-tool lookup service akahu-user-token)"
export AKAHU_APP_TOKEN="$(secret-tool lookup service akahu-app-token)"

在 Codex、Grok Build 和 Cursor 中,如果宿主启动时的环境已设置 AKAHU_READ_ONLY 或 AKAHU_AUTOMATION_BYPASS,则会覆盖安全默认值。

Codex:

codex plugin marketplace add thatskiff33/nz-openbank-mcp
codex plugin add nz-openbank-mcp@nz-openbank
codex mcp list          # shows the akahu server

Codex 只会将四个 AKAHU_* 设置传递给服务。使用 codex plugin marketplace upgrade nz-openbank 进行更新。

Grok Build:

grok plugin marketplace add thatskiff33/nz-openbank-mcp
grok plugin install nz-openbank-mcp --trust
grok mcp doctor akahu   # should report 14 tools

Grok 也会加载 Claude Code 插件。请只在其中一个宿主中安装,否则会出现两个服务副本。

Cursor
agent plugin marketplace add https://github.com/thatskiff33/nz-openbank-mcp

从 Customize 安装 nz-openbank-mcp(或在 Cursor 命令行中使用 /plugins),然后在 Plugins -> Configure 下输入两个令牌。Cursor 会保存令牌,而不是仓库。将安全设置留空即可保留默认值。该服务会显示为 plugin-nz-openbank-mcp-akahu。未在此处设置的选项会回退到 Cursor 启动时所在环境中的设置。若要试用本地检出版本,请使用 --plugin-dir /path/to/nz-openbank-mcp/plugin 启动 Cursor 命令行。

顶部的 Add to Cursor 按钮会安装普通 MCP 条目,而不是插件。它会从 Cursor 启动时所在环境读取 AKAHU_USER_TOKEN 和 AKAHU_APP_TOKEN,因此请按照上文 Codex 部分的说明设置这些变量。

Web 连接器(claude.ai、ChatGPT、grok.com)

Web 助手只能访问公共互联网中的服务。请在 HTTPS 后运行 nz-openbank-mcp-http 入口点,并启用 OAuth;然后在助手中添加自定义连接器(grok.com 用户可前往 grok.com/connectors),并将其指向服务的 /mcp URL。在 OAuth 模式下,此服务充当 OAuth 授权服务,Google 会确认登录者身份,只有获准的 Google 账号或 Workspace 网域可以通过。Google 永远不会看到你的 Akahu 令牌。

设置、Google 客户端、重定向允许列表和安全加固说明见 docs/public-https-streamable-http.md,其中还提供了 systemd 示例,位于 deploy/linux-systemd/。grok.com 的连接器回调 https://grok.com/connectors-oauth-exchange-code/ 不在默认重定向列表中。NZ_OPENBANK_MCP_ALLOWED_REDIRECT_URIS 会替换该列表,因此请一并加入仍需使用的默认条目。

其他 MCP 客户端

将客户端指向此命令,并通过环境变量提供设置:

uvx nz-openbank-mcp            # or pin: uvx --from nz-openbank-mcp==X.Y.Z nz-openbank-mcp

examples/claude_desktop_config.json 展示了大多数采用 JSON 配置的客户端所需的格式。若要在 Claude Desktop 中使用它而不是扩展,请将其合并到配置文件中并重启:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json
Docker

每个版本也会发布为多架构镜像(amd64 和 arm64),以非 root 用户身份运行,并启用只读模式:

docker run -i --rm -e AKAHU_USER_TOKEN -e AKAHU_APP_TOKEN ghcr.io/thatskiff33/nz-openbank-mcp

不带值的 -e NAME 会从你的 shell 传递变量,因此令牌不会出现在命令行中。对于使用 JSON 配置的客户端,请将 "command": "docker" 与这些参数搭配使用。对于 HTTP 服务,请在镜像中运行 nz-openbank-mcp-http;参见 HTTPS 指南。

设置

服务会从进程环境中读取设置;只有当 AKAHU_ENV_FILE 指定了 env 文件时,才会读取该文件(进程环境中的值优先)。它不会读取工作目录中的 .env 文件。

变量默认值含义
AKAHU_USER_TOKEN(必填)你的用户令牌
AKAHU_APP_TOKEN(必填)你的 Personal App 的 App Token
AKAHU_READ_ONLYtrue拒绝所有写入工具
AKAHU_AUTOMATION_BYPASSfalse跳过两个刷新工具的确认提示
AKAHU_REQUEST_TIMEOUT10每次 Akahu 请求的秒数(1 到 120)
AKAHU_LOG_LEVELINFODEBUG、INFO、WARNING、ERROR 或 CRITICAL
AKAHU_ENV_FILE(未设置)要加载的 env 文件的绝对路径;在 Linux 和 macOS 上,该文件必须属于你(或 root),且不可由组用户或其他用户写入
AKAHU_BASE_URLhttps://api.akahu.io/v1必须保持为 api.akahu.io,除非启用了下一项设置
AKAHU_ALLOW_CUSTOM_BASE_URLfalse允许使用其他 API 主机;仅接受进程环境中的设置,绝不从 env 文件中读取

使用自定义 API 主机时,服务会在启动时记录一条警告。只能在你自己的 shell 或主机配置中设置 AKAHU_ENV_FILE 和 AKAHU_ALLOW_CUSTOM_BASE_URL,切勿将它们放入克隆的仓库中的项目文件。

HTTP 入口点有自己的 NZ_OPENBANK_MCP_* 设置,详见 .env.example 和 HTTPS 指南。

写入操作如何受到保护

每个写入工具前都有三项检查:

  1. 只读开关。 设置 AKAHU_READ_ONLY=true 时,工具会在任何请求离开你的设备之前拒绝执行。
  2. 确认。 启用写入后,服务会通过助手的确认提示请求你批准每次调用。提示会列出即将发送的所有值,例如完整的支持工单评论文本,并用引号括起,同时将隐藏字符显示出来。超过 1,000 个字符的值会被拒绝,而不是缩短。拒绝或关闭提示都会取消调用。
  3. 有限绕过。 设置 AKAHU_AUTOMATION_BYPASS=true 时,仅会为 acct_refresh_all_accounts 和 acct_refresh_account 跳过提示;这两个工具只会请求 Akahu 重新同步。每次跳过提示都会被记录,启动横幅会列出这些工具;如果只读模式也处于启用状态,服务将不会在绕过模式下启动。支持工单和姓名检查始终需要确认。

限制

Akahu Personal Apps 无法访问应用级端点,因此本服务不提供类别(交易会内嵌类别信息)、受支持银行列表、付款或 webhook 的工具。

id_verify_name 需要为你的 Personal App 启用相应权限,前往 my.akahu.nz/developers 即可设置;否则 Akahu 会返回 403。

待处理交易没有 ID,在结算前可能会发生变化,并且会标记为 "pending": true。

txn_get_transactions 和 txn_search_transactions 每次调用最多从 Akahu 读取 20 页结果。如果某个时间范围内的结果更多,返回结果会包含 "truncated": true;请使用更窄的日期范围再次查询。

遇到网络错误或 Akahu 服务端错误时,读取操作和账户刷新操作最多会尝试三次。支持工单和姓名检查只会发送一次,因为即使请求超时,也可能已到达 Akahu。对于速率限制(429)响应,每个请求都会重试。

日期和金额

日期采用新西兰日历日(Pacific/Auckland),尽管 Akahu 存储的是 UTC 时间戳。仅包含日期的筛选条件(例如 start_date=2026-10-18)会覆盖整个新西兰日,无论是在范围的哪一端;完整的 ISO 8601 时间戳会原样传递给 Akahu,而 Akahu 会将不带时区偏移的时间戳视为 UTC。金额按各账户的货币格式化,因此 USD 账户会显示为 -USD 9.99。如果账户货币未知,currency 为 null,且 amount 不含货币符号(例如 -1,234.50);amount_raw 是相同金额的纯数字,四舍五入到分。其他日期格式均不接受。

隐私

  • 新西兰账户号码会遮盖,仅显示银行代码、账户号码末四位和后缀。其他格式中,除末四位外的所有数字都会被遮盖。
  • 不会记录令牌。不会记录余额和交易内容;请求路径(可能包含 Akahu 账户或交易 ID)会连同状态一起记录。
  • 默认情况下,通过 stdio 运行时,服务唯一的网络流量是发往 api.akahu.io 的流量(以及 uvx 下载软件包的流量)。HTTP 模式还会连接 Google 以供登录。
  • 账户和日期筛选条件会发送给 Akahu;类别和金额筛选条件则在数据到达后应用。Personal Apps 不提供更细粒度的访问控制,因此令牌可以读取你已连接的所有内容。

隐私政策说明了哪些人可以看到哪些内容,威胁模型列出了各项风险、相应的缓解措施以及仍然存在的风险。

发布文件(wheel、sdist 和 .mcpb)附带 GitHub 构建来源证明,PyPI 上传则通过 Trusted Publishing 完成。要验证下载内容:

gh attestation verify nz-openbank-mcp-X.Y.Z.mcpb --repo thatskiff33/nz-openbank-mcp

请通过 SECURITY.md 私下报告漏洞。

开发

git clone https://github.com/thatskiff33/nz-openbank-mcp.git
cd nz-openbank-mcp
uv sync --extra dev
uv run pytest                 # 100% line and branch coverage is required
uv run ruff check . && uv run mypy src
FASTMCP_ENV_FILE=/dev/null uv run fastmcp dev src/nz_openbank_mcp/server.py

要在 Claude Code 中使用本地检出版本:

claude mcp add nz-openbank --scope user \
  --env AKAHU_APP_TOKEN=app_token_... --env AKAHU_USER_TOKEN=user_token_... \
  -- uv --directory "$(pwd)" run nz-openbank-mcp

宿主插件清单为自动生成。编辑 plugin/plugin.base.toml,然后运行 uv run --no-project python scripts/sync_plugin_manifests.py。发布流程见 PUBLISHING.md;更多运维指南见 docs/。

欢迎贡献:请参阅 CONTRIBUTING.md、行为准则和变更日志。如有问题,请在 Discussions 中提问。

许可证和免责声明

本项目采用 Apache-2.0 许可证;详见 LICENSE。 本项目基于 severity1 的 nz-akahu-mcp(Apache-2.0)开发,并经过了大量修改;详见 NOTICE。 感谢 severity1 构建并开源了原始项目,没有它就不会有本项目。

本软件按原样提供。你需自行负责如何将其用于你的金融数据。维护者对因使用本软件而导致的数据丢失、未经授权的访问或财务损失概不负责。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。