# Xupersplit (remote · split.xuper.fun)

Split shared expenses in a group — no account needed. See who owes whom and settle up.

- Trust score: 65/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `split.xuper.fun`: 65/100 (this document), [markdown](https://verifymcp.io/servers/kanylbullen-xupersplit/api-mcp.md), [page](https://verifymcp.io/servers/kanylbullen-xupersplit/api-mcp)

## Channel facts

- Endpoint: `https://split.xuper.fun/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (delete_entry).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1646 tokens (~149/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 97/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 88% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add --transport http kanylbullen-xupersplit https://split.xuper.fun/api/mcp
```

### Codex

```toml
[mcp_servers.kanylbullen-xupersplit]
url = "https://split.xuper.fun/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kanylbullen-xupersplit": {
      "type": "remote",
      "url": "https://split.xuper.fun/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add kanylbullen-xupersplit --url https://split.xuper.fun/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  kanylbullen-xupersplit:
    url: "https://split.xuper.fun/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "kanylbullen-xupersplit": {
      "type": "http",
      "url": "https://split.xuper.fun/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 65)

First indexed and scored.

## MCP tools (11)

### `create_split` (~106 tokens)

Create a split

Create a new xupersplit for sharing expenses in a group. No account needed. Returns a secret link — give it to the user and tell them to share it with the group, since anyone holding the link can see and edit the split.

Input parameters:

- `currency` (string): Currency code. Defaults to SEK.
- `participants` (array, required): Names of everyone splitting, at least two.
- `title` (string, required): What the split is for, e.g. "Ski trip".

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `get_split` (~55 tokens)

Read a split

Read a split: participants, expenses, per-person balances and the shortest set of payments that settles everyone up.

Input parameters:

- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `add_expense` (~287 tokens)

Add an expense

Record something one person paid for the group. Split equally by default; pass split_between for a subset, or shares for an uneven split. One expense covers one set of people — a receipt whose items aren't all shared by everyone is several expenses, so call this once per group of items that the same people share, rather than splitting the total equally. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `amount` (number, required): Amount in the split's currency, as a decimal (e.g. 249.50).
- `date` (string): Date as YYYY-MM-DD. Defaults to today.
- `description` (string): What it was, e.g. "Groceries".
- `paid_by` (string, required): Who paid — a participant's name (or id) in this split.
- `shares` (array): Uneven split. Either an exact `amount` per person (must add up to the total) or a relative `weight` per person (e.g. weight 2 for a couple). Don't combine with split_between.
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.
- `split_between` (array): Names of the people sharing this cost, split equally. Defaults to everyone.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `record_payment` (~204 tokens)

Record a payment

Record that one person paid another back, settling part or all of a debt. Use get_split first to see who should pay whom. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `amount` (number, required): Amount in the split's currency, as a decimal (e.g. 249.50).
- `date` (string): Date as YYYY-MM-DD. Defaults to today.
- `description` (string): How it was paid, e.g. "Swish, 3 March". Shown in the history.
- `from` (string, required): Who sent the money — a participant's name (or id) in this split.
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.
- `to` (string, required): Who received it — a participant's name (or id) in this split.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `update_entry` (~249 tokens)

Update an entry

Change an existing expense or payment. Only the fields you pass are changed. Entry ids come from get_split. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `amount` (number): Amount in the split's currency, as a decimal (e.g. 249.50).
- `date` (string): Date as YYYY-MM-DD. Defaults to today.
- `description` (string)
- `entry_id` (string, required): The entry's id, from get_split.
- `paid_by` (string): Move the entry to a different payer.
- `shares` (array): Uneven split. Either an exact `amount` per person (must add up to the total) or a relative `weight` per person (e.g. weight 2 for a couple). Don't combine with split_between.
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.
- `split_between` (array): Names of the people sharing this cost, split equally. Defaults to everyone.
- `to` (string): New recipient — payments only.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `delete_entry` (~87 tokens)

Delete an entry

Remove an expense or payment for good. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `entry_id` (string, required): The entry's id, from get_split.
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `add_participant` (~78 tokens)

Add a participant

Add someone to an existing split. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `name` (string, required)
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `rename_participant` (~102 tokens)

Rename a participant

Change a participant's name. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `name` (string, required): The new name.
- `participant` (string, required): Who to rename — a participant's name (or id) in this split.
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `remove_participant` (~102 tokens)

Remove a participant

Remove someone from a split. Only works if they aren't on any expense yet. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `participant` (string, required): Who to remove — a participant's name (or id) in this split.
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `set_payment_methods` (~131 tokens)

Set payment details

Set how a participant wants to be paid back, so the split can show a QR code or pay link. Replaces their current list (pass an empty array to clear it). Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `methods` (array, required)
- `participant` (string, required): Whose details these are — a participant's name (or id) in this split.
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

### `update_split` (~95 tokens)

Rename a split

Change a split's title or currency. The currency is locked once the split has expenses. Works on simple, accountless splits. Secure splits (created by a signed-in user) are read-only here and must be opened in a browser.

Input parameters:

- `currency` (string)
- `split` (string, required): The split key, or the whole https://split.xuper.fun/k/<key> link.
- `title` (string)

Output parameters:

- `created_at` (string)
- `currency` (string)
- `entries` (array)
- `key` (string)
- `participants` (array)
- `secure` (boolean)
- `settled` (boolean)
- `settlement` (array)
- `title` (string)
- `total_spent` (number)
- `url` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/kanylbullen-xupersplit/api-mcp#diagnostics

## Score history

- 2026-08-03: 65

## Links

- Remote endpoint: https://split.xuper.fun/api/mcp
- Repository: https://github.com/kanylbullen/xupersplit
- Website: https://split.xuper.fun/mcp
- Changelog RSS feed: https://verifymcp.io/servers/kanylbullen-xupersplit/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/kanylbullen-xupersplit/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/kanylbullen-xupersplit/api-mcp
