Skip to main content
Glama
rkm7448
by rkm7448

Wise MCP 서버

Wise API의 게이트웨이 역할을 하며 Wise의 수취인 기능에 대한 간소화된 액세스를 제공하는 MCP(Machine Communication Protocol) 서버입니다.

주요 기능

  • 간단한 MCP 리소스를 통해 Wise 계정의 모든 수취인 목록 조회

  • 인증 및 프로필 선택 자동 처리

  • 개발 및 테스트를 위한 Wise 샌드박스 API 사용

  • 간편한 통합을 위한 Docker 이미지 제공

Related MCP server: poke-bank

요구 사항

  • Python 3.12 이상 (직접 설치 시)

  • uv 패키지 관리자 (직접 설치 시)

  • Wise API 토큰

  • Docker (Docker 이미지 사용 시)

API 토큰 발급

https://wise.com/your-account/integrations-and-tools/api-tokens

여기에서 새 토큰을 생성하세요.

설치 방법

옵션 1: 직접 설치

  1. 저장소 복제:

    git clone repo-url
    cd jc-wise-mcp
  2. 환경 설정:

    cp .env.example .env
    # Edit .env to add your Wise API token
  3. uv를 사용하여 의존성 설치:

    uv venv
    uv pip install -e .

옵션 2: Docker 사용

Docker 이미지를 빌드할 수 있습니다:

docker build -t mcp-wise .

.mcp.json에 추가하여 Claude Code에 등록하세요.

{
  "mcpServers": {
    "mcp-wise": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--init",
        "-e", "WISE_API_TOKEN=your_api_token_here",
        "-e", "WISE_IS_SANDBOX=true",
        "mcp-wise:latest"
      ]
    }
  }
}

your_api_token_here를 실제 Wise API 토큰으로 교체해야 합니다.

또한 선택한 모드에 맞게 .mcp.json 파일을 업데이트해야 합니다. 사용할 수 있는 템플릿 파일은 다음과 같습니다:

  1. stdio 모드 (기본값):

    cp .mcp.json.stdio .mcp.json
  2. HTTP 모드:

    cp .mcp.json.http .mcp.json

이 템플릿 파일에는 각 모드에 적합한 구성이 포함되어 있습니다.

사용 가능한 MCP 리소스

이 서버는 다음과 같은 MCP 리소스를 제공합니다:

list_recipients

Wise 계정의 모든 수취인 목록을 반환합니다.

매개변수:

  • profile_type: 수취인 목록을 가져올 프로필 유형입니다. [personal, business] 중 하나. 기본값: "personal"

  • currency: 선택 사항. 통화 코드(예: 'EUR', 'USD')로 수취인 필터링

get_recipient_requirements

새 수취인을 생성하기 위한 요구 사항을 가져옵니다. 계정 세부 정보가 제공되면 요구 사항에 따라 계정 세부 정보를 검증합니다.

매개변수:

  • source_currency: 송금 통화 코드(예: 'USD')

  • target_currency: 수취 통화 코드(예: 'EUR')

  • source_amount: 송금 통화 금액

  • profile_type: 사용할 프로필 유형입니다. [personal, business] 중 하나. 기본값: "personal"

  • account: 선택 사항. 요구 사항에 대해 검증할 수취인 계정 세부 정보입니다. 제공되지 않으면 초기 계정 요구 사항을 반환합니다.

create_recipient

제공된 계정 세부 정보로 새 수취인을 생성합니다.

매개변수:

  • profile_type: 사용할 프로필 유형입니다. [personal, business] 중 하나. 기본값: "personal"

  • account: Wise API 요구 사항을 준수하는 수취인 계정 세부 정보입니다. 다음을 포함해야 합니다:

    • accountHolderName: 계좌 소유자 이름

    • currency: 수취 통화 코드(예: 'EUR')

    • type: 계좌 유형(예: 'iban', 'sort_code' 등)

    • details: 계좌별 세부 정보가 포함된 객체(통화 및 국가에 따라 다름)

send_money

Wise API를 사용하여 수취인에게 송금합니다.

매개변수:

  • profile_type: 사용할 프로필 유형(personal 또는 business)

  • source_currency: 송금 통화 코드(예: 'USD')

  • source_amount: 송금할 송금 통화 금액

  • recipient_id: 송금할 수취인의 ID

  • payment_reference: 선택 사항. 송금 참조 메시지(기본값: "money")

  • source_of_funds: 선택 사항. 자금 출처(예: "salary", "savings")

구성

구성은 .env 파일에 설정할 수 있는 환경 변수를 통해 수행됩니다:

  • WISE_API_TOKEN: Wise API 토큰 (필수)

  • WISE_IS_SANDBOX: Wise 샌드박스 API를 사용하려면 true로 설정 (기본값: false)

  • MODE: MCP 서버 전송 모드, "http" 또는 "stdio" (기본값: stdio)

개발

프로젝트 구조

wise-mcp/
├── .env                # Environment variables (not in git)
├── .env.example        # Example environment variables
├── pyproject.toml      # Project dependencies and configuration
├── README.md           # This file
└── src/                # Source code
    ├── main.py         # Entry point
    └── wise_mcp/       # Main package
        ├── api/        # API clients
        │   └── wise_client.py # Wise API client
        ├── resources/  # MCP resources
        │   └── recipients.py  # Recipients resource
        └── app.py      # MCP application setup

새로운 기능 추가

새 기능을 추가하려면:

  1. src/wise_mcp/api/wise_client.py에 새로운 API 클라이언트 메서드 추가

  2. src/wise_mcp/resources/에 새로운 리소스 생성

  3. src/wise_mcp/app.py에서 새 리소스를 가져와 등록

기여

기여를 환영합니다! 자유롭게 Pull Request를 제출해 주세요.

라이선스

MIT

Available Tools

4 tools
create_recipientC

Creates a new recipient with the provided account details.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipient_fullnameYesThe name of the account holder. Required.
currencyYesThe currency code for the recipient account. Required.
recipient_typeYesThe type of recipient account. Required.
profile_typeNoThe type of profile to use. One of [personal, business]. Default: "personal"personal
account_detailsNoAdditional recipient account details compliant with Wise API requirements. If provided, it will be updated with the required fields.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It only says 'creates' (indicating mutation) but doesn't disclose side effects, idempotency, error conditions, or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence is concise, but it may be too brief for a tool with 5 parameters and nested objects. Every word earns its place, but more structure would improve clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, nested objects, and an output schema, the description is insufficient. It doesn't mention the output or provide context on how to properly construct the account_details object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all 5 parameters. The description adds no additional meaning beyond stating 'with the provided account details,' which is already implied by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a new recipient, which distinguishes it from sibling tools like list_recipients and get_recipient_requirements. However, it lacks nuance about what constitutes a 'recipient' in this context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. For example, it doesn't mention prerequisites like first calling get_recipient_requirements to determine required fields.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recipient_requirementsA

Fetches recipient requirements for creating a new recipient. If account details are provided, validates the account details against the requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_currencyNoOptional. The source currency code (e.g., 'USD')
target_currencyNoOptional. The target currency code (e.g., 'EUR')
source_amountNoOptional. The amount in the source currency (e.g., 100.0)
profile_typeNoThe type of profile to use. One of [personal, business]. Default: "personal"personal
account_detailsNoOptional. The recipient account details to validate against requirements. If not provided, returns the initial account requirements.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses basic behavior (fetch and validate) but omits side effects, error conditions, or safety traits. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, 24 words, front-loaded with purpose. No unnecessary words. Highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description covers core behavior. It could be improved by explicitly linking to 'create_recipient' as a prerequisite, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 context that 'account_details' triggers validation, adding marginal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('fetches') and the resource ('recipient requirements'), and distinguishes itself from siblings like 'create_recipient' and 'send_money' by focusing on fetching and validating requirements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking requirements before creating a recipient, but does not explicitly state when to use this tool over alternatives like 'list_recipients' or 'send_money'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recipientsA

Returns all recipients from the Wise API for the given profile type of current user. If a user has multiple profiles of that type, it will return recipients from the first profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_typeNoThe type of profile to list recipients for. one of [personal, business]personal
currencyNoOptional. Filter recipients by currency code (e.g., 'EUR', 'USD')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. It discloses the 'first profile' behavior, which is a useful trait beyond the schema. However, it does not mention other behavioral aspects like idempotency, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise and front-loaded with the core purpose. No unnecessary words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (not shown) and low complexity with 2 parameters. The description covers the key behavioral point of first-profile limitation but lacks explanation of return structure, error cases, or pagination. Adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage for parameters, so baseline is 3. The description adds minimal meaning beyond the schema by mentioning 'profile type of current user' and 'first profile' but does not elaborate on currency filtering.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns all recipients for a given profile type, using the verb 'list' and specifying the resource 'Wise API recipients'. It distinguishes from sibling tools like 'create_recipient' which is a different action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a behavioral caveat about returning recipients from the first profile if multiple exist, which helps in understanding edge cases. However, it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_moneyB

Send money to a recipient using the Wise API.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_typeYesThe type of profile to use (personal or business)
source_currencyYesSource currency code (e.g., 'USD')
source_amountYesAmount in source currency to send
recipient_idYesThe ID of the recipient to send money to
payment_referenceNoOptional. Reference message for the transfer (defaults to "money")
source_of_fundsNoOptional. Source of the funds (e.g., "salary", "savings")

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden, but it provides no behavioral details beyond the name. It does not disclose mutation implications, error conditions, or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no unnecessary words. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters and no annotations, the description is too brief. It lacks context about success/failure, idempotency, and usage flow. Output schema exists but does not compensate for missing behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra context about parameter 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Send' and resource 'money to a recipient using the Wise API', distinguishing it from sibling tools that manage recipients (create, get requirements, list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, such as needing a recipient created first, 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.

  1. 4 tool updatesv0.1.0
    • First observedcreate_recipient
    • First observedget_recipient_requirements
    • First observedlist_recipients
    • First observedsend_money

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: creating recipients, fetching requirements, listing recipients, and sending money. No overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_recipient, list_recipients, get_recipient_requirements, send_money).

Tool Count5/5

With 4 tools, the server is well-scoped for a focused Wise integration covering recipient management and money transfer.

Completeness4/5

Covers key recipient and transfer operations, but lacks a direct get_recipient by ID or update/delete recipient, which are minor gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables users to manage Privacy.com virtual cards, track transactions, and view funding sources through AI assistants or REST endpoints. It supports creating, updating, and pausing cards with full support for both production and sandbox environments.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that exposes Enable Banking API tools for interacting with bank accounts through Open Banking. It enables users to authenticate sessions, list accounts, and fetch transaction history or balances via a secure self-hosted server.
    2
    -
  • A
    license
    A
    quality
    D
    maintenance
    A custom MCP server for the Mercury banking API that uses personal API tokens to avoid session expiry. It provides 15 tools for managing accounts, transactions, recipients, treasury, and more.
    15
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    A local MCP server that lets AI agents interact with the Adaptis (MEG) payment gateway, enabling payment link creation, transaction queries, refunds, and integration helpers like generating signed forms and verifying callbacks.
    -