protogrid

Search / io.github.kanylbullen/xupersplit

xupersplit

R0· no sign-in

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

v1.0.1 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality89good
Trust94of 100
Uptime, 30 days100%
Latency p50269 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "xupersplit": {
      "type": "http",
      "url": "https://split.xuper.fun/api/mcp"
    }
  }
}
claude mcp add --transport http xupersplit https://split.xuper.fun/api/mcp
[mcp_servers.xupersplit]
url = "https://split.xuper.fun/api/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "xupersplit": {
      "type": "remote",
      "url": "https://split.xuper.fun/api/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "xupersplit": {
      "type": "http",
      "url": "https://split.xuper.fun/api/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=xupersplit&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc3BsaXQueHVwZXIuZnVuL2FwaS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "xupersplit": {
      "type": "http",
      "url": "https://split.xuper.fun/api/mcp"
    }
  }
}
{
  "mcpServers": {
    "xupersplit": {
      "httpUrl": "https://split.xuper.fun/api/mcp"
    }
  }
}
extensions:
  "xupersplit":
    enabled: true
    name: "xupersplit"
    type: streamable_http
    uri: "https://split.xuper.fun/api/mcp"
    timeout: 300

Quality 89 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations11 of 11 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: add_participant (idempotentHint, openWorldHint); get_split (destructiveHint, idempotentHint, openWorldHint); add_expense (idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 2,446 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

11 tools, about 2,446 tokens to load them all · tool set 20fa608d40fd · checked 2026-10-20 18:06 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance90
liveness100
freshness85
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% ~updated-71d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://split.xuper.fun/api/mcp streamable-httpnoneyes100%269 ms2026-07-282026-10-20

Tools (11)

add_expenseRecord 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.
add_participantAdd 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.
create_splitCreate 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.
delete_entrydestructiveRemove 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.
get_splitread-onlyRead a split: participants, expenses, per-person balances and the shortest set of payments that settles everyone up.
record_paymentRecord 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.
remove_participantdestructiveRemove 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.
rename_participantChange 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.
set_payment_methodsdestructiveSet 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.
update_entryChange 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.
update_splitChange 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.kanylbullen/xupersplit",
  "icons": [
    {
      "src": "https://split.xuper.fun/icon.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    },
    {
      "src": "https://split.xuper.fun/apple-icon.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "xupersplit",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://split.xuper.fun/api/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.1",
  "repository": {
    "url": "https://github.com/kanylbullen/xupersplit",
    "source": "github"
  },
  "websiteUrl": "https://split.xuper.fun/mcp",
  "description": "Split shared expenses in a group — no account needed. See who owes whom and settle up."
}