A server for managing gatherings and sharing expenses.
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.
A multi-agent mesh network designed for completing AI tasks in parallel.
Convert Markdown files to high-quality, print-ready PDFs using LaTeX.
An MCP server that analyzes the screen with OmniParser to automate GUI operations.
Provides access to your iTerm session, requiring iTerm2 and Node.js.
Interact with the Qonto Business API to manage finances, transactions, and account information using API credentials.
Provides the current time in Japan Standard Time (JST).
Interact with Home Assistant to control smart home devices, query states, manage automations, and troubleshoot your smart home setup.
Connect to the Taskade platform via MCP. Access tasks, projects, workflows, and AI agents in real-time through a unified workspace and API.
A server for date-time manipulation and timezone conversion.
Interact with Fider, an open-source customer feedback tool, to manage user suggestions and feedback.