Tomorrow Lives Engines
REMOTE · TOMORROWLIVES.COM
Reproducible, IP-clean assets for agents: seven engines, from print designs to voice and video.
Available components
Last scanned (14 hours ago)
Scores higher than 87% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Design and Media
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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
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 |
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 →
sound_list 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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
subscription Read the plan ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pass_quote | – | – | What the next pass costs this account, and why. |
No examples provided.
terrain_heightmap Generate terrain ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| area | object | – | A block of chunks, w by h (each 1 to 8) from (i, j), drawn as one picture on one grey scale. |
| bits | number | – | Grey depth of the PNG: 8 (the default) or 16. |
| features | boolean | – | True to also return features.json: where each tree, rock and scenery piece stands. |
| glb | boolean | – | True to also return the mesh as terrain.glb, at the mesh step. |
| i | integer | yes | The chunk column (east) to start from; chunks are 128 by 128 tiles. |
| j | integer | yes | The 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. |
| params | object | – | Country knobs by name (terrainAmp, terrainOctaves, slopeLimit, treeDensity, rockDensity, clumping, portWidth, padRadius, padJitter, corridorWidth, meander, palette, waterTable, ridgeHeight, ridgeX0,… |
| range | array | – | Optional [lo, hi] in world units that fixes the grey scale, so separate calls tile on one scale. |
| raw | boolean | – | True to also return heights.f32, every tile's exact height as little-endian float32. |
| seed | string | yes | The seed word that makes the country; the same word, chunk and knobs give the same ground. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
usage Read 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 Check a video scene ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| scene | object | yes | A 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
video_cost Price a video scene ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| scene | object | yes | A 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
video_examples Video example scenes ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | An example scene to return in full: two-voices, meadow-chase, lamplighter or copperside-street. Omit it to list them all with their prices. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
video_presets Video frame 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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
video_render Render a video ~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…
| Name | Type | Req | Description |
|---|---|---|---|
| preview | boolean | – | 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. |
| scene | object | yes | A 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
video_schema Video scene 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.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
video_still Render a 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.
| Name | Type | Req | Description |
|---|---|---|---|
| scene | object | yes | A 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. |
| t | number | yes | The moment to draw, in seconds from the scene's start. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
voice_speak Speak a line ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| age | number | – | 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. |
| machine | boolean | – | True to give the voice a machine quality. |
| rate | number | – | Sample rate in hertz: 16000, 22050, 44100 or 48000. |
| seed | integer | – | A whole number that varies the voice. |
| speed | number | – | How fast it speaks, 0.5 to 2; 1 is the speaker's own pace. |
| text | string | yes | The English line to speak, at most 1000 characters. A line that presents itself as spoken by a real, famous person is refused. |
| trim | boolean | – | False to keep the voice's half-second silent tail; the default trims silence to a breath either side. |
| woman | boolean | – | True for a woman's voice, false for a man's. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
world_apply Edit a world ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| ops | array | yes | The 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. |
| world | object | yes | The world document, written inline as JSON. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
world_check Check a world ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| world | object | yes | The world document, written inline as JSON. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
world_heightmap Draw a world's country ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| area | object | – | A block of chunks, w by h (each 1 to 25) from (i, j), drawn as one picture. |
| i | integer | yes | The chunk column (east) to start from; chunks are 128 by 128 tiles. |
| j | integer | yes | The chunk row (south) to start from; chunks are 128 by 128 tiles. |
| range | array | – | Optional [lo, hi] in world units that fixes the grey scale, so separate calls tile on one scale. |
| world | object | yes | The world document, written inline as JSON. It needs a worldgen block to have country to draw. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
world_schema World edit 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.
| Name | Type | Req | Description |
|---|---|---|---|
| op | string | – | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
world_starter Starter world ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The id to give the world: lower-case letters, digits and hyphens. |
| name | string | yes | The world's title, shown to players. Plain text: no markup, braces or web addresses. |
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | Files made, each with a name, type, size and a signed URL. |
| job | string | yes | The job id; the job tool reads it. |
| ms | number | – | Milliseconds the run took. |
| result | – | – | The engine's own answer, a JSON document. |
| status | string | – | queued when the job runs in the background. |
| units | number | – | Units this call cost. |
| verb | string | – | The tool that made it. |
No examples provided.
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
claude mcp add --transport http com-tomorrowlives-engines 'https://tomorrowlives.com/api/agents/mcp'
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.