イベント情報をAIに公開する

「次のイベントはいつ?」に開催予定を返し、参加申込は通常UIに残す構成です。

ライブデモ

対応環境では list_events ツールが登録されます。未対応の環境では、同じフォームが通常UIとして動きます。

Live tool

list_events

対応状況を確認中
input{"type":"object","properties":{"status":{"type":"string","description":"upcoming または past。未指定なら upcoming"}},"additionalProperties":false}
result

入力例を選ぶか、フォームから実行できます。

実装コード

中止・延期の状態を含めて返すと、AIが正確な案内をできます。状態は列挙値に限定して検証します。

JavaScriptImperative API
await document.modelContext.registerTool({
  name: "list_events",
  title: "イベント一覧を取得",
  description:
    "開催予定と開催済みのイベント一覧を照会する。申込や変更は行わない。",
  inputSchema: {
    type: "object",
    properties: {
      status: { type: "string", description: "upcoming または past。未指定なら upcoming" },
    },
    additionalProperties: false,
  },
  annotations: { readOnlyHint: true },
  execute: async ({ status }) => {
    const value = status ?? "upcoming";
    if (typeof value !== "string" || !["upcoming", "past"].includes(value)) {
      throw new Error("statusはupcomingまたはpastで指定してください。");
    }
    return listEvents(value);
  },
});

安全設計

  • 照会は読み取り専用。申込・キャンセル・変更はしない
  • 中止・延期の状態を正確に返す
  • 参加申込は通常UIのフォームで、人間が確認して行う
  • 未対応ブラウザでは、イベント一覧を通常UIとして表示する
次の行動

あなたのサイトを診断する

公開URLから、WebMCPの導入候補を確認できます。

対応を診断