Rhylthyme
by rhylthyme.com · remote · no sign-in to list tools · v1.3.0 · published by com.rhylthyme
Real-time multi-track schedules for cooking, lab protocols, events and workouts. Validate and share.
19 tools: 3 can delete or cancel things, 10 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things10Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
8 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http rhylthyme https://mcp.rhylthyme.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnanalyze_schedule
The server marks "analyze_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "analyze_schedule" says "analyze": a word for reading.
The server marks "import_from_source" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "import_from_source" says "import": a word for a change.
- Warnimport_text
The server marks "import_text" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "import_text" says "import": a word for a change.
The server marks "create_environment" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "create_environment" says "create": a word for a change.
- Warnload_program
The server marks "load_program" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "open": a word for a change.
- Warnload_run
The server marks "load_run" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "load_run" says "run": a word for a change.
Show 2 more findingsShow fewer
The server marks "load_public_recipe" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "open": a word for a change.
- Warnpreview_timeline
The server marks "preview_timeline" destructive (destructiveHint: true), and its name says "preview", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "preview_timeline" says "preview": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
19 tools
Deletes or cancels 3Claude Code: deny
preview_timelineReturn a static Gantt image of a program with a caption, for 'show me a preview' or 'a picture of the timeline'.1 finding
Why it is in this group
- The name "preview_timeline" says "preview": a word for reading.
- The server marks it destructive (destructiveHint: true).
Findings
- Warn
The server marks "preview_timeline" destructive (destructiveHint: true), and its name says "preview", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}; The name "preview_timeline" says "preview": a word for reading.
Description, as the server wrote it Return a static Gantt image of a program with a caption, for 'show me a preview' or 'a picture of the timeline'. The image is served from a public share link. Planned versus actual: with `run` (a run record) it draws the actual bars over the plan.
Annotations the server declares
- title: Preview timeline image
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
save_programSave a program to the user's account ('save this for later'); the same programId updates it.No findings
Why it is in this group
- The name "save_program" says "save": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Save a program to the user's account ('save this for later'); the same programId updates it. Needs the user's Rhylthyme account.
Annotations the server declares
- title: Save to my account
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
visualize_schedulePublish a program as a live, shareable timeline (a public share link) and return its URL, with an ASCII Gantt and an itinerary.No findings
Why it is in this group
- The name "visualize_schedule" says "schedule": a word for a change.
- The description's first verb is "publish": a word for a change that another call does not undo.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Publish a program as a live, shareable timeline (a public share link) and return its URL, with an ASCII Gantt and an itinerary. For a schedule the user wants to follow or share ('plan this so it all finishes at 6', 'when do I start each thing'). Validates first and refuses an invalid program with fix hints.
Annotations the server declares
- title: Publish a live timeline
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 10Claude Code: ask
analyze_schedulePut a program on the clock: each step's start and end, total length, the critical path and what gates it, resource conflicts, slack per track.1 finding
Why it is in this group
- The name "analyze_schedule" says "analyze": a word for reading.
- The description's first verb is "put": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "analyze_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "analyze_schedule" says "analyze": a word for reading.
Description, as the server wrote it Put a program on the clock: each step's start and end, total length, the critical path and what gates it, resource conflicts, slack per track. Pass finishAt to answer 'when do I start X so everything is ready at 6pm?'. Pure computation. With `history` (run records) or `program_id` it also predicts durations from recorded runs.
Annotations the server declares
- title: Analyze schedule timing
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calibrate_programPropose durations for a saved program from its recorded runs: median as the default, P10 to P90 as the range, at least as wide as the author's, with the evidence per step and the e…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Propose durations for a saved program from its recorded runs: median as the default, P10 to P90 as the range, at least as wide as the author's, with the evidence per step and the effect on total length. Saves nothing; with `accept` it returns the calibrated program. Needs the user's Rhylthyme account.
Annotations the server declares
- title: Propose durations from recorded runs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
create_environmentDescribe a workspace's equipment limits (one oven, two centrifuges, one stage) as resourceConstraints to copy into a program, so steps that share equipment are scheduled around eac…1 finding
Why it is in this group
- The name "create_environment" says "create": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "create_environment" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "create_environment" says "create": a word for a change.
Description, as the server wrote it Describe a workspace's equipment limits (one oven, two centrifuges, one stage) as resourceConstraints to copy into a program, so steps that share equipment are scheduled around each other.
Annotations the server declares
- title: Define equipment limits
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
import_from_sourceImport a recipe or protocol from a URL or service into a program.1 finding
Why it is in this group
- The name "import_from_source" says "import": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "import_from_source" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "import_from_source" says "import": a word for a change.
Description, as the server wrote it Import a recipe or protocol from a URL or service into a program. source: spoonacular, themealdb (recipes); protocolsio, opentrons, benchling (lab); cooklang (.cook URL). action: search (no account needed), import (query = URL or id), random. import, random and benchling need the user's Rhylthyme account. `enrich: true` splits an import into parallel tracks. Returns the program.
Annotations the server declares
- title: Import from an external source
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
import_textTurn pasted text (a recipe, protocol, run sheet or training plan) into a validated multi-track program on the server, in four model turns, with a table of the source span each step…1 finding
Why it is in this group
- The name "import_text" says "import": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "import_text" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "import_text" says "import": a word for a change.
Description, as the server wrote it Turn pasted text (a recipe, protocol, run sheet or training plan) into a validated multi-track program on the server, in four model turns, with a table of the source span each step came from. Capped per day. Needs the user's Rhylthyme account.
Annotations the server declares
- title: Import pasted text
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
load_programOpen one of the user's saved programs by id: summary plus live-timeline URL.1 finding
Why it is in this group
- The description's first verb is "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "load_program" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "open": a word for a change.
Description, as the server wrote it Open one of the user's saved programs by id: summary plus live-timeline URL. Needs the user's Rhylthyme account.
Annotations the server declares
- title: Open a saved program
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
load_public_recipeOpen a public catalog entry by id: summary plus live-timeline URL.1 finding
Why it is in this group
- The description's first verb is "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "load_public_recipe" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "open": a word for a change.
Description, as the server wrote it Open a public catalog entry by id: summary plus live-timeline URL.
Annotations the server declares
- title: Open a public program
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
load_runOpen one recorded run: planned against actual timing per step, what ended each step, pauses.1 finding
Why it is in this group
- The name "load_run" says "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "load_run" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "load_run" says "run": a word for a change.
Description, as the server wrote it Open one recorded run: planned against actual timing per step, what ended each step, pauses. Shows where a plan drifts. Needs the user's Rhylthyme account.
Annotations the server declares
- title: Open a recorded run
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
loginFor apps that cannot connect the Rhylthyme account directly: returns a sign-in URL, then accepts the pasted token.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it For apps that cannot connect the Rhylthyme account directly: returns a sign-in URL, then accepts the pasted token. Only the user's own saved programs, runs and imports need it; everything public works without. Tokens last about an hour.
Annotations the server declares
- title: Connect Rhylthyme account
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
review_programA model reads an imported program against its source and reports what looks wrong: a default duration on "simmer for an hour", a step the importer dropped, steps chained that could…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it A model reads an imported program against its source and reports what looks wrong: a default duration on "simmer for an hour", a step the importer dropped, steps chained that could overlap, a total that disagrees with the source. Changes nothing; returns findings to show the user. Needs the user's Rhylthyme account.
Annotations the server declares
- title: Review an imported program
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 6Claude Code: allow
get_renderer_sourceReturn the open-source timeline renderer's JavaScript (Apache-2.0, about 90 KB, no dependencies) for an HTML page or artifact that cannot load external scripts; it defines Rhylthym…No findings
Why it is in this group
- The name "get_renderer_source" says "get": a word for reading.
Description, as the server wrote it Return the open-source timeline renderer's JavaScript (Apache-2.0, about 90 KB, no dependencies) for an HTML page or artifact that cannot load external scripts; it defines Rhylthyme.renderTimeline(container, program).
Annotations the server declares
- title: Get timeline renderer source
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_my_programsList the user's saved programs.No findings
Why it is in this group
- The name "list_my_programs" says "list": a word for reading.
Description, as the server wrote it List the user's saved programs. Needs the user's Rhylthyme account.
Annotations the server declares
- title: List my saved programs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_public_runsList anonymous runs other people contributed for one exact program version: actual against planned length, and their conditions.No findings
Why it is in this group
- The name "list_public_runs" says "list": a word for reading.
Description, as the server wrote it List anonymous runs other people contributed for one exact program version: actual against planned length, and their conditions. For 'how long does this really take?'. No account needed. Takes `program` or `program_hash`.
Annotations the server declares
- title: List contributed runs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_runsList recorded runs of a saved program: when, how it ended, actual against planned length.No findings
Why it is in this group
- The name "list_runs" says "list": a word for reading.
Description, as the server wrote it List recorded runs of a saved program: when, how it ended, actual against planned length. For 'how long did this take last time?'. Needs the user's Rhylthyme account.
Annotations the server declares
- title: List recorded runs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_public_recipesSearch the public catalog of recipes, lab protocols, event templates and workouts by name or keyword.No findings
Why it is in this group
- The name "search_public_recipes" says "search": a word for reading.
Description, as the server wrote it Search the public catalog of recipes, lab protocols, event templates and workouts by name or keyword. Returns ids, names, descriptions and URLs; no account needed.
Annotations the server declares
- title: Search the public catalog
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
validate_programCheck a program before publishing or saving it: ids, dangling or cyclic triggers, steps overlapping in a track, tasks with no resourceConstraint, durations, replicates/instances mi…No findings
Why it is in this group
- The name "validate_program" says "validate": a word for reading.
Description, as the server wrote it Check a program before publishing or saving it: ids, dangling or cyclic triggers, steps overlapping in a track, tasks with no resourceConstraint, durations, replicates/instances misuse. Every finding has a code, a message and a suggested fix. Pure computation.
Annotations the server declares
- title: Validate a program
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http rhylthyme https://mcp.rhylthyme.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__rhylthyme__validate_program",
"mcp__rhylthyme__list_my_programs",
"mcp__rhylthyme__list_runs",
"mcp__rhylthyme__list_public_runs",
"mcp__rhylthyme__search_public_recipes",
"mcp__rhylthyme__get_renderer_source"
],
"ask": [
"mcp__rhylthyme__analyze_schedule",
"mcp__rhylthyme__import_from_source",
"mcp__rhylthyme__import_text",
"mcp__rhylthyme__create_environment",
"mcp__rhylthyme__login",
"mcp__rhylthyme__load_program",
"mcp__rhylthyme__review_program",
"mcp__rhylthyme__load_run",
"mcp__rhylthyme__calibrate_program",
"mcp__rhylthyme__load_public_recipe"
],
"deny": [
"mcp__rhylthyme__visualize_schedule",
"mcp__rhylthyme__save_program",
"mcp__rhylthyme__preview_timeline"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as rhylthyme. Review it before you use it.