home / mcp / gatherings mcp server
This is a TypeScript-based MCP server, which wraps around a python script. together it helps track expenses and payments for social events, making it easy to calculate reimbursements and settle balances between friends.
Configuration
View docs{
"mcpServers": {
"abutbul-gatherings-mcp": {
"command": "node",
"args": [
"/path/to/gatherings-server/build/index.js"
],
"env": {
"GATHERINGS_SCRIPT": "/path/to/gatherings-server/gatherings.py",
"GATHERINGS_DB_PATH": "gatherings.db"
}
}
}
}You manage gatherings and expense sharing with a dedicated MCP server written in TypeScript. It acts as a wrapper around a Python backend to track expenses, calculate reimbursements, and settle balances among friends, all accessible via MCP clients.
You interact with the server through an MCP client to create gatherings, add expenses, calculate reimbursements, record payments, and manage members. The server exposes a complete set of operations that you can invoke to keep track of who owes whom and how much has been paid.
To perform actions, send commands that correspond to the available tools, such as creating a gathering, adding expenses for members, and reconciling balances. The server also supports showing details of a gathering, listing all gatherings, renaming unnamed members, and removing or adding members as your event evolves. All communications occur through the MCP protocol so you can integrate it with your existing MCP client workflow.
Prerequisites you need before starting: You should have Node.js and npm installed on your system. Ensure Python is available for the Python backend if you plan to use that path directly.
Install dependencies for the server package and build the project so you can run it locally in development or production environments.
Run the development workflow to enable auto-rebuilds while you work.
# Install dependencies
npm install
# Build the MCP server
npm run build
# Development with auto-rebuild
npm run watchConfigure the MCP client to connect to the gatherings server by adding an MCP server entry. The example config shows a local stdio server that runs a Node.js wrapper and points to the Python backend script for operations.
{
"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
}
}
}Debugging MCP servers that communicate over stdio can be challenging. You can use the MCP Inspector for debugging and tool access. Start the inspector to obtain a debugging URL you can open in your browser.
npm run inspectorCreate a new gathering by providing a gathering_id and initial member list.
Add an expense entry for a member within a specific gathering.
Compute reimbursements for a gathering to settle balances.
Record a payment made by a member toward a gathering's expenses.
Rename an unnamed member within a gathering.
Show full details for a specific gathering.
List all existing gatherings.
Close a gathering to prevent further changes.
Delete a gathering, with an option to force delete.
Add a new member to a gathering.
Remove a member from a gathering.