Skip to main content
Glama
udaysrinu

ExpensifyAI

by udaysrinu

ExpensifyAI

Talk to your Splitwise. Get CRED-grade spending analytics.

ExpensifyAI is a Model Context Protocol (MCP) server for Splitwise that lets any LLM client (Claude, etc.) manage shared expenses and produce deterministic, premium spending analytics — category breakdowns, monthly trends, per-member comparisons, and minimum-transaction settlement plans — rendered as a self-contained, offline HTML dashboard.

Built on top of the excellent tarunn2799/splitwise-mcp; extended with a deterministic analytics engine and a category-first dashboard.

ExpensifyAI dashboard (open examples/demo-dashboard.html in a browser — generated from synthetic data, no account needed)

Analytics (what makes this ExpensifyAI)

  • Deterministic by construction — every number is computed in pure Python with Decimal math (no float drift, no LLM estimation). Same input → byte-identical output. Each report carries a reconciliation check: per-expense shares must sum to cost, or the mismatch is flagged.

  • Category-first, à la CRED — an expandable "where it goes" view leads every report; tap a category to drill into its transactions.

  • Seven analytics modules — category breakdown · monthly trend · owed-vs-paid ("mine vs split") · per-member comparison + category×member matrix · transaction ledger · top transactions · settlement optimizer (minimum transactions to settle a group — no other Splitwise tool has this).

  • Premium offline dashboard — CRED-grade dark UI, hand-rolled inline-SVG charts, validated colorblind-safe palette, works with no network and no JS.

  • Two toolsanalyze_spending(target_type, target_id?, dates?, generate_dashboard?) and compare_group_members(group_id, …). target_type is me | group | friend.

Try it without an account:

python examples/generate_demo.py   # writes examples/demo-dashboard.html

Related MCP server: Splitwise MCP Server

Features (MCP)

  • Full API Access: Manage expenses, groups, friends, and comments.

  • Natural Language Resolution: Fuzzy matching for names ("John" -> "John Smith") and groups.

  • Dual Auth: Supports both OAuth 2.0 (recommended) and API Keys.

  • Smart Caching: Optimizes performance for static data like categories and currencies.

Installation

# From PyPI (when published)
pip install splitwise-mcp-server

# From Source
git clone https://github.com/tarunn2799/splitwise-mcp-server
cd splitwise-mcp-server
pip install -e .

Configuration

See SETUP.md for detailed authentication and configuration instructions.

Quick Config

Run the included setup script:

python -m splitwise_mcp_server.oauth_setup

Use the keys provided there, and add all three to your mcp.json:

{
  "mcpServers": {
    "splitwise": {
      "command": "python",
      "args": ["-m", "splitwise_mcp_server"],
      "env": {
        "SPLITWISE_OAUTH_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

Get your Auth Keys You can get your Consumer Key and Secret by registering an app at https://secure.splitwise.com/apps.

IMPORTANT: Using a Virtual Environment? If you installed the package in a venv or Conda environment, you must use the absolute path to the python executable in your config.

"command": "/absolute/path/to/venv/bin/python"

See SETUP.md for details.

Usage

The server enables natural language interactions with your Splitwise data.

Examples:

  • "What's my current balance?"

  • "Split a $50 dinner with Sarah."

  • "Use the receipt I uploaded to split the dinner between Manav and me."

  • "Show me expenses from last month."

  • "Create a group called 'Ski Trip' with Mike."

Tools

See TOOLS.md for detailed documentation.

User Tools

  • get-current-user: Get authenticated user information

  • get-user: Get information about a specific user

Expense Tools

  • create-expense: Create a new expense with splits

  • get-expenses: List expenses with optional filters

  • get-expense: Get detailed expense information

  • update-expense: Update an existing expense

  • delete-expense: Delete an expense

Group Tools

  • get-groups: List all groups

  • get-group: Get detailed group information

  • create-group: Create a new group

  • delete-group: Delete a group

  • add-user-to-group: Add a user to a group

  • remove-user-from-group: Remove a user from a group

Friend Tools

  • get-friends: List all friends

  • get-friend: Get detailed friend information

Resolution Tools

  • resolve-friend: Fuzzy match friend names to user IDs

  • resolve-group: Fuzzy match group names to group IDs

  • resolve-category: Fuzzy match category names to category IDs

Comment Tools

  • create-comment: Add a comment to an expense

  • get-comments: Get all comments for an expense

  • delete-comment: Delete a comment

Utility Tools

  • get-categories: Get all expense categories

  • get-currencies: Get all supported currencies

Arithmetic Tools

  • add: Add multiple numbers

  • subtract: Subtract numbers

  • multiply: Multiply numbers

  • divide: Divide numbers

  • modulo: Calculate remainder

Development

# Setup
git clone https://github.com/tarunn2799/splitwise-mcp-server
cd splitwise-mcp-server
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"

# Test
pytest

License

MIT License. See LICENSE for details.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/udaysrinu/ExpensifyAI'

If you have feedback or need assistance with the MCP directory API, please join our Discord server