create_gatheringLABSCO SUMMARY
The splitting-the-bill arithmetic, done where the conversation about the bill is happening.
It keeps one ledger per event and answers the only question that matters at the end — who pays whom, and how much — while still letting you record partial payments as they trickle in over the following weeks.
What it is
A shared-expense ledger for social events: you create a gathering, name its members, log expenses and payments against it, and ask what everyone owes.
What you get
- A named gathering with a member list, created in one call
- Expenses recorded against a member and an amount
- Reimbursements calculated for the whole gathering, rather than worked out by hand
- Payments recorded as they happen, so balances move as people settle
- Member management after the fact — add, remove, or rename someone who went in as unnamed
- The full state of one gathering, or a list of all of them
- Closing and deleting a gathering when the trip is done
Requirements
Node for the server itself and Python on the same machine — the TypeScript server passes each request to a Python backend as a command-line call, so both runtimes have to be present.
Setup effort
Build from source
USE CASES
Setting up the ledger at the start of a trip
Create the gathering with everyone's names in one call, then add anyone who joins late.
Logging a dinner someone just paid for
Record the expense against the person who paid and move on — no spreadsheet, no shared note.
Working out who owes whom at the end
Ask for the reimbursements and get the transfers back, instead of reconstructing them from a list of receipts.
Keeping balances current as people pay each other back
Record each payment as it lands, then recalculate — the outstanding amounts shrink rather than being reset by hand.
Tidying up an event that is finished
Fix the placeholder names, close the gathering so nothing else lands in it, and list what is still open.
11 tools
Listed in project docs. Your client may show a different list.
add_expensecalculate_reimbursementsrecord_paymentrename_membershow_gatheringlist_gatheringsclose_gatheringdelete_gatheringadd_memberremove_memberBEFORE YOU INSTALL
What to know first
Tools you get
11 tools named in the project's documentation.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/abutbul/gatherings-mcp
cd gatherings-mcp
npm install
npm run buildMCP Clients
Claude Desktop
{
"mcpServers": {
"gatherings": {
"command": "node",
"args": [
"<YOUR_PATH_TO_GATHERINGS_SERVER>/build/index.js"
],
"env": {
"GATHERINGS_DB_PATH": "gatherings.db",
"GATHERINGS_SCRIPT": "<YOUR_PATH_TO_GATHERINGS_SERVER>/gatherings.py"
},
"disabled": false,
"autoApprove": [],
"alwaysAllow": [
"create_gathering",
"add_expense",
"calculate_reimbursements",
"record_payment",
"rename_member",
"show_gathering",
"list_gatherings",
"close_gathering",
"delete_gathering",
"add_member",
"remove_member"
],
"timeout": 300
}
}
}