crontap-ai-built-apps について
アプリビルダーで開発する人向けに、デプロイ済みアプリの定期 HTTP ジョブ作成を案内するスキルです。保護されたエンドポイント、冪等性、Crontap によるスケジュール設定と実行確認を扱います。
主な機能
- 01定期処理と永続的な副作用の設計
- 02シークレットで保護されたエンドポイントの作成
- 03Crontap によるスケジュール作成
- 04未実行監視用ハートビートの設定
- 05スケジュール履歴とアプリログの確認
活用シーン
- 01日次レポートの定期配信
- 02リクエスト再送による副作用の重複防止
- 03エンドポイントの認証と実行結果の確認
MCP 対応
Crontap MCP を使ってハートビートと HTTP スケジュールを作成します。Ultra を利用できるアカウントでは、Raw API も使用できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ crontap/ skills --skill crontap-ai-built-appsインストール後、Claude Code で/crontap-ai-built-appsを入力して読み込まれたか確認します。
詳細
AI で構築したアプリの定期実行
デプロイ済みアプリは HTTP エンドポイントを公開する必要があります。Crontap が時刻を管理し、そのエンドポイントを呼び出します。ビルダーチャットはコードの作成に使用するものであり、定期プロンプトを本番環境で実行するためのものではありません。
前提条件
必須ツールを使用する前に、利用可能かどうかを確認してください。不足しているものがあれば、作業を中止し、ユーザーに以下の 2 つの選択肢だけを提示してください。
https://mcp.crontap.com/mcpで Crontap MCP に接続します。MCP はすべての Crontap ティアで利用できます。$CRONTAP_CLIENT_IDと$CRONTAP_API_KEYを設定して、raw API を使用します。raw API の利用には Ultra が必要です。
どちらかをユーザーが選択するまでは、方法を黙って選んだり、作業を続行したりしないでください。
- ビルダーのデプロイ済みサーバーまたは関数のランタイムを特定します。
- 対象を絞った定期処理と、その永続的な副作用を定義します。
- サーバー専用の cron シークレットと冪等性ストレージを追加します。
- 本番 URL と IANA タイムゾーンを確認します。
ビルダープロンプト
このプロンプトをアプリのフレームワークに合わせて調整します。
Create a POST /api/jobs/daily-report endpoint. Before any work, compare the
Authorization bearer value with the server-only CRON_SECRET environment
variable and return 401 on mismatch. Persist an idempotency key for the current
logical reporting day before creating side effects. Queue long work durably.
Return JSON with a bounded status and no secrets. Add tests for unauthorized,
first-run, and duplicate-run behavior.
生成されたコードを確認します。シークレットの照合と冪等性の処理が、ブラウザーのコードではなくサーバー側で行われていることを検証します。
ワークフロー
- ビルダーで保護されたエンドポイントを生成し、内容を確認します。
- デプロイして、認証済みと未認証のテストを実行します。
- 必要に応じて、独立した実行記録用のハートビートを作成します。
- 保護されたエンドポイントを使ってスケジュールを作成します。
- Crontap とアプリケーションのログの両方で、初回実行を確認します。
MCP の例
実行漏れの監視が役立つ場合は、まずハートビートを作成します。
{
"tool": "create_heartbeat",
"arguments": {
"name": "Daily report delivery",
"periodMinutes": 1440,
"graceMinutes": 30
}
}
返された ping URL は安全に保管してください。スケジュールの結果を通知する webhook に接続するか、永続的な処理が完了した後にデプロイ済みエンドポイントから呼び出すことができます。
HTTP スケジュールを作成します。
{
"tool": "create_schedule",
"arguments": {
"url": "https://app.example.com/api/jobs/daily-report",
"text": "every day at 08:00",
"timezone": "America/New_York",
"method": "POST",
"headers": {
"Authorization": "Bearer <cron-secret-from-secure-store>",
"Content-Type": "application/json"
},
"body": {
"source": "crontap"
},
"label": "AI-built app daily report"
}
}
REST による代替方法
REST の利用には Ultra API アクセスが必要です。
curl --fail-with-body https://api.crontap.com/v1/schedule \
-X POST \
-H "ClientId: $CRONTAP_CLIENT_ID" \
-H "ApiKey: $CRONTAP_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"url": "https://app.example.com/api/jobs/daily-report",
"interval": "0 8 * * *",
"timezone": "America/New_York",
"verb": "POST",
"headers": {
"Authorization": "Bearer <cron-secret-from-secure-store>",
"Content-Type": "application/json"
},
"data": {"source": "crontap"},
"label": "AI-built app daily report"
}'
Ultra 以外の接続済みアカウントでは MCP を使用してください。
検証
- エンドポイントがサーバー側にあり、認証前には利用できないことを確認します。
- 同一の論理期間に対する重複リクエストで、副作用が 1 回だけ発生することを確認します。
- Crontap の初回実行と、対応するアプリケーションの記録を確認します。
- ハートビートを使用する場合は、成功経路と明示的な失敗経路を個別に検証します。
安全性とプランの制限
- cron シークレットやハートビート URL をクライアント側の環境変数に含めないでください。
- プレビュー環境や開発環境のデプロイ URL をスケジュールしないでください。
- Crontap はビルダーのセッションを開いたままにせず、プロンプトも開始しません。
- 作成時に上限または実行頻度の下限に達した場合は、返された 4 つの選択肢からなる段階案と、実行可能な最小の選択肢を提示してください。
トラブルシューティング
- 404 は、ビルダーがサーバールートをデプロイしていないことを示している場合があります。
- 401 は、デプロイ環境と Crontap で異なるシークレットが使われていることを示します。
- プラットフォームのスリープやコールドスタートによりタイムアウトが発生する場合があります。時間のかかる処理はキューに登録し、永続化してください。
- 副作用が重複する場合、エンドポイントの冪等性境界が不完全です。