mcpField
E
easytable-mcp

easytable-mcp

ローカル
github.com/chrischall地図・旅行06 日前に更新

easytable-mcp について

easytable-mcpは、easyTableのレストラン空席確認と予約管理を行うMCPサーバーです。ログイン済みのブラウザータブを介して動作し、予約の作成、変更、キャンセルには確認が必要です。

主な機能

  1. 01予約可能なエリアと日付の確認
  2. 02空いている時間帯の確認
  3. 03電話番号で予約を検索
  4. 04予約の作成、変更、キャンセル
  5. 05予約変更の送信前に確認

活用シーン

  1. 01人数に応じた空席の確認
  2. 02電話番号を使った予約の検索
  3. 03レストラン予約の変更
  4. 04詳細を確認してから予約をキャンセル

MCP 対応

easyTableの空席照会と予約操作のツールをMCPクライアントに提供します。ユーザーのログイン済みeasyTableブラウザータブを経由し、予約の書き込みには確認が必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"chrischall-easytable": {
"command": "npx",
"args": [
"-y",
"easytable-mcp"
],
"env": {
"EASYTABLE_WS_PORT": "<EASYTABLE_WS_PORT>",
"EASYTABLE_DEBUG": "<EASYTABLE_DEBUG>",
"FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
"FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
}
}
}
}
起動コマンドnpx -y easytable-mcp
設定が必要な環境変数
EASYTABLE_WS_PORTOverride the fetchproxy WebSocket port (default 37149).
EASYTABLE_DEBUGSet to 1 to log the bridge role and per-request debug lines to stderr.
FETCHPROXY_WS_HOSTBridge bind interface, a literal IP only (default 127.0.0.1). Keep on loopback; exists for a hosted child in its own network namespace.
FETCHPROXY_IDENTITY_DIRAbsolute path for the long-term bridge identity keypair (default ~/.fetchproxy/identity/). Exists for a host that runs a separate child per caller.

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

パッケージ
npmeasytable-mcp1.2.8

ツール

8

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

パラメーター型必須説明
idstringはいレストラン ID — book.easytable.com/book/?id=<id> リンク内の `id`。
langstringいいえウィジェットの言語コード(例:en、se、da、de、fr)。デフォルトは en です。

詳細

easytable-mcp

easyTableのレストラン予約用MCP サーバーです。easyTableは、レストランごとに公開されているウィジェット(https://book.easytable.com/book/?id=<restaurantId>)を使った、レストランのテーブル予約システムです。

各リクエストは、ユーザー自身がサインインし、Cloudflare の認証を通過した book.easytable.com のブラウザータブを経由します。これは @fetchproxy/server ブリッジを介して行われます。このサイトはサーバー側からのリクエストをブロックしており、ログインもありません(レストランはその id で識別されます)。

このプロジェクトはAI(Claude Code)が開発し、保守しています。ご自身の判断でご利用ください。

ツール

ツール種類
easytable_list_types読み取り — レストランの予約可能なエリア/タイプ
easytable_list_dates読み取り — エリアと人数に対応する予約可能な日付
easytable_list_times読み取り — 空き時間枠
easytable_find_bookings読み取り — 電話番号で予約を検索
easytable_create_booking書き込み(確認あり)— 予約を作成
easytable_modify_booking書き込み(確認あり)— 予約を変更
easytable_cancel_booking書き込み(確認あり)— 予約をキャンセル
easytable_healthcheck読み取り — ブリッジの接続状態

確認

書き込み操作は、実行前に毎回確認を求めます。確認プロンプトを表示できるクライアント(Claude Code)では、確認プロンプトが表示されます。それ以外のクライアントでは、最初の呼び出しでは何も送信されず、プレビューと confirmToken が返されます。同じ引数とそのトークンを指定して再度呼び出すと、予約、変更、またはキャンセルが実行されます。キャンセルの前には予約を検索するため、プレビューに対象の予約が表示されます。また、その携帯電話番号の予約ではないIDは拒否されます。トークンは1回限りで、引数を変更すると無効になります。

変数デフォルト
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プロセスごとにランダム署名キーです。サーバーの再起動後もトークンを有効にする必要がある場合にのみ設定してください。

セットアップ

  1. ContextMint Bridge ブラウザー拡張機能をリリースからインストールします。 Chrome では、contextmint-bridge-chrome-*.zip アセットを解凍して、解凍した拡張機能を読み込みます(chrome://extensions → デベロッパーモード → 解凍した拡張機能を読み込む)。Safari では ContextMint アプリに同梱されていますが、まだ一般公開用のダウンロードリンクはないため、現時点では Chrome をお使いください。ContextMint Bridge は、同じメンテナーが提供する fetchproxy ブラウザー拡張機能の新しい名称です。fetchproxy のREADMEにも案内があります。 ソースはnullnet-app/contextmint-bridgeで公開されています。ご自身でビルドするか、リリース zip を同じ場所に公開されている .sha256 ファイルと照合してください (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256)。
  2. Chrome で予約ウィジェットを開きます:https://book.easytable.com/book/?id=<id>。読み込みが完了するまで待ちます。
  3. 最初のツール呼び出しで、一度限りのペアコードが表示されます。ContextMint Bridge で承認してください。

create と modify は、読み込み済みの確認ステップからウィジェットの Cloudflare Turnstile トークンも取得するため、予約を確定する際は予約ウィジェットのタブを開いておく必要があります。

環境

環境変数は必要ありません。以下の任意設定は .mcpb マニフェストの設定を反映しています(MCP_CONFIRM_* 系の設定については確認を参照してください)。

variabledefault
EASYTABLE_WS_PORT37149fetchproxy ブラウザーブリッジの集約ポートです。同じマシン上のすべての fetchproxy MCP で共有されるため、すべてのポートを変更するか、どれも変更しないでください(ローカルテスト、またはホスト型登録のブリッジポート用)。
FETCHPROXY_WS_HOST127.0.0.1ブリッジのバインドインターフェースです。IP リテラルのみ指定でき、それ以外は無視されます。ループバックのままにしてください。独自のネットワーク名前空間で動作するホスト側の子プロセス用に設けられています。
FETCHPROXY_IDENTITY_DIR~/.fetchproxy/identity/ブリッジの長期的な ID キーペアの保存先です。絶対パスのみ指定でき、それ以外は無視されます。呼び出し元ごとに別の子プロセスを実行するホスト用です。
EASYTABLE_DEBUGunset真偽値として評価される値を設定すると、ブリッジの役割とリクエストごとのデバッグ行が stderr に記録されます。

開発

npm install
npm run build
npm test

リバースエンジニアリングされたリクエスト/レスポンスの形式については docs/EASYTABLE-API.md を、アーキテクチャの説明については CLAUDE.md を参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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