Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Tomorrow Lives Engines

REMOTE · TOMORROWLIVES.COM

Reproducible, IP-clean assets for agents: seven engines, from print designs to voice and video.

+3 this week 83 Trust /100

Last scanned (14 hours ago)

Scores higher than 87% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability56
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 13920 tokens (~244/item across 57 items; 57 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 57 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 58 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 24 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 22 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 21 Oct 26 0
    • Tool “video_render” rewrote its description, which is the text the model reads security
    • Tool “video_schema” rewrote its description, which is the text the model reads security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://tomorrowlives.com/api/agents/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=tomorrowlives.com CN=YE2,O=Let's Encrypt,C=US 14 Sept 2026 13 Dec 2026 ECDSA 256 ECDSA-SHA384 5eebb1f16cc46e67ca5c87cb5c1e603f69d
SANs: *.tomorrowlives.com, tomorrowlives.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of tomorrowlives.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
tomorrowlives.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="engines"

Bearer realm="engines"
Header Value
strict-transport-security max-age=31536000; includeSubDomains
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self' data:; media-src 'self' data: blob:; connect-src 'self'; worker-src 'self' blob:; frame-src 'self'; frame-ancestors 'self'; object-src 'none'; base-uri 'self'; form-action 'self'
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=()

Protected resource metadata

Retrieved No
Problem no_resource_metadata

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://tomorrowlives.com/api/agents/mcp Verified 200
http (plaintext) http://tomorrowlives.com/api/agents/mcp HTTPS enforced 301 https://tomorrowlives.com/api/agents/mcp
MCP tools · 57 exposed · ~13,767 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
sound_list ~66

The twenty-one sounds (steps on twelve surfaces, doors and stairs, blows, thunder, splashes, a siren, animal calls, notes and the rest) with what each of a, b and c does, and the seven beds an ambience is mixed from. Costs no units.

Input schema present but exposes no named parameters.

NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

subscription ~154

The account's plan: a pass (its window of included units, when access ends, and that it never renews) or a person's card plan (its period and renewal), the owner's state, what is paid, and pass_quote: what the next pass costs this account. An agent buys a 30-day pass with a shared payment token: $1.00 the first time (a one-time offer for a new owner), then $20.00, with 1,500 units each. A pass never renews. Buying is a REST call with a payment token, not a tool: POST /api/agents/subscribe for a pass, POST /api/agents/units for a unit pack. Costs nothing.

Input schema present but exposes no named parameters.

NameTypeReqDescription
pass_quote––What the next pass costs this account, and why.

No examples provided.

terrain_heightmap ~864

Builds open country from a seed word and writes its ground as a greyscale PNG (row 0 is north; chunk (i, j) is 128 by 128 tiles). By default the picture is one chunk at 8 bits and black is its lowest tile, white its highest; bits 16 writes it at 16 bits (65535 greys, so a 40 unit relief steps by under a thousandth of a unit and a game's terrain built from it shows no stairs), and raw (true) also returns heights.f32, every tile's exact height as little-endian float32, width by height, row 0 north. area {w, h} (each 1 to 8) makes a w by h block of chunks from (i, j) one picture on one grey scale, so a landscape is one call; range [lo, hi] fixes the grey scale in world units so separate calls tile. params sets country knobs by name (terrainAmp 0 to 40, terrainOctaves 1 to 5, slopeLimit, treeDensity, rockDensity, clumping, portWidth, padRadius, padJitter, corridorWidth, meander, palette, waterTable, ridgeHeight 0 to 400 with ridgeX0, ridgeZ0, ridgeX1, ridgeZ1 for a long hill along that line); an unknown or out-of-range knob is refused with the reason. The answer carries the height range, the grey scale used (greyFrom, greyTo, unitsPerGrey, so height is greyFrom plus grey times unitsPerGrey), the bits, wall and scenery counts and the digest. mesh (true, or {step} of 1 to 16 tiles between vertices) also returns the ground as terrain.obj, a Wavefront OBJ in world units (x east, y up, z south) with normals and UVs that runs to the area's far edge so the next area's mesh starts where it ends; by default the step is the smallest that keeps a side to 256 cells. glb (true) returns the same mesh as terrain.glb, a glTF binary with normals and UVs, at mesh's step. features (true) also returns features.json: where each tree and rock stands (x, y, z and half extents) and the scenery (kind, position, turns, scale), each listed once, with the ground's height under it. Costs 1 unit for any area.

NameTypeReqDescription
areaobject–A block of chunks, w by h (each 1 to 8) from (i, j), drawn as one picture on one grey scale.
bitsnumber–Grey depth of the PNG: 8 (the default) or 16.
featuresboolean–True to also return features.json: where each tree, rock and scenery piece stands.
glbboolean–True to also return the mesh as terrain.glb, at the mesh step.
iintegeryesThe chunk column (east) to start from; chunks are 128 by 128 tiles.
jintegeryesThe chunk row (south) to start from; chunks are 128 by 128 tiles.
mesh––True, or {step} of 1 to 16 tiles between vertices, to also return the ground as terrain.obj.
paramsobject–Country knobs by name (terrainAmp, terrainOctaves, slopeLimit, treeDensity, rockDensity, clumping, portWidth, padRadius, padJitter, corridorWidth, meander, palette, waterTable, ridgeHeight, ridgeX0,…
rangearray–Optional [lo, hi] in world units that fixes the grey scale, so separate calls tile on one scale.
rawboolean–True to also return heights.f32, every tile's exact height as little-endian float32.
seedstringyesThe seed word that makes the country; the same word, chunk and knobs give the same ground.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

usage ~120

Units used and left (an account with no pass is on the free plan, counted by the calendar month), when they reset, every limit, and the units left in unit packs (under unit_packs). Free plan: 50 units a month, no card needed; it starts when the owner confirms their email. Queued renders need a pass or the card plan. We limit free plans and first-pass offers to prevent abuse. More units: 500 for $10.00 a pack, spent after the included units and kept until used. Costs nothing.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

video_check ~151

Checks a scene document with the engine's strict reader without rendering it: ok, or one sentence naming the first problem and the key it is at, with every other problem in the scene listed in result.errors (up to fifty), so one call finds them all. A scene with dialogue is spoken while it is read, so a long one takes a few seconds, and a line that overlaps the same character's last, or ends after the scene, is named. Costs no units.

NameTypeReqDescription
sceneobjectyesA scene document written inline: output (size, frame rate, length), tracks of clips, optional cast and lines, audio and subtitles. Start from video_examples and read video_schema for every key.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

video_cost ~195

Reads a scene and reports what rendering it takes (frames, size, design renders, shot frames, audio seconds) and what it costs here: units, and whether it is within this service's limits (60 seconds, 1920 by 1080, 30 frames a second, 600 units a job). Renders nothing. A shot costs most, because every frame of it is drawn from geometry: the nine-second two-person chase in video_examples is 130 units at 1280 by 720, the eleven-second talking card 7, and the two-second street in a world 30; a street with its crowd drawn costs far more (see video_schema). Costs no units.

NameTypeReqDescription
sceneobjectyesA scene document written inline: output (size, frame rate, length), tracks of clips, optional cast and lines, audio and subtitles. Start from video_examples and read video_schema for every key.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

video_examples ~128

Without a name, lists the example scenes (what each is, what it shows, its length, size and price in units). With a name, returns that scene whole, written inline as video_render wants it: copy the nearest one and change its words, seed and numbers. Each was rendered by this service's own engine and looked at before it was listed. Costs no units.

NameTypeReqDescription
namestring–An example scene to return in full: two-voices, meadow-chase, lamplighter or copperside-street. Omit it to list them all with their prices.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

video_presets ~79

The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 by 1080 either way up, 30 frames a second and 60 seconds. Costs no units.

Input schema present but exposes no named parameters.

NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

video_render ~662

Renders a scene to video.webm (VP9 and Opus), video.wav (its sound) and video.vtt (when it has subtitles); with preview (the default) also video.contact.png, twelve moments on one sheet, and video.preview.gif, 480 pixels wide. A scene can hold: drawn pictures with groups (a character's parts move, turn and fade together) and mirror x, y or both on any layer or group, layer and track blends (multiply for a shadow, a vignette or a night grade; screen and add for a glow or a flare, on a layer or a track alike), closed paths filled nonzero (the default) or evenodd (a self-overlapping star leaves its centre bare);characters who talk (cast, timed lines with their own reading, ducked music, subtitles made from the lines, a mouth that moves on the words, or swaps between closed, open, wide and round drawings (with an idle breath and a listening beat, as a moving mouth has), and eyes that blink); shots with people on paths, action beats (guard, strike, hit, fall, get-up) and gestures on cue (a wave, a point, a nod), a directed character (a figure by seed, dressed by its look, standing in a named gait from the schema, speaking through its cast name, set among forms, props and a ground, filmed by a dolly or an orbit), animals and forms, and a camera that follows, orbits or cranes; music cues with a melody, a lead instrument, tempo changes and fades, that duck under lines and under any sound marked ducks_music; and sounds that move across the ears. Its files together are at most 50 MB, so a long, busy scene renders with preview false. At most 60 seconds, 1920 by 1080 either way up and 30 frames a second. The price is read off the engine's own cost report: units = design renders x megapixels / 45 + frames x megapixels / 200 + shot frames x megapixels / 1.6 + 3 a shot clip, rounded up; at most 600 a job, and video_cost says it first. It runs as a queued job: the answer is 202 with a job id at once, and GET /api/agents/jobs/<job> (or the MCP tool job) says when it is done and sig…

NameTypeReqDescription
previewboolean–Also write the contact sheet and a small preview GIF (the default); false for a long, busy scene whose files would pass the size cap.
sceneobjectyesA scene document written inline: output (size, frame rate, length), tracks of clips, optional cast and lines, audio and subtitles. Start from video_examples and read video_schema for every key.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

video_schema ~579

Every key, range and word a scene document may use: the output, visual tracks of clips (designs, material fills, colours, gradients, titles and shots), the camera, audio (voices, sounds, music) and subtitles. Call this first when making a video, and video_examples for whole scenes to start from. A scene can hold: drawn pictures with groups (a character's parts move, turn and fade together) and mirror x, y or both on any layer or group, layer and track blends (multiply for a shadow, a vignette or a night grade; screen and add for a glow or a flare, on a layer or a track alike), closed paths filled nonzero (the default) or evenodd (a self-overlapping star leaves its centre bare);characters who talk (cast, timed lines with their own reading, ducked music, subtitles made from the lines, a mouth that moves on the words, or swaps between closed, open, wide and round drawings (with an idle breath and a listening beat, as a moving mouth has), and eyes that blink); shots with people on paths, action beats (guard, strike, hit, fall, get-up) and gestures on cue (a wave, a point, a nod), a directed character (a figure by seed, dressed by its look, standing in a named gait from the schema, speaking through its cast name, set among forms, props and a ground, filmed by a dolly or an orbit), animals and forms, and a camera that follows, orbits or cranes; music cues with a melody, a lead instrument, tempo changes and fades, that duck under lines and under any sound marked ducks_music; and sounds that move across the ears. Designs go inline in a scene; a path to a file is refused. A shot can stand in a world of ours, named by id and never by a path: copperside and low-quarter. In a scene it is a shot subject {"kind": "world", "id": "copperside", "at": [x, 0, z], "radius": metres}; copperside is Brasshollow's Copperside, the streets and buildings of its start zone around that point, and low-quarter a small generated quarter. A street draws its crowd by default, and the crowd is most…

Input schema present but exposes no named parameters.

NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

video_still ~237

Renders one frame of a scene at t seconds as a PNG at the scene's size: the way to look at a moment (just after a transition, mid-reveal, the last frame) before rendering the whole video. Costs 1 unit, plus a shot's price when the scene has shots (3 plus 1 for each 1.6 megapixels). It runs as a queued job: the answer is 202 with a job id at once, and GET /api/agents/jobs/<job> (or the MCP tool job) says when it is done and signs its files. A queued call is refused on the free plan with 402: its units buy only calls that answer at once, and queued jobs need a paid plan (a pass or the card plan). Returns still.png.

NameTypeReqDescription
sceneobjectyesA scene document written inline: output (size, frame rate, length), tracks of clips, optional cast and lines, audio and subtitles. Start from video_examples and read video_schema for every key.
tnumberyesThe moment to draw, in seconds from the scene's start.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

voice_speak ~417

Synthesises a line of English as a 44.1 kHz WAV with the engine's own voice. The voices are synthesised by the engine, never cloned from a recording, and no voice can be uploaded. seed varies the voice; woman, age (0 to 1) and machine shape it; speed (0.5 to 2) sets how fast it speaks (1 is the speaker's own); rate sets the sample rate. Every line comes back at one loudness (level_db, default -16 dBFS of speech, so lines from different voices sit together on a timeline and none clips; level_db false leaves the voice's own level) and with its silence trimmed to a breath either side (trim false keeps the voice's half-second tail). text is at most 1000 characters, and a line that presents itself as spoken by a real, famous person is refused. Costs 1 unit.

NameTypeReqDescription
agenumber–How old the voice sounds, 0 (young) to 1 (old).
level_db––Loudness in dBFS of speech, -30 to -6 (default -16); false leaves the voice's own level.
machineboolean–True to give the voice a machine quality.
ratenumber–Sample rate in hertz: 16000, 22050, 44100 or 48000.
seedinteger–A whole number that varies the voice.
speednumber–How fast it speaks, 0.5 to 2; 1 is the speaker's own pace.
textstringyesThe English line to speak, at most 1000 characters. A line that presents itself as spoken by a real, famous person is refused.
trimboolean–False to keep the voice's half-second silent tail; the default trims silence to a breath either side.
womanboolean–True for a woman's voice, false for a man's.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

world_apply ~142

Applies a batch of ops (see world_schema) to a world document, in order. An op that cannot apply is rejected with its reason and changes nothing; if the result as a whole would not be a valid world, the whole batch rolls back and says why. Answers the edited document, what applied, what was rejected and the check of the result. Costs 1 unit.

NameTypeReqDescription
opsarrayyesThe edits to apply in order, each an object with an op name; world_schema lists them. An op that cannot apply is rejected with the reason and the rest still apply.
worldobjectyesThe world document, written inline as JSON.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

world_check ~89

Checks a world document with the engine's strict reader and its spatial rules (every spawn, passage, item and character stands on open ground reachable from the spawn; no two zones overlap; no door is under water). Answers ok with warnings, or the errors; the doors report says how many exits were examined. Costs no units.

NameTypeReqDescription
worldobjectyesThe world document, written inline as JSON.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

world_heightmap ~308

Draws the open country a world document generates (its worldgen block: seed, knobs, regions with their own relief, a ridge) as one greyscale PNG, row 0 north, so a world built with world_apply can be looked at before anyone walks it. area {w, h} makes a block of chunks from chunk (i, j) (w times h at most 25); range [lo, hi] fixes the grey scale in world units. The answer carries the height range, the grey scale used (greyFrom, greyTo, unitsPerGrey) and the name of the country each chunk sits in. A world with no worldgen block is bounded and is refused by name; set_worldgen opens it onto boundless country. Costs 1 unit.

NameTypeReqDescription
areaobject–A block of chunks, w by h (each 1 to 25) from (i, j), drawn as one picture.
iintegeryesThe chunk column (east) to start from; chunks are 128 by 128 tiles.
jintegeryesThe chunk row (south) to start from; chunks are 128 by 128 tiles.
rangearray–Optional [lo, hi] in world units that fixes the grey scale, so separate calls tile on one scale.
worldobjectyesThe world document, written inline as JSON. It needs a worldgen block to have country to draw.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

world_schema ~131

The ops world_apply accepts (add_zone, add_npc, add_quest, add_link, set_worldgen and the rest), each with its fields as JSON Schema: types, bounds, the closed lists of words and which keys are required. Printed from the same table the engine validates against, so it cannot drift from what is accepted. Pass op to get one op's schema alone. Costs no units.

NameTypeReqDescription
opstring–One op's name (add_zone, add_npc, add_quest and the rest) to get only that op's schema; omit it for all of them.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

world_starter ~105

A starter world document (two zones joined by a passage, a spawn, no quests) with the id and title given. The title passes the same scrubber world_apply uses: no markup, braces or web addresses. Costs no units.

NameTypeReqDescription
idstringyesThe id to give the world: lower-case letters, digits and hyphens.
namestringyesThe world's title, shown to players. Plain text: no markup, braces or web addresses.
NameTypeReqDescription
filesarray–Files made, each with a name, type, size and a signed URL.
jobstringyesThe job id; the job tool reads it.
msnumber–Milliseconds the run took.
result––The engine's own answer, a JSON document.
statusstring–queued when the job runs in the background.
unitsnumber–Units this call cost.
verbstring–The tool that made it.

No examples provided.

Install

How do I install the Tomorrow Lives Engines MCP server?

Tomorrow Lives Engines is a hosted endpoint at https://tomorrowlives.com/api/agents/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · tomorrowlives.com

# add to Claude Code
claude mcp add --transport http com-tomorrowlives-engines 'https://tomorrowlives.com/api/agents/mcp'
Common questions

What is the Tomorrow Lives Engines MCP server?

Tomorrow Lives Engines is an MCP server listed in the public MCP registry as com.tomorrowlives/engines. Reproducible, IP-clean assets for agents: seven engines, from print designs to voice and video. This page covers its hosted endpoint (https://tomorrowlives.com/api/agents/mcp).

Is the Tomorrow Lives Engines MCP server safe to use?

Tomorrow Lives Engines scores 83 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Tomorrow Lives Engines MCP server expose?

Tomorrow Lives Engines exposes 57 tools: art_schema, art_presets, art_materials, art_starter, art_check, and 52 more. Their descriptions and schemas cost roughly 13,767 tokens of context every time the server is loaded.

Does the Tomorrow Lives Engines MCP server require authentication?

Yes. Tomorrow Lives Engines asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Tomorrow Lives Engines MCP server still maintained?

Tomorrow Lives Engines is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.