这是一个基于 TypeScript 的 MCP 服务器,主要用于管理聚会以及费用分摊。它能够帮助用户跟踪社交活动中的支出和支付情况,让计算报销金额、结算朋友间的费用差额变得轻松简单。
npm install
npm run build
npm run watch
若要与 Claude Desktop 配合使用,需添加以下服务器配置:
{
"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 和 args |
指定如何运行服务器 |
env |
环境变量 |
GATHERINGS_DB_PATH |
数据库文件的路径 |
GATHERINGS_SCRIPT |
处理聚会操作的 Python 脚本的路径 |
alwaysAllow |
自动允许而无需提示的工具列表 |
timeout |
最大执行时间(秒) |
由于 MCP 服务器通过 stdio 进行通信,调试可能会有一定难度。我们推荐使用 MCP Inspector,它可作为包脚本使用:
npm run inspector
Inspector 会提供一个用于访问调试工具的 URL,在浏览器中打开该 URL 即可进行调试。
create_gathering - 创建新的聚会
gathering_id 和 members 作为必需参数add_expense - 为成员添加支出
gathering_id、member_name 和 amount 作为必需参数calculate_reimbursements - 计算聚会的报销金额
gathering_id 作为必需参数record_payment - 记录成员的支付
gathering_id、member_name 和 amount 作为必需参数rename_member - 重命名无名成员
gathering_id、old_name 和 new_name 作为必需参数show_gathering - 显示聚会的详细信息
gathering_id 作为必需参数list_gatherings - 列出所有聚会close_gathering - 关闭一个聚会
gathering_id 作为必需参数,可选 force 参数delete_gathering - 删除一个聚会
gathering_id 作为必需参数,可选 force 参数add_member - 向聚会添加新成员
gathering_id 和 member_name 作为必需参数remove_member - 将成员从聚会中移除
gathering_id 和 member_name 作为必需参数⚠️ 重要提示
此项目采用了一种非标准的架构来实现 Node.js 应用程序。TypeScript MCP 服务器作为包装器围绕一个 Python 后端实现。Node.js 服务器接收 MCP 请求,将其转换为对 Python 脚本的命令行调用,并返回结果。
尽管当前这种架构满足了我们的需求,但对于生产应用来说,这不是最高效或最容易维护的方法。