mcpField
C
crontap-ai-built-apps

crontap-ai-built-apps

github.com/crontap云与 DevOps1936 次安装6 周前更新
代码仓库

关于 crontap-ai-built-apps

面向在应用构建器中开发应用的用户,指导为已部署应用创建定时 HTTP 作业。重点涵盖受保护端点、幂等处理、Crontap 调度与运行验证。

主要功能

  1. 01规划定时操作与持久化副作用
  2. 02构建带密钥保护的 HTTP 端点
  3. 03使用 Crontap 创建定时任务
  4. 04配置心跳以监测漏执行
  5. 05检查调度记录与应用日志

适用场景

  1. 01为每日报告设置定时投递
  2. 02防止重复请求产生重复副作用
  3. 03验证部署端点的授权与运行结果

MCP 相关

通过 Crontap MCP 创建心跳和 HTTP 调度;也可使用需 Ultra 权限的原始 API。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/crontap/skills --skill crontap-ai-built-apps

安装后在 Claude Code 中输入/crontap-ai-built-apps确认已加载。

详细介绍

AI 构建应用的定期任务

已部署的应用必须提供 HTTP 端点。Crontap 负责计时并调用该端点。构建器聊天用于创建代码,而不是作为定期提示词的生产运行时。

前置条件

使用所需工具前,请检查它们是否可用。如果缺少任何工具,请停止操作,并只向用户提供以下两个选项:

  1. 连接 Crontap MCP:https://mcp.crontap.com/mcp。所有 Crontap 套餐均支持 MCP 访问。
  2. 为原始 API 配置 $CRONTAP_CLIENT_ID 和 $CRONTAP_API_KEY。原始 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.

检查生成的代码。确认密钥比对和幂等性处理发生在服务端,而非浏览器代码中。

工作流

  1. 在构建器中生成并检查受保护的端点。
  2. 部署端点并进行授权和未授权测试。
  3. 可以选择创建心跳,以独立记录运行情况。
  4. 使用受保护的端点创建计划任务。
  5. 在 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。

验证

  • 确认端点位于服务端,且未经身份验证时无法访问。
  • 确认同一逻辑周期内的重复请求只会产生一次副作用。
  • 验证 Crontap 的首次运行情况及对应的应用记录。
  • 如果使用心跳,请分别验证成功和明确失败的路径。

安全与套餐限制

  • 切勿将 cron 密钥或心跳 URL 放入客户端环境变量中。
  • 避免安排预览或开发环境的部署 URL。
  • Crontap 不会保持构建器会话打开,也不会发起提示词。
  • 如果创建任务时触及上限或频率下限,请提供返回的四档选项以及最小可行选项。

故障排除

  • 404 通常意味着构建器没有部署服务端路由。
  • 401 表示已部署环境与 Crontap 使用的密钥不同。
  • 平台休眠或冷启动可能导致超时。请将耗时较长的工作持久排队。
  • 副作用重复表示端点的幂等性边界不完整。

参考资料

评论

支持 Markdown