count
a shared-expense ledger your agent operates. hosted remote mcp — paste one url into claude, chatgpt or cursor. no repo, no local process, no api key to mint. everyone else in the count gets a no-signup share link. tools: create_count, add_expense, get_balances, settle, add_member, list_counts. free.
Documentation
six tools. one url. no api key to mint.
count is a hosted remote mcp server over streamable http. there is no repo to clone, no process to keep alive on your laptop, and the other people in your count never make an account.
prove it is live
$ curl -s https://count.nanocorp.app/mcp/k_your_key
{
"name": "count",
"status": "ok",
"transport": "streamable-http",
"protocolVersion": "2025-06-18",
"tools": [
"create_count", "add_expense",
"get_balances", "list_counts",
"settle", "add_member"
]
}
mcp itself speaks json-rpc over post to the same url. your agent handles that part.
connect
paste the url. that is the whole integration.
claude
- 01settings → connectors
- 02add custom connector
- 03paste the url, click add
free, pro, max and team. on team an owner adds it in organization settings first.
chatgpt
- 01settings → connectors → advanced settings
- 02turn on developer mode
- 03create → paste url → no authentication → scan tools
on plus and pro, chatgpt connectors read but do not write today. ask it for balances; write from claude, cursor or the web ledger.
cursor
- 01open ~/.cursor/mcp.json
- 02{"mcpServers":{"count":{"url":"…"}}}
- 03restart cursor
a per-repo.cursor/mcp.json works too. leave out any type field.
longer walkthrough for claude, with the four screens and what to say first: connect claude to shared expenses
the tools
every tool, its arguments, and what comes back.
name
string, required
what this count is: “flat”, “tahoe trip”
members
string[]
the other people, by first name
currency
string
USD, EUR or GBP. defaults to USD
you say
“make a count for my flat with maya and theo”
the tool returns
made "flat" with 3 members: you, maya, theo. share link: https://count.nanocorp.app/c/hq7fn2mkxd no signup for anyone who opens it.
add_expense
Records one shared expense and returns every member's new balance.
description
string, required
what the money went on
amount
number|string, required
the total paid, 184.20
count
string
name or link. optional if you have one count
paid_by
string
member who paid. defaults to you
split_between
string[]
members to split equally. defaults to all
shares
object
uneven split: {"maya": 40, "theo": 20}
you say
“i paid $184.20 for groceries, split three ways”
the tool returns
recorded. groceries, $184.20, paid by you. maya owes you $61.40. theo owes you $61.40.
get_balances
Reads who owes whom, plus the last five lines. No writes.
count
string
name or link
you say
“what do i owe in the flat count”
the tool returns
flat: 3 members, you, maya, theo. maya owes you $61.40. theo owes you $61.40. recent: 2026-08-22 groceries $184.20 paid by you. link: https://count.nanocorp.app/c/hq7fn2mkxd
list_counts
Lists your counts, each with your own balance and its link. No writes.
no arguments.
you say
“which counts do i have”
the tool returns
2 counts. flat — you are owed $122.80 — https://count.nanocorp.app/c/hq7fn2mkxd | tahoe trip — clear — https://count.nanocorp.app/c/w9dz4qm3rk
settle
Records that money changed hands outside count. Omit amount to settle in full.
from
string, required
member who paid the money
to
string, required
member who received it
amount
number|string
omit to clear what they owe
count
string
name or link
you say
“maya paid me back $61.40”
the tool returns
settled. maya paid you $61.40 outside count. theo owes you $61.40.
add_member
Adds a person to an existing count.
name
string, required
their first name
count
string
name or link
you say
“add priya to the tahoe trip”
the tool returns
added priya to tahoe trip. members are: you, maya, theo, priya.
limits, plainly
- free covers 3 counts on one key. a fourth needs the lifetime licence, $29.00, once — what that is. the counts you already have are never taken away.
- count records who owes whom. it does not hold, move or transfer funds, and no tool will ever claim it did.
- a share link is the only credential a count has. anyone with it can read and write. any member can replace it from the count page.
- one currency per count, set when it is made. count does not convert.
troubleshooting
it is not connecting.
the client rejects the url, or lists no tools
run the curl above. if it answers with the tool names, the endpoint is live and the problem is in the client. re-paste the url with no trailing slash and nothing after the key.
chatgpt sees the tools but will not write
expected on plus and pro: developer-mode connectors read only today. writing needs a business plan. use claude or cursor to write, or the count's own web ledger.
status says "unknown key"
the key was replaced. open any count's share link, claim your member name, and mint a fresh one from /key. the old key stops working the moment the new one exists.
a tool answered with a plain sentence instead of doing it
that is the design. every failure comes back as one sentence your agent can read aloud, and nothing is written when it does. a silent failure in a money ledger is worse than an outage.
still stuck: email hello@count.nanocorp.app.