mcpField
W
wise-mcp

wise-mcp

本地服务
github.com金融数据02 周前更新

关于 wise-mcp

wise-mcp 是连接 Wise 账户与 AI 助手的 MCP 服务,供用户查询余额、卡片消费、转账和收款人,也可准备转账等变更。写入操作需在聊天中确认,转账还须由用户在 Wise 应用中付款。

主要功能

  1. 01查询多个人与商业账户资料
  2. 02查看余额、Jars 与交易
  3. 03筛选转账、收款人和汇率
  4. 04两步准备并确认写入操作
  5. 05会话管理与审计日志

适用场景

  1. 01汇总特定月份的卡片消费
  2. 02查询不同币种的余额与 Jars
  3. 03核对转账记录和汇率
  4. 04准备转账并在 Wise 应用中付款

MCP 相关

提供 14 个 MCP 工具,供客户端读取 Wise 数据并准备或确认写入操作。可在本地连接 MCP 客户端,也可自托管为远程连接器;所有写入操作均需两步确认。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"blanketbyte-wise": {
"command": "npx",
"args": [
"-y",
"@blanketbyte/wise-mcp"
],
"env": {
"WISE_API_TOKEN": "<WISE_API_TOKEN>",
"WRITES_ENABLED": "<WRITES_ENABLED>",
"MAX_TRANSFER_AMOUNT": "<MAX_TRANSFER_AMOUNT>"
}
}
}
}
启动命令npx -y @blanketbyte/wise-mcp
需要配置的环境变量
WISE_API_TOKEN密钥Wise personal API token (Wise → Settings → API tokens). Full access to prepare transfers, Read only for answers.
WRITES_ENABLEDSet to false for read-only. Writes are always two-step and transfers are paid by you in the Wise app.
MAX_TRANSFER_AMOUNTOptional max amount per transfer, in the source currency.

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

安装包
npm@blanketbyte/wise-mcp1.1.1

工具

14

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

Wise MCP

Wise MCP

向 Claude 或 ChatGPT 询问你的 Wise 资金情况。 为 Wise 余额、银行卡付款、转账和收款人提供最简单、最全面的 MCP 服务,还能准备需要你两次确认的转账。 只需运行一条 npx 命令,即可在本地运行(Claude Desktop、Claude Code、Codex、Cursor……),也可以将其托管为 Claude 和 ChatGPT 的自定义连接器。

npx @blanketbyte/wise-mcp MCP OAuth 2.1 Writes Node.js 22 License MIT


“我 9 月在杂货上花了多少钱?” “我的 EUR 罐子里还剩多少?” “显示我今年转给 Mario 的转账记录,以及我获得的汇率。” “给 Mario 转 120 EUR,作为晚餐费用。”

只需提供一次 Wise API 令牌,你的助手就能回答有关所有 Wise 个人和企业资料的问题。它还可以准备转账、新增收款人和取消操作。每项变更都需要你在聊天中明确批准;只有你在 Wise 应用中付款后,转账才会真正执行。

为什么选择它

这是将 Wise 连接到 AI 助手最简单的方式,也是我们所知功能最全面的 Wise MCP 服务(截至 2026 年 10 月):

  • 一个令牌,无需合作伙伴账户。 其他服务需要 Wise 合作伙伴 OAuth 凭据,或者只能提供基本的只读功能。这里无论本地运行还是托管,只需个人 API 令牌即可。
  • 真实的消费记录。 活动动态涵盖银行卡付款,并显示清晰的商户名称和金额,也包括个人和企业资料中的转账、货币兑换、返现和罐子。
  • 值得信赖的写入操作。 汇率报价、新增收款人、转账和取消操作都采用两步流程,并在聊天中获得批准;转账由你在 Wise 应用中付款。
  • 随处可用。 可通过 npx 用于 Claude Desktop、Claude Code、Codex 和 Cursor,也可一键安装 Claude Desktop 扩展,或自托管连接器,供网页和移动端上的 Claude 与 ChatGPT 使用。
  • 为真实账户打造。 提供 14 个工具、加密的令牌存储、会话管理、审计日志,以及针对两种运行模式的端到端测试。

选择运行方式

本地远程(可自托管)
适用客户端Claude Desktop、Claude Code、Codex、Cursor、VS Code,以及任何 MCP 客户端Claude(网页、桌面、移动端)和 ChatGPT 自定义连接器
设置运行一条 npx 命令,或一键安装 Claude Desktop 扩展在 HTTPS 后部署容器(Dokploy、Easypanel、Docker Compose)
令牌配置在应用的 MCP 设置中,保存在你的设备上在登录页面粘贴,随后加密存储在你的服务上
指南本地运行部署

目录

工具

读取
工具返回内容
list_profiles令牌可访问的所有 Wise 个人资料(个人、企业)
list_balances默认显示所有个人资料中各币种的余额,以及 Jars
get_transactions按时间倒序排列的活动记录:卡片支付、转账、货币兑换、返现、直接扣款。商户名称经过清理,金额为数字,并标明 in / out / neutral 方向。可按类型、状态、日期范围和文本筛选;支持游标分页
list_transfers按时间倒序排列的转账,包含两种币种、备注、状态和收款人姓名
get_transfer单笔转账详情:汇率、金额、备注、收款人
list_recipients已保存的收款人,包含账号 / IBAN,可按币种和文本筛选
get_exchange_rateWise 中间市场汇率,可查询当前汇率或过去某个日期的汇率
写入:始终分两步
工具功能
get_quote计算转账或货币兑换的报价:汇率、费用、到账金额、预计到账时间。不做任何更改
get_recipient_requirements查询 Wise 针对某币种的收款人所需银行信息(IBAN、排序代码等)
prepare_transfer为转账到已保存的收款人生成报价,检查 Wise 的路线要求和你的余额,并返回摘要和一次性代码
prepare_recipient验证新收款人并返回摘要和一次性代码
prepare_cancel_transfer准备取消尚未付款的转账
confirm_action执行已准备好的操作。仅在你批准确切的摘要后执行
discard_action丢弃已准备好的操作

运行时会根据令牌发现个人资料。每个工具都接受可选的 profile:个人资料 ID、personal、business,或个人资料名称的一部分。

工作原理

本地运行时,服务会作为 MCP 客户端的子进程在你的计算机上运行,并从 WISE_API_TOKEN 读取令牌。它不托管在任何地方,也无需登录。

远程运行时,Wise 不向个人提供 OAuth,因此该服务会作为 Claude 和 ChatGPT 的 OAuth 2.1 授权服务;“登录”时,你只需粘贴一次 Wise 个人 API 令牌。

sequenceDiagram
    autonumber
    participant C as Claude / ChatGPT
    participant S as Wise MCP
    participant W as Wise API
    C->>S: Dynamic client registration (trusted redirect hosts only)
    C->>S: /authorize (PKCE)
    S-->>C: Login page: token + "stay connected for"
    Note over C,S: You paste a Wise API token, pick 5 / 15 / 30 / 90 days or until revoked
    S->>W: GET /v1/me
    W-->>S: Wise user id
    S->>S: Allowlist check, token sealed with AES-256-GCM
    S-->>C: Authorization code → access + refresh tokens
    C->>S: MCP tool calls (Bearer, 1 h tokens, rotating refresh)
    S->>W: Reads, and writes only after confirm_action
  • 会话时长由每次登录时选择。访问令牌有效期为一小时;刷新令牌每次使用时都会轮换,有效期与会话完全相同。
  • **/sessions**会列出 Wise 账户的所有已连接会话,并允许你撤销一个或全部会话。再次粘贴 Wise 令牌即可登录;该令牌仅用于验证你的身份,绝不会被存储。访问权限通过仅限 HTTP 的 Cookie 保持 15 分钟。
  • 在 Wise 中撤销也有效:前往 Wise → Settings → API tokens,删除令牌。下次调用会失败并显示明确的错误消息,服务会删除存储的令牌以及使用过该令牌的所有会话。
每次写入操作均需两次确认
prepare_*  ──▶  summary + code (TX-…, RCP-…, CXL-…)  ──▶  you approve in chat  ──▶  confirm_action
                 nothing written to Wise yet              ①                          created in Wise
                                                                                          │
transfers only:                                    you pay it in the Wise app  ◀──────────┘
                                                   ②  money moves only now
  • 代码只能使用一次,10 分钟后过期,且只能在生成代码的会话中使用。
  • 创建的转账均为未付款状态(incoming_payment_waiting)。无论如何,Wise 不允许个人令牌为 EU/UK 账户中的转账付款,因此最后一步“Pay”始终由你完成。在此之前,你可以使用 prepare_cancel_transfer 或在应用中取消转账。
  • 每次准备、确认、丢弃和失败都会追加记录到 audit.log(本地路径为 ~/.wise-mcp/,托管时则写入数据卷)。

安全模型

✋ 两步写入每次写入都要经过准备 → 在聊天中由你批准 → 使用一次性代码确认。之后,你还需要在 Wise 应用中支付转账。
🔒 只读选项WRITES_ENABLED=false 会移除所有写入工具。使用 Wise Read only 令牌时,写入工具会返回清晰的错误消息,读取功能仍可正常使用。
💶 限额可选设置 MAX_TRANSFER_AMOUNT,限制单笔转账金额。Wise 自身的路线检查(用途、资金来源)会在发放代码前执行。
🧾 允许列表只有 ALLOWED_WISE_USERS 中的 Wise 用户 ID 才能连接。其他令牌都会被拒绝,且不会存储任何相关信息。移除某个 ID 后,该用户现有的会话也会被终止。
🗝️ 静态加密Wise 令牌使用 TOKEN_ENCRYPTION_KEY 通过 AES-256-GCM 加密。OAuth 令牌仅以 SHA-256 哈希形式存储。状态文件和审计日志仅允许所有者访问(0600),并以原子方式写入。
🧹 最少保留一旦没有活动会话使用某个 Wise 令牌,就会立即删除:撤销后、会话过期后,或 Wise 拒绝该令牌时。
🔁 强化 OAuth 安全使用 PKCE(S256)、一次性登录码和授权码、轮换刷新令牌;重定向主机仅限 claude.ai、claude.com、chatgpt.com 和 localhost,确保授权码只能发送到你信任的应用。
🚦 速率限制令牌表单(/login、/sessions/login)每个 IP 每 15 分钟允许尝试 20 次;OAuth 端点使用 MCP SDK 的限制。
🔐 仅限 HTTPS如果 PUBLIC_URL 不是 HTTPS,服务将拒绝启动;如果页面通过纯 HTTP 打开,每个页面都会显示红色警告,避免有人在未加密的页面上粘贴 Wise 令牌。
🛡️ 页面严格的 CSP(default-src 'none',form-action 仅限服务和客户端自身的重定向源)、X-Frame-Options: DENY、no-store、不发送 referrer。

警告

请勿将 TOKEN_ENCRYPTION_KEY 纳入数据卷的备份。更改该密钥会导致已存储的令牌无法读取:重新连接即可。

本地运行

需要 Node.js 20 或更高版本。请先创建令牌:Wise → Settings → API tokens → Add new token(准备转账和收款人需要 Full access,仅获取答复则选择 Read only)。

Claude Desktop 扩展(一键安装)

从最新版本下载 wise-mcp-<version>.mcpb 并打开。Claude Desktop 会提示你输入令牌(安全存储,不会保存在纯文本配置文件中),并询问是否允许准备转账。

Claude Code
claude mcp add wise -e WISE_API_TOKEN=your-token -- npx -y @blanketbyte/wise-mcp
Codex

将以下内容添加到 ~/.codex/config.toml:

[mcp_servers.wise]
command = "npx"
args = ["-y", "@blanketbyte/wise-mcp"]
env = { WISE_API_TOKEN = "your-token" }
Claude Desktop、Cursor、VS Code 和其他 MCP 客户端

将以下内容添加到客户端的 MCP 配置中(对于 Claude Desktop:Settings → Developer → Edit config):

{
  "mcpServers": {
    "wise": {
      "command": "npx",
      "args": ["-y", "@blanketbyte/wise-mcp"],
      "env": { "WISE_API_TOKEN": "your-token" }
    }
  }
}

此仓库也是一个 Agent 插件(plugin.json + mcp.json),因此支持该标准的客户端和目录可以直接安装。请在客户端中设置 WISE_API_TOKEN。

可选环境变量:设置 WRITES_ENABLED=false 可启用只读模式,设置 MAX_TRANSFER_AMOUNT 可限制单笔转账金额。运行 npx @blanketbyte/wise-mcp --help 可查看所有选项。

说明

ChatGPT 只能连接远程服务,因此请为 ChatGPT 使用可自托管配置。

部署

容器通过 3000 端口提供纯 HTTP 服务;请将其置于任何可终止 HTTPS 的服务之后。状态数据(加密令牌、会话)存储在 /data 中。

每次发布都会发布预构建镜像:ghcr.io/blanketbyte/wise-mcp:<version>(或 :latest),支持 linux/amd64 和 linux/arm64。只要你的平台支持镜像,就请使用该镜像,而不是从源代码构建。

Dokploy
  1. DNS:将一个主机名(例如 wise.example.com)指向你的 Dokploy 服务。
  2. 应用程序:Create Service → Application,来源 = 此仓库,分支 main,构建类型为 Dockerfile,上下文为 .。
  3. 域名:填写你的主机名,容器端口 3000,开启 HTTPS,证书选择 Let's Encrypt。
  4. 卷:挂载一个命名卷到 /data(容器以 uid 1000 运行)。
  5. 环境变量:
    PUBLIC_URL=https://wise.example.com
    ALLOWED_WISE_USERS=          # empty on the first deploy, see step 7
    TOKEN_ENCRYPTION_KEY=        # openssl rand -base64 32
    
  6. 部署,然后访问 https://wise.example.com/health 检查。
  7. 查找你的 Wise 用户 ID:先从 Claude 连接一次。Not allowed 页面会显示你的 ID:设置 ALLOWED_WISE_USERS=<id>,重新部署并再次连接。
Easypanel
  1. DNS:将一个主机名(例如 wise.example.com)指向你的 Easypanel 服务。
  2. 服务:在一个项目中,选择 + Service → App,将其命名为 wise-mcp。
  3. 来源:选择 GitHub,填写此仓库的所有者/仓库,分支 main,构建路径 /。(或者选择 Git 并填写仓库 URL。)
  4. 构建:选择 Dockerfile,文件为 Dockerfile。
  5. 环境变量:
    PUBLIC_URL=https://wise.example.com
    ALLOWED_WISE_USERS=          # empty on the first deploy, see step 9
    TOKEN_ENCRYPTION_KEY=        # openssl rand -base64 32
    
  6. 域名:添加 wise.example.com,开启 HTTPS,端口 3000。Easypanel 会签发 Let's Encrypt 证书。
  7. 挂载:添加一个名为 data、挂载路径为 /data 的卷挂载。如果没有此挂载,每次重新部署都会丢失会话和令牌。
  8. 部署,然后访问 https://wise.example.com/health 检查。
  9. 查找你的 Wise 用户 ID:从 Claude 或 ChatGPT 连接一次。Not allowed 页面会显示你的 ID:设置 ALLOWED_WISE_USERS=<id>,再次部署并重新连接。

若要在每次推送时自动重新部署,请在服务上启用 Auto Deploy(这会添加一个 GitHub webhook)。

Docker Compose
cp .env.example .env            # fill it in
mkdir -p data && sudo chown 1000:1000 data
docker compose up -d --build    # listens on 127.0.0.1:3000
连接 Claude
  1. 在 Wise 中:选择 Settings → API tokens → Add new token。选择 Full access 以准备转账和收款人,或者如果你只想获取解答,则选择 Read only。
  2. 在 Claude 中:选择 Settings → Connectors → Add custom connector:
    https://wise.example.com/mcp
    
  3. 粘贴令牌,选择保持连接的时长,完成。

ChatGPT:选择 Settings → Apps & Connectors,开启 Developer mode(在 Advanced 下),然后使用相同的 /mcp 地址和 OAuth 身份验证创建一个连接器。同一个登录页面会打开。

你的服务页面

部署后,你的服务有三个可在浏览器中打开的页面。请将 wise.example.com 替换为你自己的地址。

页面地址用途
🏠 主页https://wise.example.com/显示连接器地址,以及 Claude 和 ChatGPT 的分步说明。打开此页面可检查服务是否正常运行。
🔑 登录自动打开在 Claude 或 ChatGPT 中添加连接器时会显示。粘贴你的 Wise API 令牌,选择保持连接的时长,然后点击 Connect Wise。你无需自行打开此页面。
🧾 管理会话https://wise.example.com/sessions列出所有已连接到你 Wise 账户的应用(Claude、ChatGPT,以及任何设备),并显示连接时间、上次使用时间和过期时间。可以撤销单个会话,也可以一次性全部撤销。若要登录,请粘贴你账户的 Wise API 令牌;该令牌仅用于确认你的身份,不会被存储。

常见情况

  • “我想断开某台设备或某个应用。” 打开管理会话,点击对应会话旁的 Revoke。
  • “我觉得令牌泄露了。” 在 Wise → Settings → API tokens 中删除该令牌。所有使用它的会话都会立即停止工作,服务也会删除其副本。然后使用新令牌重新连接。
  • “Claude 或 ChatGPT 提示我重新连接。” 你的会话已过期或被撤销。移除并重新添加连接器;此时会打开登录页面。
  • “登录页面显示 Not allowed。” 你的 Wise 账户不在此服务的允许列表中。页面会显示你的 Wise 用户 ID:将其添加到 ALLOWED_WISE_USERS 并重新部署。

此外,还可通过 https://wise.example.com/health 进行监控;服务运行时,该地址会返回 {"ok":true}。

配置

变量模式默认值
WISE_API_TOKEN本地,必需Wise 个人 API 令牌
WRITES_ENABLED两者truefalse 会移除所有写入工具
MAX_TRANSFER_AMOUNT两者(无上限)每笔转账的最高金额,以源货币计
DATA_DIR两者本地为 ~/.wise-mcp,Docker 中为 /data审计日志(以及托管模式下的加密令牌和会话)
PUBLIC_URL远程,必需服务的公开 HTTPS 来源
TOKEN_ENCRYPTION_KEY远程,必需至少 32 个字符;用于加密存储的 Wise 令牌
ALLOWED_WISE_USERS远程(无人)以逗号分隔的 Wise 用户 ID
ALLOWED_REDIRECT_HOSTS远程claude.ai,claude.com,chatgpt.com,localhost,127.0.0.1OAuth 客户端可重定向到的主机
PORT远程3000

启动时,服务会记录允许的用户和加密密钥的简短 SHA-256 指纹,让你在不泄露密钥的情况下确认部署的是哪个密钥。

开发

npm install
npm run dev         # remote server with tsx watch (needs the remote env vars)
npm test            # typecheck + both end-to-end suites
npm run e2e         # remote server against a local mock of the Wise API
npm run e2e:stdio   # local mode: spawns the CLI like an MCP client would
npm run mcpb        # builds release/wise-mcp-<version>.mcpb

远程端到端测试会在模拟 Wise API 旁启动服务,并完整模拟 Claude 执行的所有操作:客户端注册、PKCE 登录、允许列表、会话时长、令牌刷新轮换、静态加密、每个工具(金额解析、分页、筛选器)、两步写入(一次性代码、跨会话隔离、路由要求、取消、审计日志、只读令牌)、/sessions,以及在 Wise 中撤销令牌。stdio 测试套件覆盖 CLI、令牌错误、通过 stdio 使用的每个工具、两步写入、审计日志和只读模式。

发布

推送一个与 package.json 匹配的标签(例如 v1.1.0)。发布工作流会运行测试,通过来源证明将 @blanketbyte/wise-mcp 发布到 npm(通过 GitHub OIDC 进行可信发布,不在任何位置存储 npm 令牌),根据 server.json 将其列入 官方 MCP Registry,将 .mcpb 附加到 GitHub 发布,并将 Docker 镜像推送到 ghcr.io/blanketbyte/wise-mcp。首次发布前,请从 package.json 中移除 "private": true。

项目布局
src/
  cli.ts               Entry point: `wise-mcp` (stdio) or `wise-mcp serve` (remote)
  stdio.ts             Local mode over stdin/stdout
  index.ts             Remote server: icons, OAuth routes, /login, /sessions, /mcp
  config.ts            Environment validation (shared and remote-only settings)
  meta.ts              Version, paths, links
  crypto.ts            AES-256-GCM sealing, cookie signing
  tools.ts             MCP tools (read + two-step write)
  pending.ts           Prepared actions and one-time confirmation codes
  wise/client.ts       Wise API client (retries, idempotent transfers, revocation detection)
  wise/service.ts      Profiles, balances, activities, transfers, recipients, rates
  wise/connections.ts  Encrypted per-token connections
  auth/provider.ts     OAuth 2.1 provider for Claude, token-paste login
  auth/store.ts        Clients, sessions, hashed tokens
  auth/pages.ts        Login, /sessions and message pages
public/                Logo, icons, favicon
mcpb/manifest.json     Claude Desktop extension manifest
scripts/e2e.ts         Remote end-to-end test with a mock Wise API
scripts/e2e-stdio.ts   Local (stdio) end-to-end test
scripts/build-mcpb.sh  Builds the .mcpb bundle
.github/workflows/     CI, and release to npm + GitHub

限制

个人 API 令牌无法使用所有 Wise 端点。尤其是对于 EU/UK 账户,PSD2 规则会阻止访问余额对账单(因此没有每笔交易的余额)和卡片列表。活动动态包含银行卡付款,因此日常消费相关问题都能正常处理。

在写入方面,个人令牌无法为 EU/UK 账户充值转账(你需要在 Wise 应用中付款,而本服务本来也依赖这一操作),并且对于设置了付款审批规则的企业账户,Wise 会拒绝 API 转账。

贡献

欢迎提交 Issue 和 Pull Request;请参阅 CONTRIBUTING.md。请按照 SECURITY.md 中的说明,私下报告安全问题。

许可证

MIT © BlanketByte


README 配图
由 BlanketByte 制作。独立项目,与 Wise 无关联,也未获 Wise 认可。
Wise 和 Wise 旗帜是 Wise Payments Limited 的商标;旗帜未经修改,仅用于表示兼容性。

评论

支持 Markdown

第一次接触 MCP?

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

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