remind-mcp について
remind-mcpは、Remind利用者向けのMCPサーバーです。クラス、チャット、メッセージの閲覧と通知デバイスの管理ができます。ブラウザーからセッション認証情報を取得した後はサーバー側からリクエストし、メッセージ送信や通知設定の変更には確認を求めます。
主な機能
- 01アカウント・クラス・チャットの確認
- 02チャットメッセージと未読数の取得
- 03通知設定とデバイスの確認
- 04通知デバイスの有効化・無効化
- 05メッセージ送信前の確認
活用シーン
- 01クラスやチャットの未読項目を確認する
- 02チャットのメッセージを読む
- 03通知デバイスを調整する
- 04クラスやチャットにメッセージを送る
MCP 対応
MCPクライアントにRemindのアカウント、クラス、チャット、メッセージ、通知設定のツールを提供し、メッセージ送信と通知デバイスの変更にも対応します。ログイン済みブラウザーからセッションを取得・保存し、その後はサーバー側からGraphQLにリクエストします。書き込みには確認が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @chrischall/remind-mcpREMIND_COOKIEシークレットCaptured Cookie request header from a signed-in remind.com tab. Optional: the ContextMint Bridge extension captures it automatically.REMIND_CSRF_TOKENシークレットCaptured x-csrf-token request header value. Optional; paired with REMIND_COOKIE.REMIND_WS_PORTfetchproxy bridge concentrator port (default 37149).REMIND_SESSION_FILEPath to the cached session file. Defaults to MCP_DATA_DIR/HOME under .remind-mcp.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
10掲載時のツール一覧 · 今日に更新
このツールにパラメーターはありません。
詳細
remind-mcp
Remind 用の MCP サーバー — クラス、チャット、メッセージを読み取り、通知設定を管理します。
このプロジェクトは AI によって開発・保守されています。ご自身の判断でご利用ください。
Remind が公開している GraphQL エンドポイントにはサーバー側からアクセスできるため、ブラウザーが必要なのは認証情報の取得時のみです。サインイン済みのタブから ContextMint Bridge ブラウザー拡張機能を使ってセッションを一度取得すれば、その後のリクエストはすべて通常のサーバー側フェッチになります。
インストール
npx -y @chrischall/remind-mcp
{
"mcpServers": {
"remind": { "command": "npx", "args": ["-y", "@chrischall/remind-mcp"] }
}
}
認証
サインイン済みの remind.com タブから、2 つのヘッダーを取得します。完全な Cookie ヘッダーと、x-csrf-token の値です。Bridge に取得させる(ContextMint Bridge ブラウザー拡張機能とサインイン済みのタブが必要です)か、自分で指定してください。
| 変数 | 必須 | 説明 |
|---|---|---|
REMIND_COOKIE | いいえ | 取得した Cookie リクエストヘッダーです。次の変数とともに設定すると Bridge をスキップします。Remind がこの組み合わせを期限切れとして拒否すると、サーバーは Bridge にフォールバックします(Bridge がない場合は、両方を更新するよう案内します)。 |
REMIND_CSRF_TOKEN | いいえ | 取得した x-csrf-token の値です。 |
REMIND_WS_PORT | いいえ | fetchproxy Bridge コンセントレーターのポートです(デフォルトは 37149)。 |
REMIND_SESSION_FILE | いいえ | 取得したセッションをキャッシュする場所です。デフォルトでは $MCP_DATA_DIR/$HOME の .remind-mcp 配下です。 |
ContextMint Bridge はリリースページからインストールします。Chrome では、Chrome 用ビルドを解凍し、パッケージ化されていない拡張機能を読み込みます(chrome://extensions → デベロッパー モード → パッケージ化されていない拡張機能を読み込む)。Safari にはまだ対応していません(一般向けダウンロードのない ContextMint アプリ内で提供予定です)。そのため、現時点では Chrome をご利用ください。
ContextMint Bridge は、同じメンテナーによる fetchproxy ブラウザー拡張機能の新しい名称です。fetchproxy のREADMEにもリンクがあります。ソースコードは https://github.com/nullnet-app/contextmint-bridge で公開されています。自分でビルドするか、リリース zip を同梱の .sha256 ファイルと照合してください(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256)。
どちらも設定されていなくてもサーバーは起動するため、ホストによるインストール時の tools/list プローブは成功します。エラーは最初のツール呼び出し時に発生します。
ブラウザーが必要なのは最初の一度だけです。 取得したセッションはキャッシュされ(モード 0600)、再起動後も再利用されます。初回設定後の呼び出しはすべて通常のサーバー側フェッチです。セッションの取得が完了するのは、サインイン済みのタブが実際に /graphql リクエストを送信している間だけなので、キャッシュがない状態で再起動すると、たまたま Remind を利用していない限り、待機し続けることになります。
キャッシュには制限があります。使用または保存する前に、分析用 Cookie と同意 Cookie は Cookie jar から削除されます。記録は取得時に認証された Remind アカウント(me.uuid)にひも付けられます。復元したセッションが別のアカウント、またはいずれのアカウントとしても応答しない場合、そのセッションは破棄され、再取得されます。また、最長 7 日でブラウザーから再取得されます。環境変数で指定したセッションがキャッシュから復元されることはありません。
ツール
| ツール | |
|---|---|
remind_me | サインイン済みのアカウントです。 |
remind_list_entities | 未読数付きのクラスとチャットです。まずはこちらを使ってください。uuid が取得できます。 |
remind_get_classes | uuid を指定してクラスの詳細を取得します。 |
remind_list_chats | 会話のストリームと、その権限(canSend)です。 |
remind_get_messages | チャットストリーム内のメッセージです。 |
remind_get_notification_settings | 設定と配信デバイスです。 |
remind_set_notification_devices | 配信デバイスを有効または無効にします。最初に確認を求めます。 |
remind_send_message | チャットまたはクラスにメッセージを送信します。最初に確認を求めます。 |
remind_graphql | 任意の読み取り専用 GraphQL リクエストです。イントロスペクションは有効です。ミューテーションは拒否されます。 |
remind_healthcheck | セッションが引き続き認証されることを確認します。失敗時には error.kind に失敗した段階(no_credential、credential_rejected、edge_blocked、http、timeout、transport)が示されます。 |
確認
書き込みツールは、送信前に確認を求めます。確認プロンプトを表示できるクライアント(Claude Code)では、プロンプトが表示されます。それ以外の場合、最初の呼び出しではネットワーク呼び出しは行われず、正確なペイロードのプレビューと confirmToken が返されます。そのトークンと同じ引数を指定して再度呼び出した場合にのみ、書き込みが実行されます。トークンは一度だけ使用でき、2回の呼び出しの間に引数を変更すると無効になります。
| variable | default | |
|---|---|---|
MCP_CONFIRM_MODE | ask-user | 確認プロンプトを表示できないクライアント(claude.ai、Claude Desktop)で、書き込みをどう処理するかを指定します。ask-user:2段階で実行します。最初の呼び出しでは何も行わず、プレビューとトークンを返します。モデルは、チャットであなたの承認を得てから、そのトークンを指定して再度呼び出す必要があります。auto:同じく2段階で実行しますが、モデルはプレビューを確認した後、自らトークンを使用できます。refuse:そのようなクライアントでは書き込みを拒否します。プロンプトを表示できるクライアント(Claude Code)には、MCP_CONFIRM_ELICITATION=off でない限り、常に実際のプロンプトが表示されます。認識されない値は refuse として扱われます。 |
MCP_CONFIRM_ELICITATION | on | off にすると確認プロンプトは表示されず、すべてのクライアントで MCP_CONFIRM_MODE の動作が適用されます。プロンプトを表示できるとされているのに実際には表示しないクライアント(書き込みが停止する — opencode 2.0.x)では、この値を設定してください。それ以外の値は on として扱われ、stderr に警告が表示されます。 |
MCP_CONFIRM_TTL_SECONDS | 600 | トークンの有効期間です。 |
MCP_CONFIRM_SECRET | プロセスごとにランダム | 署名キーです。サーバーの再起動後もトークンを有効にする必要がある場合にのみ設定してください。mcp-host では、ホストが子プロセスごとに安定したキー(MCP_HOST_CONFIRM_SECRET)を提供し、使用済みのトークンは MCP_DATA_DIR に記録されるため、アイドル状態からの再起動後も承認は有効です。 |
サーバーを使わない場合
skills/remind-fpx/ は、MCP プロセスを必要とせず、fpx と curl を使って同じ読み取り操作を行うシェル専用スキルです。
注意事項
- セッションの有効期限が切れると、
errors[0].message = "Unauthorized"を含む HTTP 200 が返されます。同じ文字列は、「アカウントにその操作を行う権限がない可能性がある」ことも意味します(スケジュールされたメッセージの操作はオーナー/教師のみ可能です)。 - 不明なフィールドはフィールドエラーではなく
Internal service errorとして報告されます。推測せず、イントロスペクションしてください。docs/REMIND-API.mdはキャプチャログです。
開発
npm install && npm run build && npm test
npm run test:coverage
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。