「毎朝7時に、今日のおすすめと天気をサイネージに入れておいて」——一度頼んでおけば、AI が毎朝決まった時刻に、店のサイネージを自動で差し替える。雨の日は「足もとにお気をつけて」の一言を足し、祝日の前には営業時間のお知らせに切り替える。開店前の忙しい時間に、管理画面を開く必要はなくなります。

これまでの記事では、AI にその場で話しかけてサイネージを変える方法を紹介してきました(バイブコーディングでサイネージを動かす、声だけでサイネージを更新する)。この記事はその次の一歩、AI に定期で頼んでおく使い方です。

2026年10月25日に、サイネージCMS「Kitcast」の MCP(編集部の検証用の APIキー)と気象庁の天気予報を使って、毎朝の更新のしくみを実際に組み、手動で1回、Claude Code の予定(1回だけの予約)で1回動かしました。結果は「編集部が実際に組んで動かした」にまとめています。毎日の定期実行を何日も続けたこと、店頭の画面での見え方、Yodeck での定期実行は未検証です。

毎朝の自動更新で、何が便利になるか

サイネージの中身には、「毎日少しずつ変わるもの」がたくさんあります。

差し替えたいもの 例 自動にすると
今日のおすすめ パン屋の日替わりパン、定食屋の日替わり定食 曜日ごとの表から、AI が毎朝入れ替える
天気 「今日は雨の予報です」「最高 26℃」 予報を読んで、雨の日だけ一言を足す
営業時間の変更 祝日の短縮営業、臨時休業 決めた期間だけお知らせを出し、終わったら元に戻す
季節のお知らせ ハロウィン、年末年始、新メニュー 日付で自動に切り替える

ポイントは、中身そのものは人が決めておき、毎朝「今日の分を入れる」作業だけを AI に任せることです。日替わりの表やお知らせの期間を先に決めておけば、AI が勝手に新しいメニューを考えることはありません。

開店前の美容室で、黒いエプロンの男性の店主が受付のカウンターでコーヒーを片手にスマートフォンを見ている。後ろの壁の横長のサイネージには、晴れのマークと紅葉の写真、お知らせが映っている
開店前に画面がもう今日の内容になっていれば、スマホで確かめるだけで済む(イメージ)

しくみ:時計 → AI(または決まった手順)→ サイネージのCMS

毎朝の自動更新は、3つの部品でできています。

部品 役割 例
時計(定期実行) 毎朝7時に「始めて」と合図する Claude のスケジュール機能、Claude Code、GitHub Actions
手順 今日の日付・曜日・天気から、入れる文を決める AI への決まった頼み方、または小さなスクリプト
CMS との窓口 決めた文を、サイネージのスライドに書き込む Kitcast MCP(APIキー)、Yodeck MCP(ログイン)

CMS との窓口になるのが MCP(AI がほかのサービスを操作するための共通の決まりごと)です。AI に定期で頼む場合、AI は MCP を通して CMS を読み書きします。スクリプトから直接 MCP の窓口を呼んでもかまいません。つなぎ方の基本は、Kitcast MCP の設定方法とYodeck AI Agent の設定方法をご覧ください。

時計(定期実行)の選び方

2026年10月時点で、AI に定期で頼む方法は主に次の4つです(Claude Code と Claude のヘルプの公式情報より)。

方法 どこで動くか パソコンの電源 サイネージのCMSとのつなぎ方 向いている人
Claude Code のクラウドの定期実行(スケジュールされたタスク) Anthropic のクラウド 切れていてよい コネクタ(ログイン方式)か、リポジトリに置いた設定とキー 毎朝きっちり動かしたい
Claude のアプリ(Cowork)のスケジュール Anthropic のクラウド(パソコンのファイルを使うときは手元) 原則切れていてよい コネクタ(ログイン方式) 文章で頼むだけで済ませたい
Claude Desktop の定期実行 自分のパソコン つけておく パソコンに登録した MCP(APIキーも可) お店のパソコンを開店前からつけている
GitHub Actions GitHub のサーバー 切れていてよい スクリプト+シークレットに入れたキー 決まった手順を、AI なしで毎日同じに動かしたい

いくつか気をつけたい点があります。

  • クラウドの定期実行は「1時間に1回」まで:毎朝7時に1回なら問題ありません。設定画面の時刻は自分のタイムゾーンで入れられますが、cron(時刻の書き方)で直接書くときは**協定世界時(UTC)**になるため、日本時間の7時は「前の日の22時」です
  • ちょうどの時刻は少し遅れることがある:公式の案内では、9:00 のような「ちょうど」の時刻は数分遅れることがあるため、9:07 のように少しずらすことがすすめられています。開店に間に合わせたいなら「6:53」のように前にずらしておくと安心です
  • ログインでつなぐコネクタが使える CMS が有利:クラウドの定期実行や Claude のアプリのスケジュールでは、claude.ai に登録したコネクタ(ログイン方式)をそのまま使えます。Yodeck はログインでつなげるので、この形にそのまま乗せられます。Kitcast は今は APIキー方式(ログイン方式は近日対応)なので、クラウドで動かすときは、手順とキーを作業環境の側に用意します

AI に任せるか、決まった手順にするか

毎朝の更新は、「AI に文章で頼む」か「決まった手順(スクリプト)を動かす」かを選べます。

  • AI に文章で頼む:「今日の曜日の日替わりパンを『本日のおすすめ』に入れて。雨の予報なら天気のスライドに一言足して」と、ふだんの言葉で書いておくだけで済みます。その分、毎回の文の作り方が少しずつ変わる可能性があります
  • 決まった手順にする:日替わりの表と文のひな形を先に決めておき、毎回まったく同じやり方で書き込みます。スクリプトは AI に作ってもらえます

編集部のおすすめは、決まった手順を AI に作ってもらい、定期実行の AI には「その手順を動かして、結果を確かめて」と頼む組み合わせです。文がぶれず、失敗したときに AI が止まって知らせてくれます。下の検証も、この形で組みました。

編集部が実際に組んで動かした

Kitcast で、パン屋の毎朝の更新を想定したしくみを組みました。

項目 条件
CMS Kitcast(無料お試しのアカウント)
つなぎ方 Kitcast MCP。編集部の検証用の APIキー(ライブ。書き込みはすぐ反映される)
書き換えた範囲 新しく作った「【検証】毎朝の自動更新」というプレイリストだけ。どの画面のスケジュールにも入れていないので、店頭には出ていない
天気 気象庁の天気予報(東京地方)
実行 手動で1回、Claude Code の予定(1回だけの予約)で1回。どちらも 2026年10月25日

手順1:毎朝書き換えるスライドを用意する

最初に1回だけ、プレイリストとスライド4枚を作りました。毎朝書き換えるのは文章のスライド3枚で、天気予報のスライドは Kitcast の天気予報ウィジェット(東京・摂氏)をそのまま使います。天気予報ウィジェットは自分で最新の予報を出すので、AI が書き換える必要はありません。

順番 スライドの名前 種類 毎朝の書き換え
1 本日のおすすめ 文章(見出し・その下の文・小さな文) 曜日ごとの日替わりパンと値段
2 今日の天気 文章 気象庁の予報から。雨なら見出しを「今日は雨の予報です」にして、傘袋の一言を足す
3 天気予報(東京) 天気予報ウィジェット なし(Kitcast が自動で更新)
4 お知らせ 文章 期間を決めたお知らせ(ハロウィン、祝日の短縮営業)。期間外は営業時間

スライドは、名前で見分けられるようにしておくのがコツです。手順は「本日のおすすめ」という名前のスライドを探して書き換えるので、並べ替えても困りません。

手順2:日替わりの表とお知らせを決めておく

入れる中身は、先に表にしておきます。AI が勝手に考えるのではなく、ここに書いたものだけが画面に出ます。

{
  "menuByWeekday": {
    "日": "かぼちゃのクリームパン 260円",
    "月": "栗あんバターのコッペパン 280円",
    "火": "きのこのフォカッチャ 320円",
    …
  },
  "notices": [
    { "from": "2026-10-25", "to": "2026-10-31", "text": "10月31日(土)はハロウィン\nお子さまにクッキーをプレゼント" },
    { "from": "2026-11-01", "to": "2026-11-03", "text": "11月3日(火・祝)は\n9:00〜15:00の短縮営業です" }
  ],
  "defaultNotice": "営業時間 7:30〜18:00(水曜定休)"
}

手順3:毎朝の手順(スクリプト)を作る

毎朝の手順は、Node.js の小さなスクリプトにしました。中身は次の5段階です。

  1. 止める合図があれば何もしない(STOP というファイルがあれば、すぐ終わる)
  2. 気象庁の予報を読む(今日の天気、最高気温、降水確率)
  3. 入れる文を決める(曜日の日替わり、雨かどうか、期間中のお知らせ)
  4. 安全の確認:書き換える先のプレイリストの名前が「【検証】」で始まっているか、決まった名前のスライドが3枚そろっているか。どれかが違えば、書き換えずに止まる
  5. 書き換えて、読み直して確かめる:Kitcast MCP の update_slide で3枚を書き換え、get_playlist で読み直して見出しが入ったかを確かめる

書き換えの部分は、次のような形です(抜粋)。

// 安全の確認:【検証】のプレイリストで、決まった名前のスライドがそろっているか
const pl = await call('get_playlist', { playlistId: cfg.playlistId });
if (!pl.name?.startsWith('【検証】')) throw new Error(`対象外のプレイリスト:${pl.name}`);

// 書き換える(見出しは header、その下の文は subHeader、小さな文は caption)
for (const t of targets) {
  await call('update_slide', {
    playlistId: cfg.playlistId,
    slideId: t.id,
    widget: { type: 'SMART_TEMPLATE_TEXT', header, subHeader, caption, textColor: '#FFFFFF', backgroundColor },
  });
}

call は、Kitcast MCP の窓口(https://api.next.kitcast.tv/api/mcp)に Authorization: Bearer (APIキー) を付けて送るだけの小さな関数です。APIキーはスクリプトに書かず、作業環境のシークレット(環境変数)から読み込みます。

項目名は正確に書くのが大事です。Kitcast の文章のスライドでは、見出しの下の文は subHeader という名前で、違う名前で送るとエラーにならずに黙って捨てられます(Kitcast MCP の検証で確認ずみ)。決まった手順にしておけば、毎回正しい名前で送れます。

また、--dry-run を付けて動かすと、書き込まずに「今日はこの文を入れる」とだけ表示するようにしました。Kitcast MCP には試し実行の機能がないため、試し実行は手順の側で用意します。

手順4:Claude Code の予定で動かす

定期実行の AI には、次の決まった頼み方を予約しました。

【定期実行の検証・決まった手順】サイネージの毎朝の更新を行ってください。1) node morning-update.mjs --dry-run を実行し、文面を確かめる。2) おかしなところがなければ node morning-update.mjs を実行する。3) 結果(result が updated か、check がすべて ok か)を記録する。対象は「【検証】毎朝の自動更新」だけ。ほかのプレイリストには触らない。失敗したら書き換えを繰り返さず、止めて報告する。

今回は、Claude Code のクラウドの会話に「5分後に1回だけ」の予定として登録しました。予定の時刻になると、この頼みごとが会話に届き、Claude Code が試し実行 → 本番の書き換え → 結果の確認の順に進めました。

予定の時刻に届いた依頼と、その実行結果。試し実行で、かぼちゃのクリームパン 260円、今日は雨の予報です、ハロウィンのお知らせが表示され、本番の実行で result が updated、3枚の check がすべて true、版が11になった
予定の時刻(11時16分)に届いた依頼と、実際の出力。試し実行で文を確かめてから書き換え、3枚とも見出しが入ったことを読み直して確かめた(作業フォルダの表記を短くし、一部の行を省略)

結果

試したこと 結果
試し実行(--dry-run) ◯ 書き込まずに、今日入れる文だけを表示できた
手動での書き換え(1回目) ◯ 3枚の書き換えが1回ずつ版として記録された(版6〜8)
予定の時刻での書き換え(2回目) ◯ 予定どおりに届き、試し実行 → 書き換え → 確認まで、人の操作なしで進んだ(版9〜11)
天気で文を変える ◯ 当日は雨の予報(降水確率60%)だったので、「今日は雨の予報です」と傘袋の一言が入った
期間を決めたお知らせ ◯ 10月25日〜31日の期間中なので、ハロウィンのお知らせが入った
止める合図(STOP ファイル) ◯ 何も書き換えずに「stopped」で終わった
対象外のプレイリストを指定 ◯ 「対象外のプレイリスト」で、書き込む前に止まった。そのプレイリストの版は変わっていない
予定が1回で止まるか ◯ 実行後、予定は自動で無効になった(今回は1回だけの予約)
毎朝の定期実行を何日も続ける 未検証
店頭の画面での見え方 未検証(どの画面にも割り当てていない)
見出しの下の文・小さな文が画面に正しく出るか 未検証(Kitcast MCP の読み取りでは見出しまでしか返ってこないため、AI からは確かめられない)
Kitcast MCP で読み取ったプレイリストの変更履歴。版11から版6までがAPIキーによるスライドの更新、版5がスライドの追加。その下に、STOP ファイルで止まった出力と、対象外のプレイリストでエラーになった出力
Kitcast MCP で読み取った変更履歴(表に整えて表示)と、止め方を試した出力。書き換えは1枚ごとに1つの版として残る

わかったこと

  • 1回の更新で、版が3つ増える:Kitcast では、スライド1枚の書き換えごとに版が1つ記録されます。毎朝3枚なら、1か月で約90の版がたまります。そのかわり、どの朝の変更も、管理画面の変更履歴から元に戻せます
  • 版の時刻は MCP からは読み取れなかった:Kitcast MCP で読んだ変更履歴では、どの版も同じ時刻(プレイリストを作った時刻)になっていました。「いつ書き換えたか」は、手順の側で記録を残しておくと安心です(今回は1回ごとに実行の記録をファイルに残しました)
  • 画面の確認は人の仕事として残る:書き換えたことは読み直しで確かめられますが、見出しの下の文や色が画面でどう見えるかは、今の Kitcast MCP では AI から見えません。最初の数日は、開店前にスマホで管理画面か店頭の画面を確かめましょう
  • 天気は「ウィジェット」と「一言」で分ける:天気予報そのものは Kitcast のウィジェットが自動で出してくれます。AI に任せるのは、「雨なら一言足す」のような、天気に合わせた店の言葉だけにすると、更新の量が少なく済みます

気象庁の天気予報は、毎日5時・11時・17時に発表されます。毎朝7時に動かせば、その日の5時の予報を使えます。今回の検証は昼前に動かしたため、11時の予報を使いました。

Yodeckで同じことをするには

Yodeck の「Yodeck AI Agent(Yodeck MCP)」でも、同じ毎朝の更新を組めます。ただし、つなぎ方に違いがあります。

  • 書き込みは、ログイン(OAuth)でつなぐ:編集部の検証では、Yodeck の APIトークンは役割にかかわらず読み取りのみでした。書き込むには、Yodeck にログインして「読み取りと書き込み」を許可してつなぎます(Yodeck MCP の検証)。そのため、「スクリプトに APIトークンを入れて書き込む」形は今は使えず、AI がコネクタを通して書き込む形になります
  • クラウドの定期実行と相性がよい:ログイン方式のコネクタは、claude.ai に一度登録すれば、Claude のアプリやクラウドの定期実行からそのまま使えます(ChatGPT・スマホの Claude から Yodeck を更新する)。お店のパソコンをつけておく必要がありません
  • AI が中身まで読める:Yodeck の AI は、レイアウトの文字や色まで読み取れます。書き換えたあとに「本日のおすすめの文字が、指定どおりになっているか読み直して」と頼めば、AI 自身が確かめられます
  • 元に戻す機能はない:Kitcast のような変更履歴からの「前の版に戻す」はありません。毎朝の手順の中で「書き換える前の文を記録しておく」と安心です
  • パスワードを変えると止まる:Yodeck のパスワードを変えると、ログインでつないだ AI は使えなくなります(編集部で確認)。定期実行も止まるので、パスワードを変えたら、つなぎ直して1回動かしてみましょう

頼み方の例は次のとおりです。

毎朝7時に、Yodeck の「【検証】本日のおすすめ」のレイアウトで、見出しの下の文を、下の表の今日の曜日の日替わりに書き換えて。書き換えたら、文字が入ったかを読み直して報告して。ほかのレイアウトやプレイリスト、画面の設定には触らないで。

Yodeck での定期実行は、編集部ではまだ試していません(未検証)。Yodeck の書き込みそのものは、ログインでつないだ Claude Code から確認ずみです。

安全に使うための注意

AI に毎朝、人の見ていないところで書き換えてもらう以上、間違ったときにすぐ気づけて、すぐ止められることがいちばん大事です。

検証用・下書きで始める

  • 最初は、画面に出ていないプレイリストで試す:今回のように「【検証】」の名前を付けたプレイリストを作り、どの画面にも割り当てずに数日動かします。思ったとおりに入るのを確かめてから、本番のプレイリストに切り替えます
  • Kitcast は下書きモードのキー:Kitcast の APIキーを「下書き」にすると、AI の書き換えは承認待ちの版になり、人が管理画面で公開するまで画面に出ません(Pro プランが必要。下書きモードの動きは編集部では未検証)
  • Yodeck は公開できない役割:AI 用のユーザーを「制限付きコンテンツマネージャー」にすると、AI は画面への公開ができません
  • キーや役割の範囲をしぼる:Kitcast なら、キーが触れるプレイリストを「毎朝更新するものだけ」に制限できます。AI 用のキーは、毎朝の更新専用に1つ作ります

毎回の結果を確かめる

  • 読み直しを手順に入れる:書き換えたら、もう一度読み取って、入れたつもりの文が入っているかを確かめます。今回の手順では、見出しが違っていれば「check-failed」として記録します
  • 結果を自分に知らせる:クラウドの定期実行は、実行ごとに会話(セッション)として記録が残ります。最初のうちは毎朝その記録を開いて、「updated」「ok」になっているかを見ましょう
  • 数字と日付は特に注意:値段や日付の書き間違いは、そのままお客さまの目に入ります。日替わりの表は、AI ではなく人が作って確かめておきます

失敗したときの止め方

止め方は、いくつか用意しておくと安心です。

止め方 どこで 効き方
定期実行を止める Claude Code の定期実行の画面のオン・オフ、Claude のアプリのスケジュールの一時停止、GitHub Actions のワークフローの無効化 次の朝から動かない
手順の中の「止める合図」 今回の手順では STOP ファイルを置く 定期実行は動いても、何も書き換えない
CMS の側で鍵を止める Kitcast なら APIキーを削除、Yodeck ならコネクタの接続を切る(パスワードを変えても切れる) AI からは何もできなくなる
書き換えを元に戻す Kitcast は変更履歴の「これに戻す」、または AI に「今朝の変更を取り消して」 画面の中身を前に戻す

失敗したときに、AI が何度も書き換えを繰り返さないように、定期実行の頼み方には「失敗したら繰り返さず、止めて報告する」と書いておきましょう。今回の検証でも、そう書いておきました。

店頭の画面に使う機器

Kitcast は Apple TV で動かすのが定番です。Yodeck は Fire TV Stick や Raspberry Pi など、手頃な機器で始められます。

AmazonでApple TV 4Kを見る

AmazonでFire TV Stick 4Kを見る

AmazonでRaspberry Pi 5を見る

Amazonのアソシエイトとして、サイネージファンは適格販売により収入を得ています。

CMS を使わずに、AI に作ってもらった Web ページをテレビに映す方法は、バイブコーディングで自作サイネージで紹介しています。毎朝の差し替えまで任せたいなら、変更の記録や権限のしくみがある Yodeck・Kitcast のほうが安心です。

まとめ

  • 「毎朝7時に、今日のおすすめと天気を入れておいて」は、**定期実行 × AI × サイネージのCMS(MCP)**で自動にできる
  • 中身(日替わりの表・お知らせの期間)は人が決め、毎朝入れる作業だけを AI に任せると、文がぶれない
  • 時計は、Claude Code のクラウドの定期実行、Claude のアプリのスケジュール、Claude Desktop、GitHub Actions から選ぶ。ログインでつなげる Yodeck はクラウドの定期実行と相性がよい。APIキーで細かく権限を決められ、変更履歴から戻せる Kitcast は安心して任せやすい
  • 編集部の検証では、Kitcast で試し実行 → 書き換え → 読み直しまでを、予定の時刻に人の操作なしで動かせた。毎日続けた動きと、店頭の画面での見え方は未検証
  • 最初は画面に出ていない「【検証】」のプレイリストや下書きで試し、止め方を先に用意しておく

2つの CMS の AI 連携の違いは、KitcastとYodeckのAI連携を実際に比べたにまとめています。どちらも無料で試せます。

Kitcastを無料で試す(14日間)

Yodeckを無料で試す(30日間)