weft-webmcp.vercel.app
Your web. Your space. Shaped with your agent. Explore WEFT, a working prototype for a more personal web.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 11 · Act 13 · Transact 0 · Score: Not yet scored
Tool inspector
compose_surface
Atomically recompose Weft using trusted components and a bounded visual grammar. Supply a concise human-facing headline and lede; keep operational instructions in intent. Human pins, hidden items, and locked modules are always preserved.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
baseRevision |
integer | no | Optional. If supplied and stale, the write is rejected without changing the page. |
idempotencyKey |
string | yes | A unique key for this intended write. Reusing it safely returns the first result. |
intent |
string | yes | Operational summary for the composition. Keep human-facing copy in headline and lede. |
headline |
string | yes | Concise editorial page title, not an instruction or prompt. |
lede |
string | yes | One short sentence explaining the composed view. |
mode |
— | yes | — |
presentation |
object | no | — |
modules |
array | yes | — |
Raw JSON schema
{
"type": "object",
"properties": {
"baseRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional. If supplied and stale, the write is rejected without changing the page."
},
"idempotencyKey": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "A unique key for this intended write. Reusing it safely returns the first result."
},
"intent": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Operational summary for the composition. Keep human-facing copy in headline and lede."
},
"headline": {
"type": "string",
"minLength": 1,
"maxLength": 110,
"description": "Concise editorial page title, not an instruction or prompt."
},
"lede": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"description": "One short sentence explaining the composed view."
},
"mode": {
"enum": [
"home",
"briefing",
"research"
]
},
"presentation": {
"type": "object",
"properties": {
"customDesign": {
"type": [
"object",
"null"
],
"description": "Original authored design. Call get_design_contract for the complete validated schema and an example before writing. Complete replacement, not deep merge; null restores presets. Exact colors, typography, geometry and original vector artwork; no CSS, URLs or script."
},
"theme": {
"enum": [
"none",
"botanical",
"coastal",
"observatory"
],
"description": "A complete visual environment, not a topic filter. Botanical supplies drawn foliage and woodland surfaces; coastal supplies waves and shoreline surfaces; observatory supplies orbital artwork. Does not fetch images or change content."
},
"surfaces": {
"enum": [
"auto",
"ruled",
"cards",
"soft"
],
"description": "Module framing independent of theme. auto uses the scene's defaults; ruled is minimal; cards are crisp; soft adds rounded tactile surfaces."
},
"decoration": {
"enum": [
"none",
"quiet",
"expressive"
],
"description": "Amount of bundled decorative scene artwork. Never changes content-media visibility or playback."
},
"grammar": {
"enum": [
"flow",
"stage",
"compare",
"workspace"
]
},
"density": {
"enum": [
"airy",
"balanced",
"dense"
]
},
"emphasis": {
"enum": [
"recency",
"relevance",
"action",
"source"
]
},
"palette": {
"enum": [
"paper",
"stone",
"ink"
]
},
"accent": {
"enum": [
"moss",
"clay",
"ocean"
]
},
"imagery": {
"enum": [
"quiet",
"supporting",
"prominent"
]
},
"typeScale": {
"enum": [
"quiet",
"balanced",
"expressive"
]
},
"character": {
"enum": [
"journal",
"studio",
"workbench"
]
}
},
"required": [
"grammar",
"density",
"emphasis"
],
"additionalProperties": false
},
"modules": {
"type": "array",
"items": {
"description": "One trusted Weft component. Never include HTML, CSS, attribution, or locked state.",
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 300
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 1
},
"layout": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 11
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 99
},
"w": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"h": {
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"x",
"y",
"w",
"h"
],
"additionalProperties": false
},
"type": {
"const": "hero"
},
"config": {
"type": "object",
"properties": {
"density": {
"enum": [
"compact",
"comfortable",
"visual"
]
}
},
"additionalProperties": false
}
},
"required": [
"id",
"type",
"title",
"itemIds",
"layout",
"config"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 300
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 24
},
"layout": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 11
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 99
},
"w": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"h": {
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"x",
"y",
"w",
"h"
],
"additionalProperties": false
},
"type": {
"const": "stream"
},
"config": {
"type": "object",
"properties": {
"density": {
"enum": [
"compact",
"comfortable",
"visual"
]
},
"groupBy": {
"enum": [
"none",
"source",
"kind",
"time",
"tag"
]
},
"sort": {
"enum": [
"manual",
"newest",
"oldest",
"relevance"
]
}
},
"required": [
"density",
"groupBy",
"sort"
],
"additionalProperties": false
}
},
"required": [
"id",
"type",
"title",
"itemIds",
"layout",
"config"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 300
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 24
},
"layout": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 11
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 99
},
"w": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"h": {
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"x",
"y",
"w",
"h"
],
"additionalProperties": false
},
"type": {
"const": "comparison"
},
"config": {
"type": "object",
"properties": {
"lanes": {
"type": "array",
"minItems": 2,
"maxItems": 4,
"description": "Labelled positions such as optimistic and skeptical.",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 6
}
},
"required": [
"label",
"itemIds"
],
"additionalProperties": false
}
}
},
"required": [
"lanes"
],
"additionalProperties": false
}
},
"required": [
"id",
"type",
"title",
"itemIds",
"layout",
"config"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 300
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 24
},
"layout": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 11
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 99
},
"w": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"h": {
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"x",
"y",
"w",
"h"
],
"additionalProperties": false
},
"type": {
"const": "notes"
},
"config": {
"type": "object",
"properties": {
"density": {
"enum": [
"compact",
"comfortable"
]
}
},
"additionalProperties": false
}
},
"required": [
"id",
"type",
"title",
"itemIds",
"layout",
"config"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 300
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 24
},
"layout": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 11
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 99
},
"w": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"h": {
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"x",
"y",
"w",
"h"
],
"additionalProperties": false
},
"type": {
"const": "actions"
},
"config": {
"type": "object",
"properties": {
"density": {
"enum": [
"compact",
"comfortable"
]
},
"sort": {
"enum": [
"manual",
"newest",
"oldest"
]
}
},
"additionalProperties": false
}
},
"required": [
"id",
"type",
"title",
"itemIds",
"layout",
"config"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 300
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 24
},
"layout": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 11
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 99
},
"w": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"h": {
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"x",
"y",
"w",
"h"
],
"additionalProperties": false
},
"type": {
"const": "gallery"
},
"config": {
"type": "object",
"description": "Media-first grid, and the only module that plays media in place: a video, audio or embed item becomes a working player the human can start without leaving the page. A stream shows the same item as a still thumbnail with a link. Choose gallery whenever the point is the picture or the footage. get_surface_context reports media.galleryReadyItemIds.",
"properties": {
"tile": {
"enum": [
"small",
"medium",
"large"
]
},
"experience": {
"enum": [
"spotlight",
"grid",
"watch",
"explore"
],
"description": "Watch: large media stage and finite queue. Explore: varied visual collection. Spotlight: piece beside context. Grid: uniform index. All responsive, no autoplay. get_design_catalog explains each."
},
"ratio": {
"enum": [
"square",
"wide",
"native"
]
},
"showTextItems": {
"type": "boolean",
"description": "Include text-only pieces in the browsable collection instead of dropping them."
}
},
"required": [
"tile",
"ratio"
],
"additionalProperties": false
}
},
"required": [
"id",
"type",
"title",
"itemIds",
"layout",
"config"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 300
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 24
},
"layout": {
"type": "object",
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 11
},
"y": {
"type": "integer",
"minimum": 0,
"maximum": 99
},
"w": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"h": {
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"x",
"y",
"w",
"h"
],
"additionalProperties": false
},
"type": {
"const": "timeline"
},
"config": {
"type": "object",
"description": "Chronological spine with grouped date markers. Use it when when something happened is the point.",
"properties": {
"direction": {
"enum": [
"newest_first",
"oldest_first"
]
},
"scale": {
"enum": [
"day",
"week",
"month"
]
},
"showExcerpt": {
"type": "boolean"
}
},
"required": [
"direction",
"scale"
],
"additionalProperties": false
}
},
"required": [
"id",
"type",
"title",
"itemIds",
"layout",
"config"
],
"additionalProperties": false
}
]
},
"minItems": 1,
"maxItems": 8
}
},
"required": [
"idempotencyKey",
"intent",
"headline",
"lede",
"mode",
"modules"
],
"additionalProperties": false
}
Similar websites
wfsim.app
A Warframe calculator that simulates the fight instead of estimating it — builder, simulator, optimizer. Every formula cites its source, and the golden tests ar…
commonplace-webmcp.vercel.app
Commonplace is an editable social reading space built for people and their browser agents.
pixelforge-studio.appcaster.chatgpt.site
A professional browser pixel-art editor for drawing, frame animation, palettes, sprite sheets, GIF export, and WebMCP automation.
pixelite.taskcraft.site
Pixelite