Check out my other MCP tools
MCP server that exposes every endpoint from Splitwise's public self-serve API docs as MCP tools.
Current coverage from spec/paths/index.yaml: 27 API operations.
Splitwise uses Bearer authentication for API calls. This server accepts any of these env vars:
SPLITWISE_API_KEY(recommended for personal use; easiest path)SPLITWISE_ACCESS_TOKENSPLITWISE_OAUTH_ACCESS_TOKENSPLITWISE_BEARER_TOKEN
If none are set, tool calls fail with an auth error.
- Personal scripts/single account: create a Splitwise app and use its personal API key as a Bearer token.
- Multi-user app: use OAuth 2.0 Authorization Code (client key + client secret) to get user access tokens, then pass the access token as Bearer.
- OAuth 1.0 is not used by the current docs.
Bunx expects a package + executable. For path/GitHub sources, use -p and then the bin name (splitwise-mcp).
Published package (npm):
SPLITWISE_API_KEY=your_token bunx splitwise-mcpLocal path source:
SPLITWISE_API_KEY=your_token bunx -p /absolute/path/to/splitwise-mcp splitwise-mcpGitHub source:
SPLITWISE_API_KEY=your_token bunx -p github:adinschmidt/splitwise-mcp splitwise-mcpNote: bunx /path/to/repo is not supported by Bun 1.3.x. Use -p form above.
Using published npm package:
{
"mcpServers": {
"splitwise": {
"command": "bunx",
"args": ["splitwise-mcp"],
"env": {
"SPLITWISE_API_KEY": "your_splitwise_token"
}
}
}
}Using a local checkout:
{
"mcpServers": {
"splitwise": {
"command": "bunx",
"args": ["-p", "/absolute/path/to/splitwise-mcp", "splitwise-mcp"],
"env": {
"SPLITWISE_API_KEY": "your_splitwise_token"
}
}
}
}Each API path is mapped to one tool name by path normalization.
Examples:
/get_current_user->get_current_user/get_user/{id}->get_user_id/delete_expense/{id}->delete_expense_id
There is also a helper tool:
splitwise_list_operations: lists all registered Splitwise operations.
Every tool accepts:
- Path/query parameters as top-level fields (for example
id,limit,offset) bodyfor JSON request bodies (when the endpoint supports/needs a body)- For best results, pass
bodyas an object. If you pass a string, use a JSON object string or URL-encoded form string.
To refresh specs from Splitwise official docs repo:
bun run sync-specThen restart the MCP server.
- Splitwise API docs: https://dev.splitwise.com/
- Splitwise API OpenAPI source: https://github.com/splitwise/api-docs