mcpField
S
splitbill

splitbill

Remote
github.com/JojoYayFinance0Updated 6w ago
Repository

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

  1. 01Create splits from totals or receipts
  2. 02Equal and custom amount allocation
  3. 03Shareable payment and status links
  4. 04PayNow QR payment pages
  5. 05Track self-reported payments

Use cases

  1. 01Split a restaurant bill among friends
  2. 02Assign a custom share to one participant
  3. 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.

Endpointhttps://jittee.com/mcp/splitbill
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

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.

Packages
npmsplitbill-mcp1.0.7

Tools

3
ParameterTypeRequiredDescription
notestringNoA short note shown to the payers.
itemsarrayNoReceipt lines. Their sum becomes the total. Payers can see them.
namesarrayNoNames of the others (only the ones you know). Empty slots get filled in by the payers themselves.
titlestringNoWhat the bill was for (e.g. Friday dinner). Defaults to the date and time.
totalnumberNoThe total. If items are given, their sum wins.
customarrayNoCharge one person a different amount (e.g. someone who did not drink). The rest is re-split automatically.
i_paidbooleanNoDid the user pay up front? (default: true) They count towards the head count but are not billed.
peoplenumberNoHow many people share the bill, INCLUDING the user who paid up front.
my_namestringNoWhat to call the user in the list (default: Me).
childrennumberNoHow 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.
roundingenumNoRounding. 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 README

SplitBill 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.

smithery badge

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

ToolWhat it does
create_splitCreate 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_splitsSplits created with this key, newest first, with how much has been collected and who is left.
get_splitOne 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

VariableMeaning
SPLITBILL_TOKENYour key from /split/mcp (starts with wkn_). Required.
SPLITBILL_URLEndpoint 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

License

MIT © Jittee Pte. Ltd.

Comments

Markdown supported

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.