Wise MCP Server
Provides read-only tools for Wise (TransferWise) including profiles, balances, exchange rates, transfers, and recipients.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Wise MCP Serverlist my Wise profiles and balances"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@aiwerk/mcp-server-wise
Wise (TransferWise) Personal API MCP server. Read-only: profiles, balances, rates, transfers, recipients.
Tools (v0.1.4, 11 read-only)
wise_list_profiles,wise_get_profilewise_list_balances,wise_get_balancewise_get_exchange_rate,wise_get_exchange_rate_historywise_list_transfers,wise_get_transferwise_list_recipients,wise_get_recipient,wise_get_account_requirements
Write tools (create/fund/cancel transfer, create/delete recipient, create quote) are intentionally not in v0.1.x — they require idempotency + SCA state-machine handling, planned for v0.2.0.
Related MCP server: t212-mcp-server
Configuration
Env var | Required | Default | Purpose |
| yes | — | Personal API token from https://wise.com/settings/api-tokens |
| no |
| Sandbox override: |
| no |
| Per-request timeout |
| no | — | Dangerous override — see below |
Base URL safety
WISE_API_BASE_URL is locked down by default:
Must use
https://Host must be on the allowlist:
api.wise.comorapi.sandbox.transferwise.tech
Violation throws WiseConfigError before any Bearer token leaves the machine. This prevents token exfiltration via a misconfigured env, a bad CI value, or a malicious override.
Dangerous override: set
WISE_API_ALLOW_UNSAFE_BASE_URL=1to bypass both checks (allowhttp://and arbitrary hosts). Only use for local testing against a mock server. Never enable this in production or with a real Wise token. The token will be sent to whatever host you configure.
Install
Two ways to run this server — pick the one that fits.
Option 1 — Hosted (zero setup)
No local runtime, no env vars on your machine — your Wise token is AES-256-GCM encrypted server-side via HashiCorp Vault.
Sign up at aiwerkmcp.com.
Install Wise from the catalog and paste your
WISE_API_TOKEN.Point your MCP client (Claude.ai, Cursor, Hermes, …) at your hosted endpoint:
https://bridge.aiwerk.ch/u/<your-user-id>/mcpwith your Bearer token.
All 11 read-only tools appear. Install other AIWerk recipes from the same bridge.
Option 2 — Self-hosted (npx)
Run directly — you manage the token:
WISE_API_TOKEN=xxx npx @aiwerk/mcp-server-wiseOr install globally:
npm install -g @aiwerk/mcp-server-wise
WISE_API_TOKEN=xxx mcp-server-wiseError taxonomy
Errors surface as MCP isError: true responses with distinct prefixes:
Timeout: …— request exceededWISE_API_TIMEOUT_MS(wrapsAbortController)Network error: …— fetch rejected (DNS, connection reset, etc.)Configuration error: …— missing token or invalid base URLWise API error <status> …— HTTP 4xx/5xx response from Wise
Typical flow
wise_list_profiles→ pickprofileIdwise_list_balances({profileId})→ see available currencies / amountswise_get_exchange_rate({source, target})→ check ratewise_list_transfers({profileId, status})→ history / status lookup
Build / dev notes
src/version.tsis generated frompackage.jsonbyscripts/gen-version.mjs(runs asprebuild/predev/pretest). The file IS committed so a fresh clone compiles immediately.The generator is idempotent: it only writes when the version actually changes. So
npm run buildon an in-sync tree leaves the working copy clean.Bumping
package.json's version and running any ofbuild/dev/testis enough to propagate — no separate manual step onsrc/version.ts.
About AIWerk MCP
Part of the AIWerk MCP platform — curated, signed MCP recipes served either as npm packages for self-hosting or through our multi-tenant hosted bridge (bridge.aiwerk.ch).
Other AIWerk MCP servers:
@aiwerk/mcp-server-cal — Cal.com scheduling
@aiwerk/mcp-server-imap — IMAP/SMTP email, provider-agnostic
@aiwerk/mcp-server-clawhub — ClawHub skill catalog
Browse the full catalog (20+ recipes including GitHub, Linear, Notion, Stripe, …) at aiwerkmcp.com.
Licence
MIT © 2026 AIWerk
Available Tools
11 toolswise_get_account_requirementsARead-only
Get the required bank-account fields for creating a recipient in a given source→target currency + amount. Fields differ by country: USD routing number, EUR IBAN, GBP sort code, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source currency code (ISO-4217) | |
| target | Yes | Target currency code (ISO-4217) | |
| sourceAmount | Yes | Source amount (influences which requirement fields are needed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and openWorldHint, which the description complements by explaining that fields differ by country (e.g., USD routing number, EUR IBAN). This adds behavioral context beyond the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single focused sentence with an informative example. Every word adds value, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage, readOnlyHint, openWorldHint, and no output schema, the description is complete for its purpose. It explains what is returned and why, though could mention it's a read operation explicitly (but annotations cover that).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate parameter descriptions. The description reiterates the source→target currency+amount context but does not add new meaning beyond the schema. Score at baseline 3 as schema already handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves required bank-account fields for creating a recipient based on source/target currency and amount. It distinguishes itself from sibling tools by focusing on account requirements, not balances or transfers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when creating a recipient and needing required fields), but it does not provide explicit guidance on when not to use it or mention alternatives. The sibling list is provided, which helps context but lacks direct exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_get_balanceARead-only
Get a specific balance by ID (available amount, reserved amount, last updated).
| Name | Required | Description | Default |
|---|---|---|---|
| balanceId | Yes | Balance ID (from list_balances) | |
| profileId | Yes | Profile ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates it's a safe read operation. The description adds value by specifying the returned fields (available amount, reserved amount, last updated), providing context beyond the annotation. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core action and resource. Every word is meaningful, with no unnecessary repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with only two parameters and no output schema, the description adequately explains what the tool does and what it returns. However, it could mention that the return is a single balance object or that it includes more fields than listed (due to openWorldHint).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear descriptions for both parameters (balanceId, profileId). The tool description does not add additional semantic information beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get', the resource 'specific balance by ID', and lists key fields returned (available amount, reserved amount, last updated). It distinguishes itself from the sibling 'wise_list_balances' which lists all balances, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for retrieving a single balance when its ID is known, but it does not explicitly state when to use it over alternatives like 'wise_list_balances' or provide any exclusions or prerequisites. This leaves room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_get_exchange_rateARead-only
Get the current mid-market exchange rate between two currencies.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source currency code, ISO-4217 (e.g. EUR, USD, GBP) | |
| target | Yes | Target currency code, ISO-4217 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so description carries low burden. Description adds that the rate is 'current mid-market', which is useful but does not elaborate on side effects, rate limits, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 12 words, highly efficient and front-loaded with the core purpose. No unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with two well-documented parameters and no output schema. Description plus annotations provide adequate context, though a note about the return format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with clear descriptions (ISO-4217 codes). Tool description does not add further meaning beyond what schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets the current mid-market exchange rate between two currencies, specifying verb, resource, and key qualifications. It distinguishes itself from siblings like wise_get_exchange_rate_history and list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as wise_get_exchange_rate_history or other rate-related tools. Does not mention prerequisites, filtering, or scenarios where this tool is or is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_get_exchange_rate_historyBRead-only
Get historical mid-market exchange rates between two currencies. group: day/hour/minute granularity.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End datetime (ISO-8601) | |
| from | Yes | Start datetime (ISO-8601, e.g. 2026-04-01T00:00:00+0000) | |
| group | No | Aggregation granularity. Default day. | day |
| source | Yes | Source currency code | |
| target | Yes | Target currency code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true and openWorldHint=true, so description's mention of 'historical' and 'mid-market' adds minimal behavioral context. No disclosure of return format, pagination, or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded with key information. Could be slightly improved by separating granularity note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 5 parameters, 4 required, and no output schema. Description does not explain return format, time range constraints, or behavior for invalid inputs. Missing important context for a historical data endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds little beyond schema. The mention of 'group: day/hour/minute granularity' is redundant with the enum. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'get historical mid-market exchange rates between two currencies' with specific verb and resource. Mention of granularity distinguishes it from the sibling wise_get_exchange_rate which likely returns a single rate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus wise_get_exchange_rate or alternatives. No mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_get_profileARead-only
Get a profile by ID (name, type, address, KYC status).
| Name | Required | Description | Default |
|---|---|---|---|
| profileId | Yes | Profile ID (from list_profiles) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating safe read operation. The description adds that it returns specific fields, but lacks details on error handling (e.g., if profile not found) or rate limits. Adequate given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the verb and resource, immediately clear. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter and no output schema, the description sufficiently explains what the tool does, what it returns, and the source of the parameter. Complete for the level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the only parameter (profileId from list_profiles). The tool's description adds no additional parameter meaning beyond restating 'by ID', so it provides minimal enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get' with the resource 'profile' and specifies the returned fields (name, type, address, KYC status), clearly distinguishing it from sibling tools like wise_list_profiles which list all profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates that the tool retrieves a profile by ID, implying use when a specific profile ID is known. Notes that the ID comes from list_profiles, providing context. However, it does not explicitly state when not to use it or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_get_recipientARead-only
Get a recipient account by ID (bank details, account holder, currency).
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | Recipient account ID (from list_recipients) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=true, so the description carries a lower burden. It adds value by explicitly listing the returned fields (bank details, account holder, currency), which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently communicates the tool's purpose and what it returns. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema), the description is fully adequate. It covers the action, the resource, and the data returned, without needing additional detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full description coverage (100%) for the single parameter 'accountId', including the note that it comes from 'list_recipients'. The description does not add additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'recipient account', and specifies the returned data (bank details, account holder, currency). It distinguishes from siblings like 'wise_list_recipients' which lists all recipients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for fetching details of a specific recipient by ID, and mentions the ID comes from 'list_recipients', providing context. However, it does not explicitly state when to use or when not to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_get_transferARead-only
Get a specific transfer by ID (status, amounts, recipient, quote, timestamps).
| Name | Required | Description | Default |
|---|---|---|---|
| transferId | Yes | Transfer ID (from list_transfers) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true, which the description complements by specifying the returned data categories. However, it does not disclose any additional behavioral traits such as required permissions or rate limits, so it adds some but not substantial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the main action and includes supplementary details in parentheses. It is concise with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the absence of an output schema, the description lists the main categories of returned data (status, amounts, recipient, quote, timestamps), which provides a good overview for a simple get resource. It does not cover error cases or edge scenarios, but is sufficient for a basic read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a description for transferId (from list_transfers), and the tool description merely repeats that it gets 'by ID' without adding new meaning. With 100% schema coverage, the description does not enhance parameter understanding significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a specific transfer by ID, listing key data fields (status, amounts, recipient, quote, timestamps). This differentiates it from sibling tools like wise_get_profile or wise_get_recipient, so the purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a transfer ID (from list_transfers), but does not explicitly state when to use this tool versus alternatives like wise_list_transfers for multiple transfers, or other get tools. No exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_list_balancesARead-only
List balance accounts for a profile. STANDARD = one per currency (the multi-currency account). SAVINGS = jars (user-named buckets). Default returns only STANDARD.
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | Comma-separated balance types. Known values: STANDARD (one per currency), SAVINGS (jars, multiple per currency). Default STANDARD. | STANDARD |
| profileId | Yes | Profile ID (from list_profiles) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint and openWorldHint. The description adds behavioral context (default returns only STANDARD, SAVINGS jars explanation) beyond annotations, with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading purpose, followed by relevant type details with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only 2 parameters fully described in schema and no output schema, the description covers key behavior (default type) but omits potential details like pagination or response format. Adequate for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description repeats schema info (STANDARD vs SAVINGS) without adding significant new meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List balance accounts for a profile' with specific details on types (STANDARD vs SAVINGS), effectively distinguishing it from sibling tools like wise_get_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it explains default behavior (STANDARD) and type definitions, it lacks explicit guidance on when to use this tool versus alternatives like wise_get_balance for retrieving a single balance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_list_profilesARead-only
List all profiles (PERSONAL and BUSINESS) accessible with the token. ALWAYS call this first — most other tools need a profileId.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so description adds little behavioral nuance beyond noting token-based access and importance of profile IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with annotations covering safety, the description provides complete context (purpose, usage order, role in workflow).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline is 4 (description adds non-parameter context about usage, which is adequate).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all profiles (PERSONAL and BUSINESS) accessible with the token, and distinguishes from sibling wise_get_profile by implying it provides IDs needed for other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'ALWAYS call this first — most other tools need a profileId', providing clear when-to-use and implying alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_list_recipientsARead-only
List recipient accounts for a profile. Filter by currency if you only want e.g. EUR beneficiaries.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Optional ISO-4217 filter. Without it, all currencies are returned. | |
| profileId | Yes | Profile ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds no additional behavioral context such as authentication requirements, rate limits, or what happens with invalid profile IDs. The bar is lower due to annotations, but the description adds minimal value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the primary action, and the second provides a specific usage hint. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (list with optional filter) and has full schema coverage, but no output schema. The description does not mention what is returned (e.g., an array of recipient objects with fields like id, currency, name). For completeness, it would benefit from clarifying the return format, though the annotations and sibling tools provide some implicit context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds an example ('e.g. EUR beneficiaries') for the currency parameter, but the schema already describes it as an optional ISO-4217 filter. The description does not significantly enhance understanding beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List recipient accounts for a profile,' using a specific verb and resource. It distinguishes from sibling tools like 'wise_get_recipient' by implying multiple accounts, and the sibling list tools are similarly 'list' operations. The filtering example adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers guidance on filtering by currency, e.g., 'if you only want e.g. EUR beneficiaries,' which helps the agent decide when to use the currency parameter. However, it does not explicitly state when to use this tool over alternatives like 'wise_get_recipient' or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wise_list_transfersBRead-only
List transfers for a profile with optional filters. Use status to narrow: incoming_payment_waiting, processing, funds_converted, outgoing_payment_sent, bounced_back, cancelled, funds_refunded.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page (default 10, max 100) | |
| offset | No | Pagination offset | |
| status | No | Filter by status. Known values: incoming_payment_waiting, incoming_payment_initiated, processing, funds_converted, outgoing_payment_sent, bounced_back, cancelled, funds_refunded, waiting_recipient_input_to_proceed. Forward-compat escape hatch: any other string is accepted and forwarded verbatim. | |
| profileId | Yes | Profile ID | |
| createdDateEnd | No | ISO-8601 end timestamp | |
| sourceCurrency | No | Filter by source currency (ISO-4217) | |
| targetCurrency | No | Filter by target currency | |
| createdDateStart | No | ISO-8601 start timestamp, e.g. 2026-01-01T00:00:00.000Z |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true. The description only adds the status filter values, which is minimal behavioral context beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with one sentence and a list of status values. It is front-loaded but could be more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers filtering capabilities. However, it does not mention pagination behavior or response format, which would be helpful for an 8-parameter tool without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description adds a little value by specifying the usage of the status parameter, but it is not substantial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List transfers for a profile with optional filters', which is specific to the resource and action. It does not explicitly differentiate from sibling tools like wise_list_balances, but the resource type (transfers) is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on using the status filter by enumerating values. However, it does not discuss when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v0.1.7- First observed
wise_get_account_requirements - First observed
wise_get_balance - First observed
wise_get_exchange_rate - First observed
wise_get_exchange_rate_history - First observed
wise_get_profile - First observed
wise_get_recipient - First observed
wise_get_transfer - First observed
wise_list_balances - First observed
wise_list_profiles - First observed
wise_list_recipients - First observed
wise_list_transfers
TDQS
Each tool targets a distinct resource and action (e.g., get vs list for balances, profiles, recipients, transfers), with clear separation between exchange rate and exchange rate history. No overlap in purpose.
All tools follow a consistent 'wise_' prefix and 'verb_noun' pattern in snake_case. Verbs are uniformly 'get' for single resources and 'list' for collections, providing predictable structure.
11 tools is within the typical 3-15 range and covers the core read operations for balances, rates, profiles, recipients, and transfers. However, the set feels slightly lean given the complexity of the Wise API.
The tool set is entirely read-only; there are no create, update, delete, or action operations (e.g., creating transfers, recipients, or initiating payments). This leaves significant gaps for any workflow involving writing data.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Wise (https://wise.com) MCP, multi-currency account access via Personal Token + SCA key. Reads profi
Read-only access to your bank, investment, and crypto accounts: balances, transactions, holdings.
Read-only access to your net worth, wealth percentile, projections, splits and budget.
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables access to Wise API functionality for managing recipients and sending money transfers. Supports listing recipients, creating new recipients, validating account details, and executing money transfers with authentication handling.8MIT
- AlicenseNot gradedqualityFmaintenanceProvides read-only access to Trading 212 accounts, enabling AI assistants to retrieve portfolio positions, account summaries, instrument data, and transaction history.275MIT
- AlicenseBqualityBmaintenanceEnables read-only access to personal bank accounts via the TrueLayer API, allowing querying of accounts, balances, transactions, and generating financial analytics such as spending by category, subscriptions, and monthly summaries.9MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to query Wise account balances, exchange rates, transfers, and recipients via the Wise API.206-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIWerk/mcp-server-wise'
If you have feedback or need assistance with the MCP directory API, please join our Discord server