splitwise-mcp 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +8 -3
- package/.claude-plugin/plugin.json +7 -2
- package/README.md +174 -0
- package/dist/bundle.js +1426 -654
- package/dist/client.js +40 -6
- package/dist/index.js +1 -1
- package/package.json +22 -5
- package/server.json +29 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "MCP server for Splitwise — natural-language expense and group management via the Splitwise API",
|
|
10
|
-
"version": "
|
|
10
|
+
"version": "2.0.3"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,14 +15,19 @@
|
|
|
15
15
|
"displayName": "Splitwise",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "MCP server for Splitwise — manage expenses, groups, and friends via natural language",
|
|
18
|
-
"version": "
|
|
18
|
+
"version": "2.0.3",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
|
22
22
|
"homepage": "https://github.com/chrischall/splitwise-mcp",
|
|
23
23
|
"repository": "https://github.com/chrischall/splitwise-mcp",
|
|
24
24
|
"license": "MIT",
|
|
25
|
-
"keywords": [
|
|
25
|
+
"keywords": [
|
|
26
|
+
"splitwise",
|
|
27
|
+
"expenses",
|
|
28
|
+
"mcp",
|
|
29
|
+
"finance"
|
|
30
|
+
],
|
|
26
31
|
"category": "finance"
|
|
27
32
|
}
|
|
28
33
|
]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "splitwise-mcp",
|
|
3
3
|
"displayName": "Splitwise",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.3",
|
|
5
5
|
"description": "MCP server for Splitwise — natural-language expense and group management via the Splitwise API",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Hall",
|
|
@@ -10,7 +10,12 @@
|
|
|
10
10
|
"homepage": "https://github.com/chrischall/splitwise-mcp",
|
|
11
11
|
"repository": "https://github.com/chrischall/splitwise-mcp",
|
|
12
12
|
"license": "MIT",
|
|
13
|
-
"keywords": [
|
|
13
|
+
"keywords": [
|
|
14
|
+
"splitwise",
|
|
15
|
+
"expenses",
|
|
16
|
+
"mcp",
|
|
17
|
+
"finance"
|
|
18
|
+
],
|
|
14
19
|
"skills": "./SKILL.md",
|
|
15
20
|
"mcp": "./.mcp.json"
|
|
16
21
|
}
|
package/README.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Splitwise MCP
|
|
2
|
+
|
|
3
|
+
A [Model Context Protocol](https://modelcontextprotocol.io) server that connects Claude to [Splitwise](https://www.splitwise.com), giving you natural-language access to your expenses, groups, friends, and balances.
|
|
4
|
+
|
|
5
|
+
> [!WARNING]
|
|
6
|
+
> **AI-developed project.** This codebase was entirely built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). No human has audited the implementation. Review all code and tool permissions before use.
|
|
7
|
+
|
|
8
|
+
## What you can do
|
|
9
|
+
|
|
10
|
+
Ask Claude things like:
|
|
11
|
+
|
|
12
|
+
- *"What do I owe?"*
|
|
13
|
+
- *"Add a $50 dinner expense to the vacation group"*
|
|
14
|
+
- *"Split this hotel bill 60/40 with Sarah"*
|
|
15
|
+
- *"Who's in the trip group?"*
|
|
16
|
+
- *"Add Meredith to the household group"*
|
|
17
|
+
- *"Show me recent expenses"*
|
|
18
|
+
- *"Delete that duplicate expense"*
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
- [Claude Desktop](https://claude.ai/download) or [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
|
|
23
|
+
- [Node.js](https://nodejs.org) 20.6 or later
|
|
24
|
+
- A [Splitwise](https://www.splitwise.com) account and API key
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
### Option A -- npx (recommended)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx -y splitwise-mcp
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Add to your Claude config (`.mcp.json` or Claude Desktop config):
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"mcpServers": {
|
|
39
|
+
"splitwise": {
|
|
40
|
+
"command": "npx",
|
|
41
|
+
"args": ["-y", "splitwise-mcp"],
|
|
42
|
+
"env": {
|
|
43
|
+
"SPLITWISE_API_KEY": "your-api-key-here"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Option B -- from source
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
git clone https://github.com/chrischall/splitwise-mcp.git
|
|
54
|
+
cd splitwise-mcp
|
|
55
|
+
npm install
|
|
56
|
+
npm run build
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Add to Claude Desktop config:
|
|
60
|
+
|
|
61
|
+
- **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
62
|
+
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"mcpServers": {
|
|
67
|
+
"splitwise": {
|
|
68
|
+
"command": "node",
|
|
69
|
+
"args": ["/absolute/path/to/splitwise-mcp/dist/index.js"],
|
|
70
|
+
"env": {
|
|
71
|
+
"SPLITWISE_API_KEY": "your-api-key-here"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Getting your API key
|
|
79
|
+
|
|
80
|
+
1. Go to [secure.splitwise.com/apps/register](https://secure.splitwise.com/apps/register)
|
|
81
|
+
2. Register an app (name and description can be anything)
|
|
82
|
+
3. Copy the **API key** from the app detail page
|
|
83
|
+
|
|
84
|
+
## Credentials
|
|
85
|
+
|
|
86
|
+
| Env var | Required | Notes |
|
|
87
|
+
|---------|----------|-------|
|
|
88
|
+
| `SPLITWISE_API_KEY` | Yes | API key from [splitwise.com/apps/register](https://secure.splitwise.com/apps/register) |
|
|
89
|
+
|
|
90
|
+
## Available tools
|
|
91
|
+
|
|
92
|
+
20 tools across 5 domains. All tools are prefixed `sw_`.
|
|
93
|
+
|
|
94
|
+
### User
|
|
95
|
+
|
|
96
|
+
| Tool | What it does |
|
|
97
|
+
|------|-------------|
|
|
98
|
+
| `sw_get_current_user` | Get the authenticated user's profile |
|
|
99
|
+
| `sw_get_user` | Get another user's profile by ID |
|
|
100
|
+
|
|
101
|
+
### Groups
|
|
102
|
+
|
|
103
|
+
| Tool | What it does |
|
|
104
|
+
|------|-------------|
|
|
105
|
+
| `sw_list_groups` | List all groups with members |
|
|
106
|
+
| `sw_get_group` | Group details including members and balances |
|
|
107
|
+
| `sw_create_group` | Create a new group |
|
|
108
|
+
| `sw_delete_group` | Soft-delete a group |
|
|
109
|
+
| `sw_undelete_group` | Restore a deleted group |
|
|
110
|
+
| `sw_add_user_to_group` | Add a user to a group |
|
|
111
|
+
| `sw_remove_user_from_group` | Remove a user from a group |
|
|
112
|
+
|
|
113
|
+
### Friends
|
|
114
|
+
|
|
115
|
+
| Tool | What it does |
|
|
116
|
+
|------|-------------|
|
|
117
|
+
| `sw_list_friends` | List all friends |
|
|
118
|
+
| `sw_create_friend` | Add a friend by email |
|
|
119
|
+
| `sw_delete_friend` | Remove a friendship |
|
|
120
|
+
|
|
121
|
+
### Expenses
|
|
122
|
+
|
|
123
|
+
| Tool | What it does |
|
|
124
|
+
|------|-------------|
|
|
125
|
+
| `sw_list_expenses` | List or search expenses with filters |
|
|
126
|
+
| `sw_get_expense` | Full details of a single expense |
|
|
127
|
+
| `sw_create_expense` | Create an expense (equal or custom split) |
|
|
128
|
+
| `sw_update_expense` | Edit an existing expense |
|
|
129
|
+
| `sw_delete_expense` | Soft-delete an expense |
|
|
130
|
+
| `sw_undelete_expense` | Restore a deleted expense |
|
|
131
|
+
| `sw_get_comments` | Get comments on an expense |
|
|
132
|
+
| `sw_create_comment` | Add a comment to an expense |
|
|
133
|
+
| `sw_delete_comment` | Delete a comment |
|
|
134
|
+
|
|
135
|
+
### Utilities
|
|
136
|
+
|
|
137
|
+
| Tool | What it does |
|
|
138
|
+
|------|-------------|
|
|
139
|
+
| `sw_get_notifications` | Recent activity feed |
|
|
140
|
+
| `sw_get_categories` | Expense category list |
|
|
141
|
+
| `sw_get_currencies` | Supported currency codes |
|
|
142
|
+
|
|
143
|
+
## Troubleshooting
|
|
144
|
+
|
|
145
|
+
**"SPLITWISE_API_KEY is required"** -- set the environment variable in your MCP config or a `.env` file.
|
|
146
|
+
|
|
147
|
+
**429 rate limit** -- Splitwise has undocumented rate limits. Wait a moment and retry.
|
|
148
|
+
|
|
149
|
+
**Tools not appearing in Claude** -- go to **Claude Desktop > Settings > Developer** to see connected servers. Make sure you fully quit and relaunched after editing the config.
|
|
150
|
+
|
|
151
|
+
## Development
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npm test # run the test suite (vitest)
|
|
155
|
+
npm run build # compile TypeScript -> dist/
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Project structure
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
src/
|
|
162
|
+
client.ts Splitwise API client (auth, request handling)
|
|
163
|
+
index.ts MCP server entry point
|
|
164
|
+
tools/
|
|
165
|
+
user.ts sw_get_current_user, sw_get_user
|
|
166
|
+
groups.ts group CRUD and membership
|
|
167
|
+
friends.ts friend list and management
|
|
168
|
+
expenses.ts expense CRUD, comments
|
|
169
|
+
utilities.ts notifications, categories, currencies
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## License
|
|
173
|
+
|
|
174
|
+
MIT
|