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.
Seamless access to top MCP servers powering the future of AI integration.