Token导航 LogoToken导航TokenDH.com
Task Trigger MCP logo
AI代理未说明官方级别未说明来源级核验

Task Trigger MCP

MCP Server

一个自包含的MCP服务器,允许AI代理注册、管理和执行定时和事件驱动的任务,无需运行时依赖,支持跨平台运行。

工具数

13

提示词数

0

GitHub Stars

1

资源数

0
RustClaude跨平台Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

UniverLab

提供方

UniverLab

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

任务触发器mcp

![CI](https://github.com/JheisonMB/task-trigger-mcp/actions/workflows/ci.yml) ![Release](https://github.com/JheisonMB/task-trigger-mcp/actions/workflows/release.yml) ![Crates.io](https://crates.io/crates/task-trigger-mcp) ![License: MIT](LICENSE)

一个独立的MCP服务器,允许AI代理注册、管理和执行 预定的事件驱动的 任务。单一静态二进制文件。没有运行时依赖关系。跨平台(Linux/WSL、macOS)。

你的经纪人说 *“每天上午9点运行测试”* --该模型将其转换为cron表达式,二进制文件在内部处理调度、文件监视、CLI调用、日志轮换和其他一切。该代理从不编写bash脚本或接触crontab。

______________________________________________________________________

运作原理

graph TB
    subgraph daemon["task-trigger-mcp daemon"]
        MCP["MCP Server
Streamable HTTP :7755"]
        SCHED["Cron Scheduler
(internal, tokio)"]
        WE["Watcher Engine
(notify crate)"]
        DB[(SQLite
tasks.db)]
        MCP  DB
        SCHED  DB
        WE  DB
        SCHED -- "on schedule" --> EXEC
        WE -- "on file event" --> EXEC
        EXEC["Executor"]
    end

    Agent["MCP Client
(OpenCode, Kiro, Copilot,
Claude Desktop)"] -- "Streamable HTTP / stdio" --> MCP
    EXEC --> CLI["Headless CLI
(opencode run / kiro-cli / copilot)"]

    style daemon fill:#1a1a2e,stroke:#16213e,color:#eee
    style Agent fill:#0f3460,stroke:#16213e,color:#eee
    style CLI fill:#e94560,stroke:#16213e,color:#eee

关键属性:代理可以自由连接和断开连接。守望者继续奔跑。计划任务不断触发。守护进程是真相的来源。

______________________________________________________________________

安装

快速安装(推荐)

curl -fsSL https://raw.githubusercontent.com/JheisonMB/task-trigger-mcp/main/install.sh | sh

这将为您的平台下载最新的预构建二进制文件并将其安装到 ~/.local/bin不需要Rust工具链。

您可以自定义安装:

# Pin a specific version
VERSION=1.0.0 curl -fsSL https://raw.githubusercontent.com/JheisonMB/task-trigger-mcp/main/install.sh | sh

# Install to a custom directory
INSTALL_DIR=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/JheisonMB/task-trigger-mcp/main/install.sh | sh

通过货物

cargo install task-trigger-mcp

可用的 克拉特斯.io.

来源

git clone https://github.com/JheisonMB/task-trigger-mcp.git
cd task-trigger-mcp
cargo build --release
# Binary at target/release/task-trigger-mcp

GitHub 发布

检查 发布 预编译二进制文件页面(Linux x86_64、macOS x86_64/ARM64、Windows x86_63)。

______________________________________________________________________

MCP客户端配置

将此添加到您的OpenCode配置文件中(~/.opencode/config.json):

{
  "mcp": {
    "task-trigger": {
      "type": "local",
      "command": ["task-trigger-mcp"],
      "args": ["stdio"],
      "enabled": true
    }
  }
}

注: 这将在stdio模式下运行任务触发器mcp。当OpenCode断开连接时,计划任务将暂停。对于持久任务执行,请单独运行守护进程:

task-trigger-mcp daemon start

并重新配置以使用远程MCP:

{
  "mcp": {
    "task-trigger": {
      "type": "remote",
      "url": "http://localhost:7755/mcp",
      "enabled": true
    }
  }
}

______________________________________________________________________

快速开始

# 1. Start the daemon
task-trigger-mcp daemon start

# 2. Check it's running
task-trigger-mcp daemon status

# 3. Your agent now has access to 12 task management tools

守护进程是一个长时间运行的进程,它拥有:

  1. MCP服务器 (端口7755上的流式HTTP)——这样代理就可以连接和调用工具
  2. 内部Cron调度程序 (tokio)-事件驱动,休眠到下一个任务到期并执行它
  3. 文件监视引擎 (notify crate)--监视文件/目录的更改并触发执行
  4. SQLite数据库 --保存所有任务/观察者定义、运行历史和日志

不依赖于 crontab, launchd或任何OS调度器。一切都在守护进程内部运行。

守护进程停止时会发生什么?

组件行为
预定任务停止执行。当守护进程重新启动时,它们会恢复。
文件监视器停止监控。它们在重新启动时从SQLite重新加载。
任务定义坚持使用SQLite。什么都没有丢失。

如何使其在重启后存活

task-trigger-mcp daemon install-service

这会将守护进程安装为启动时自动启动的系统服务:

  • Linux/WSL:创建systemd用户单元并启用延迟(在没有活动登录的情况下运行)
  • macOS:创建登录时启动的launchd代理

要删除服务,请执行以下操作:

task-trigger-mcp daemon uninstall-service

或者,添加 task-trigger-mcp daemon start 到您的shell启动文件(.bashrc, .zshrc).

______________________________________________________________________

MCP工具

服务器向代理公开了12个工具:

工具说明
task_add使用5字段cron表达式注册计划任务(*/5 * * * *, 0 9 * * 1-5).支持 timeout_minutes 用于执行锁定。
task_watch监视文件/目录以创建、修改、删除或移动事件。支持 timeout_minutes 用于执行锁定。
task_report报告正在运行的任务的执行状态。由代理人致电 run_id, status (in_progress, success, error),以及 summary.
task_update修改现有任务或观察者(计划、提示、事件等),而不删除和重新创建它
task_list列出所有计划任务,包括状态、上次运行和到期信息
task_watchers列出所有具有状态和触发计数的文件监视器
task_remove完全删除任务或观察者
task_unwatch暂停文件监视器而不删除它
task_enable重新启用已禁用的任务或监视器
task_disable禁用任务或监视器而不将其删除
task_run在计划之外立即执行任务
task_logs使用可选的行/时间过滤器获取任务或监视器的日志输出
task_status守护进程运行状况:正常运行时间、传输、调度程序状态、活动计数

计划格式(cron)

schedule 领域 task_add 需要一个标准的5字段cron表达式:

┌───────── minute (0-59)
│ ┌─────── hour (0-23)
│ │ ┌───── day of month (1-31)
│ │ │ ┌─── month (1-12)
│ │ │ │ ┌─ day of week (0-6, 0=Sun)
│ │ │ │ │
* * * * *

常见模式:

  • */5 * * * * --每5分钟
  • 0 9 * * * --每天上午9点
  • 0 9 * * 1-5 --工作日上午9点
  • 0 */2 * * * --每2小时
  • 30 14 1,15 * * --1日和15日下午2:30

该模型负责将自然语言(例如“每天上午9点”)转换为cron表达式。工具描述包括指导模型的常见模式。

执行运行和锁定

每个任务执行都会生成一个具有生命周期的唯一运行(UUID):

pending → in_progress → success / error
                      → timeout (if agent doesn't report back)

它是如何工作的:

  1. 当守护进程启动任务时,它会创建一个状态为的运行 pending 并锁定任务
  2. 发送给代理的提示包括呼叫指令 task_report 随着 run_id
  3. 代理人打电话来 task_report(run_id, "in_progress") 立即,然后开始工作
  4. 完成后,代理呼叫 task_report(run_id, "success", summary)task_report(run_id, "error", summary)
  5. 如果在任务锁定时有新的触发器到达,则记录为 missed 并跳过

超时: 每个任务都有一个可配置的 timeout_minutes (默认值:15)。如果代理未在此窗口内报告,则运行标记为 timeout 并且任务在下一次触发时被解锁。这可以防止任务被永久锁定。

观察者的反递归: 锁定机制自然会防止递归循环——如果观察者触发修改被观察文件的CLI,则会跳过第二个触发器,因为任务仍然被锁定。

______________________________________________________________________

使用示例

安排每日试运行

客服:“每天早上9点运行测试套件”

模型调用 task_add:

{
  "id": "daily-tests",
  "prompt": "Run cargo test in the project and report any failures",
  "schedule": "0 9 * * *",
  "cli": "opencode",
  "working_dir": "/home/user/my-project",
  "timeout_minutes": 30
}

关注源代码更改

Agent:“关注src/以获取更改并运行linter”

模型调用 task_watch:

{
  "id": "lint-on-change",
  "path": "/home/user/my-project/src",
  "events": ["create", "modify"],
  "prompt": "Run cargo clippy and fix any warnings",
  "cli": "opencode",
  "recursive": true,
  "debounce_seconds": 5
}

自动过期的临时任务

代理:“在接下来的一个小时里,每分钟检查一次部署状态”
{
  "id": "monitor-deploy",
  "prompt": "Check deployment status and report",
  "schedule": "*/1 * * * *",
  "cli": "opencode",
  "duration_minutes": 60
}

此任务在60分钟后自动禁用。

提示变量

提示在执行时支持变量替换:

  • {{TIMESTAMP}} --当前ISO 8601时间戳
  • {{TASK_ID}} --任务的ID
  • {{LOG_PATH}} --任务日志文件的路径
  • {{FILE_PATH}} --监视的文件路径(仅限监视者)
  • {{EVENT_TYPE}} --发射的事件(仅限观众)

______________________________________________________________________

守护进程管理

task-trigger-mcp daemon start              # start in background
task-trigger-mcp daemon stop               # stop daemon
task-trigger-mcp daemon status             # check if running
task-trigger-mcp daemon restart            # restart
task-trigger-mcp daemon logs               # tail daemon logs
task-trigger-mcp daemon install-service    # install as systemd/launchd service
task-trigger-mcp daemon uninstall-service  # remove the system service

______________________________________________________________________

运行时目录

~/.task-trigger/
  tasks.db              # SQLite database
  daemon.pid            # PID file for daemon management
  daemon.log            # daemon-level logs
  logs/
    .log       # per-task/watcher logs (5MB rotation)

______________________________________________________________________

平台支持

功能Linux/WSLmacOS
守护进程传输可流式HTTP本地主机可流化HTTP本地主机
Cron调度内部(tokio)内部(tokio)
文件查看inotifyFSEvents
服务安装systemd用户单元launchd代理
二进制格式ELF静态(musl)Mach-O

______________________________________________________________________

技术栈

关注板条箱
MCP-SDKrmcp + rmcp-macros
异步运行时tokio
HTTP传输axum
Cron解析cron
文件监视notify
国家rusqlite (捆绑)
序列化serde + serde_json
CLI检测which
UUID生成uuid
日志记录tracing

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

RustClaude跨平台任务调度本地部署AI代理事件驱动定时任务

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

13

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP