Gatherings
STDIOServer for managing group gatherings, expenses and reimbursement calculations.
Server for managing group gatherings, expenses and reimbursement calculations.
A Model Context Protocol server for managing gatherings and expense sharing.
This is a TypeScript-based MCP server that helps track expenses and payments for social events, making it easy to calculate reimbursements and settle balances between friends.
Important: This project uses a non-standard architecture for a Node.js application. The TypeScript MCP server acts as a wrapper around a Python backend implementation. The Node.js server receives MCP requests, translates them to command-line calls to the Python script, and returns the results.
While this architecture works for our current needs, it's not the most efficient or maintainable approach for a production application.
create_gathering - Create a new gathering
gathering_id and members as required parametersadd_expense - Add an expense for a member
gathering_id, member_name, and amount as required parameterscalculate_reimbursements - Calculate reimbursements for a gathering
gathering_id as a required parameterrecord_payment - Record a payment made by a member
gathering_id, member_name, and amount as required parametersrename_member - Rename an unnamed member
gathering_id, old_name, and new_name as required parametersshow_gathering - Show details of a gathering
gathering_id as a required parameterlist_gatherings - List all gatheringsclose_gathering - Close a gathering
gathering_id as a required parameterdelete_gathering - Delete a gathering
gathering_id as a required parameter, optional force parameteradd_member - Add a new member to a gathering
gathering_id and member_name as required parametersremove_member - Remove a member from a gathering
gathering_id and member_name as required parametersInstall dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
To use with Claude Desktop, add the server config:
{ "mcpServers": { "gatherings": { "command": "node", "args": ["/path/to/gatherings-server/build/index.js"], "env": { "GATHERINGS_DB_PATH": "gatherings.db", "GATHERINGS_SCRIPT": "/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 } } }
command and args: Specifies how to run the serverenv: Environment variables
GATHERINGS_DB_PATH: Path to the database fileGATHERINGS_SCRIPT: Path to the Python script for handling gathering operationsalwaysAllow: List of tools that will be automatically allowed without promptingtimeout: Maximum execution time in secondsSince MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.