Claude Cron(注:这是一个可能的人名或特定名称,根据上下文,“claudecron”可能是一个复合词或特定项目/人物的名称,这里直接音译为中文,具体含义需结合上下文确定)
在Claude Code中安排任务。根据cron计划、Claude Code钩子或文件变化来运行bash命令、AI提示或斜杠命令。
它的功能
这是一个MCP服务器,它允许你在Claude Code中自动化处理各种任务。你可以:
- 按计划或在文件更改时运行 bash 命令
- 在特定事件发生时触发AI任务(如会话开始)
- 自动执行斜杠命令
- 将任务按依赖关系串联起来
- 对Claude Code事件作出反应(文件编辑、工具使用等)
安装
您需要 Node.js 18 或更高版本。
cd mcp-server
npm install
npm run build配置为MCP服务器
将此添加到您的Claude Code MCP配置中。位置取决于您的操作系统:
- macOS(发音:/ˈmækɒs/ 或 /ˈmækəs/,中文常译为“麦奥斯”或直接使用原名“macOS”):
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"claudecron": {
"command": "node",
"args": ["/absolute/path/to/claudecron/mcp-server/dist/server.js"]
}
}
}替换 /absolute/path/to/claudecron (与)实际路径(一致)。
添加配置后重启Claude代码。
基本用法
一旦MCP服务器运行起来,您就可以在Claude Code内部创建任务。
创建一个计划任务
请Claude创建一个任务:
Create a claudecron task that backs up my database every day at 2 AM克劳德将使用 claudecron_add_task 创建它的工具。以下是它的样子:
{
"name": "Daily Database Backup",
"type": "bash",
"task_config": {
"type": "bash",
"command": "pg_dump mydb > backups/mydb-$(date +%Y%m%d).sql"
},
"trigger": {
"type": "schedule",
"cron": "0 2 * * *",
"timezone": "UTC"
}
}创建一个基于钩子的任务
在编辑文件时运行某些操作:
Create a task that runs prettier whenever I save a TypeScript file这会产生一个类似这样的任务:
{
"name": "Auto-format TypeScript on Save",
"type": "bash",
"task_config": {
"type": "bash",
"command": "prettier --write \"$FILE_PATH\""
},
"trigger": {
"type": "hook",
"event": "PostToolUse",
"conditions": {
"tool_names": ["Write", "Edit"],
"file_pattern": ".*\\.tsx?$"
},
"debounce": "2s"
}
}创建一个人工智能任务
自动运行AI提示:
Create a task that summarizes my git commits when I start a session这会产生:
{
"name": "Session Startup Report",
"type": "subagent",
"task_config": {
"type": "subagent",
"prompt": "Review recent git commits and provide a brief summary of work since last session.",
"inherit_context": true,
"allowed_tools": ["Bash", "Read"]
},
"trigger": {
"type": "hook",
"event": "SessionStart"
}
}任务类型
bash(巴什,一种编程语言或命令行解释器) - 执行shell命令
以完全的环境控制运行任何Shell命令。
适合于构建、测试、文件操作、Git命令、脚本
示例:
{
"type": "bash",
"command": "npm test",
"cwd": "/path/to/project",
"timeout": 60000
}副代理人 - 通过Claude SDK执行提示
运行任何AI提示,享受完整的Claude SDK功能。
适合于代码审查、分析、重构、文档编写、复杂的多步骤工作流程
示例 (内联提示):
{
"type": "subagent",
"prompt": "Review the code changes and summarize",
"model": "claude-sonnet-4.5",
"inherit_context": true,
"allowed_tools": ["Read", "Grep"],
"capture_thinking": true
}示例 (从 .claude/commands/ 加载):
{
"type": "subagent",
"command": "review-pr",
"args": "123",
"stream_output": true
}子代理配置选项:
prompt- 行内提示(支持{{template_vars}})command- 从(某处)加载提示.claude/commands/{command}.mdargs- 要附加到命令的参数model- 要使用的模型(默认:claude-sonnet-4.5)inherit_context- 加载 CLAUDE.md 上下文(默认:true)allowed_tools- 限制可用工具additional_context- 要附加的额外上下文capture_thinking- 捕获思维块(Claude 4.5+)stream_output- 实时流式传输结果max_thinking_tokens- 延长思考令牌限制sdk_options- 覆盖任何SDK选项
触发器
日程 - 基于Cron的调度
{
"type": "schedule",
"cron": "0 9 * * 1-5",
"timezone": "America/New_York"
}钩子 - 对Claude Code事件做出反应
{
"type": "hook",
"event": "PostToolUse",
"conditions": {
"tool_names": ["Write", "Edit"],
"file_pattern": ".*\\.ts$"
},
"debounce": "2s"
}可用的钩子事件:
SessionStart- 当Claude Code启动或恢复时SessionEnd- 当会话结束时PreToolUse- 在使用任何工具之前PostToolUse- 使用任何工具后UserPromptSubmit- 当用户提交一个提示时SubagentStop- 当一个次级代理完成时Stop- 当用户停止使用Claude时PreCompact- 在上下文压缩之前Notification- 自定义通知
文件监视器 - 监视文件变化
{
"type": "file_watch",
"path": "src/**/*.ts",
"debounce": "5s"
}依赖关系 - 在其他任务完成后运行
{
"type": "dependency",
"depends_on": ["task-id-1", "task-id-2"],
"require_all": true
}间隔;间距 - 每X分钟/小时运行一次
{
"type": "interval",
"every": "30m"
}手册 - 仅在明确触发时运行
{
"type": "manual",
"description": "Run this manually via claudecron_run_task"
}MCP 工具
一旦服务器运行,这些工具即可在Claude Code中使用:
claudecron_add_task- 创建一个新任务claudecron_list_tasks- 列出所有任务claudecron_get_task- 获取任务详情claudecron_update_task- 更新任务claudecron_delete_task- 删除任务claudecron_run_task- 手动运行任务claudecron_list_executions- 查看执行历史claudecron_get_execution- 获取执行详情claudecron_get_execution_progress- 检查运行中的任务状态claudecron_trigger_hook- 手动触发钩子(用于测试)claudecron_get_tool_analytics- 获取使用统计数据
管理任务
列出所有任务:
Show me all my claudecron tasks手动运行任务:
Run the task named "Daily Database Backup"检查执行历史记录:
Show me the last 10 task executions删除任务:
Delete the task named "Auto-format TypeScript on Save"子代理任务配置
如果您进行了配置,子代理任务可以使用MCP工具。创建一个 .mcp.json 项目中的文件:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}现在,您项目中运行的AI任务可以使用这些MCP工具。注意:这与Claude Code的主要MCP配置不同。任务在它们自己的执行环境中运行。
示例
检查一下 examples/hook-tasks.json 文件中包含更多任务示例,包括:
- 保存时自动格式化
- 文件更改时运行测试
- 会话启动报告
- 生成提交信息
- 会话结束时的清理工作
- 保存时进行代码检查
- 基于配置更改进行构建
- 每周依赖报告
重要注意事项
- 任务在隔离环境中运行
- 它们默认情况下无法访问Claude Code的MCP服务器
- 使用
.mcp.json在您的项目中,为AI任务授予访问特定MCP服务器的权限 - 钩子任务可以通过模板变量查看文件路径,例如
$FILE_PATH - Cron 表达式支持秒级(6个字段)或标准的5字段格式
- 时区使用IANA格式(例如。,
America/New_York,Europe/London)
发展
构建:
npm run build观看模式:
npm run dev运行测试:
npm test类型检查:
npm run type-check存储
任务和执行历史存储在SQLite中。默认位置是 ~/.claude/claudecron/tasks.db。
许可证
麻省理工学院(MIT)
