Skip to content
Xaalis
Show the page for
FrançaisSign inOpen a test account
Menu
Back to the home page

mcp.xaalis.org

Wave and Orange Money for your AI agents

Claude, ChatGPT, Cursor or Codex create payment links and integrate Xaalis. To pay anyone, an agent only has the wallet you give it.

Connector address, for your account

https://mcp.xaalis.org/mcp
  • Hosted MCP server, in service
  • Claude and ChatGPT over OAuth: you tick what they may do
  • The agent opens a test account by itself
  • Live, over MCP: no payout outside an agent wallet, refunds only with your consent

mcp.xaalis.org/sandbox

xaalis_whoami

{  "key": "anonymous",  "livemode": false,  "api_url": "https://sandbox-api.xaalis.org",  "account": null,  "tools": ["xaalis_whoami", "xaalis_search_docs", "xaalis_sandbox_signup"],  "credential": "none",  "scopes": [],  "policy": { "live_refunds_allowed": false, "money_out": "not with this key" },  "next_step": "Call xaalis_sandbox_signup to get a sandbox key, or connect with an existing key."}
A real answer from the test MCP server, 6 November 2026.

Connect your assistant

Claude and ChatGPT connect to your account over OAuth. Without an account, they can try the test server.

Show first

Your assistant

Claude or ChatGPT

Your side
  1. ClaudeAvailable

    Customize → Connectors → Add custom connector, paste the address, then sign in with Xaalis.

    https://mcp.xaalis.org/mcp
  2. ChatGPTAvailable

    Plugins → Add → Add custom MCP server, paste the address and choose OAuth authentication.

    https://mcp.xaalis.org/mcp
  3. No account yetIn test

    Same path with the test server’s address and no sign-in. The assistant opens a test account and uses it in that chat.

    https://mcp.xaalis.org/sandbox

Or let it walk you through

With this brief it asks one question at a time, then takes you to a test account.

Read the full brief
Help me accept Wave and Orange Money with Xaalis. First read https://xaalis.org/llms.txt and the guides at https://docs.xaalis.org/ ; don’t state anything they don’t say. Start by asking me, one question at a time: do I sell on a WordPress (WooCommerce) shop? does a developer look after my site or app? or do I just want to send payment links to my customers? Then walk me through it step by step, starting with a free test account (https://sandbox.xaalis.org/sandbox/signup) where no real money moves. Tell me clearly what I must do myself: verify my business and my identity, choose the Wave wallet that receives the money, go live. Never ask me to paste a secret key or a PIN here. Answer in plain words, in short steps.

You review the prompt before you send it. No secret key is shared.

Your coding agent

Claude Code, Cursor, Codex

Your side

One click: the test serverIn test

test server · https://mcp.xaalis.org/sandbox. These buttons open a desktop app. On a phone, copy the address.

Or in a terminal

claude mcp add --transport http xaalis-test https://mcp.xaalis.org/sandbox

The brief for your coding agent

Paste it into Claude Code, Cursor or Codex. It enforces test mode, keys in environment variables and webhook verification.

Read the full brief
Integrate Xaalis payments (Wave and Orange Money) into this project, in test mode only. 1. Read https://docs.xaalis.org/llms.txt and https://docs.xaalis.org/guides/agent-integration/. 2. Ask me for an email and a business name, then open a test account with POST https://sandbox-api.xaalis.org/v1/sandbox/signups: it returns sk_test_… and whsec_… once; put them in environment variables, never in code or in this chat. 3. Create payments on the server with an Idempotency-Key derived from the order, then redirect to checkout_url. 4. Verify Xaalis-Signature over the raw body, reject timestamps older than 5 minutes, dedupe on the event id; fulfil only on payment.succeeded or GET /v1/payments/{id}, never on the redirect. 5. Test success and failure with POST /v1/payments/{id}/simulate. Amounts are whole XOF integers. Use no live keys. When done, list what is left for me to do.

You stay in control. Only the owner can authorize. You pick the business, test or live (live once the business is activated), and untick what you refuse. Settings → “Applications & IA” → “Révoquer l’accès” (the dashboard shows these two labels in French) cuts it off at once.

Tested end to end with Claude.ai and ChatGPT on 14/10/2026, in test mode.

Install in your tool

The test server to try without an account, your key to work on your account.

Your tool

Test server, no accountIn test

In a terminal:

claude mcp add --transport http xaalis-test https://mcp.xaalis.org/sandbox

Your account

With your key in XAALIS_API_KEY:

claude mcp add --transport http xaalis https://mcp.xaalis.org/mcp --header "Authorization: Bearer $XAALIS_API_KEY"
Full guide · Claude Code (new tab)

Test server, no accountIn test

Customize → Connectors → Add custom connector, no sign-in:

https://mcp.xaalis.org/sandbox

Your account

Same path, then sign in with Xaalis (OAuth):

https://mcp.xaalis.org/mcp
Full guide · Claude (new tab)

Test server, no accountIn test

Plugins → Add → Add custom MCP server, no authentication:

https://mcp.xaalis.org/sandbox

Your account

Same path, with OAuth authentication:

https://mcp.xaalis.org/mcp
Full guide · ChatGPT (new tab)

Test server, no accountIn test

In .cursor/mcp.json, no key:

{ "mcpServers": { "xaalis-test": { "url": "https://mcp.xaalis.org/sandbox" } } }

Your account

.cursor/mcp.json, the key read from the environment:

{ "mcpServers": { "xaalis": { "url": "https://mcp.xaalis.org/mcp", "headers": { "Authorization": "Bearer ${env:XAALIS_API_KEY}" } } } }
Full guide · Cursor (new tab)

Test server, no accountIn test

In .vscode/mcp.json (top-level servers key, type http), no key:

{ "servers": { "xaalis-test": { "type": "http", "url": "https://mcp.xaalis.org/sandbox" } } }

Your account

.vscode/mcp.json: VS Code asks for the key once and keeps it.

{ "inputs": [{ "type": "promptString", "id": "xaalis-key", "description": "Xaalis API key", "password": true }], "servers": { "xaalis": { "type": "http", "url": "https://mcp.xaalis.org/mcp", "headers": { "Authorization": "Bearer ${input:xaalis-key}" } } } }
Full guide · VS Code (new tab)

Test server, no accountIn test

In a terminal:

codex mcp add xaalis-test --url https://mcp.xaalis.org/sandbox

Your account

Codex reads the key from XAALIS_API_KEY:

codex mcp add xaalis --url https://mcp.xaalis.org/mcp --bearer-token-env-var XAALIS_API_KEY
Full guide · Codex (new tab)

Test server, no accountIn test

In a terminal:

gemini mcp add --transport http xaalis-test https://mcp.xaalis.org/sandbox

Your account

With your key in XAALIS_API_KEY:

gemini mcp add --transport http --header "Authorization: Bearer $XAALIS_API_KEY" xaalis https://mcp.xaalis.org/mcp
Full guide · Gemini CLI (new tab)

Your coding agent integrates Xaalis

The agent reads the docs, opens a test account and simulates every outcome. Going live stays with you.

What the agent does, in test mode, no human needed

  1. 1. Learn the API

    llms.txt, llms-full.txt or the xaalis_search_docs tool

  2. 2. Open a test account

    POST /v1/sandbox/signups or xaalis_sandbox_signup

    Done when: both secrets are in environment variables

  3. 3. Create payments on the server

    POST /v1/payments with an Idempotency-Key, then checkout_url

    Done when: a test payment exists and the checkout opens

  4. 4. Verify webhooks

    raw body, Xaalis-Signature, 5 minutes at most, dedupe on the event id

    Done when: a wrong signature is rejected with 400

  5. 5. Fulfil the right way

    a verified payment.succeeded or GET /v1/payments/{id}

    Done when: the redirect alone ships nothing

  6. 6. Simulate every outcome

    POST /v1/payments/{id}/simulate, one that expires, a payout to a number ending in 0000

    Done when: each outcome reaches the right order state

  7. 7. Run the checklist

    the go-live checklist

    Done when: every box is ticked

POST /v1/sandbox/signups returns sk_test_… and whsec_… once. 5 per hour and 20 per day per address, 3 accounts per email. The email becomes owner of the test dashboard.

  • Docs for agentsAvailable

    A short brief on xaalis.org, the index and the full text on docs.xaalis.org.

    https://docs.xaalis.org/llms.txt
  • Skills and rulesAvailable

    The Claude Code plugin (MCP server + two skills), AGENTS.xaalis.md for Codex, Gemini CLI or Copilot, and a Cursor rule. As downloads.

Command line and your own agent

An xaalis tool for the terminal, and the same tool catalog for your agents without MCP.

  • xaalis (CLI)Available

    Create a payment, wait until it is really paid, refund, read the balance. JSON output and clear exit codes.

    npx https://docs.xaalis.org/downloads/xaalis-cli-0.1.0.tgz --help
  • @xaalis/ai-toolsBeing published

    Adapters for OpenAI, Anthropic, Vercel AI SDK and LangChain.js. Downloadable archive today.

  • Python xaalis.aiBeing published

    Standard library only, live refunds off by default. In the downloadable Python SDK.

Not on npm or PyPI yet: use the archives on the Downloads page.

The key decides what the agent sees

The server only lists the tools the key allows. A hidden tool can’t be called, and the API checks again.

Which key?

3 tools visible

Read the docs and open a test account.Available

27 tools visible, fake money

Everything, with fake money: simulated payments, refunds, subscriptions, payouts, agent wallets.In test

19 tools visible; 20 if a person allows live refunds

Read everything, create payments and subscriptions, cancel a subscription, disable an agent wallet. No payouts. Refunds only if a person allows them.Available

The tools of the permissions granted, nothing more

The same tools, narrowed to the permissions granted.Available

7 tools visible: its wallet, plus whoami and the docs

Its wallet, and payouts within its caps, nothing else.Available

read

  • xaalis_whoami
  • xaalis_search_docs
  • xaalis_get_payment
  • xaalis_list_payments
  • xaalis_list_refunds
  • xaalis_get_balance
  • xaalis_get_payout
  • xaalis_list_payouts
  • xaalis_list_webhook_deliveries
  • xaalis_get_subscription
  • xaalis_list_subscriptions
  • xaalis_get_invoice
  • xaalis_list_invoices
  • xaalis_list_agent_wallets
  • xaalis_get_agent_wallet
  • xaalis_agent_get_wallet
  • xaalis_agent_get_approval
  • xaalis_agent_get_payout
  • xaalis_agent_list_payouts
  • none

write

  • xaalis_sandbox_signup
  • xaalis_create_payment
  • xaalis_simulate_payment
  • xaalis_create_subscription
  • xaalis_advance_subscription
  • xaalis_create_agent_wallet
  • xaalis_fund_agent_wallet
  • xaalis_reclaim_agent_wallet
  • xaalis_issue_agent_key
  • none

money out or stop

  • xaalis_refund_paymentif a person allows it
  • xaalis_create_payout
  • xaalis_cancel_subscription
  • xaalis_disable_agent_wallet
  • xaalis_agent_pay
  • none

To pay someone: an agent wallet

A separate balance, a cap per payout and per day, and 20 numbers at most. Nothing else.

  • A closed budgetAvailable

    The wallet’s balance is all the agent can spend. It never touches the rest of your balance.

  • Never twiceAvailable

    Every payout carries an action_id from your application: a retry returns the original payout.

  • Live is yours aloneAvailable

    In live mode only the owner creates, funds and issues a key for a wallet, in the dashboard. Live payouts to Wave only.

  • Your approval above the capsIn test

    The payout waits 30 minutes; you approve on WhatsApp or in the dashboard with your PIN, on a Xaalis page.

Disabling a wallet is one call; payouts already accepted still finish.

Try the rule

The figures of the 01/11/2026 run. Change them: the answer follows the guide’s rules.

Cap per payout F

Approval possible up to F

The agent asks for F

The agent’s request

POST /v1/agent/payouts

"amount": 3000, "currency": "XOF"

→ 202 · agent_payout_approval

pending, 30 minutes · nothing reserved

202 · WAITING · pending, 30 minutes · nothing reserved

Worked out in your browser, from the agent wallets guide. It assumes the number is allowed, the balance is enough and the day’s cap isn’t reached.

The real run, sandbox, 01/11/2026

  1. 1Test mode

    The agent asks for 3 000 F

    Its wallet is capped at 1 000 F per payout, with the owner’s approval up to 10 000 F.

    POST /v1/agent/payouts → 202 agent_payout_approval · pending

  2. 2Test mode

    The owner gets a WhatsApp

    [TEST] ••• — votre agent « ••• » veut envoyer 3 000 F CFA à +221 •• ••• •• •• (frais ••• F CFA), au-delà des limites que vous lui avez fixées. Il attend votre accord jusqu'à ••:••. Rien n'est envoyé sans votre code PIN.

    The assistant’s real text, in French as in this run; business, agent, number, fee and time masked. It says the agent wants to send 3 000 F above its limits, waits for the owner, and that nothing goes without the PIN.

  3. 3Test mode

    Approve, then the PIN

    The owner taps Approve, then types their PIN on a Xaalis page, through a link valid 5 minutes. The agent never sees that link or the full number.

  4. 4Test mode

    The payout goes

    The payout reaches succeeded and the outcome arrives on WhatsApp.

    payout · succeeded

If the owner refuses

[TEST] Refusé : rien n'a été envoyé. Votre agent est prévenu.

“Declined: nothing was sent. Your agent is told.” The approval becomes declined, no payout.

What stays with you

An agent can prepare everything in test mode. Live starts with a person.

  1. Verification

    The business, the owner’s ID and the Wave wallet that receives the money.

  2. Activation

    Xaalis reviews the account; until then, live calls are refused.

  3. Live keys

    Created by an owner in the dashboard, shown once.

  4. Review

    A person reads the integration before real money flows.

Security

The hosted server keeps nothing. Keys and tokens are never logged.

  • Short tokens

    An OAuth token lasts 5 minutes; the API re-checks consent, role and permissions on every call.

  • Keys out of the chat

    Secret keys stay in environment variables, never in chat, code or logs.

  • What the agent reads is not an order

    A page or an email can’t unlock a tool the key doesn’t have. Review what the agent proposes before a live action.

The rules the server sends to every agent
  1. Amounts are whole XOF integers, never decimals.
  2. Every write carries an idempotency key; a retry reuses it.
  3. A payment is paid only when it reads succeeded or a signed webhook says so, never because of a redirect.
  4. With a live key, the agent confirms amount and purpose with you before any write.
  5. Money goes out only through agent wallets.
  6. Outcome unknown: read or retry with the same key, never create a second object.
  7. Secret keys stay out of chat, code and logs.

What’s ready

What works today, what is in test, and what isn’t there yet.

  • Available

    Hosted MCP server, Claude and ChatGPT OAuth, test account by the agent, agent wallets, llms.txt, official MCP Registry

  • Available

    Claude Code plugin, AGENTS.xaalis.md, Cursor rule, CLI

    As downloads.

  • In test

    Owner approval above the caps; WhatsApp assistant (limited access)

  • Being published

    @xaalis/mcp, @xaalis/ai-tools, @xaalis/cli on npm; xaalis on PyPI

  • Planned, not available

    Agent spending: agents that pay merchants for you

Questions

Can an agent empty my account?

Not through the MCP server: with a live key no tool makes a payout, and live refunds stay off until a person allows them. To pay anyone, an agent only has its agent wallet. Never give a sk_live_ key to an agent that writes code.

Do Claude or ChatGPT see my keys?

No. Over OAuth they get a 5-minute token, limited to what you ticked. No secret key goes through the chat.

Do I need to code?

Not with Claude or ChatGPT: they guide you and create payment links. To integrate a website, a coding agent (Claude Code, Cursor, Codex) writes the code, or you install the WooCommerce plugin.

What if the agent retries?

The same idempotency key, or the same action_id for a wallet, returns the original operation. Never a second payment or payout.

How do I cut access?

Settings → “Applications & IA” → “Révoquer l’accès” (both labels are in French in the dashboard) for a connector; disable the wallet for an agent that pays. Both act at once.

Connect your AI. Take a test payment today.

The test account is free and no real money moves.

Wave and Orange Money MCP server for AI agents · Xaalis