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 server for querying Jira issues, requiring a Jira token for authentication.
Interact with Planka, a Trello-like kanban board, to manage projects, boards, and cards. Requires Planka server URL and credentials.
Talk with your Apple Notes
A Model Context Protocol server for integrating HackMD's note-taking platform with AI assistants.
Miro MCP server, exposing all functionalities available in official Miro SDK.
Interact with and manage your Bitrix24 CRM instance through a powerful set of tools.
MCP server for easy access to education data through your Canvas LMS instance.
An optimized, read-only MCP server for the Notion API with asynchronous processing.
Create professional PDF invoices using natural language.
Interact with your Tmux sessions, windows and pane, execute commands in tmux panes and retrieve result.