Propose or save a format
Save a hook structure (kind hook, with formula using [slots], category, why) or a presentation format (kind body, with its style and 2–12 beats), or save from an analysed outlier post (postId): its hook structure and presentation format, topic-free (checked so no five words in a row of the post survive), plus the pair as a proven combo when the outlier is huge or both parts drove it. From an agent a new format is a proposal a person accepts. An idea is one atomic article from the person’s own material, recorded as 2–3 hook structures × 2 presentation formats (tier_list, talking_head, screen_share, green_screen, listicle, myth_vs_fact, before_after, whiteboard, story, hot_take, split_screen, podcast_clip) × one call to action per push. Formats lend structure only: never carry another creator’s topic, claims or wording into a hook formula ([slots] hold the topic) or a format’s beats. Calls to action come from pushes: one per active push that serves the article’s funnel step, and a push that delivers something must lead to a live free asset with a link or an active offer.
Behavior
- Read-only hint
- Not declared
- Destructive hint
- Not declared
- Idempotent hint
- Not declared
- Open-world hint
- Not declared
Parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
workspaceId | string | Required | The workspace id or slug (from workspace_list). |
postId | string | Optional | Save the hook structure and body format of this analysed outlier post. |
kind | string | Optional | No additional description. |
name | string | Optional | No additional description. |
formula | string | Optional | No additional description. |
category | string | Optional | No additional description. |
why | string | Optional | No additional description. |
beats | array | Optional | No additional description. |
storyCategory | string | Optional | No additional description. |
presentation | string | Optional | No additional description. |
style | string | Optional | The presentation format of a body (kind body). |
Input JSON Schema
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1,
"description": "The workspace id or slug (from workspace_list)."
},
"postId": {
"description": "Save the hook structure and body format of this analysed outlier post.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"kind": {
"type": "string",
"enum": [
"hook",
"body"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"formula": {
"type": "string",
"minLength": 3,
"maxLength": 300
},
"category": {
"type": "string",
"maxLength": 120
},
"why": {
"type": "string",
"maxLength": 1000
},
"beats": {
"minItems": 2,
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"beat": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"purpose": {
"type": "string",
"maxLength": 300
}
},
"required": [
"beat",
"purpose"
]
}
},
"storyCategory": {
"type": "string",
"maxLength": 120
},
"presentation": {
"type": "string",
"maxLength": 1000
},
"style": {
"description": "The presentation format of a body (kind body).",
"type": "string",
"enum": [
"tier_list",
"talking_head",
"screen_share",
"green_screen",
"listicle",
"myth_vs_fact",
"before_after",
"whiteboard",
"story",
"hot_take",
"split_screen",
"podcast_clip",
"carousel",
"other"
]
}
},
"required": [
"workspaceId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Call shape
Use an MCP client rather than sending this JSON directly. The client handles protocol negotiation, sessions, and authentication.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "format_save",
"arguments": {}
}
}