mcpField
E
evite-mcp

evite-mcp

ローカル
github.com/chrischall生産性03 日前に更新

evite-mcp について

evite-mcpは、主催者またはゲストとしてEviteのイベントを管理するMCPサーバーです。招待や出欠の確認から、イベント編集やゲストへの連絡まで行えます。書き込みや連絡の送信には事前確認が必要です。

主な機能

  1. 01イベント一覧と詳細の表示
  2. 02ゲストリストと出欠集計の確認
  3. 03出欠回答とゲストへの連絡
  4. 04招待の作成、編集、送信
  5. 05ゲストとイベント写真の管理

活用シーン

  1. 01招待への回答状況の確認
  2. 02イベントへの出欠回答
  3. 03下書きの編集とゲストリストの更新
  4. 04イベントメッセージの送信や写真のアップロード

MCP 対応

イベント、ゲスト、出欠回答、メッセージ、招待を操作するツールをMCPクライアントに提供します。書き込みには確認が必要で、認証にはアカウント情報、セッションCookie、またはログイン済みブラウザーセッションを利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"chrischall-evite": {
"command": "npx",
"args": [
"-y",
"evite-mcp"
],
"env": {
"EVITE_EMAIL": "<EVITE_EMAIL>",
"EVITE_PASSWORD": "<EVITE_PASSWORD>",
"EVITE_SESSION_COOKIE": "<EVITE_SESSION_COOKIE>",
"EVITE_SESSION_CACHE": "<EVITE_SESSION_CACHE>",
"EVITE_SESSION_FILE": "<EVITE_SESSION_FILE>",
"EVITE_DISABLE_FETCHPROXY": "<EVITE_DISABLE_FETCHPROXY>",
"EVITE_UPLOAD_DIR": "<EVITE_UPLOAD_DIR>",
"FETCHPROXY_WS_PORT": "<FETCHPROXY_WS_PORT>",
"FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
"FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
}
}
}
}
起動コマンドnpx -y evite-mcp
設定が必要な環境変数
EVITE_EMAILYour Evite login email address. Optional — if omitted, the server falls back to a raw session cookie or the fetchproxy browser bridge (requires being signed in to evite.com).
EVITE_PASSWORDシークレットYour Evite password. Optional — see EVITE_EMAIL.
EVITE_SESSION_COOKIEシークレットA raw `cookie:` header copied from a signed-in evite.com tab (alternative to email/password). Used verbatim. Optional.
EVITE_SESSION_CACHESet to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.
EVITE_SESSION_FILEAbsolute path for the session cache file. Defaults to $MCP_DATA_DIR/.evite-mcp/session.json.
EVITE_DISABLE_FETCHPROXYSet to true to disable the fetchproxy browser bridge. With the bridge disabled you MUST provide EVITE_EMAIL/EVITE_PASSWORD or EVITE_SESSION_COOKIE. Defaults to false.
EVITE_UPLOAD_DIROptional. Restrict evite_upload_photo to image files inside this directory (several may be separated by the path delimiter, `:` on macOS/Linux; `~` allowed). A path outside it is refused before anything is read. Unset = any readable image file.
FETCHPROXY_WS_PORTLocalhost port of the fetchproxy concentrator the ContextMint Bridge extension connects to (default 37149). Every MCP on one machine shares it, so move it for all of them or not at all.
FETCHPROXY_WS_HOSTBind interface for the fetchproxy concentrator, a literal IP only (default 127.0.0.1). Keep on loopback; it exists for hosted deployments that run each MCP in its own network namespace.
FETCHPROXY_IDENTITY_DIRAbsolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmevite-mcp1.3.7

ツール

20

掲載時のツール一覧 · 1 週間前に更新

このツールにパラメーターはありません。

詳細

evite-mcp

CI npm license

Evite 向けの Model Context Protocol サーバーです。ゲスト(受け取った招待)とホスト(作成したイベント)の両方として、イベントの確認と操作を行えます。イベントの一覧表示、ゲストリストと RSVP 集計の確認、RSVP、ゲストへのメッセージ送信、イベントの作成・編集が可能です。@chrischall/mcp-utils を使用して構築されています。

ステータス:読み取り・書き込みツールが利用可能です。 5 つの読み取りツールは Evite の内部 API に対して動作し、メールアドレスとパスワード(tier-1、POST /ajax_login)、生の Cookie 環境変数、またはサインイン済みのブラウザータブ(fetchproxy ブートストラップ)で認証します。13 個の書き込みツールは、最初に確認を求めます。承認するまで何も送信されません(確認を参照)。また、エンドポイントは実環境で検証済みです(docs/EVITE-API.mdを参照)。一部のリクエストボディは、まだ取得したものではなく推定です(#3)。

ツール

読み取り専用の読み取りツールが 6 個、確認付きの書き込みツールが 13 個あり、さらに evite_healthcheck もあります。

ツールエンドポイント戻り値
evite_list_eventsGET /services/events/v1/自分のイベントと合計の内訳(filterBy = all/host/others、繰り返し指定できる status、offset/numResults によるページング)
evite_get_eventGET /services/event/v1/{id}単一イベントの詳細(イベント、設定、場所)
evite_list_guestsGET /services/event/v1/{id}/guests/ゲストリストと RSVP の回答(配信ステータス、閲覧数、短縮リンク)
evite_rsvp_summary(ゲスト情報から算出)RSVP の概要のみ(yes/no/maybe/noReply + 人数)
evite_list_messagesGET /services/event/v1/{id}/posts/イベントのメッセージスレッド
evite_list_templates/invites/{category}/ をスクレイピング招待状テンプレートのスラッグ(evite_create_event が必要とする template_name)と表示名
書き込みツール(確認済み)

すべての書き込みツールは、送信前に確認を求めます。確認プロンプトを表示できるクライアント(Claude Code)では、送信される正確な値を含むプロンプトが表示されます(MCP_CONFIRM_ELICITATION=off の場合を除きます)。それ以外の環境(claude.ai、Claude Desktop)では、最初の呼び出しでは書き込みは行われず(最大でも読み取り専用の照会のみです。たとえば evite_update_guest は、正確なプレビューを作成するために下書きのゲストリストを読み取ります)、プレビューと confirmToken が返されます。トークンを付けて再度呼び出した場合にのみ、書き込みが実行されます。トークンは使い捨てで、有効期限があり、ツールと正確な値に紐付けられています。内容を変更すると拒否され(DRAFT_CHANGED)、新しいプレビューが返されます。確認を参照してください。エンドポイントは検証済みです。CSRF トークン(X-CSRFToken。ローテーションされるため、リクエストごとに最新の値を読み取ります)は、中央で付加されます。

ツールエンドポイント操作
evite_rsvpPUT /services/event/v1/{id}/guests/{guestId}ゲストの出欠を回答します(回答内容+大人/子どもの人数+任意のメモ)
evite_send_messagePOST /tsunami/v1/services/event/{id}/guest/{gid}/messages1 人のゲストに非公開メッセージを送信します(本文を指定します)
evite_broadcastPOST /tsunami/v1/services/event/{id}/broadcast/RSVP セグメント(virtual_groups)全体に一斉にメッセージを送信します
evite_upload_photoPOST …/photos/v1/{id}/upload/request/ → GCS → 完了 → 共有ギャラリーイベントの共有フォトアルバムにローカル画像をアップロードします(GCS の署名付きアップロードを 4 ステップで実行)
evite_create_eventPOST /services/event/v1/({event:{…}})イベントの下書きを作成します(template_name が必要です。API は成功時でも 500 エラーを返します)
evite_update_eventPATCH /services/event/v1/{id}({event:{…}})イベントを編集します(指定したフィールドのみ変更されます)
evite_add_guestPOST /ajax/event/{id}/guestlist/draft/下書き(未送信)リストにゲストを追加します — [{name,email}]
evite_update_guestPATCH /ajax/event/{id}/guestlist/draft/下書きゲストの名前/メールアドレス/電話番号を編集します
evite_remove_guestDELETE /ajax/event/{id}/guestlist/draft/{gid}下書きゲストを削除します
evite_sendPOST /services/event/v1/{id}/send/「今すぐ送信」 — 送信準備ができたゲストにメールを送信します
evite_cancel_eventPOST …/actions/cancel/イベントをキャンセル/下書きを削除します(破壊的操作ですが、取り消し可能です)
evite_reinstate_eventPOST …/actions/reinstate/キャンセルしたイベントを再開します
evite_duplicate_eventGET /plus/create/{id}/copy/(→302)イベントを新しい下書きとして複製し、新しいイベント ID を返します

イベント作成の流れは evite_create_event → evite_add_guest → evite_send です。evite_send、evite_send_message、evite_broadcast、evite_cancel_event は実際に影響を及ぼす操作(メール/キャンセル通知)なので、確認が重要です。

確認

変数デフォルト
MCP_CONFIRM_MODEask-user確認プロンプトを表示できないクライアント(claude.ai、Claude Desktop)で書き込みを行う際の動作です。ask-user:2 段階で実行します。最初の呼び出しでは書き込みを行わず、プレビューとトークンを返します。モデルは、トークンを付けて再度呼び出す前に、チャット上でユーザーの承認を得る必要があります。auto:同じ 2 段階で実行しますが、モデルはプレビューを自ら確認した後、トークンを使用できます。refuse:そのようなクライアントでは書き込みを拒否します。プロンプトを表示できるクライアント(Claude Code)には、MCP_CONFIRM_ELICITATION=off でない限り、常に実際の確認プロンプトが表示されます。認識されない値は refuse として扱われます。
MCP_CONFIRM_ELICITATIONonoff にすると確認プロンプトは表示されず、すべてのクライアントで MCP_CONFIRM_MODE の動作が適用されます。プロンプトを表示できるとするクライアントが実際には表示せず、書き込みが停止する場合(opencode 2.0.x)に設定してください。それ以外の値は on として扱われ、stderr に警告が出力されます。
MCP_CONFIRM_TTL_SECONDS600トークンの有効期間です。
MCP_CONFIRM_SECRETプロセスごとにランダム署名キーです。サーバー再起動後もトークンを有効にする必要がある場合にのみ設定してください。

写真のアップロード

変数デフォルト値
EVITE_UPLOAD_DIR~/Downloads/evite-mcpevite_upload_photo が読み取り可能なディレクトリ。1つ以上指定でき、プラットフォームのパス区切り文字(macOS/Linux では :、Windows では ;)で区切ります。~ も使用できます。相対パスは最初のディレクトリを基準に解決されます。これらのディレクトリ外にあるパス(シンボリックリンクを含む)、またはディレクトリ内の隠しファイルや隠しディレクトリは、ファイルを確認する前に拒否されます。アップロードする写真を ~/Downloads/evite-mcp に置くか、別の場所を指定してください。

アーキテクチャ

Fetchproxy-archetype MCP です。Evite には公開 API がないため、サーバーはセッションを使用して Evite の内部 /services/ Web API を呼び出します。src/auth.ts は、次の優先順位でセッションを解決します。

  1. EVITE_EMAIL + EVITE_PASSWORD(ティア 1、推奨) — ヘッドレスでメールアドレス/パスワードフォームにログインします。認証情報を https://www.evite.com/ajax_login に POST し、レスポンスの Set-Cookie jar(x-evite-session、evtsession、csrftoken、x-evite-features)からセッションを構築します。ブラウザブリッジも、手動でコピーした Cookie も不要です。両方の変数を設定する必要があり、設定されていない場合は次の方法に進みます。(動作確認済み。)
  2. EVITE_SESSION_COOKIE — サインイン済みの evite.com タブからコピーした生の cookie: ヘッダー(または CI で設定したもの)。そのまま使用します。(動作確認済み。)
  3. Fetchproxy ブートストラップ(フォールバック) — @fetchproxy/bootstrap を使用して、サインイン済みの evite.com ブラウザータブからセッション Cookie(x-evite-session、evtsession、x-evite-features、csrftoken)を取得します。これには ContextMint Bridge ブラウザー拡張機能が必要です(Chrome:リリースページから Chrome 用 ZIP をダウンロードし、展開して読み込みます。Safari 版はまだ利用できません。公開ダウンロードのない ContextMint アプリに同梱される予定です。現時点では Chrome を使用してください)。ContextMint Bridge は、同じメンテナーによる、名前を変更した fetchproxy ブラウザー拡張機能です。fetchproxy の README からも参照できます。ソースは nullnet-app/contextmint-bridge で公開されています。自分でビルドするか、リリース ZIP を、同じ場所で公開されている .sha256 ファイルと照合してください(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256)。ブートストラップは一度だけ実行され、その後の API 呼び出しはすべて、Cookie を付加した通常の Node fetch() 経由で送信されます。EVITE_DISABLE_FETCHPROXY=1 で無効にできます。(動作確認済み。)

次の 1 つのティアは意図的に保留されています(リゾルバーは後から組み込める構造になっています)。

  • トランスポートとしての Fetchproxy(ブラウザブリッジ経由でのボットウォール再試行) — 通常の fetch がウォールに阻まれた場合のみ必要となるフォールバックです。調査中には確認されていません。

13 個の書き込みツール(rsvp、ゲストの追加/更新/削除、送信、メッセージ送信、一斉送信、写真のアップロード、イベントの作成/更新/キャンセル/再開/複製)は、最初に確認を求めます(プロンプト、またはプレビューと使い捨ての confirmToken。確認を参照してください)。単一のプライベート client.write() ヘルパーは、一元化されたヘッダー(CSRF_HEADER = X-CSRFToken)を使って CSRF トークンを付加します。csrftoken Cookie はセッション中にローテーションするため、リクエストごとに最新の値を読み取ります。エンドポイントは 3 つのベース(REST /services/…、レガシーの /ajax/event/{id}/… ゲストリスト、/tsunami/… メッセージングサービス)にまたがっており、すべて実環境で検証済みです。一部のリクエストボディは仮定に基づいています(#3)。

開発

npm install      # resolves @chrischall/mcp-utils from a local tarball (see issue #4)
npm run build
npm test

ドキュメントとロードマップ

未完了の作業: #3 — 書き込みエンドポイントと CSRF は実際の環境で検証済みです。仮定のままなのは、リクエストの 本文(送信/メッセージ送信)のみです。#4 では共有ライブラリの公開を追跡しています。(検出 #1、tier-1 のメールアドレス/パスワードによるログイン #2、および読み取りツールは完了しています。)

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。