wise-mcp について
wise-mcpは、WiseアカウントをMCP経由でAIアシスタントに接続し、残高、カード決済、送金、受取人の確認や変更の準備を行うサービスです。書き込みにはチャットでの確認が必要で、送金はさらにWiseアプリでの支払いが必要です。
主な機能
- 01個人・法人プロフィールの取得
- 02残高、Jars、取引の確認
- 03送金、受取人、為替レートの絞り込み
- 04書き込みの二段階準備と確認
- 05セッション管理と監査ログ
活用シーン
- 01指定期間のカード利用額を集計
- 02通貨別の残高とJarsを確認
- 03送金履歴と為替レートを確認
- 04送金を準備しWiseアプリで支払い
MCP 対応
Wiseのデータ参照と書き込みの準備・確認に使う14個のMCPツールを提供します。MCPクライアントとローカルで接続するか、リモートコネクターとしてセルフホストでき、すべての書き込みに二段階の確認が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @blanketbyte/wise-mcpWISE_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
Wise MCP
Wise のお金について Claude や ChatGPT に質問できます。
Wise の残高、カード決済、送金、受取人に対応し、さらに二度の承認を経て送金を準備できる、最もシンプルで機能が充実した MCP サーバーです。
1 つの npx コマンドでローカル実行するか(Claude Desktop、Claude Code、Codex、Cursor など)、Claude や ChatGPT 用のカスタムコネクターとしてホストできます。
「9 月に食料品にいくら使いましたか?」 「EUR で、Jars にいくら残っていますか?」 「今年 Mario に送金した履歴と、そのときの為替レートを見せてください。」 「夕食代として Mario に 120 EUR 送金してください。」
Wise API トークンを一度設定すれば、アシスタントは個人用とビジネス用のすべての Wise プロフィールについて、こうした質問に回答できます。送金、新しい受取人の登録、キャンセルの準備もできます。変更にはチャットでの明示的な承認が必要で、送金が実行されるのはWise アプリでお客様がお支払いした後だけです。
これを選ぶ理由
Wise を AI アシスタントに接続する最もシンプルな方法であり、私たちが知る限り最も機能が充実した Wise MCP サーバーです(2026 年 10 月時点)。
- トークン 1 つで、パートナーアカウントは不要です。 ほかのサーバーでは Wise パートナーの OAuth 認証情報が必要だったり、基本的な読み取り専用機能に限られたりします。こちらは、ローカルでもホスト環境でも、個人用 API トークンだけで利用できます。
- 実際の支出を確認できます。 アクティビティフィードには、分かりやすい加盟店名と金額を含むカード決済のほか、個人用とビジネス用のプロフィールにわたる送金、両替、キャッシュバック、Jars が表示されます。
- 安心して利用できる書き込み機能です。 見積もり、新しい受取人、送金、キャンセルはすべて 2 段階で、チャット内で承認します。送金は Wise アプリでお客様がお支払いします。
- どこでも利用できます。 Claude Desktop、Claude Code、Codex、Cursor 用の
npx、ワンクリックでインストールできる Claude Desktop 拡張機能、またはウェブやモバイルで Claude と ChatGPT に接続するセルフホスト可能なコネクターを利用できます。 - 実際のアカウント向けに構築されています。 14 個のツール、暗号化されたトークンストレージ、セッション管理、監査ログ、両方のモードを対象とするエンドツーエンドテストを備えています。
実行方法を選択する
| ローカル | リモート(セルフホスト) | |
|---|---|---|
| 対応環境 | Claude Desktop、Claude Code、Codex、Cursor、VS Code、あらゆる MCP クライアント | Claude(ウェブ、デスクトップ、モバイル)および ChatGPT カスタムコネクター |
| セットアップ | 1 つの npx コマンド、またはワンクリックでインストールできる Claude Desktop 拡張機能 | HTTPS の背後にコンテナーをデプロイ(Dokploy、Easypanel、Docker Compose) |
| トークン | お使いのマシン上にあるアプリの MCP 設定内 | ログインページで貼り付け、サーバー上に暗号化して保存 |
| ガイド | ローカルで実行 | デプロイ |
目次
ツール
読み取り
| ツール | 返される内容 |
|---|---|
list_profiles | トークンから参照できるすべてのWiseプロフィール(個人、ビジネス) |
list_balances | デフォルトではすべてのプロフィールを対象に、全通貨の残高とJars |
get_transactions | 新しい順のアクティビティフィード:カード決済、送金、通貨換算、キャッシュバック、口座引き落とし。整理された加盟店名、数値の金額、in/out/neutralの方向。種類、ステータス、日付範囲、テキストで絞り込み可能。カーソルによるページネーション |
list_transfers | 新しい順の送金一覧。両方の通貨、参照情報、ステータス、受取人名を含みます |
get_transfer | 1件の送金の詳細:レート、金額、参照情報、受取人 |
list_recipients | 保存済みの受取人と口座番号/IBAN。通貨とテキストで絞り込み可能 |
get_exchange_rate | Wiseのミッドマーケットレート。現在または過去の日付を指定できます |
書き込み:必ず2段階
| ツール | 内容 |
|---|---|
get_quote | 送金または通貨換算の見積もりを提示します:レート、手数料、受取額、配達予定。何も変更しません |
get_recipient_requirements | 通貨ごとに、受取人についてWiseが必要とする銀行情報(IBAN、ソートコードなど)を返します |
prepare_transfer | 保存済みの受取人への送金を見積もり、Wiseの送金ルートの要件と残高を確認し、概要と1回限りのコードを返します |
prepare_recipient | 新しい受取人を検証し、概要と1回限りのコードを返します |
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
- セッションの長さはログインのたびに選択します。アクセストークンの有効期間は1時間です。リフレッシュトークンは使用のたびにローテーションされ、セッションとまったく同じ期間だけ有効です。
- **
/sessions**では、Wiseアカウントに接続されているすべてのセッションを一覧表示し、1つまたはすべてを取り消せます。Wiseトークンをもう一度貼り付けてサインインします。このトークンは本人確認にのみ使われ、保存されません。アクセスにはHTTP専用Cookieが使われ、有効期間は15分です。 - Wiseでの取り消しも有効です:Wiseの「Settings」→「API tokens」でトークンを削除します。次の呼び出しは明確なメッセージとともに失敗し、サーバーは保存済みのトークンと、それを使用したすべてのセッションを削除します。
書き込みのたびに2回確認
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
- コードは1回限りで、有効期限は10分です。また、そのコードを準備したセッションからのみ使用できます。
- 送金は未払い(
incoming_payment_waiting)の状態で作成されます。いずれにせよ、Wiseでは個人用トークンでEU/UKアカウントの送金に資金を充当できないため、最後の「Pay」は必ずご自身で行います。それまでは、prepare_cancel_transferまたはアプリで送金をキャンセルできます。 - すべての準備、確定、破棄、失敗は
audit.logに追記されます(ローカルでは~/.wise-mcp/、ホストされている場合はデータボリューム)。
セキュリティモデル
| ✋ 2段階の書き込み | 書き込みはすべて、準備 → チャットでの承認 → 1回限りのコードによる確定という手順で行います。その後、送金を実行するにはWiseアプリでの支払いも必要です。 |
| 🔒 読み取り専用オプション | WRITES_ENABLED=false にすると、すべての書き込みツールが無効になります。Wiseの読み取り専用トークンを使うと、書き込みツールは明確なメッセージを表示して失敗しますが、読み取りは引き続き機能します。 |
| 💶 上限 | 送金ごとの上限として 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)、1回限りのログインコードと認可コード、更新トークンのローテーションを採用しています。リダイレクト先のホストは 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、リファラーなしを設定しています。 |
警告
データボリュームのバックアップに
TOKEN_ENCRYPTION_KEYを含めないでください。変更すると保存済みトークンを読み取れなくなります。その場合は再接続してください。
ローカルで実行する
Node.js 20以降が必要です。まずトークンを作成してください。Wise → Settings → API tokens → Add new token(送金と受取人の準備にはフルアクセス、回答のみの場合は読み取り専用)。
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" }
}
}
}
このリポジトリはエージェントプラグイン(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
- DNS: ホスト名(例:
wise.example.com)をDokployサーバーに向けます。 - アプリケーション:Create Service → Application を選択し、ソースにこのリポジトリ、ブランチに
main、ビルドタイプに Dockerfile、コンテキストに.を指定します。 - ドメイン:ホスト名を設定し、コンテナーポートを 3000、HTTPSをオン、証明書を Let's Encrypt にします。
- ボリューム:名前付きボリュームを
/dataにマウントします(コンテナーはuid 1000で実行されます)。 - 環境変数:
PUBLIC_URL=https://wise.example.com ALLOWED_WISE_USERS= # empty on the first deploy, see step 7 TOKEN_ENCRYPTION_KEY= # openssl rand -base64 32 - デプロイし、
https://wise.example.com/healthを確認します。 - WiseのユーザーIDを確認する:Claudeから一度接続します。Not allowed ページにユーザーIDが表示されます。
ALLOWED_WISE_USERS=<id>を設定して再デプロイし、もう一度接続します。
Easypanel
- DNS:ホスト名(例:
wise.example.com)をEasypanelサーバーに向けます。 - サービス:プロジェクト内で + Service → App を選択し、名前を
wise-mcpにします。 - ソース:GitHub を選択し、このリポジトリのオーナー/リポジトリとブランチ
main、ビルドパス/を指定します。(または Git を選択してリポジトリURLを指定します。) - ビルド:Dockerfile を選択し、ファイルに
Dockerfileを指定します。 - 環境変数:
PUBLIC_URL=https://wise.example.com ALLOWED_WISE_USERS= # empty on the first deploy, see step 9 TOKEN_ENCRYPTION_KEY= # openssl rand -base64 32 - ドメイン:
wise.example.comを追加し、HTTPSをオン、ポートを 3000 にします。EasypanelがLet's Encrypt証明書を発行します。 - マウント:マウントパスを
/dataとする、名前がdataのボリュームマウントを追加します。これがないと、再デプロイのたびにセッションとトークンが失われます。 - デプロイし、
https://wise.example.com/healthを確認します。 - WiseのユーザーIDを確認する:ClaudeまたはChatGPTから一度接続します。Not allowed ページにユーザーIDが表示されます。
ALLOWED_WISE_USERS=<id>を設定して再デプロイし、再接続します。
プッシュのたびに自動で再デプロイするには、サービスで Auto Deploy を有効にします(GitHubウェブフックが追加されます)。
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に接続する
- Wiseで Settings → API tokens → Add new token を選択します。送金と受取人を準備するには Full access を、回答のみを利用するには Read only を選択します。
- Claudeで Settings → Connectors → Add custom connector を選択します。
https://wise.example.com/mcp - トークンを貼り付け、接続を維持する期間を選択すれば完了です。
ChatGPT: Settings → Apps & Connectors で Developer mode(Advanced内)をオンにし、同じ /mcp アドレスと OAuth 認証を使ってコネクターを Create します。同じログインページが開きます。
サーバーのページ
デプロイ後、ブラウザーで開けるページがサーバーに3つあります。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 | 両方 | true | false にすると、すべての書き込みツールが削除されます |
MAX_TRANSFER_AMOUNT | 両方 | (上限なし) | 送金元通貨での、1 回あたりの送金上限額 |
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.1 | OAuth クライアントのリダイレクト先として許可されるホスト |
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 ログイン、許可リスト、セッションの有効期間、リフレッシュトークンのローテーション、保存時の暗号化、すべてのツール(金額の解析、ページネーション、フィルター)、2 段階の書き込み(単回使用コード、セッション間の分離、ルート要件、キャンセル、監査ログ、読み取り専用トークン)、/sessions、Wise での取り消し)を実行します。stdio テストスイートでは、CLI、トークンエラー、stdio 経由のすべてのツール、2 段階の書き込み、監査ログ、読み取り専用モードをテストします。
リリース
package.json に一致するタグ(例:v1.1.0)をプッシュします。リリースワークフローではテストを実行し、provenance 付きで @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 やプルリクエストを歓迎します。CONTRIBUTING.md をご覧ください。セキュリティ上の問題は、SECURITY.md に記載の方法で非公開に報告してください。
ライセンス
BlanketByte が制作。独立したプロジェクトであり、Wise との提携や Wise による推奨を受けていません。
Wise および Wise の旗は Wise Payments Limited の商標です。旗は互換性を示すため、改変せずに表示しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。