Skip to main content
ldgr
Features How it works Templates Appearance Pricing Releases
Get the app

MCP integration

72 tools · 17 prompts · free for every tier

ldgr exposes an MCP server at https://api.ldgr.money/mcp. Connect any MCP client — Claude Desktop, Cursor, or your own agent.

Two ways to connect: OAuth 2.1 (recommended for end users — browser-based consent, no token copy/paste) or API key (for custom scripts / CLI tools, manual Authorization: Bearer header). Both honor the same scopes (read / write / delete), are SHA-256 hashed on storage, revocable anytime, and free for every subscription tier. Every call goes through the same service-layer membership and tier checks as the REST API — MCP can only access data the user can already access in the app.

Setup — OAuth (Claude Desktop, Cursor, claude.ai Connectors)

  1. In your AI client's settings, add a custom connector / MCP server with URL https://api.ldgr.money/mcp.
  2. The client opens your browser at the ldgr authorization page.
  3. Sign in with the same Google or Apple account you use in the ldgr mobile app.
  4. The consent page lists what the AI client wants to access (read, write, delete). Toggle individual scopes off if you want to limit it.
  5. Click Authorize. The connector shows as connected. All 72 tools are usable.

To disconnect: either click "Disconnect" in your AI client's connector list, or open the ldgr mobile app → Profile → API Keys → Connected integrations → tap the trash icon. Either path immediately invalidates the access + refresh tokens server-side.

Setup — API key (developer flow)

For custom scripts and CLI tools, or any case where you don't have an OAuth-aware client.

  1. In the mobile app: Profile → API Keys → +. Pick scopes, copy the key — shown only once.
  2. Send Authorization: Bearer ldgr_sk_… on every request.

For older Claude Desktop versions that accept manual config, edit claude_desktop_config.json:

{
  "mcpServers": {
    "ldgr": {
      "url": "https://api.ldgr.money/mcp",
      "headers": {
        "Authorization": "Bearer ldgr_sk_..."
      }
    }
  }
}

Restart the client. It will discover all tools and prompts automatically — no further configuration needed.

Read tools (42)

Available with the read scope. Used to query the ledger without mutating anything.

  • list_groups — List all groups the user belongs to
  • list_group_members — Active members of a group (IDs + names)
  • list_expenses — Expenses in a group (for duplicate checks)
  • list_settlements — Settlements in a group
  • get_expense — Full expense detail including splits and items
  • list_categories — 125 valid expense category keys
  • list_avatars — Valid avatar keys for groups & personal spaces — mobile renders each as an emoji
  • list_currencies — Supported currency codes
  • get_group_balances — Pairwise balances — who owes whom
  • list_income_categories — Income category keys
  • list_incomes — Incomes in a personal space
  • get_income — Full income detail
  • list_income_templates — Recurring + planned income templates
  • list_expense_templates — Recurring + planned expense templates
  • get_cash_flow — Monthly income vs expense series
  • get_income_by_category — Income breakdown by category
  • get_spending_by_category — Expense breakdown by category
  • get_personal_summary — Cross-personal-space rollup
  • get_forecast_summary — Balance forecast summary
  • list_comments — Comments on an expense or income
  • search — Relevance-ranked search across expenses, incomes, settlements, groups
  • get_my_finances_shared — My Finances "Shared" tab — cross-group income / expense / net
  • get_my_finances_private — My Finances "Private" tab — personal-space rollup
  • get_weekly_summary_latest — Most recent weekly summary snapshot
  • get_weekly_summary — A specific weekly summary by ID
  • list_activity — Recent activity items, cursor-paginated
  • list_timeline_people — People you have financial interactions with
  • list_timeline_items — Interactions between you and another person
  • get_pairwise_balance — Net balance with another person
  • list_forecast_entries — Cursor-paginated individual forecast entries
  • list_accounts — Payment accounts (PayPal, Bunq, Monzo, Revolut, IBAN, custom)
  • get_account — One payment account in detail
  • get_spending_status — Per-group spending limit status
  • get_category_spending_status — Per-category spending status (Pro)
  • list_notifications — Notifications, newest first
  • get_unread_notification_count — Unread notification count
  • get_entitlements — Resolved tier and per-feature flags
  • get_profile — Authenticated user profile
  • list_group_invites — Active invite links for a group
  • get_spending_by_member — Expense spending broken down by member for a group
  • get_spending_monthly_trend — Month-over-month spending totals for a group
  • list_balance_adjustments — Audit trail of set_balance_snapshot calls for a personal space

Write & delete tools (30)

write covers create / update / approve / pause / resume. delete covers destructive operations. All write tools that create new entries support dry_run: true — the client can preview exactly what would be created before committing. Delete and update operations use optimistic locking via the entity's version field.

  • create_expense write — Create an expense with splits. Supports dry_run.
  • create_settlement write — Record a settlement between members. Supports dry_run.
  • delete_expense delete — Delete an expense (requires version).
  • delete_settlement delete — Delete a settlement (requires version).
  • create_income write — Create an income in a personal space. Supports dry_run.
  • delete_income delete — Delete an income (requires version).
  • create_income_template write — Create a recurring or planned income template.
  • create_expense_template write — Create a recurring or planned expense template.
  • create_comment write — Comment on an expense or income.
  • update_expense write — Update an expense and replace its splits (creator/admin, optimistic lock).
  • update_income write — Update an income (owner, optimistic lock).
  • update_expense_template write — Update an expense template (creator/admin, optimistic lock).
  • delete_expense_template delete — Delete an expense template (creator/admin, requires version).
  • pause_expense_template write — Pause a recurring expense template.
  • resume_expense_template write — Resume a paused expense template.
  • update_income_template write — Update an income template (owner, optimistic lock).
  • delete_income_template delete — Delete an income template (owner).
  • pause_income_template write — Pause a recurring income template.
  • resume_income_template write — Resume a paused income template.
  • approve_pending_expense write — Approve a pending template-generated expense, with optional overrides.
  • approve_pending_income write — Approve a pending template-generated income, with optional overrides.
  • delete_comment delete — Delete a comment (author-only).
  • create_group write — Create a shared group or personal space; caller becomes admin.
  • update_group write — Update name / description / base currency / avatar / spending limit (admin, optimistic lock).
  • create_account write — Add a payment account (PayPal, Bunq, Monzo, Revolut, IBAN, custom). Pro feature.
  • update_account write — Update a payment account's handle / label / currency / sort order / group visibility.
  • delete_account delete — Delete a payment account; existing settlements are unaffected.
  • update_category_spending_limits write — Replace per-category spending limits for a group (admin, Pro).
  • set_balance_snapshot write — Set or update the forecast anchor balance for a personal space; appends an audit row.
  • delete_balance_snapshot delete — Remove the forecast anchor; idempotent. Adjustment history preserved.

Prompts (17)

Prompts are pre-written agentic flows the client discovers via prompts/list. Each one walks the AI through a multi-step workflow — listing groups, fetching context, asking for confirmation, then executing tool calls. Use them to skip the "which tool do I need?" step.

  • import-splitwise — Parse a Splitwise CSV export and import into a group. Matches names, checks duplicates, dry-runs first.
  • import-bank-statement — Parse a bank statement and import into a group. Asks about split method and categories.
  • import-income — Parse income data and create entries / templates in a personal space.
  • summarize-group — Natural-language group summary anchored on spending-limit status, recent activity, category breakdown.
  • settle-up-plan — Suggest optimal settlements to resolve all debts.
  • personal-finance-review — Cross-space review with My Finances + per-space forecast + upcoming entries. Tier-aware.
  • forecast-planning — Model what-if scenarios using forecast summary + entries + templates; offers to implement.
  • expense-audit — Walk recent expenses for anomalies, duplicates, missing categories.
  • budget-optimization — Income vs spending vs existing limits; offers template housekeeping.
  • weekly-financial-checkin — Monday standup: weekly summary + notifications + this-week vs last-week deltas + watch list.
  • pending-approval-batch — Sweep pending template items, approve / override / skip each.
  • find-and-fix — Search → fetch entity → confirm → update or delete. The natural language entry point for editing.
  • prepare-month-end — Close-the-books ritual: month rollup, upcoming entries, limit status, account suggestions.
  • manage-recurring — Walk all templates, classify (healthy / paused / stale / misconfigured), offer pause / resume / update / delete.
  • setup-group — Create a new shared group or personal space, then optionally configure spending limits (group-wide and per-category) and a starting balance snapshot.
  • manage-accounts — Review and configure payment accounts — list, add, edit, remove. Pro feature.
  • settle-with-accounts — Settle debts in a group, picking a payment account by currency match and surfacing its handle in the settlement description.

Security model

  • Tokens are personal. Each token belongs to one user and acts on their behalf. There is no shared / org-level token.
  • Server-side membership checks. Every tool runs the same RBAC checks the REST API runs. A token cannot access a group its owner is not in.
  • Tier gating preserved. Supporter-only fields (forecast NetBalance, Recurring) are stripped from MCP responses for non-Supporter tokens, exactly as in the app.
  • No AI on the server. ldgr never calls an AI provider for MCP requests. The AI lives in the user's client; the user pays for the AI; ldgr serves data.
  • Hashed at rest. Raw tokens are shown once at creation time and never stored — only their SHA-256 hash is kept. Lost tokens are revoked + reissued, never recovered.
  • Rate-limited. Standard per-user and per-IP rate limits apply.

Amounts and dates

All amounts are in minor units (cents). $12.50 = 1250. JPY (0 decimals) and BHD (3 decimals) follow ISO 4217 — the server scales correctly. All dates are RFC3339 (e.g. 2026-04-15T00:00:00Z).

Discovery and validation

Before creating or updating anything, AI clients should call list_categories, list_income_categories, list_avatars, and list_currencies once at the start of a session to discover valid keys. Hold onto the returned key sets for the rest of the conversation — any category, avatar, or currency you pass into a write tool must be one of these exact keys. Never invent values from natural language without mapping them to a returned key first. Built-in prompts already follow this rule; custom flows should too. Calling a tool with an invalid key returns a typed validation error the AI can read and recover from.

Questions

For integration questions or to report an issue, contact hello@ldgr.money.

ldgr

Your personal and shared ledger. Track income and spending, split expenses, project your balance forward.

Product
Features Appearance Pricing Download
Resources
Releases MCP integration Contact
Legal
Privacy Terms
Get ldgr
iOS — coming soon Android — coming soon
© 2026 ldgr. All rights reserved. ldgr.money