I built a free MCP to bypass Splitwise Pro Subscription
Photo by Microsoft Copilot on Unsplash
I’ve been using Splitwise for years.

Shared apartment.

Multiple flatmates.

The usual chaos of who-paid-what at the end of every month.

It did it all.

But the pro subscription felt unnecessary.

In fact, It works, but opening the app every time I want to log something while I’m already sitting at my laptop, mid-flow also felt like unnecessary friction.

So, now, we have 2 reasons.

  • Frugal Living (No subscriptions)
  • Laziness

I had recently started exploring MCPs.

I wanted to wire something up that I actually use every day.

Something where the result would feel genuinely useful, not just technically impressive.

And, Splitwise was the obvious choice.

What is MCP, and Why Does It Matter Here?

MCP , the Model Context Protocol is a way for AI clients like Cursor or Claude Desktop to talk to external tools running as local servers.

Think of it like giving your editor a set of hands that can reach outside the conversation.

The key insight that makes this whole thing click:

splitwise-mcp is not a Python library you import.

It runs as a local server.

Like: Cursor is the client. Python just starts the server.

That’s the whole model.

Once that clicked, everything else made sense.

Must know Caveats:

The smart name matching is worth calling out.

If Deepgram mishears “Sumeet” as “Humeet”, Gemini asks for clarification rather than silently creating a split for the wrong person.

That’s the kind of guardrail that makes a voice feature actually usable.

The internal flow looks like this:

Claude / Cursor[MCP] → splitwise-mcp server → Deepgram (if voice) → Gemini → Splitwise API

Getting Set Up

Step 1: Get your Splitwise API keys

Go to secure.splitwise.com/apps/new and register a new app.

It’s mostly a formality (fill in a name, description, and any valid URL for the homepage). Leave the callback URL empty.

You’ll get:

  • Consumer Key
  • Consumer Secret
  • API Key

That’s all you need for core functionality.

Gemini and Deepgram are optional add-ons if you want natural language or voice support.

Step 2: Install

pip install splitwise-mcp

Or, if you prefer to install from source:

git clone https://github.com/hubshashwat/the-splitwise-mcp.git
cd the-splitwise-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Step 3: Configure your MCP client

For Cursor / VS Code:

{
"mcp.servers": {
"splitwise": {
"command": "/path/to/your/venv/bin/python",
"args": ["-m", "splitwise_mcp.server"],
"env": {
"SPLITWISE_CONSUMER_KEY": "your_consumer_key",
"SPLITWISE_CONSUMER_SECRET": "your_consumer_secret",
"SPLITWISE_API_KEY": "your_api_key"
}
}
}
}

On Windows, point command to your venv's python.exe directly. It works just fine.

For Claude Desktop, the config goes in:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Same shape, just under the mcpServers key instead.

The Moment It Clicked

After restarting Cursor, I typed:

“Show my Splitwise balances”

And it just worked. Real data. Live data. No copy-pasting from the app, no tab-switching. The AI just knew.

That’s when MCP stopped feeling experimental and started feeling genuinely useful.

Running Without Claude or Cursor at All

One thing I’m proud of in the repo:

there’s a standalone terminal agent you can run if you don’t use Cursor or any MCP client.

pip install splitwise-mcp
curl -O https://raw.githubusercontent.com/hubshashwat/the-splitwise-mcp/main/run_agent.py
export SPLITWISE_CONSUMER_KEY="your_key"
export SPLITWISE_CONSUMER_SECRET="your_secret"
export SPLITWISE_API_KEY="your_api_key"
export GEMINI_API_KEY="your_gemini_key"
python run_agent.py

Then interact with it directly:

Enter command (voice/text/quit): t
Enter request: Add expense of $50 with Sumeet for dinner
  Proposed Action:
Function: add_expense
Args: {
"description": "dinner",
"cost": 50.0,
"split_with": ["Sumeet"]
}
Proceed? (yes/edit/cancel): yes
Expense added!

It shows you the proposed action before executing — no silent mutations. You confirm, edit, or cancel. I like that.

This isn’t a Splitwise tutorial. Splitwise just happened to be the itch I needed to scratch.

The pattern here is what matters:

Local tool → exposed via MCP → orchestrated by your AI editor.

No hosted servers.

No OAuth flows to maintain.

No deployment pipeline.

Just your local machine doing real work, with the AI as the interface layer.

The same pattern works for anything you already use daily like task managers, note apps, internal databases, whatever.

If there’s an API, you can wrap it in an MCP server and start talking to it naturally.

The barrier to doing this is lower than it looks.

The actual setup, from zero to working, is under 30 minutes.

The splitwise-mcp package handles all the hard parts.

A few things that come for free and are worth knowing about:

  • Percentage splits: “Split 40% for me and 60% for Alice”
  • Group expenses: “Add $120 to the Apartment group” — it auto-fetches group members
  • Exclusions: “Add to Apartment but exclude Bob”
  • Custom payer: “Alice paid $80 for groceries” — handles when you’re logging someone else’s expense
  • Voice: Record audio, let Deepgram transcribe, let Gemini interpret, confirm, done

Everything is open source and on GitHub:

hubshashwat/the-splitwise-mcp

If you try it and run into something odd, open an issue.

If you extend it for your own tools, I’d love to see what you build.

In case we are meeting for the first time, come over here, it’ll be worth the roller coaster of articles that are gonna come up in the next few weeks.

Btw, I also built a medium-no-bait-reader