MCP Cron
MCP 服务器,用于调度和管理任务。 (MCP fúwùqì, yòng yú diàodù hé guǎnlǐ rènwù.)
jolks
README
MCP Cron
模型上下文协议 (MCP) 服务器,用于通过标准化 API 调度和管理任务。它利用 go-mcp SDK,通过 MCP 协议提供任务调度功能。
特性
- 使用 cron 表达式调度任务
- 管理任务
- 任务执行并捕获命令输出
- MCP 协议支持,可与 AI 模型和应用程序无缝集成
安装
从源码构建
前提条件
- Go 1.22.2 或更高版本
# 克隆仓库
git clone https://github.com/jolks/mcp-cron.git
cd mcp-cron
# 将应用程序构建为 mcp-cron 二进制文件
go build -o mcp-cron cmd/mcp-cron/main.go
用法
服务器支持两种传输模式:
- SSE (服务器发送事件):基于 HTTP 的默认传输方式,适用于浏览器和网络客户端
- stdio: 标准输入/输出传输,用于直接管道和进程间通信
客户端 | 配置文件位置 |
---|---|
Cursor | ~/.cursor/mcp.json |
Claude Desktop (Mac) | ~/Library/Application Support/Claude/claude_desktop_config.json |
Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
SSE
# 使用 HTTP SSE 传输启动服务器(默认模式)
# 默认为 localhost:8080
./mcp-cron
# 使用自定义地址和端口启动
./mcp-cron --address 127.0.0.1 --port 9090
配置文件示例
{
"mcpServers": {
"mcp-cron": {
"url": "http://localhost:8080/sse"
}
}
}
stdio
stdio 传输特别适用于:
- Claude Desktop,它尚未正式支持 SSE。请参阅 https://github.com/orgs/modelcontextprotocol/discussions/16
- 直接管道到/从其他进程
- 与 CLI 工具集成
- 在没有 HTTP 的环境中进行测试
- Docker 容器集成
启动 Cursor IDE 和 Claude Desktop 后,它将自动启动服务器
配置文件示例
{
"mcpServers": {
"mcp-cron": {
"command": "<mcp-cron 二进制文件所在路径>/mcp-cron",
"args": ["--transport", "stdio"]
}
}
}
命令行参数
支持以下命令行参数:
参数 | 描述 | 默认值 |
---|---|---|
--address |
服务器绑定的地址 | localhost |
--port |
服务器绑定的端口 | 8080 |
--transport |
传输模式:sse 或 stdio |
sse |
--log-level |
日志级别:debug 、info 、warn 、error 、fatal |
info |
--log-file |
日志文件路径 | stdout |
--version |
显示版本信息并退出 | false |
环境变量
支持以下环境变量:
环境变量 | 描述 | 默认值 |
---|---|---|
MCP_SERVER_ADDRESS |
服务器绑定的地址 | localhost |
MCP_SERVER_PORT |
服务器绑定的端口 | 8080 |
MCP_SERVER_TRANSPORT |
传输模式:sse 或 stdio |
sse |
MCP_SERVER_NAME |
服务器名称 | mcp-cron |
MCP_SERVER_VERSION |
服务器版本 | 0.1.0 |
MCP_SCHEDULER_MAX_CONCURRENT |
最大并发任务数 | 5 |
MCP_SCHEDULER_DEFAULT_TIMEOUT |
任务执行的默认超时时间 | 10m |
MCP_SCHEDULER_EXECUTION_DIR |
执行任务的目录 | ./ |
MCP_LOGGING_LEVEL |
日志级别:debug 、info 、warn 、error 、fatal |
info |
MCP_LOGGING_FILE |
日志文件路径 | stdout |
日志记录
使用默认的 SSE 传输运行时,日志将输出到控制台。
使用 stdio 传输运行时,日志将重定向到 mcp-cron.log
日志文件,以防止干扰 JSON-RPC 协议:
- 日志文件位置:与
mcp-cron
二进制文件相同的位置。 - 任务输出、执行详细信息和服务器诊断信息将写入此文件。
- stdout/stderr 流仅用于协议消息,保持清洁。
可用的 MCP 工具
服务器通过 MCP 协议公开了几个工具:
list_tasks
- 列出所有计划的任务get_task
- 按 ID 获取特定任务add_task
- 添加新的计划任务update_task
- 更新现有任务remove_task
- 按 ID 删除任务enable_task
- 启用已禁用的任务disable_task
- 禁用已启用的任务
任务格式
任务具有以下结构:
{
"id": "task_1234567890",
"name": "示例任务",
"schedule": "0 */5 * * * *",
"command": "echo '任务已执行!'",
"description": "一个每 5 分钟运行一次的示例任务",
"enabled": true,
"lastRun": "2025-01-01T12:00:00Z",
"nextRun": "2025-01-01T12:05:00Z",
"status": "completed",
"createdAt": "2025-01-01T00:00:00Z",
"updatedAt": "2025-01-01T12:00:00Z"
}
任务状态
任务可以具有以下状态值:
pending
- 任务尚未运行running
- 任务当前正在运行completed
- 任务已成功完成failed
- 任务在执行期间失败disabled
- 任务已禁用,不会按计划运行
Cron 表达式格式
调度程序使用 github.com/robfig/cron/v3 库来解析 cron 表达式。 该格式包括秒:
┌───────────── second (0 - 59) (可选)
│ ┌───────────── minute (0 - 59)
│ │ ┌───────────── hour (0 - 23)
│ │ │ ┌───────────── day of the month (1 - 31)
│ │ │ │ ┌───────────── month (1 - 12)
│ │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
│ │ │ │ │ │
│ │ │ │ │ │
* * * * * *
例子:
0 */5 * * * *
- 每 5 分钟一次(在 0 秒时)0 0 * * * *
- 每小时一次0 0 0 * * *
- 每天午夜0 0 12 * * MON-FRI
- 每个工作日中午
开发
项目结构
mcp-cron/
├── cmd/
│ └── mcp-cron/ # 主应用程序入口点
├── internal/
│ ├── config/ # 配置处理
│ ├── errors/ # 错误类型和处理
│ ├── executor/ # 命令执行功能
│ ├── logging/ # 日志记录实用程序
│ ├── scheduler/ # 任务调度
│ ├── server/ # MCP 服务器实现
│ └── utils/ # 杂项实用程序
├── go.mod # Go 模块定义
├── go.sum # Go 模块校验和
└── README.md # 项目文档
构建和测试
# 构建应用程序
go build -o mcp-cron cmd/mcp-cron/main.go
# 运行测试
go test ./...
# 运行测试并检查覆盖率
go test ./... -cover
许可证
此项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
鸣谢
- ThinkInAIXYZ/go-mcp - Model Context Protocol 的 Go SDK
- robfig/cron - Go 的 Cron 库
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。