# 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.

- Exact name: `format_save`
- Category: Other
- Required access: write
- Allowed agent roles: admin, content_writer
- MCP endpoint: `https://api.funnels.akera.agency/`

## Annotations

- None declared

## Input JSON Schema

```json
{
  "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

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