Skip to main content
Glama
SaharshPatel24

splitwise-mcp

README.md
# splitwise-mcp

A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for [Splitwise](https://splitwise.com) — manage shared expenses directly from Claude, Cursor, or any MCP-compatible AI assistant.

No well-maintained Splitwise MCP existed. This one does.

---

## Tools

| Tool | Description |
|------|-------------|
| `get_expenses` | List expenses — filter by group, friend, date range |
| `get_expense` | Get a single expense by ID |
| `create_expense` | Create a new expense with per-user splits |
| `delete_expense` | Delete an expense by ID |
| `get_friends` | List all friends with IDs and balances |
| `get_groups` | List all groups with members and debts |
| `get_friend_balances` | Pre-computed net balance summary (who owes you, who you owe) |
| `get_current_user` | Get your Splitwise user ID |

---

## Setup

### Option A — API Key (simplest)

1. Go to [splitwise.com/apps](https://secure.splitwise.com/apps)
2. Register an app (or use existing) → copy the **API Key**
3. Set env var: `SPLITWISE_API_KEY=your_api_key`

### Option B — OAuth 1.0

1. Go to [splitwise.com/apps](https://secure.splitwise.com/apps) → register an app
2. Copy **Consumer Key** and **Consumer Secret**
3. Complete the OAuth 1.0 flow to get an access token and secret
4. Set env vars:
```
SPLITWISE_CONSUMER_KEY=your_consumer_key
SPLITWISE_CONSUMER_SECRET=your_consumer_secret
SPLITWISE_ACCESS_TOKEN=your_access_token
SPLITWISE_ACCESS_TOKEN_SECRET=your_access_token_secret
```

---

## Claude Desktop Configuration

Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):

```json
{
  "mcpServers": {
    "splitwise": {
      "command": "npx",
      "args": ["splitwise-mcp"],
      "env": {
        "SPLITWISE_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

Restart Claude Desktop — you'll see the Splitwise tools available.

---

## Example prompts

- *"What do I owe on Splitwise?"*
- *"Show me all expenses from last month"*
- *"Add a $60 dinner split equally between me and Alice"*
- *"Which of my friends owes me the most?"*
- *"Show me all expenses in my Roommates group"*

---

## Local development

```bash
git clone https://github.com/SaharshPatel24/splitwise-mcp
cd splitwise-mcp
npm install
npm run build

# Run with your API key
SPLITWISE_API_KEY=your_key node dist/index.js
```

---

## License

MIT

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation5/5

Every tool has a distinct purpose with clear boundaries: create/delete/get expense operations, user/friend/group retrieval, and balance summaries. No overlap exists between tools like get_expenses (list) and get_expense (single), or between get_friend_balances (summary) and get_friends (detailed list).

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., create_expense, get_expenses, get_friend_balances) with no deviations in style. The naming is predictable and readable throughout the set.

Tool Count5/5

With 8 tools, the count is well-scoped for managing Splitwise expenses, users, friends, groups, and balances. Each tool serves a clear and necessary function without redundancy, fitting a typical utility server range.

Completeness4/5

The toolset covers core Splitwise operations: CRUD for expenses, retrieval of user/friend/group data, and balance summaries. A minor gap exists in updating expenses (e.g., update_expense), but agents can work around this by deleting and recreating, and other workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessNo issues