gatherings MCP Server について
gatherings MCP Serverは、集まりでの共同支出や支払いを記録するMCPサーバーです。イベントやメンバーの管理、精算額の計算に対応し、TypeScript層からPythonバックエンドを呼び出します。
主な機能
- 01集まりの作成と管理
- 02メンバー別の支出と支払いの記録
- 03精算額の計算
- 04メンバーの管理
- 05集まりの表示と終了
活用シーン
- 01グループイベント費用の分担
- 02友人間の精算額の計算
- 03共同支出に対する支払いの記録
MCP 対応
MCPクライアントに、集まり・支出・支払い・精算のツールを提供します。TypeScriptサーバーはリクエストをPythonスクリプトに渡します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
gatherings MCP サーバー
集まりと費用の分担を管理するための Model Context Protocol サーバーです。
これは、交流イベントの費用や支払いを追跡し、友人同士の精算額や残高を簡単に計算できる TypeScript ベースの MCP サーバーです。
アーキテクチャに関する注意事項
重要:このプロジェクトでは、Node.js アプリケーションとして標準的ではないアーキテクチャを採用しています。TypeScript 製の MCP サーバーは、Python バックエンド実装のラッパーとして機能します。Node.js サーバーは MCP リクエストを受け取り、Python スクリプトを呼び出すコマンドライン呼び出しに変換して、結果を返します。
現在のニーズには対応できていますが、本番アプリケーション向けとしては、最も効率的で保守しやすい方法ではありません。
TODO
- より標準的なアーキテクチャを採用するよう、実装をリファクタリングする:
- バックエンドを TypeScript/JavaScript に完全移行する
- または、Node.js コンポーネントと Python コンポーネント間に適切なプロセス間通信を実装する
- または、Python バックエンドが API を提供し、MCP サーバーがそれを利用する REST API 方式に置き換える
- Node.js コンポーネントと Python コンポーネント間のエラー処理を改善する
- コンポーネント間の連携を対象とした自動テストを追加する
- Dockerfile を最適化する
機能
ツール
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を受け取ります
- 必須パラメーターとして
delete_gathering- 集まりを削除します- 必須パラメーターとして
gathering_idを受け取り、forceパラメーターは任意です
- 必須パラメーターとして
add_member- 集まりに新しいメンバーを追加します- 必須パラメーターとして
gathering_idとmember_nameを受け取ります
- 必須パラメーターとして
remove_member- 集まりからメンバーを削除します- 必須パラメーターとして
gathering_idとmember_nameを受け取ります
- 必須パラメーターとして
開発
依存関係をインストールします:
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 サーバーは標準入出力を介して通信するため、デバッグが難しい場合があります。パッケージスクリプトとして利用できる MCP Inspector の使用をおすすめします:
npm run inspector
Inspector は、ブラウザーでデバッグツールにアクセスするための URL を表示します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。