Split bills and collect payments through PayNow (Singapore) from your AI. MCP server for SplitBill.
Split bills and collect payments through PayNow (Singapore) — from the AI you already use.
You paid for the dinner. SplitBill works out who owes what and gives you links to send. Money never passes through us: everyone pays from their own banking app.
User:
Split SGD 891 between 4 people.
AI: creates a SplitBill payment page
SGD 222.75 × 3 participants (you paid up front, so you are not billed)
Share: https://sposched.jittee.com/split/pay/?t=…
Manage: https://sposched.jittee.com/split/manage/?t=… (keep this one to yourself)
Status: https://sposched.jittee.com/split/manage/?t=… (read-only, safe to share)
https://jittee.com/mcp/splitbill
That endpoint speaks OAuth 2.1 (dynamic client registration + PKCE), so there is no key to copy around. Connecting opens SplitBill, you enter the PayNow number (or UEN) that should receive the money plus the display name your payers will see in their banking app, and you press allow. The key is created at that moment and kept by your client, and the AI is never asked for your number again.
Claude Code
claude mcp add --transport http splitbill https://jittee.com/mcp/splitbill
Claude Desktop / claude.ai / ChatGPT — Settings → Connectors → add a custom connector and paste the URL. Leave authentication on OAuth.
Smithery — https://smithery.ai/server/jittee/splitbill does the same through its gateway.
For a stdio install, or a client that does not speak OAuth.
Open https://sposched.jittee.com/split/mcp/ and enter the PayNow number (or UEN) that should
receive the money, plus the display name your payers will see in their banking app. You get a
key that starts with wkn_, shown only once.
⚠️ That key can create pages that collect money to your PayNow. Keep it to yourself. It cannot move money. If you lose it, just create another one.
Claude Code
claude mcp add splitbill --env SPLITBILL_TOKEN=wkn_xxx -- npx -y splitbill-mcp
Any client with a JSON config
{
"mcpServers": {
"splitbill": {
"command": "npx",
"args": ["-y", "splitbill-mcp"],
"env": { "SPLITBILL_TOKEN": "wkn_xxx" }
}
}
}
Remote, with the key in the URL — for clients that cannot send headers. Choose No authentication, since the key is already in the URL:
https://jittee.com/mcp/splitbill?token=wkn_xxx
"Split this receipt four ways. Tanaka did not drink, so $20 for him."
| Tool | What it does |
|---|---|
create_split | Create the page. Takes a total or itemised receipt, a head count, optional names, per-person overrides and rounding. Returns the manage URL, the share URLs (one per amount) and a read-only status URL. |
list_splits | Splits created with this key, newest first, with how much has been collected and who is left. |
get_split | One split: who has paid, their notes, the share URLs. |
By default you are treated as the person who paid up front: you count towards the head
count, but no payment link is created for you. Pass i_paid: false to turn that off.
| Variable | Meaning |
|---|---|
SPLITBILL_TOKEN | Your key from /split/mcp (starts with wkn_). Required. |
SPLITBILL_URL | Endpoint override. Only needed to point at a non-production environment. |
MIT © Jittee Pte. Ltd.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y splitbill-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"com-jittee-splitbill": {
"command": "npx",
"args": [
"-y",
"splitbill-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencesplitbill-mcpnpmcom.jittee/splitbill works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.