mcpField
C
crontap-schedule-http-job

crontap-schedule-http-job

github.com/crontapクラウド・DevOps1934 回インストール6 週間前に更新
リポジトリ

crontap-schedule-http-job について

Crontap で HTTP エンドポイントを定期実行するためのスキルです。時刻のプレビュー、リクエスト設定、ジョブの作成・更新後の実行履歴確認を案内します。

主な機能

  1. 01自然言語の頻度をプレビューして確認
  2. 02HTTP または HTTPS のスケジュール作成
  3. 03既存スケジュールの一部更新
  4. 04ページ分割された実行履歴の取得
  5. 05ステータス、所要時間、タイムアウトの確認

活用シーン

  1. 01日次レポートのエンドポイントを定期呼び出し
  2. 02既存スケジュールの頻度やタイムゾーンを変更
  3. 03初回実行とリクエスト結果を確認

MCP 対応

Crontap MCP でスケジュールのプレビュー、作成、更新と実行履歴の取得を行います。Ultra アカウントでは REST API も代替手段として使えます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/crontap/skills --skill crontap-schedule-http-job

インストール後、Claude Code で/crontap-schedule-http-jobを入力して読み込まれたか確認します。

詳細

HTTP ジョブをスケジュールする

前提条件

必要なツールを使用する前に、利用可能かどうかを確認してください。いずれかが利用できない場合は、そこで停止し、ユーザーに次の2つの選択肢だけを提示してください。

  1. https://mcp.crontap.com/mcp で Crontap MCP に接続します。MCP のアクセスはすべての Crontap プランで利用できます。
  2. 生の API を使用するため、$CRONTAP_CLIENT_ID と $CRONTAP_API_KEY を設定します。生の API へのアクセスには Ultra が必要です。

ユーザーが選択するまで、どちらかを勝手に選んだり、処理を続けたりしないでください。

  • HTTP または HTTPS の絶対エンドポイント、メソッド、実行頻度、IANA タイムゾーンを確認します。
  • エンドポイントでヘッダー、JSON ボディ、または冪等性キーが必要かどうかを尋ねます。
  • 認証情報を URL やログに含めないでください。セキュアストア内の値を参照してください。

ワークフロー

  1. 平易な英語で実行頻度をプレビューし、あらゆる確認事項を解消します。
  2. 解決済みの cron、タイムゾーン、次回実行日時をユーザーに提示します。
  3. text または cron のどちらか一方だけを指定してスケジュールを作成します。
  4. 変更する場合は既存のスケジュールを特定し、変更されたフィールドだけを送信します。
  5. 実行後、保持されている履歴を確認し、エンドポイントの結果を検証します。

MCP の例

保存せずにプレビューします。

{
  "tool": "preview_schedule",
  "arguments": {
    "text": "every weekday at 09:15",
    "timezone": "Europe/Copenhagen"
  }
}

保護された JSON リクエストを作成します。

{
  "tool": "create_schedule",
  "arguments": {
    "url": "https://app.example.com/api/daily-report",
    "text": "every weekday at 09:15",
    "timezone": "Europe/Copenhagen",
    "method": "POST",
    "headers": {
      "Authorization": "Bearer <secret-from-secure-store>",
      "Content-Type": "application/json"
    },
    "body": {
      "source": "crontap"
    },
    "label": "Daily report"
  }
}

スケジュールを部分的に更新します。

{
  "tool": "update_schedule",
  "arguments": {
    "scheduleId": "<schedule-id>",
    "cron": "30 9 * * 1-5",
    "timezone": "Europe/Copenhagen"
  }
}

省略された更新フィールドは、非表示のリクエストシークレットを含め、既存の設定を保持します。空の headers オブジェクトを指定すると、既存のヘッダーが置き換えられ、クリアされます。

直近の実行を読み取ります。

{
  "tool": "get_schedule_history",
  "arguments": {
    "scheduleId": "<schedule-id>",
    "limit": 20
  }
}

返された cursor は変更せずに使用して、次のページをリクエストします。

REST フォールバック

REST は、MCP が利用できず、アカウントに Ultra API アクセスがある場合にのみ使用してください。REST では MCP の別名の代わりに interval、verb、data を使用します。

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/daily-report",
    "interval": "30 9 * * 1-5",
    "timezone": "Europe/Copenhagen",
    "verb": "POST",
    "headers": {
      "Authorization": "Bearer <secret-from-secure-store>",
      "Content-Type": "application/json"
    },
    "data": {"source": "crontap"},
    "label": "Daily report"
  }'

検証

  • 保存された URL、メソッド、cron、タイムゾーン、次回実行日時を確認します。
  • エンドポイントが選択したメソッドを処理し、成功ステータスを返すことを検証します。
  • 初回実行後に履歴を確認し、ステータス、所要時間、タイムアウト、再試行の記録を確認します。

安全性とプランの上限

  • ローカル時刻のスケジュールは、特に DST の前後で、作成前にプレビューします。
  • 関係のない部分更新でヘッダーやインテグレーションを上書きしないでください。
  • 再試行や呼び出しの重複が発生する可能性がある場合は、書き込みエンドポイントを冪等にしてください。
  • プランの上限または実行頻度の下限によって作成できない場合は、4つの選択肢から成る段階的なアップグレード案と、その中で実行可能な最小の選択肢を説明します。

トラブルシューティング

  • 確認を求める応答は失敗ではありません。返された質問をユーザーに尋ねてから、もう一度プレビューします。
  • ターゲットからの 401 または 403 は、通常、エンドポイントの認証情報が期限切れか、不正な形式であることを意味します。
  • タイムアウトは、Crontap が時間内に応答を受け取れなかったことを意味します。再試行回数を増やす前に、エンドポイントの実行時間と下流への呼び出しを確認してください。
  • MCP からの 404 は、スケジュール ID が古くなっていることを意味します。再試行する前にスケジュールを一覧表示してください。

参考資料

コメント