Skip to main content
Glama
splitwise-mcp

splitwise-mcp

by prakhar083

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SPLITWISE_API_KEYYesPersonal Splitwise API key from secure.splitwise.com/apps. Required to run the server.
SPLITWISE_BASE_URLNoOverride the Splitwise API base URL, for example when using a proxy.https://secure.splitwise.com/api/v3.0
SPLITWISE_READ_ONLYNoSet to true to register read-only tools only. Mutating tools are never registered.false
SPLITWISE_MCP_HTTP_TOKENNoBearer token required by HTTP mode. Mandatory when binding to a non-loopback address.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_current_userA

Returns the Splitwise account this server acts as: id, name, email and default currency. "me" in other tools refers to this user.

list_groupsA

Lists the user's Splitwise groups with member names and the user's own balance in each. A positive balance means the group owes the user; negative means the user owes the group.

get_groupA

Returns one group's members with their balances, plus the debts between members (simplified if the group has debt simplification on). Accepts a group id or name.

list_friendsA

Lists the user's Splitwise friends with their overall balance with the user, per currency. A positive amount means the friend owes the user; negative means the user owes the friend.

get_balancesA

Summarises who owes whom. Without a group: every friend with a non-zero balance, split into "owes_you" and "you_owe", plus net totals per currency. With a group: the debts between group members. Use this before settle_up to find the amount to settle.

list_expensesA

Lists expenses and payments, newest first. Filter by group, friend and date range. Each expense shows what every person paid and owes. Deleted expenses are hidden unless include_deleted is true.

get_expenseA

Returns one expense or payment by id, with every person's paid and owed share.

search_expensesA

Finds expenses whose description or notes contain every word of the query (case- and accent-insensitive), e.g. "pizza" or "airbnb lisbon". Splitwise has no server-side search, so this scans recent expenses (newest first) up to scan_limit; narrow with group, friend or dates to search further back.

create_expenseA

Adds an expense to Splitwise. Choose a group (or omit it for an expense between you and friends), who paid (default: you), and how to split: equally, by exact amounts, or by percentages. People can be given by name or id. Amounts are computed in whole cents, so the shares always add up exactly to the cost. If a name is ambiguous the tool returns the candidates instead of guessing: ask the user which one.

update_expenseA

Edits an existing expense. Only the fields you pass change. Changing the cost alone rescales everyone's shares proportionally; pass split to redistribute, or paid_by to change who paid. Read the expense with get_expense first so you can confirm the change with the user.

delete_expenseA

Deletes an expense or payment. Balances change immediately. Confirm with the user before calling; Splitwise can restore it from the web app if needed.

settle_upA

Records a payment from one person to another (e.g. "Alex paid me back"). This does not move money; it records that money changed hands. Omit amount to settle the full outstanding balance: within the group if one is given, otherwise the overall balance between you and a friend.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 12 tools

Disambiguation4/5

Each tool targets a distinct resource and action, and the descriptions actively steer usage (e.g. get_balances before settle_up, search_expenses for text lookup). There is mild overlap between list_expenses/search_expenses and between the balance information returned by list_groups, get_group and get_balances, but the boundaries remain clear enough to choose correctly.

Naming Consistency5/5

Eleven of twelve tools follow a strict verb_noun snake_case pattern (get_current_user, list_groups, get_group, list_friends, get_balances, list_expenses, get_expense, search_expenses, create_expense, update_expense, delete_expense). The single outlier, settle_up, is still a recognizable verb phrase and fits the domain naturally.

Tool Count5/5

Twelve tools is well within the sweet spot and each one has a clear job: identity, three read views of the social graph, three expense readers, full expense CRUD, and settle_up. Nothing feels redundant or padded.

Completeness4/5

The core lifecycle is covered end to end: read groups/friends/balances, search and read expenses, create/update/delete expenses, and record settlements. Gaps are secondary — there is no way to create a group, add or remove group members, add friends, or comment on an expense, so some workflows dead-end at the web app.

Maintenance

ActivityMaintained
ResponsivenessNo issues