Xendit Mcp

Created By
Marsel Bait (@mrslbt)2 months ago
Xendit payment APIs for AI agents. Invoices, disbursements, balances, and transactions for Southeast Asia.
Overview

xendit-mcp

MCP Badge xendit-mcp MCP server

Model Context Protocol server for the Xendit payment API. Supports invoices, disbursements, balances, and transactions across Indonesia, the Philippines, Thailand, Vietnam, and Malaysia.

Install

npm install -g xendit-mcp

Or run on demand with npx xendit-mcp.

Configuration

  1. Sign up at the Xendit Dashboard.
  2. Go to Settings → API Keys and generate a key.
  3. Use a test key (xnd_development_...) for development or a live key for production.
VariableRequiredDescription
XENDIT_API_KEYyesTest or live API key
XENDIT_ENABLE_DISBURSEMENTSnoSet to true to enable disbursement tools (money-movement). Disabled by default.
XENDIT_ALLOW_LIVEnoSet to true to allow live/production keys (prefixes xnd_production_, iluma_production_, sk_live_). Refused by default.

Claude Desktop

Edit claude_desktop_config.json:

{
  "mcpServers": {
    "xendit": {
      "command": "npx",
      "args": ["-y", "xendit-mcp"],
      "env": {
        "XENDIT_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Code

claude mcp add xendit -e XENDIT_API_KEY=your-api-key -- npx -y xendit-mcp

Cursor

Add to ~/.cursor/mcp.json with the same shape as Claude Desktop.

Tools

ToolDescription
get_balanceAccount balance by type (CASH, HOLDING, TAX).
list_invoicesList invoices filtered by status, date range, or currency.
get_invoiceRetrieve a single invoice.
create_invoiceCreate a payment invoice and return a payment link.
expire_invoiceExpire an active invoice.
list_transactionsList payments, disbursements, refunds, and fees.
create_disbursementSend funds to a bank account or e-wallet. Disabled unless XENDIT_ENABLE_DISBURSEMENTS=true.
get_disbursementCheck disbursement status. Disabled unless XENDIT_ENABLE_DISBURSEMENTS=true.
list_disbursement_banksList supported banks and e-wallets by country. Disabled unless XENDIT_ENABLE_DISBURSEMENTS=true.

Prompts

PromptDescription
check_balanceReport account balance.
recent_paymentsPayments received in the last N days.
create_payment_linkGenerate a payment link for a customer.
unpaid_invoicesList pending invoices.
daily_summaryToday's payment activity.

Resources

ResourceURIDescription
Supported Banksxendit://banksBank codes for Indonesia and the Philippines.
API Infoxendit://infoXendit API details and rate limits.

Example queries

What's my current Xendit balance?
Saldo Xendit saya berapa?

Create an invoice for Rp 500,000 for "Website design deposit".
Buatkan invoice Rp 500.000 untuk "Deposit desain website".

Show me all unpaid invoices.
Tampilkan semua invoice yang belum dibayar.

With XENDIT_ENABLE_DISBURSEMENTS=true:

Send Rp 1,000,000 to Ahmad at BCA.
Kirim Rp 1.000.000 ke Ahmad di BCA.

List available banks for disbursement in the Philippines.

Environments

Xendit issues separate test and live API keys. Test keys operate against the Xendit sandbox, so no real funds move. Live keys (xnd_production_..., iluma_production_..., sk_live_...) operate against production.

Safety

This server can move real money through the Xendit API. Key safeguards:

  • Disbursement tools are disabled by default. create_disbursement, get_disbursement, and list_disbursement_banks are only registered when XENDIT_ENABLE_DISBURSEMENTS=true. Only enable them in trusted agent contexts where tool inputs cannot be influenced by untrusted content.
  • Live keys are refused by default. Keys with the prefixes xnd_production_, iluma_production_, or sk_live_ are rejected at startup unless XENDIT_ALLOW_LIVE=true. Always test with a development key (xnd_development_...) first.
  • Idempotency. create_disbursement uses your externalId as the Idempotency-Key, so retries with the same externalId will not create duplicate transfers. Use a fresh externalId for each new disbursement.

Even with these gates on, review any money-moving request before approving the tool call. Treat tool inputs derived from model output as untrusted.

Disclaimer

This is an unofficial, community-built MCP server. Not affiliated with, endorsed by, or sponsored by Xendit. Xendit is a trademark of its respective owners. Use at your own risk. The author accepts no liability for funds lost through misuse, prompt injection, or bugs.

License

MIT

Server Config

{
  "mcpServers": {
    "xendit": {
      "command": "npx",
      "args": [
        "xendit-mcp"
      ]
    }
  }
}
Project Info
Created At
2 months ago
Updated At
a month ago
Author Name
Marsel Bait (@mrslbt)
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Crevio

a day ago
Bring your real authenticated browser session to AI coding agents. Local-first MCP server + Chrome MV3 extension. No cloud. No telemetry.
@Cubenest

peek records the user's actual logged-in browser (DOM via rrweb, console events, network metadata, optional response bodies via opt-in Deep capture) through a Chrome MV3 extension. The extension ships events through a native-messaging stdio bridge to a local MCP server (peek-mcp), which persists them to a SQLite database at ~/.peek/sessions.db. AI coding agents (Claude Code, Cursor, Cline, Windsurf) read sessions from the database via 10 MCP tools: Tool What it does list_recent_sessions List recently recorded sessions (id, origin, ts, event count). get_session_summary LLM-readable narrative summary of a session. get_session_console_errors Console errors recorded in a session. get_session_network_errors Failed/notable network requests in a session. get_user_action_before_error Last N user actions before a console error. generate_playwright_repro Generate a runnable Playwright test from a session. get_dom_snapshot Reconstruct the DOM at a given timestamp. query_dom_history Timeline of attribute/text changes for a selector. request_authorization Side-panel consent for write actions (Level 3). execute_action Dispatch a UI action (gated by permission level + destructive blocklist). Why local-first matters Every other "browser session for AI" tool ships to a vendor cloud. peek's SQLite + extension live on the user's machine — no remote endpoints, no telemetry. The privacy policy (docs/peek/PRIVACY_POLICY.md) is the source of truth. Install # 1. Add the MCP server to Claude Code claude mcp add peek -- npx -y @peekdev/mcp # 2. Install the Chrome extension from the Chrome Web Store # (link added once the CWS listing is approved)

19 hours ago