mcpField
R
Rhylthyme

Rhylthyme

远程服务
rhylthyme.com生产力05 天前更新

关于 Rhylthyme

Rhylthyme MCP server 可将烹饪、实验室流程、活动和锻炼等多轨计划转换为可执行时间线,面向使用 AI 助手规划流程的人。它会验证计划、分析时间安排与资源冲突,并发布供手机查看的实时时间线。

主要功能

  1. 01构建多轨计划
  2. 02验证计划结构
  3. 03分析时间安排与资源冲突
  4. 04发布实时交互时间线
  5. 05提供烹饪、实验室、活动和健身端点

适用场景

  1. 01安排多道菜同时完成
  2. 02规划含重叠孵育步骤的实验流程
  3. 03协调活动筹备与时间节点
  4. 04设计多人共享器材的训练计划

MCP 相关

该 MCP 服务向客户端提供计划验证、时间表分析和可视化等工具,并按烹饪、实验室、活动、健身等场景提供端点。客户端可连接托管服务;账户功能通过 OAuth 2.1 或登录令牌授权。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.rhylthyme.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

19
参数类型必填说明
programobject是程序 JSON:{programId, name, environmentType?, actors?, tracks: [{trackId, name, steps: [{stepId (unique program-wide), name, task?, duration, startTrigger, replicates?, choice?}]}], resourceConstraints: [{task, maxConcurrent}], metadata?}。duration:{type:'fixed', seconds} | {type:'variable', minSeconds, maxSeconds, defaultSeconds} | {type:'indefinite', defaultSeconds};seconds 可以是数字或类似 '5m'、'1h30m' 的字符串。startTrigger:{type:'programStart'} | {type:'programStartOffset', offsetSeconds} | {type:'afterStep', stepId, offsetSeconds?, event?:'start', instances?:'each'|'all'} | {type:'afterStepWithBuffer', stepId, bufferSeconds} | {type:'manual'}。同一轨道中的步骤不会重叠;每个 task 都需要 resourceConstraint。规则和示例:rhylthyme://guide/authoring;完整 schema:rhylthyme://schema/program。

详细介绍

Rhylthyme MCP 服务

Claude Connectors Directory Listed on mcpservers.org

一个用于安排由人执行的计划的 Model Context Protocol 服务:烹饪多道菜并让它们同时完成、执行含有重叠孵育步骤的实验台操作规程、组织活动、进行锻炼。Agent 描述流程,服务会验证并分析生成的计划,然后将其发布为 rhylthyme.com 上的实时时间线,供人们在手机上查看并执行。

本仓库是运行于 mcp.rhylthyme.com 的服务源代码。它与 rhylthyme-server 应用中的 mcp-api/ 代码相同,并在此附上所需的静态资源,方便阅读、测试和自托管。

试试看:请求一套锻炼计划

连接服务(在 claude.ai、Claude Desktop 或移动端中,从 Claude Connectors Directory 添加 Rhylthyme;在 Claude Code 中,先运行 /plugin marketplace add rhylthyme/rhylthyme-mcp, 然后运行 /plugin install rhylthyme@rhylthyme;在其他任何地方,将 https://mcp.rhylthyme.com/gym/mcp 添加为连接器),然后用日常语言描述你的需求:

两个人在车库健身房锻炼:一只壶铃、一根引体向上杆、一根跳绳。 30 分钟,做两轮,而且不能有人站着等器材。 做成 Rhylthyme 时间线。

你不用写 JSON。助手会来写,服务则会确保内容无误。使用这条提示词后,Claude 调用了三个工具:

调用返回内容
validate_program✅ Program is valid — 2 tracks, 20 steps, 30m makespan.
analyze_scheduleResource conflicts: none. 每个站点的容量都是 1,这证明 Alex 和 Sam 不会在同一时刻都需要用壶铃
visualize_schedule一个链接:gym.rhylthyme.com?share=4995ef1b88744e80,其中有休息计时器和间歇提示音,还有一张供聊天中查看的文本图表:
                0                       15m                    30m
Alex           │░Warm-…░▒S…▒░Pu…░▒Ju…▒░░░▒Sw…▒░Pu…░▒Ju…▒░░░▒St…▒│
Sam            │░Warm-…░▒P…▒░Ju…░▒Sw…▒░░░▒Pu…▒░Ju…░▒Sw…▒░░░▒St…▒│

询问“给我看看图片”,preview_timeline 就会在聊天中返回一张图片。 若想按站点着色,让轮换安排一目了然,请保存助手编写的计划(我们的版本位于 examples/recipe/garage-circuit.json),然后运行:

npx -y github:rhylthyme/rhylthyme-timeline garage-circuit.json -o garage-circuit.png \
  --style web --palette tableau --color-by task

双人车库循环训练,按站点着色:壶铃、引体向上杆和跳绳不会被两人同时占用

接着可以继续提出要求:“加上第三个人”“我们只有 20 分钟”“把跳绳换成波比跳”。助手会编辑计划,服务会再次检查。

本仓库与 rhylthyme

两个仓库的功能相关,容易混淆。本仓库是AI 助手对话的服务。rhylthyme(原名 rhylthyme-cli-runner)是由人输入的命令。

rhylthyme-mcprhylthyme
它是什么MCP 服务:AI 助手调用的工具命令行程序:rhylthyme 命令
谁在使用Claude、ChatGPT、Cursor 或任何 MCP 客户端,代表某个人使用在终端操作的人、脚本或 CI
运行位置托管在 mcp.rhylthyme.com;无需安装在你的机器上:pip install rhylthyme
语言JavaScript (Node 20+)Python 3.12+
输入助手在对话中构建的程序磁盘上的程序文件(JSON 或 YAML)
验证程序validate_programrhylthyme validate(可离线运行)
时间安排、冲突、截止时间analyze_schedulerhylthyme analyze(会请求服务)
发布实时日程visualize_schedulerhylthyme publish(会请求服务)
使用计时器运行日程不支持:它会返回网页日程的链接rhylthyme run,一个交互式终端运行器
运行记录、校准读取保存在账户中的运行记录在本地记录;rhylthyme runs、rhylthyme calibrate
目录搜索、导入、账户库支持不支持
仓库中还包含rhylthyme-mcp PyPI 包(连接托管服务的 stdio 桥接工具)、Claude 插件市场Claude 技能的源代码、提示词评估工具及其结果、rhylthyme mcp-test

它们的配合方式:命令行工具是此服务的一个客户端。rhylthyme analyze、publish、generate 和 mcp-test 会调用 mcp.rhylthyme.com 上的 MCP;rhylthyme validate、run、runs 和 calibrate 则不会访问网络。两者都有各自的验证器,用于验证相同的程序架构(此处用 JavaScript,另一处用 Python),因此程序发布时会再次检查。

如果要连接助手、读取或自托管服务,或修改工具,请使用本仓库。如果你有程序文件和终端、想在终端使用计时器,或想保留运行记录,请使用 rhylthyme。

请区分这两个名称:PyPI 上的 rhylthyme-mcp 是此服务的 stdio 桥接工具(命令为 rhylthyme-mcp,源代码位于 python/);PyPI 上的 rhylthyme 是命令行工具(命令为 rhylthyme;在 0.5.0 之前以 rhylthyme-cli-runner 的名称发布)。程序格式本身定义在 rhylthyme-spec 中,示例见 rhylthyme-examples。

端点

URL服务名称提供
https://mcp.rhylthyme.com/mcprhylthyme-mcp通用日程安排
https://mcp.rhylthyme.com/kitchen/mcprhylthyme-kitchen-mcpcook_recipe、whats_for_dinner
https://mcp.rhylthyme.com/lab/mcprhylthyme-lab-mcprun_protocol、random_protocol、Benchling 导入
https://mcp.rhylthyme.com/events/mcprhylthyme-events-mcpplan_event、random_event_template
https://mcp.rhylthyme.com/gym/mcprhylthyme-gym-mcpstart_workout、surprise_workout

传输方式:无状态的 Streamable HTTP。访问公共目录或使用纯工具无需登录;账户工具通过 OAuth 2.1 使用用户的 Rhylthyme 账户,或者在不支持 OAuth 的客户端中粘贴 login 工具提供的令牌。在 initialize 时会发送描述工作流的服务 instructions。

快速入门:通过命令行创建时间线

rhylthyme CLI 可以直接驱动此服务:用自然语言描述你的需求,即可获得实时时间线 URL、程序文件,或两者兼得。

pip install rhylthyme                        # Python 3.12+
rhylthyme login                              # opens rhylthyme.com in your browser
rhylthyme generate "roast chicken, potatoes and green beans for 6" \
    -e kitchen --by 19:00 --with "one oven, four burners, one cook"

login 会通过浏览器为你登录,并将会话交给 127.0.0.1 上的一次性监听器。登录信息保存在 ~/.config/rhylthyme/credentials.json(模式为 0600)中,并会自动续期,因此只需登录一次。然后,generate 会调用此服务上的两个工具:

  1. import_text 会在 -e 指定的端点(/kitchen/mcp、/lab/mcp……)上,将请求转换为经过验证的多轨程序。它会在服务端运行四轮模型调用,因此需要登录;耗时 20–60 秒,且每天有调用次数上限。
  2. visualize_schedule 会发布该程序,并返回对应子域名上的实时时间线 URL。

它会输出 ASCII 甘特图、行程安排和 URL。更多示例:

# A lab protocol from a file; save the program and run it in the terminal
rhylthyme generate -e lab -f western_blot.txt -o blot.json --run

# Pipe a run sheet in; print only the URL
pbpaste | rhylthyme generate -e events --by "doors at 18:30" -q

# Program JSON only, no published timeline; machine-readable output
rhylthyme generate -e gym "45 minute upper-body circuit, two people, one bench" --no-publish --json
标志含义
-e, --envgeneric(默认)、kitchen、lab、events 或 gym。选择端点和时间线站点。
--by所有事项必须完成的时间:19:00、dinner at 7pm。
--with用你自己的话说明设备和人员限制。
-f, --file从文件读取请求或源文本;也可使用 - 从标准输入读取。
-o, --output保存程序 JSON。
--run随后在终端运行器中运行程序。
--open在浏览器中打开实时时间线。
--no-publish、--json、-q跳过发布;输出 JSON;仅输出 URL。

要端到端检查某个服务(此服务或你自己的部署):

rhylthyme mcp-test                                   # all five hosted endpoints, read-only
rhylthyme mcp-test --url http://localhost:3000/mcp -e generic --publish

rhylthyme whoami 会显示已保存的登录信息;rhylthyme logout 会将其清除。在没有浏览器的机器上,将 RHYLTHYME_TOKEN 设置为从 https://www.rhylthyme.com/mcp/auth 获取的访问令牌(有效期约一小时),或运行 rhylthyme login --token <token>。RHYLTHYME_MCP_URL 用于指定 CLI 连接的可自托管服务。

连接

Claude Code

claude mcp add --transport http rhylthyme https://mcp.rhylthyme.com/mcp
claude mcp add --transport http rhylthyme-kitchen https://mcp.rhylthyme.com/kitchen/mcp

Claude Desktop / claude.ai:选择 Customize → Connectors,搜索 Rhylthyme 并点击 Connect。要连接上方的其他 URL 之一,请选择 Customize → Connectors → Add → Add custom connector → 粘贴 URL → Continue。公共工具可立即使用;只有在需要保存到自己的账户时,才运行 login。

Claude Code 插件(托管服务,以及一个用于指导 Claude 编写、验证和分析日程的技能):

这是两个命令。先单独发送第一条:

/plugin marketplace add rhylthyme/rhylthyme-mcp

待显示已添加市场后,再发送第二条:

/plugin install rhylthyme@rhylthyme

ChatGPT:选择 Settings → Apps & Connectors → Advanced settings → 开启 Developer mode,然后使用上方的某个 URL 作为 MCP 服务 URL,Create 一个连接器。没有连接器时,ChatGPT 无法调用这些工具,只能改为浏览网站。

Cursor(.cursor/mcp.json):

{ "mcpServers": { "rhylthyme": { "url": "https://mcp.rhylthyme.com/kitchen/mcp" } } }

Claude API(MCP 连接器,单次请求):

import anthropic
client = anthropic.Anthropic()
resp = client.beta.messages.create(
    model="claude-opus-5", max_tokens=16000,
    betas=["mcp-client-2025-11-20"],
    mcp_servers=[{"type": "url", "url": "https://mcp.rhylthyme.com/kitchen/mcp", "name": "rhylthyme"}],
    tools=[{"type": "mcp_toolset", "mcp_server_name": "rhylthyme"}],
    messages=[{"role": "user", "content": "Plan Thanksgiving for 8 with one oven, dinner at 6pm."}],
)

审查导入结果。 review_program(账户工具)会让模型对照源内容检查已导入的程序,并返回问题,例如时长错误、步骤缺失、顺序不当,或总时长与源内容不符。在 import_from_source 或 import_text 之后调用它,按建议修改,然后重新验证。

只能启动命令的客户端:pip install rhylthyme-mcp 会安装 rhylthyme-mcp 命令,这是一个 stdio 桥接程序,会将每个请求转发到托管服务(源代码位于 python/):

{ "mcpServers": { "rhylthyme": { "command": "rhylthyme-mcp", "args": ["kitchen"] } } }

完全没有 MCP 客户端(使用 shell 的 Agent、脚本):此服务无状态,因此无需握手,也无需账户即可发送单个 POST 请求。

curl -s https://mcp.rhylthyme.com/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"validate_program","arguments":{"program":{"programId":"x","name":"x","tracks":[]}}}}'

以相同方式调用 visualize_schedule,即可在 result.structuredContent.url 中获取实时时间线 URL。也可使用上方快速入门中的 CLI。

工具

工具注释功能
validate_program只读、纯函数结构和调度检查(重复/缺失 ID、悬空引用、循环、同一轨道内重叠、未指定资源约束的任务、无法解析的时长、选择引用)。每项检查结果都包含 code、message 和 fix 提示。返回结构化输出。
analyze_schedule只读、纯函数每个步骤的解析后开始/结束时间、总工期、决定总工期的依赖链、资源冲突时间段、每条轨道的浮动时间,以及并发峰值与声明的参与者数量对比。传入 finishAt 或 startAt(ISO 8601)可指定实际开始时间。返回结构化输出。
visualize_schedule发布验证程序(若程序无效则拒绝,除非设置 allowInvalid),创建分享记录,并返回 Markdown 预览(封面图片、设备、食材、ASCII 甘特图、行程安排、日程检查)、内嵌的时间线 PNG 和实时 URL。返回结构化输出。
preview_timeline发布分享记录仅返回时间线 PNG,不含文字。
search_public_recipes只读在公开目录中进行关键词搜索;environment 用于选择厨房(默认)、实验室、活动或健身房。返回结构化输出。
load_public_recipe只读返回目录条目的完整摘要和实时 URL。
cook_recipe / run_protocol / plan_event / start_workout只读每个垂直领域各执行一次:匹配度最高的目录条目 → 实时 URL。
whats_for_dinner / random_protocol / random_event_template / surprise_workout只读从每个垂直领域的目录中随机选取条目。
import_from_source只读Spoonacular、TheMealDB、protocols.io、Cooklang、Opentrons Protocol API 脚本、Benchling → 已验证的程序 JSON。search 无需令牌;import 和 random 需要用户的令牌。
create_environment纯函数设备限制和参与者类型 → 环境 JSON。
login—返回登录 URL,然后验证粘贴的令牌。
list_my_programs、load_program、save_program账户用户自己的库;save_program 会先进行验证。
get_renderer_source只读Apache-2.0 时间线渲染器的源代码,适用于沙盒会阻止外部脚本的 HTML 工件。

每个工具都设置了注释(readOnlyHint、destructiveHint、idempotentHint、openWorldHint);其中四个工具还声明了 outputSchema 并返回 structuredContent。失败时会设置 isError,并说明下一步该怎么做。

资源和提示词

  • rhylthyme://schema/program:程序 JSON Schema(0.3.0-alpha)
  • rhylthyme://guide/authoring:单页编写规则、触发器词汇表、如何让多条轨道同时结束、重复工作(replicates、每个实例的 instances: "each" 链、"all" 屏障和 maxInFlight)、选择分支
  • rhylthyme://guide/tools:每个工具描述的完整版。工具列表本身控制在约 3,600 个 token,方便保持连接
  • rhylthyme://examples/{breakfast_schedule, lab_experiment, stir_fry_with_choice, hiit_cardio_workout, corporate_presentation, cookies_three_trays}:完整有效的程序(cookies_three_trays 是 0.3.0-alpha 中展示每实例/在途工作机制的示例)
  • 提示词 plan_schedule(goal, finishAt?, constraints?):引导模型完成搜索 → 构建 → 验证 → 分析 → 可视化,并在约束步骤中提及 replicates / instances / maxInFlight

程序的样子

{
  "schemaVersion": "0.1.0",
  "programId": "eggs-and-toast",
  "name": "Eggs and toast",
  "tracks": [
    { "trackId": "eggs", "name": "Eggs", "steps": [
      { "stepId": "whisk", "name": "Whisk", "task": "prep",
        "duration": { "type": "fixed", "seconds": 60 },
        "startTrigger": { "type": "programStart" } },
      { "stepId": "cook", "name": "Cook", "task": "stove",
        "duration": { "type": "variable", "minSeconds": 120, "maxSeconds": 240, "defaultSeconds": 180 },
        "startTrigger": { "type": "afterStep", "stepId": "whisk" } } ] },
    { "trackId": "toast", "name": "Toast", "steps": [
      { "stepId": "toast", "name": "Toast", "task": "toaster",
        "duration": { "type": "fixed", "seconds": 180 },
        "startTrigger": { "type": "afterStep", "stepId": "cook", "event": "start", "offsetSeconds": 60 } } ] }
  ],
  "resourceConstraints": [
    { "task": "prep", "maxConcurrent": 1 },
    { "task": "stove", "maxConcurrent": 2 },
    { "task": "toaster", "maxConcurrent": 1 }
  ]
}

同一条轨道中的步骤按顺序运行;并行工作需放在不同轨道中;每个 task 都需要资源约束;时长和偏移量可使用秒数或 "5m" 这样的字符串。触发器:programStart、programStartOffset、afterStep(结束时触发,或使用 event: "start",并可设置正负偏移量)、afterStepWithBuffer、manual、onAbort,或 {logic: all|any, triggers}。 时长类型:fixed、variable(由执行者提前结束)、indefinite(由执行者结束)。

自托管

git clone https://github.com/rhylthyme/rhylthyme-mcp
cd rhylthyme-mcp
npm install            # Node 20 or newer
npm test                 # SDK in-memory + HTTP entry-point tests, no network
PORT=3000 npm start      # http://localhost:3000/mcp and the four vertical paths
npm run stdio            # the same server over stdio (add kitchen, lab, events or gym)

Stdio 客户端会将其作为本地进程运行,例如在 Claude Desktop 中: {"command": "node", "args": ["/path/to/rhylthyme-mcp/src/stdio.js"]}。

Docker:docker build -t rhylthyme-mcp . && docker run -p 3000:3000 rhylthyme-mcp。 Vercel:在仓库根目录运行 vercel;vercel.json 会将端点 路径重写到函数。

自托管能做什么、不能做什么:验证、时序分析、渲染器、资源和提示词都在你的进程中运行。目录搜索、 分享(visualize_schedule)、导入和账户工具会调用公共 API https://www.rhylthyme.com(mcp-api/index.js 中的 API_BASE),因此 仍依赖托管服务。PNG 预览路由 /api/og/timeline.png 还需要 SUPABASE_URL 和 SUPABASE_ANON_KEY 才能读取共享方案;其他功能均不需要。

目录结构

  • mcp-api/index.js:工具、资源和提示词注册;垂直领域检测;OG 图片路由;Vercel 处理程序
  • mcp-api/schedule.js:验证器和分析器(纯函数)
  • static/js/timeline-render.js:时序引擎和 SVG 甘特图(也以 @rhylthyme/timeline 发布)
  • static/schema/、static/examples/:资源
  • src/index.js:独立 HTTP 运行程序
  • src/stdio.js:独立 stdio 运行程序(相同的工具、资源和提示词)
  • mcp-api/server.json:MCP 注册清单
  • .claude-plugin/marketplace.json、plugins/rhylthyme/:Claude 插件市场和插件(claude plugin validate .);其中的技能是 rhylthyme 中 skills/rhylthyme 的核验副本
  • python/:PyPI 软件包 rhylthyme-mcp,用于连接托管服务的 stdio 桥接程序(cd python && PYTHONPATH=src pytest tests)

已知限制

  • login 会向用户提供一个 URL,并要求用户粘贴一个短时有效的访问令牌,之后该令牌会作为工具参数传递;此流程不属于 MCP 的 OAuth 2.1 流程。要求已认证服务使用 OAuth 的宿主仍可使用所有公共工具。
  • search_public_recipes 一次只搜索一个环境;通用端点默认使用 kitchen。
  • 工具注释是自行声明的提示;宿主可能会忽略它们。

许可证

与 Rhylthyme 的其余部分相同,采用 Apache-2.0。(本仓库在 2026 年 9 月之前采用 MIT 许可证。)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。