Splitwise MCP Server
A server that wraps the Splitwise API so Claude can read and manage expenses, including listing, creating, updating, and deleting expenses with support for equal and custom splits.
README
Splitwise MCP Server
A small MCP server (built with FastMCP) that wraps the Splitwise API so Claude can read and manage your expenses directly.
Tools
| Tool | What it does |
|---|---|
list_expenses |
List expenses (filter by group, friend, date ranges; paginated) |
get_expense |
Get one expense's full details by id |
create_expense |
Add an expense — split equally or with custom per-user shares |
update_expense |
Edit an existing expense |
delete_expense |
Delete an expense |
Credentials
Each user supplies their own Splitwise API key (and optional default group id). The server reads them per request, in this order:
- HTTP request headers (multi-user / hosted) — preferred:
Header Required Purpose X-Splitwise-Api-Keyyes The caller's Splitwise API key (Bearer token) X-Splitwise-Group-Idno Default group id when a tool omits group_id - Environment variables (single-user / local fallback) —
SPLITWISE_API_KEY,SPLITWISE_GROUP_ID.
This means one hosted deployment can serve many people: each person plugs in their own key via their client config — no shared key, no per-user redeploy.
Get an API key at dev.splitwise.com → Your apps → create an app → copy the API key. The group id is in the URL when you open a group on splitwise.com.
Deploy to FastMCP Cloud (hosted, multi-user)
FastMCP Cloud runs the server remotely and gives you one HTTPS URL that many people can use — each with their own key, passed as a header. You (the owner) don't need to put any Splitwise secret in the dashboard.
-
Push this folder to a GitHub repo (see "Git setup" below).
-
Go to fastmcp.cloud, sign in with GitHub, and create a project from your repo.
-
Set the entrypoint to:
server.py:mcp(FastMCP Cloud installs dependencies from
pyproject.tomlautomatically.) -
Authentication: so other people can connect, set the project's access to public / unauthenticated. The real credential is each user's
X-Splitwise-Api-Keyheader, so the server doesn't need its own login gate. (NoSPLITWISE_*env vars needed in the dashboard for the multi-user case.) -
Deploy. You'll get a URL like
https://your-project.fastmcp.app/mcp. Share it.
How each user adds the server to Claude
Every user runs this with their own key and group id:
Claude Code (CLI):
claude mcp add --transport http splitwise https://your-project.fastmcp.app/mcp \
--header "X-Splitwise-Api-Key: THEIR_API_KEY" \
--header "X-Splitwise-Group-Id: THEIR_GROUP_ID"
Other clients (JSON form):
{
"mcpServers": {
"splitwise": {
"url": "https://your-project.fastmcp.app/mcp",
"headers": {
"X-Splitwise-Api-Key": "THEIR_API_KEY",
"X-Splitwise-Group-Id": "THEIR_GROUP_ID"
}
}
}
}
Note: header-based config works in clients that support custom MCP headers (e.g. Claude Code). The Claude Desktop "Add custom connector" UI currently only takes a URL (no custom headers), so Desktop users would need a client that supports headers — or you'd move to OAuth. For most setups, Claude Code is the way each user plugs in their key.
Run locally (stdio, optional)
You can also run it on your own machine without the cloud. Here the secrets DO go in the Claude config (since the process runs locally):
uv sync # install deps
Claude Code (CLI):
claude mcp add splitwise \
-e SPLITWISE_API_KEY=your_api_key_here \
-e SPLITWISE_GROUP_ID=your_default_group_id \
-- uv run --directory /Users/azeemwaqar/Desktop/home/work/splitwise_mcp server.py
Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"splitwise": {
"command": "uv",
"args": ["run", "--directory", "/Users/azeemwaqar/Desktop/home/work/splitwise_mcp", "server.py"],
"env": {
"SPLITWISE_API_KEY": "your_api_key_here",
"SPLITWISE_GROUP_ID": "your_default_group_id"
}
}
}
}
Inspect tools interactively:
uv run fastmcp dev server.py
Git setup (for FastMCP Cloud)
cd /Users/azeemwaqar/Desktop/home/work/splitwise_mcp
git init
git add .
git commit -m "Splitwise expense MCP server"
# create an empty repo on GitHub, then:
git remote add origin https://github.com/<you>/splitwise-mcp.git
git branch -M main
git push -u origin main
.env is git-ignored, so your key never gets committed.
Notes on splitting
- Equal split (default): omit
users; the cost splits evenly across the group. - Custom split: pass
users, e.g.[{"user_id": 123, "paid_share": "25.00", "owed_share": "12.50"}, ...].paid_sharevalues must sum tocost, and so mustowed_share. You can identify a user byuser_id, or byemail/first_name/last_name.
Scope is intentionally limited to expenses — no friends/groups/categories management tools (yet).
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。