mcpField
M
meetergo

meetergo

リモート
developer.meetergo.com生産性29 週間前に更新
リポジトリ公式サイト

meetergo について

meetergoは、スケジュールや関連するCRM業務を扱うエージェント向けのMCPサーバーです。予約変更、連絡先、ルーティングフォーム、Webサイトアシスタントの設定などを、ホスト型エンドポイントまたはローカルプロセス経由で利用できます。

主な機能

  1. 01空き時間の検索と予約管理
  2. 02ミーティングタイプと予約ページの管理
  3. 03連絡先とルーティングフォームの操作
  4. 04Webサイトアシスタントの設定とテスト
  5. 05ホスト型HTTPまたはローカルstdioで接続

活用シーン

  1. 01ミーティングの予約、変更、キャンセル
  2. 02今後の予約とカレンダーの空き状況確認
  3. 03リード振り分け用フォームの作成
  4. 04Webサイトアシスタントの設定とテスト

MCP 対応

スケジュール、CRM、Mira、設定に関する57種類のツールをMCPクライアントに公開します。クライアントはホスト型Streamable HTTPエンドポイントに接続するか、パッケージをローカルでstdio経由で実行できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.meetergo.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npm@meetergo/mcp-server0.6.5

ツール

詳細

meetergo MCP サーバー

AI エージェントが実際にカレンダーを操作できるようにします。空き時間の検索、予約、日時変更、キャンセル、今後の予定の確認、連絡先レコードの管理ができます。

ドキュメントを検索するだけで、何も変更できない docs MCP サーバー(https://developer.meetergo.com/mcp)とは別のものです。どちらも便利ですが、役割は異なります。

Docs MCPこのサーバー
エンドポイントdeveloper.meetergo.com/mcpmcp.meetergo.com/mcp、または stdio 経由の npx
ツールSearchMeetergoスケジュール管理、CRM、Mira、設定用の 57 個のツール
予約できますか?いいえはい
用途統合を開発する統合として機能する

セットアップ

my.meetergo.com/integrations で Personal Access Token を作成します。トークンは rgo-… のような形式です。その後、クライアントからホスト型サーバーに接続するか、このパッケージをローカルで stdio 経由で実行します。このトークンは Free を含むすべてのプランで使用できます。

ホスト型
https://mcp.meetergo.com/mcp

Authorization: Bearer rgo-… で認証する Streamable HTTP です。パスが重要です。mcp.meetergo.com だけではエンドポイントになりません。リモート URL とヘッダーを指定できるクライアントの場合は、次のように設定します。

{
  "mcpServers": {
    "meetergo": {
      "url": "https://mcp.meetergo.com/mcp",
      "headers": { "Authorization": "Bearer rgo-your_token_here" }
    }
  }
}
ローカル(npx)
{
  "mcpServers": {
    "meetergo": {
      "command": "npx",
      "args": ["-y", "@meetergo/mcp-server"],
      "env": { "MEETERGO_TOKEN": "rgo-your_token_here" }
    }
  }
}

Claude Desktop、Claude Code、Cursor など、MCP に対応するものであれば何でも使用できます。

トークンのスコープを設定する

トークンの作成時に、エージェントが実際に必要とする機能(スケジュール管理、連絡先と商談、Mira、フォーム、アカウント)に制限できます。制限付きトークンは、対象外のグループに属する操作を読み取りも含めてすべて拒否するため、使用する予定のツールが含まれるグループをすべて有効にしてください。Mira 専用のトークンでは予約できず、スケジュール管理専用のトークンではナレッジベースを読み取れません。

トークンを貼り付けずにサインインする

ホスト型エンドポイントでは OAuth サインインを利用できます。検出情報は /.well-known/oauth-protected-resource(RFC 9728)で公開されているため、対応クライアントは MCP URL からフローを開始できます。クライアントは事前登録されており、動的なクライアント登録で作成することはできません。Claude のカスタムコネクターでは、Advanced settings でパブリッククライアント ID mcp-claude を入力し、クライアントシークレットは空欄のままにします。Claude と ChatGPT 向けのディレクトリクライアントは、それぞれのプロバイダー用に設定されています。

Cursor と Grok Bot

このリポジトリには、Cursor と Grok Bot の両方で使用する Cursor Marketplace プラグインが含まれています。Settings、Plugins、Marketplace の順に開いて meetergo をインストールし、ブラウザーでサインインを完了してください。このプラグインはホスト型エンドポイントに接続し、パブリック PKCE クライアント ID mcp-cursor を使用します。クライアントシークレットや貼り付けるトークンは必要ありません。

Marketplace への掲載前にローカルで確認する場合は、このリポジトリをローカル Cursor プラグインとして読み込んでください。.cursor-plugin/plugin.json マニフェストが mcp.json を参照しており、そこには同じホスト型 URL と OAuth クライアント ID が記載されています。

Personal Access Token は、Free を含むすべてのプランで、すべての MCP クライアントから使用できます。このページの以降の説明では、これを前提としています。

別のユーザーとして操作する

Personal Access Token は常にその所有者として操作します。会社全体を対象にエージェントを実行し、複数の同僚に代わってアシスタントが予約する場合は、Platform API Key(ak_live:<uuid>:<secret>)を使い、対象ユーザーを指定します。

"env": {
  "MEETERGO_TOKEN": "ak_live:...",
  "MEETERGO_USER_ID": "the-user-uuid"
}

この 2 種類のトークンでは要件が正反対です。予約の途中で問題が判明することがないよう、サーバーは起動時に両方の要件を確認します。

  • Platform API Key では MEETERGO_USER_ID が必須です。API はほぼすべてのルートで操作ユーザーを要求します。
  • Personal Access Token では MEETERGO_USER_ID を指定してはいけません。常に所有者として操作し、API はこのヘッダーを明示的に拒否します。

ホスト型エンドポイントでは、操作ユーザーは環境変数ではなくリクエストヘッダー X-Meetergo-Api-User-Id で渡します。同じ 2 つのルールが適用され、Personal Access Token と一緒に送信すると拒否されます。

環境

stdio エントリ(npx が実行する meetergo-mcp):

変数必須用途
MEETERGO_TOKENはいrgo-… Personal Access Token、または ak_live:… Platform API Key
MEETERGO_USER_IDPlatform API Key 使用時操作対象のユーザー
MEETERGO_API_URLAPI ベース URL の上書き値。デフォルトは https://api.meetergo.com/v4
MEETERGO_NEXT_URLウィジェットのインストール用スニペットに表示される予約ページのホスト。デフォルトは https://cal.meetergo.com
MEETERGO_TIMEOUT_MSリクエストごとのタイムアウト。デフォルトは 30000
ホスト型エントリを自分で実行する

このパッケージには、https://mcp.meetergo.com/mcp の背後で動作する Streamable HTTP エントリ meetergo-mcp-http も含まれています。認証情報は環境変数ではなく、リクエストごとに Authorization ヘッダーで渡されるため、1 つのプロセスで任意の数のアカウントに対応できます。ここでは MEETERGO_TOKEN と MEETERGO_USER_ID は読み込まれません。読み込む変数は次のとおりです。

変数必須用途
PORT待ち受けポート。デフォルトは 8080
MEETERGO_API_URLAPI ベース URL の上書き値。デフォルトは https://api.meetergo.com/v4
MEETERGO_NEXT_URLウィジェットのインストール用スニペットに表示される予約ページのホスト。デフォルトは https://cal.meetergo.com
MEETERGO_DASHBOARD_URLプランの上限エラーに含まれるアップグレードリンクで使用するダッシュボードのホスト。デフォルトは https://my.meetergo.com
MCP_PUBLIC_URLこのサーバーの公開 URL。デフォルトは http://localhost:$PORT です。使用されるのは オリジン のみです。オリジン + /mcp がリソース識別子となり、ディスカバリードキュメントの resource フィールド、および OAuth トークンの aud に含める値になります。そのため、https://host、https://host/、https://host/mcp はいずれも同じ設定です。絶対 http(s) URL でない場合、起動時にエラーになります
OAUTH_ISSUER3 つすべて、または未設定認可サーバーの OpenID issuer(例:https://login.meetergo.com/realms/meetergo)。絶対 URL かつ https である必要があります。トークン交換では、このサーバーのクライアントシークレットとユーザーのトークンを認可サーバーに送信するためです。末尾のスラッシュは削除されます
OAUTH_CLIENT_ID3 つすべて、または未設定このサーバーがトークンを交換する機密クライアント(RFC 8693)
OAUTH_CLIENT_SECRET3 つすべて、または未設定そのクライアントのシークレット

3 つの OAUTH_* 変数は、すべて設定するか、すべて未設定にしてください。 3 つすべてを設定すると、受信したアクセストークンをまず検証します。検証するのは issuer、aud、typ: Bearer、issuer の JWKS に対する RS256 署名、有効期限です。その後にのみ、上流 API 用の別のトークンに交換します。MCP 仕様では、クライアントから渡されたトークンを転送することが禁じられているため、この交換は単なる最適化ではなく、唯一の経路です。

何も設定しない場合、プロセスはベアラートークンのみで動作します。Personal Access Token と Platform API Key は使用できますが、両方の .well-known パスは 404 を返し、401 チャレンジに resource_metadata は含まれず、OAuth トークンは上流へ渡されず拒否されます。

1 つまたは 2 つだけ設定すると、一部だけの OAuth ではなく、上記のベアラートークンのみの動作になります。さらに、未設定の変数名を示す oauth_disabled_incomplete_config 警告ログが出力されます。

リトライ

どちらのエントリも、リトライの挙動は同じです。レート制限と一時的な上流エラー(429、502、503、504)の場合、最大 3 回(つまり 2 回リトライ)試行します。API から Retry-After が送信された場合は、それに従います。

リトライは 無条件には行われません。予約またはキャンセルがタイムアウト、接続切断、502 などで不確定な状態で失敗した場合、API 側ではすでに処理済みの可能性があります。また、2 回目の試行を安全に行うための冪等性キーもありません。そのため、このような場合にリトライするのは読み取り処理のみです。書き込み処理をリトライするのは、リクエストが処理されなかったことを示す唯一のレスポンスである 429 の場合に限られます。

1 つのプロンプトでオンボーディング

クライアントが MCP プロンプトに対応している場合は、meetergo: onboard を実行してください。対応していない場合は、次の内容を貼り付けてください。

会社向けに meetergo をセットアップしてください。まず get_me と get_setup_status を呼び出し、すでに存在するものを教えてください。次に propose_conversion_setup を使ってウェブサイトを分析し、提案するセットアップ(ミーティングタイプ、適格性確認の質問、ウェブサイトアシスタント)を提示してください。私の承認を得るまで、何も構築しないでください。承認後、不足しているものを作成し、create_qualification_form で質問をルーティングフォームにし、サイトをクロールしてから、run_test_drive で動作を実証し、判定結果を見せてください。最後にインストール用スニペットを提示し、貼り付けた後に verify_widget_install で確認してください。

エージェントは既存の内容を監査して提案し、あなたの承認を待ってから構築します。その後、公開前に、スクリプト化された訪問者があなた自身のアシスタントを通じて予約する様子を見せます。2 つ目のプロンプト、meetergo: weekly-review は、先週の会話を取得し、アシスタントが回答できなかった質問をすべて学習させることを提案します。

プランの制限

各ツールは、どの制限に達したのか、アップグレードするにはどこを利用すればよいのかを構造化して報告するため、エージェントは曖昧に失敗せず、状況を説明できます。get_me は plan ブロック(プランの階層、制限)も返すため、優れたエージェントは、プランでは完了できない作業を始める前に警告します。サーバー自体への接続に制限がかかることはありません。Free を含む、どのプランのトークンでも利用できます。

ツール

スケジューリングをエンドツーエンドでカバーする 57 個のツールがあります。ほとんどのエージェントが利用する一連の流れはスケジューリングです。ほかのツールは、エージェントが生の REST に頼る必要がないように用意されています。

スケジューリング
ツール書き込み?目的
get_meトークンが機能することを確認します。何も表示されない場合は、ここから始めてください
list_meeting_types予約可能な内容
get_availabilityミーティングタイプの予約可能な時間枠
book_appointmentはい時間枠を予約します
reschedule_appointmentはい予約を変更します
cancel_appointment破壊的予約をキャンセルするか、参加者を 1 人削除します
list_appointmentsフィルター付きのページ分割されたカレンダー
get_todays_appointments今日の予約のみ
get_appointmentattendeeIds を含む、1 件の予約の全詳細
add_guestはい予約にゲストのメールアドレスを追加します
update_appointment_notesはい通話の準備事項や結果を書き戻します
create_one_time_booking_linkはい代理で予約する代わりに、1 回限りのリンクを送信します
list_calendar_connections接続されているカレンダー
フォローアップ
ツール書き込み?目的
send_quick_emailはい参加者に 1 回限りのメールを送信します(5 分間に 5 通)
update_meeting_transcriptionはいノート作成ツールの文字起こしや要約を添付します
ミーティングタイプ
ツール書き込み?目的
get_meeting_type全設定です。更新前に読み取ってください
create_meeting_typeはい予約可能なミーティングタイプを作成します
update_meeting_typeはいミーティングタイプを変更します
delete_meeting_type破壊的ミーティングタイプを削除します。そのページは機能しなくなります
予約ページ
ツール書き込み?目的
get_personal_page色、ヘッダー、リンク、ミーティングタイプの順序
update_personal_pageはいブランディングを変更します
ルーティングフォーム
ツール書き込み?目的
list_routing_formsすべてのフォームとファネル
get_routing_formステップ、フィールド、ルーティングルール
create_routing_formはい適格性確認フォームを作成します
update_routing_formはいフォームを変更します
delete_routing_form破壊的フォームを削除します。共有リンクは機能しなくなります
send_routing_formはいメールまたは SMS で送信するか、リンクを発行します
list_form_recipients受け取った人、回答した人
list_data_fieldsフォーム間で再利用できるフィールド
create_data_fieldはいフィールドを追加します
CRM
ツール書き込み?目的
search_contacts重複を作成する前に連絡先を検索します
get_contactcontactId または予約の attendeeId で、レコード全体を取得します
create_contactはい連絡先を追加します
update_contactはい連絡先を編集します
bulk_create_contactsはい一度に多数の連絡先をインポートします(1分あたり3回の呼び出し)
delete_contact破壊的連絡先とそのフォームの回答を削除します
Mira、ウェブサイトアシスタント

ウェブサイトにアシスタントがいない状態から、会社独自のページをもとに回答し、 ミーティングを予約するアシスタントを稼働させるために必要なものがすべてそろっています。

ツール書き込み?目的
get_setup_status起動チェックリスト:存在するもの、不足しているもの、次の手順
get_mira_settingsアシスタントの設定全体。変更前に読み取ります
update_mira_settings破壊的設定を変更します。元に戻せるよう、変更前の設定を返します
restore_mira_settings破壊的以前の更新時に取得したスナップショットを復元します
propose_conversion_setupクロール済みのサイトを読み取り、アシスタント、適格性確認、予約の設定を提案します
create_qualification_formはい提案された質問を、編集可能な実際の振り分けフォームにします
run_test_drive台本に沿って訪問者が保存済みアシスタントと会話します。判定とトランスクリプトが返されます
get_mira_widget_embed公開キー、埋め込みスニペット、プレビュー URL を取得します
verify_widget_install顧客のサイトのページを取得し、顧客自身のウィジェットが配信されていることを確認します
answer_visitor_questionはいアシスタントが答えられなかった質問への回答を教えます
get_conversation_insights訪問者からの質問と、アシスタントが答えられなかった箇所を確認します
ナレッジベース
ツール書き込み?目的
crawl_company_websiteはいアシスタントがサイトの情報をもとに回答できるよう、ウェブサイトを取り込みます
get_crawl_status実行中のクロールの進捗を確認します
list_knowledge_documents取り込まれた内容を確認します
delete_knowledge_document破壊的ドキュメントを削除します。アシスタントはそのドキュメントを引用しなくなります
search_company_knowledge質問への回答の根拠となる箇所を取得します
Webhook
ツール書き込み?目的
list_webhooks使用中のエンドポイント(会社あたり最大6件)
create_webhookはいHTTPS エンドポイントを登録します
update_webhookはいURL またはイベントを変更します
delete_webhook破壊的Webhook を削除します。イベントは直ちに停止します

書き込み操作には readOnlyHint: false が設定され、上記で破壊的と記された項目には destructiveHint: true が設定されています。そのため、ホストはエージェントが人間にとって 重要なものを削除する前に、確認を求めることができます。

ツールが代わりに行うこと

API は、モデルには知る方法のない情報を要求します。その定型処理を docstring で説明して うまくいくことを期待する代わりに、ツールがそれらを補います。

  • book_appointment は、入れ子になった attendee オブジェクトを構築し、 receiveReminders と必須の空の notes の既定値を設定します。また、名前のない予約は、 招待に空欄を書き込まずに拒否します。
  • get_availability と book_appointment は、どのホストを対象に計算するかを解決します。 API はミーティングタイプを読み込む前に、どちらも Expected hostIds or queueId で拒否します。 一方、モデルが持つのは meetingTypeId だけです。
  • create_meeting_type は、必須ですが重要ではない6つの meetingInfo フィールド (customChannelName、connectChannelName、空の confirmationButton など)を補います。 これらが欠けているとリクエスト全体が拒否されます。スキーマに明記されていない内容は advanced 経由で渡されます。
  • list_appointments は、API に既定値がない必須の page と pageSize を指定します。

開発

npm test          # vitest
npm run build     # tsc -> dist

テストではツール一覧だけでなく、ワイヤ形式を検証します。各ツールが呼び出すパスと、API の DTO が要求する正確なボディ形式です。これは意図的なものです。 0.1.x では、決して成功しないツールが 5 つ公開されていました。パスやクエリキーが誤っており、BookingDto がネストされた attendee を要求しているのに、ボディがフラットになっていました。それでも、ツールの存在だけを確認していたため、すべてのテストに合格していました。ツールを追加または変更する場合は、apps/api のルートに照らしてリクエストを固定してください。

コメント

MCP は初めてですか?

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

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