{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_wacm8mkyz6cx","handle":"tomorrow-lives-engines","url":"https://wellknown.network/agents/tomorrow-lives-engines","links":{"self":"https://wellknown.network/agents/tomorrow-lives-engines/record.json","html":"https://wellknown.network/agents/tomorrow-lives-engines","markdown":"https://wellknown.network/agents/tomorrow-lives-engines/record.md","api":"https://wellknown.network/api/v1/agents/tomorrow-lives-engines","status":"https://wellknown.network/api/v1/agents/tomorrow-lives-engines/status","claim":"https://wellknown.network/agents/tomorrow-lives-engines/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/tomorrow-lives-engines/claim.json","badge":"https://wellknown.network/agents/tomorrow-lives-engines/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/tomorrow-lives-engines/history","tools":"https://wellknown.network/api/v1/agents/tomorrow-lives-engines/tools"},"ard":{"identifier":"urn:air:tomorrowlives.com:server:tomorrow-lives-engines","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Tomorrow Lives Engines","summary":"Reproducible, IP-clean assets for agents: seven engines, from print designs to voice and video.","description":"Reproducible, IP-clean assets for agents: seven engines, from print designs to voice and video.","publisher":{"name":"com.tomorrowlives","url":null},"homepage":"https://tomorrowlives.com/engines","repository":null,"version":"1.5.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://tomorrowlives.com/api/agents/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-12T20:54:39.924587Z","publishedAt":"2026-10-12T20:54:39.924587Z","registryName":"com.tomorrowlives/engines"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"media.3d","name":"3D & Design","confidence":0.885,"provenance":"derived"},{"slug":"media.video-editing","name":"Video Editing","confidence":0.54,"provenance":"derived"},{"slug":"research.web","name":"Deep Web Research","confidence":0.54,"provenance":"derived"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":0.525,"provenance":"derived"},{"slug":"communication.chat","name":"Team Chat","confidence":0.51,"provenance":"derived"}],"categories":["communication","media","productivity","research"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-24T08:26:49.556Z","lastProbedAt":"2026-10-24T08:26:49.556Z","statusComputedAt":"2026-10-24T08:30:06.164Z","reliability30d":{"probes":44,"successRate":1,"p50Ms":478,"basis":"mixed","measures":{"availability":"availability (some checks stopped at authentication)","latency":"response time (mixed)","tools":"partially observed","summary":"Some successful checks reached the service and some stopped at an authentication response; figures combine both."},"checks":{"total":44,"ok":44,"authBoundaryOk":9,"serviceOk":35,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-24T08:26:49.556Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":454,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T01:25:58.572Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":449,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T19:28:43.104Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":475,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T12:28:32.594Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":913,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T06:27:14.455Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":456,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T23:30:43.810Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":454,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T17:30:15.617Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":500,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T10:36:57.017Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":494,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T04:28:49.870Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":449,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T22:30:10.925Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":484,"error":null,"detail":{"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"toolCount":57,"toolsHash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","serverName":"tomorrowlives-engines","capabilities":["resources","prompts","tools"],"serverVersion":"1.5.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"art_schema","description":"Every key, range and word a print design may use. Call this first when designing a print. Costs no units."},{"name":"art_presets","description":"The canvas presets: shirt-front 4500x5400, shirt-pocket 1200x1200, sticker 2400x2400, poster 5400x7200, all at 300 DPI. Costs no units."},{"name":"art_materials","description":"The shipped material library: each id, a line on its look, and whether it is a metal. Any id here can fill a layer or be baked. Costs no units."},{"name":"art_starter","description":"A valid starting design for a canvas preset, ready to edit. Costs no units."},{"name":"art_check","description":"Checks a design without rendering it: ok, or one sentence naming the first problem and where it is. Costs no units."},{"name":"art_render","description":"Renders a design to a PNG with its DPI written in. Without width it renders the canvas at full print size (a shirt-front is 4500 x 5400). width renders a draft "},{"name":"art_swatch","description":"Renders one material (a shipped id, or a whole material document) as a lit square swatch PNG. size is 64 to 1024 (default 512); 512 or less costs 1 unit, larger"},{"name":"material_bake","description":"Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) a"},{"name":"material_check","description":"Checks a material document against the engine's strict reader: admissible, or the refusal. Costs no units."},{"name":"material_cost","description":"What baking a material document costs at res pixels square (default 256): operations and bytes. Costs no units."},{"name":"material_apply","description":"Applies a batch of ops (set_material, add_node, remove_node, set_node_param, connect, disconnect, set_out, add_ramp_stop, remove_ramp_stop, set_ramp_stop, add_c"},{"name":"form_starter","description":"A blank form document for a generator kind (growth, rock, face, blades, canopy, masonry, lathe, sweep, truss, frond), named by id. Costs no units."},{"name":"form_check","description":"Checks a form document against the sculptor's strict reader. Costs no units."},{"name":"form_apply","description":"Applies a batch of ops (set_form, set_generator, set_range, reset_range, clear_params) to a form document, whole or not at all. Costs 1 unit."},{"name":"form_build","description":"Builds a form (a shipped id such as scots-pine, oak or boulder, or a whole form document) at one variant and reports what the sculptor drew: the knob values for"},{"name":"character_list","description":"The body kinds (person, dog, cat, rat, sheep), the levels of detail and each kind's gaits. Costs no units."},{"name":"character_generate","description":"Generates a character from a seed. A person is one of the game's townspeople: sex, age, complexion, hair, build and working clothes are drawn from the seed, and"},{"name":"terrain_heightmap","description":"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 "},{"name":"city_plan","description":"Makes a city from a seed number and a size (the side of a square, 300 to 2000 metres, 800 by default): streets at varied spacing, closer together toward the cen"},{"name":"world_schema","description":"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 "},{"name":"world_starter","description":"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: n"},{"name":"world_check","description":"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"},{"name":"world_apply","description":"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 "},{"name":"world_heightmap","description":"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, s"},{"name":"voice_speak","description":"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 voi"},{"name":"sound_list","description":"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 a"},{"name":"sound_effect","description":"Renders one sound from the engine's own synth as a stereo WAV, or an ambience of the beds mixed together. Give sound (a name from sound_list) with a, b and c as"},{"name":"video_schema","description":"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 came"},{"name":"video_presets","description":"The engine's frame presets (landscape 1920x1080, square 1080x1080, vertical 1080x1920 and their 720 versions) and frame rates. This service renders up to 1920 b"},{"name":"video_examples","description":"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 inli"},{"name":"video_check","description":"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 othe"},{"name":"video_cost","description":"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 wi"},{"name":"video_still","description":"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"},{"name":"video_render","description":"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, tw"},{"name":"raster_schema","description":"Every key and range a shot document may use: the camera (keys or an orbit), the sun, the air and fog, and the subjects (forms, characters, animals, open country"},{"name":"raster_check","description":"Checks a shot document with the renderer's strict reader: its name, size, subject count and length, or the key that is wrong and why. Forms and materials are na"},{"name":"raster_render","description":"Renders a shot (a camera through the engine's world: forms from the sculptor, people and animals from the rig, open country, primitives, under the game's own sk"},{"name":"pull_schema","description":"Every document the pull engine reads, with its keys: a session (its generators, their onsets on one integer-nanosecond clock, states, declared intentions, the f"},{"name":"pull_prereg","description":"Reads a pre-registration (what is measured, the conditions, trials per session, sessions, alpha, power, the number of comparisons and the correction) and return"},{"name":"pull_analyse","description":"Analyses the sessions of one condition (one session, a list, or {\"sessions\": [...]}) together, and each alone, and returns the report: its label (significant; n"},{"name":"pull_twin","description":"Runs twin sessions (scripted performers and the machine follower, each session drawn, sealed, released, closed and opened like a real one) and analyses them und"},{"name":"pull_cost","description":"Prices a call without making it: give the arguments of pull_twin (a twin document, or condition, coupling, planted, field, sessions as a number and seed; nothin"},{"name":"pull_schedule","description":"Draws a schedule of perturbations (tempo up or down, phase advance or delay, and catch trials where nothing changes) placed with a lead-in and random gaps; spec"},{"name":"pull_seal","description":"Seals a schedule's text before the run: commits to it (SHA-256 of the text and a nonce) and encrypts it (ChaCha20) under a fresh key. Answers with sealed (the p"},{"name":"pull_open","description":"Opens a sealed record (the public half, or {\"sealed\": ...}) with its secret (key, iv, nonce): the content, and whether the seal is intact. A seal that does not "},{"name":"pull_close","description":"Closes a session's files at at_ns, at or after its end_ns: the session back with its closed record hash and its hashes recomputed. Costs 1 unit."},{"name":"pull_replay","description":"Recomputes a session's hashes against those recorded with it and, for a twin session, runs the twin again from what it records: replays is true when everything "},{"name":"pull_align","description":"Aligns two stations' clocks from repeated pings, each [sent_ns, remote_ns, received_ns] (sent and received on this station's clock, remote on the other's): the "},{"name":"pull_lab","description":"Runs the pull engine's field-theory lab on a theory document (its fields, Lagrangian, which quantity is the mass, what fixes the sector and the value expected; "},{"name":"pull_practice","description":"Grades a practice of five drills: match (the spread of the taps against the click), hold (the click falls silent and the person keeps the beat), follow (the cli"},{"name":"pull_call","description":"Runs an ae_pull verb this list does not name yet, by its name, over one document when it reads one: the way to reach what the engine adds before this service li"},{"name":"job","description":"A job's status and, once it is ok, its files as signed URLs (and small PNGs inline). For a queued job (video_still, video_render, raster_render, and a large pul"},{"name":"cancel_job","description":"Cancel a queued job (video_still, video_render, raster_render, and a large pull_analyse, pull_twin or pull_lab). One still waiting is cancelled at no charge; on"},{"name":"jobs","description":"This account's newest queued jobs (at most 50), ids and states only, newest first. The job tool reads one in full. Costs nothing."},{"name":"usage","description":"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"},{"name":"owner","description":"The account's owner: the person or business responsible for the agent, by email. Called with no arguments it reads the owner's state (confirmed, unconfirmed, mi"},{"name":"subscription","description":"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 owne"}],"package":null,"toolSurface":{"id":"ts_yu23657zj5ys","endpointId":"ep_9nbnn8vs5x32","hash":"4962ee38ce0135bd890eb50d388ff6e6ce91ea3b471fbf61f8f6a92d80ed78d1","toolCount":57,"serverName":"tomorrowlives-engines","serverVersion":"1.5.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-21T04:25:00.863Z","lastSeenAt":"2026-10-24T08:26:49.567Z","observations":12,"toolNames":["art_schema","art_presets","art_materials","art_starter","art_check","art_render","art_swatch","material_bake","material_check","material_cost","material_apply","form_starter","form_check","form_apply","form_build","character_list","character_generate","terrain_heightmap","city_plan","world_schema","world_starter","world_check","world_apply","world_heightmap","voice_speak","sound_list","sound_effect","video_schema","video_presets","video_examples","video_check","video_cost","video_still","video_render","raster_schema","raster_check","raster_render","pull_schema","pull_prereg","pull_analyse","pull_twin","pull_cost","pull_schedule","pull_seal","pull_open","pull_close","pull_replay","pull_align","pull_lab","pull_practice","pull_call","job","cancel_job","jobs","usage","owner","subscription"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_9nbnn8vs5x32","url":"https://tomorrowlives.com/api/agents/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-21T04:25:00.912Z","auth":{"observedAt":"2026-10-21T04:25:01.438Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-21T04:25:01.449Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"tomorrowlives.com","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-14T17:42:44.000Z","validTo":"2026-12-13T17:42:43.000Z","daysToExpiry":50,"sanCount":2,"fingerprint256":"D2:B1:B6:B3:EF:88:60:A7:6D:8A:AD:63:D7:5A:6B:C6:20:E8:E5:58:E8:1B:B5:54:2D:F0:29:A1:0C:75:96:AC"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.tomorrowlives/engines","url":"https://registry.modelcontextprotocol.io/v0/servers/com.tomorrowlives%2Fengines","firstSeenAt":"2026-10-12T10:17:56.406Z","fetchedAt":"2026-10-22T03:21:34.845Z","normalizedAt":"2026-10-22T03:21:34.845Z"}]},"firstSeenAt":"2026-10-12T10:17:56.406Z","updatedAt":"2026-10-24T08:31:40.253Z"}