Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Wise balances, card payments, transfers and recipients, plus transfers you approve twice.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
WISE_API_TOKEN, WRITES_ENABLED, MAX_TRANSFER_AMOUNT标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"wise": {
"command": "npx",
"args": [
"-y",
"@blanketbyte/wise-mcp"
],
"env": {
"WISE_API_TOKEN": "your-value",
"WRITES_ENABLED": "your-value",
"MAX_TRANSFER_AMOUNT": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add wise --env WISE_API_TOKEN=your-value --env WRITES_ENABLED=your-value --env MAX_TRANSFER_AMOUNT=your-value -- npx -y @blanketbyte/wise-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"wise": {
"command": "npx",
"args": [
"-y",
"@blanketbyte/wise-mcp"
],
"env": {
"WISE_API_TOKEN": "your-value",
"WRITES_ENABLED": "your-value",
"MAX_TRANSFER_AMOUNT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"wise": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@blanketbyte/wise-mcp"
],
"env": {
"WISE_API_TOKEN": "your-value",
"WRITES_ENABLED": "your-value",
"MAX_TRANSFER_AMOUNT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
WRITES_ENABLED envMAX_TRANSFER_AMOUNT env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 BlanketByte 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:WISE_API_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.1.1)于26天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Python MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Local-only Python MCP server for the Files.com API.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Ask Claude or ChatGPT about your Wise money. The simplest, most complete MCP server for your Wise balances, card payments, transfers and recipients that can also prepare transfers you approve twice. Run it locally with one npx command (Claude Desktop, Claude Code, Codex, Cursor…), or host it as a custom connector for Claude and ChatGPT.
*"How much did I spend on groceries in September?"*
*"What's left in my jars, in EUR?"*
*"Show the transfers I sent to Mario this year and the rate I got."*
*"Send Mario 120 EUR for dinner."*
Give it a Wise API token once and your assistant can answer questions like these across all your Wise profiles, personal and business. It can also prepare transfers, new recipients and cancellations. Every change needs your explicit approval in chat, and a transfer only moves money once you pay it in the Wise app.
The simplest way to connect Wise to an AI assistant, and the most feature-rich Wise MCP server we know of (October 2026):
npx for Claude Desktop, Claude Code, Codex and Cursor, a one-click Claude Desktop extension, or a self-hosted connector for Claude and ChatGPT on web and mobile.| Local | Remote (self-hosted) | |
|---|---|---|
| Works with | Claude Desktop, Claude Code, Codex, Cursor, VS Code, any MCP client | Claude (web, desktop, mobile) and ChatGPT custom connectors |
| Setup | One npx command or a one-click Claude Desktop extension | Deploy a container behind HTTPS (Dokploy, Easypanel, Docker Compose) |
| Token | In your app's MCP config, on your machine | Pasted on a login page, stored encrypted on your server |
| Guide | Run locally | Deploy |
| Tool | What it returns |
|---|---|
list_profiles | Every Wise profile the token can see (personal, business) |
list_balances | Balances in every currency plus Jars, across all profiles by default |
get_transactions | Activity feed, newest first: card payments, transfers, conversions, cashback, direct debits. Clean merchant names, numeric amounts, in / out / neutral direction. Filter by type, status, date range and text; cursor pagination |
list_transfers | Transfers newest first, with both currencies, reference, status and recipient name |
get_transfer | One transfer in detail: rate, amounts, reference, recipient |
list_recipients | Saved recipients with account number / IBAN, filterable by currency and text |
get_exchange_rate | Wise mid-market rate, now or at a past date |
| Tool | What it does |
|---|---|
get_quote | Prices a transfer or conversion: rate, fee, amount received, delivery estimate. Changes nothing |
get_recipient_requirements | The bank details Wise needs for a recipient in a currency (IBAN, sort code, …) |
prepare_transfer | Quotes a transfer to a saved recipient, checks Wise's route requirements and your balance, returns a summary + one-time code |
prepare_recipient | Validates a new recipient and returns a summary + one-time code |
prepare_cancel_transfer | Prepares cancelling a transfer you haven't paid yet |
confirm_action | Performs a prepared action. Only after you approve the exact summary |
discard_action | Throws a prepared action away |
Profiles are discovered from the token at runtime. Every tool takes an optional profile: an id, personal, business, or part of the profile name.
Locally, the server runs on your machine as a child process of your MCP client and reads the token from WISE_API_TOKEN. Nothing is hosted and there's no login.
Remotely, Wise doesn't offer OAuth to individuals, so the server is its own OAuth 2.1 authorization server for Claude and ChatGPT, and the "login" is a Wise personal API token you paste once.
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
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
incoming_payment_waiting). Wise doesn't let personal tokens fund transfers for EU/UK accounts anyway, so the final "Pay" is always yours. Until then you can cancel the transfer with prepare_cancel_transfer or in the app.audit.log (~/.wise-mcp/ locally, the data volume when hosted).| ✋ Two-step writes | Every write is prepare → your approval in chat → confirm with a one-time code. Transfers then also need you to pay them in the Wise app. |
| 🔒 Read-only option | WRITES_ENABLED=false removes all write tools. With a Wise Read only token, write tools fail with a clear message and reading keeps working. |
| 💶 Limits | Optional MAX_TRANSFER_AMOUNT per transfer. Wise's own route checks (purpose, source of funds) are enforced before a code is issued. |
| 🧾 Allowlist | Only Wise user ids in ALLOWED_WISE_USERS can connect. Any other token is refused and nothing about it is stored. Removing an id cuts off that user's existing sessions too. |
| 🗝️ Encryption at rest | Wise tokens are sealed with AES-256-GCM under TOKEN_ENCRYPTION_KEY. OAuth tokens are stored only as SHA-256 hashes. State files and the audit log are owner-only (0600) and written atomically. |
| 🧹 Minimal retention | A Wise token is deleted as soon as no live session uses it: after revocation, session expiry, or when Wise rejects it. |
| 🔁 OAuth hardening | PKCE (S256), single-use login and authorization codes, rotating refresh tokens, redirect hosts limited to claude.ai, claude.com, chatgpt.com and localhost, so authorization codes can only reach apps you trust. |
| 🚦 Rate limiting | The token forms (/login, /sessions/login) allow 20 attempts per IP every 15 minutes; OAuth endpoints use the MCP SDK's limits. |
| 🔐 HTTPS only | The server refuses to start with a non-HTTPS PUBLIC_URL, and every page shows a red warning if it's opened over plain HTTP, so nobody pastes a Wise token on an unencrypted page. |
| 🛡️ Pages | Strict CSP (default-src 'none', form-action limited to the server and the client's own redirect origin), X-Frame-Options: DENY, no-store, no referrer. |
[!WARNING]
Keep
TOKEN_ENCRYPTION_KEYout of backups of the data volume. Changing it makes stored tokens unreadable: just reconnect.
Needs Node.js 20 or newer. Create a token first: Wise → Settings → API tokens → Add new token (Full access to prepare transfers and recipients, Read only for answers only).
Download wise-mcp- .mcpb from the latest release and open it. Claude Desktop asks for your token (stored securely, never in a plain config file) and whether to allow preparing transfers.
claude mcp add wise -e WISE_API_TOKEN=your-token -- npx -y @blanketbyte/wise-mcp
Add this to ~/.codex/config.toml:
[mcp_servers.wise]
command = "npx" args = ["-y", "@blanketbyte/wise-mcp"] env = { WISE_API_TOKEN = "your-token" }
Add this to the client's MCP config (for Claude Desktop: Settings → Developer → Edit config):
{
"mcpServers": { "wise": { "command": "npx", "args": ["-y", "@blanketbyte/wise-mcp"], "env": { "WISE_API_TOKEN": "your-token" } } } }
The repo is also an Agent Plugin (plugin.json + mcp.json), so clients and directories that support the standard can install it directly. Set WISE_API_TOKEN in your client.
Optional env: WRITES_ENABLED=false for read-only, MAX_TRANSFER_AMOUNT for a per-transfer limit. Run npx @blanketbyte/wise-mcp --help for all options.
[!NOTE]
ChatGPT only connects to remote servers, so for ChatGPT use the self-hosted setup.
The container serves plain HTTP on port 3000; put it behind anything that terminates HTTPS. State (sealed tokens, sessions) lives in `/data`.
A prebuilt image is published with every release: `ghcr.io/blanketbyte/wise-mcp: ` (or :latest), for linux/amd64 and linux/arm64. Use it instead of building from source wherever your platform accepts an image.
wise.example.com) at your Dokploy server.main, build type Dockerfile, context ..只显示了开头部分;其余内容请在仓库中阅读