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.

format_saveOtherRead and write

Behavior

Read-only hint
Not declared
Destructive hint
Not declared
Idempotent hint
Not declared
Open-world hint
Not declared

Parameters

NameTypeRequirementDescription
workspaceIdstringRequiredThe workspace id or slug (from workspace_list).
postIdstringOptionalSave the hook structure and body format of this analysed outlier post.
kindstringOptionalNo additional description.
namestringOptionalNo additional description.
formulastringOptionalNo additional description.
categorystringOptionalNo additional description.
whystringOptionalNo additional description.
beatsarrayOptionalNo additional description.
storyCategorystringOptionalNo additional description.
presentationstringOptionalNo additional description.
stylestringOptionalThe presentation format of a body (kind body).

Input JSON Schema

Generated from the registered input 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.

Protocol request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "format_save",
    "arguments": {}
  }
}