← Back to Settl
For developers

Log an expense without leaving your terminal.

Settl speaks the Model Context Protocol. Connect it once and your agent can log expenses, record paybacks and read balances in the same ledger your flatmates already have on their phones.

claude mcp add --transport http settl https://api.settl.fyi/mcp

Run it anywhere, then use /mcp inside Claude Code to sign in.

What happens next

01

Your agent asks to connect

It opens a browser tab pointed at settl.fyi. There is no API key to generate and nothing sensitive to paste into a config file.

02

You approve it, once, on our page

You sign in and see exactly what the agent will be able to read and change before you say yes. Revoke it at any time under You, then Connected apps.

03

Say it

Talk to your agent the way you already do. Everything it logs lands in the app, attributed to the agent, in the same activity feed as everything else.

Twelve tools

Split across two scopes, so an agent you only want to read your balances never gets the ability to write.

settl.read

settl_list_groupsEvery group you are in, with your net position in each.
settl_get_groupOne group in detail: members, recent expenses, who owes whom.
settl_list_friendsPeople you split with, and where you stand with each.
settl_get_balancesWhat you are owed and what you owe, by currency.
settl_list_recentRecent activity across everything, newest first.

settl.write

settl_logA plain-language sentence in, an expense out. The one tool that uses AI.
settl_create_expenseAn expense from exact fields, when the agent already knows them.
settl_record_settlementRecord a payback between two people.
settl_create_groupStart a group and add members to it.
settl_add_friendInvite someone by email.
settl_create_ghostAdd someone who is not on Settl yet, so you can still split with them.
settl_undoReverse any write made through MCP.

What it looks like

In Claude and ChatGPT the result comes back as a card. Everywhere else it is the same information as text.

You split last night's dinner at Taberna, 48 dollars, with Raj and Mei. I paid.
Logged settl
S$48.00
Taberna
Taberna Crew · you paid
Split 3 ways
RRajowes youS$16.00
MMeiowes youS$16.00
Youyour shareS$16.00

Limits, and what an agent cannot do

Ten AI turns per person per day. Only settl_log spends one, because it is the tool that reads a sentence. The other eleven take exact fields and cost nothing against the limit, so an agent that knows what it is doing rarely gets near it.
Uncertain entries come back before they save. Settl reuses the same confidence rule the app uses. A clear sentence is logged. Anything it is less sure about is returned to your agent as a confirmation, and only saves once you say yes.
No money moves. Settl is a ledger, not a payment rail. It records who owes what. The worst an agent can do is write a wrong row, and settl_undo reverses any write it made.
Other people's details stay theirs. An agent sees the names it needs to split a bill. It does not get the email addresses or phone numbers of the people you split with.

Questions

Do I need an API key?

No. Settl uses OAuth. Your agent opens a browser tab, you sign in on settl.fyi and approve the connection once, and the agent receives a token scoped to your account. There is no key to generate, paste or rotate.

Do I need the app installed?

You need a Settl account, which you can create in the browser during sign-in. The app is where you and the people you split with see the result, so in practice you will want it, but the connection itself does not require it.

Can I connect more than one agent?

Yes. Claude, ChatGPT and Codex can each hold their own connection at the same time. The daily AI limit is counted per person, not per agent, so connecting three does not give you three budgets.

What do the people I split with see?

The expense, the same as any other. Activity created through MCP is marked as coming from an agent, so it is clear where a row came from when someone asks.

How do I disconnect?

In the app, open You, then Connected apps, and revoke the one you want gone. Its token stops working immediately.