About splitbill
splitbill is an MCP server for creating and tracking shared bills paid through Singapore’s PayNow. It suits groups splitting expenses; money goes directly between participants’ banking apps.
Key features
- 01Create splits from totals or receipts
- 02Equal and custom amount allocation
- 03Shareable payment and status links
- 04PayNow QR payment pages
- 05Track self-reported payments
Use cases
- 01Split a restaurant bill among friends
- 02Assign a custom share to one participant
- 03Check who has paid toward a group expense
MCP support
The server lets MCP clients create split pages and retrieve split and payment status information. It supports a remote OAuth endpoint and a stdio setup using an API key.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://jittee.com/mcp/splitbillclaude mcp add --transport http com-jittee-splitbill https://jittee.com/mcp/splitbill{"mcpServers":{"com-jittee-splitbill":{"type":"http","url":"https://jittee.com/mcp/splitbill"}}}Open in Cursor{"servers":{"com-jittee-splitbill":{"type":"http","url":"https://jittee.com/mcp/splitbill"}}}Open in VS Code{"mcpServers":{"com-jittee-splitbill":{"type":"http","url":"https://jittee.com/mcp/splitbill"}}}{"mcpServers":{"com-jittee-splitbill":{"serverUrl":"https://jittee.com/mcp/splitbill"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
3| Parameter | Type | Required | Description |
|---|---|---|---|
| note | string | No | A short note shown to the payers. |
| items | array | No | Receipt lines. Their sum becomes the total. Payers can see them. |
| names | array | No | Names of the others (only the ones you know). Empty slots get filled in by the payers themselves. |
| title | string | No | What the bill was for (e.g. Friday dinner). Defaults to the date and time. |
| total | number | No | The total. If items are given, their sum wins. |
| custom | array | No | Charge one person a different amount (e.g. someone who did not drink). The rest is re-split automatically. |
| i_paid | boolean | No | Did the user pay up front? (default: true) They count towards the head count but are not billed. |
| people | number | No | How many people share the bill, INCLUDING the user who paid up front. |
| my_name | string | No | What to call the user in the list (default: Me). |
| children | number | No | How many of people are children. A child pays half of what an adult pays. "4 adults and 3 kids" is people=7, children=3. When names are given, the LAST ones on the list are taken to be the children. |
| rounding | enum | No | Rounding. ceil-all = round everyone up to whole dollars and let the user absorb the difference; one-extra = split exactly and let one person carry the remainder.ceil-all | one-extra |
Details
From the project READMESplitBill MCP
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.
- Product page: https://jittee.com/splitbill
- Web app (no sign-up): https://sposched.jittee.com/split/
Features
- Create a split bill from a receipt or a total
- Equal split, or a custom amount for one person (the rest is re-split)
- The person who paid up front is counted but never billed
- Participant management — names optional; payers can enter their own
- Shareable payment URLs (one per amount) + a read-only status link
- PayNow QR on the payment page
- Payment status tracking (self-reported with a transfer screenshot)
- Receipts attached to the total, visible to payers
- 日本語 / English / 中文
Example
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)
Setup
Option A — point your client at the remote server (recommended)
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.
Option B — hold the key yourself
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
Then ask
"Split this receipt four ways. Tanaka did not drink, so $20 for him."
Tools
| 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.
Environment
| 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. |
Good to know
- No sign-up, no login. The key is the only credential.
- Money never passes through us. Payments go directly between banking apps over PayNow. SplitBill only shows the amount and the recipient, and records who says they have paid.
- Pages delete themselves 7 days after the last payment, images included.
- NRIC cannot be used as a PayNow recipient (Singapore PDPA); mobile number or UEN only.
- Amounts are SGD.
- Anyone can create a split page, so payment pages carry a standing warning and a report button. Never send money from a link you got from someone you do not know.
Privacy and terms
- Privacy policy: https://sposched.jittee.com/split/privacy/
- Terms of use: https://sposched.jittee.com/split/terms/
- Contact: [email protected]
License
MIT © Jittee Pte. Ltd.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.