MCP Tools
Plans & Playbooks

create_playbook

Create a reusable content playbook — an ordered template of content-plan items you can stamp out as a batch.

Input Schema

{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The playbook's title, shown wherever someone browses or picks a playbook to run. Required and trimmed — a blank or whitespace-only value is rejected. It is also the base of the auto-generated cycle name every time the playbook is run (\"<name> — Mon YYYY\")."
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Item name (title of the plan this item becomes). Alias: `title`."
          },
          "title": {
            "type": "string",
            "description": "Alias for `name`."
          },
          "prompt": {
            "type": "string",
            "description": "Generation prompt carried onto the plan created from this item."
          },
          "sort_order": {
            "type": "integer",
            "description": "Explicit order; defaults to array position."
          },
          "category_id": {
            "type": "integer",
            "description": "Content category for the plan (optional)."
          },
          "description": {
            "type": "string"
          },
          "offset_days": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Days relative to anchor_date at instantiation; sets the plan due_date. Negative = before the anchor. null or omitted = no due date (\"No date\"). Items are a full-replacement set on update, so pass null (or omit) here to CLEAR a previously scheduled item."
          },
          "blueprint_id": {
            "type": "integer",
            "description": "Blueprint to attach to the plan (optional)."
          }
        }
      },
      "description": "The ordered steps of the playbook — each entry becomes exactly one content plan when the playbook is run. Every entry needs a `name` (`title` is accepted as an alias) and may also carry description, prompt, blueprint_id, category_id, offset_days and sort_order; array order sets the sequence unless sort_order is given. Optional — omit it to save an empty shell you fill in later, but a playbook with no items cannot be run until you add some."
    },
    "visibility": {
      "enum": [
        "private",
        "team"
      ],
      "type": "string",
      "description": "Optional. Defaults to \"team\". \"private\" keeps the playbook creator-only."
    },
    "anchor_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "Optional YYYY-MM-DD anchor date this playbook is built around (e.g. a launch date). Each item's offset_days counts from it, and it becomes the default anchor when instantiating. Offer to set this when the user has a specific date in mind; omit or null for an evergreen/undated template."
    },
    "description": {
      "type": "string",
      "description": "Optional free-text note saying what this playbook is for and when to run it, for teammates browsing the playbook list. It is stored on the playbook only and is never fed into content generation; omit it and it is saved empty."
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "name": {
      "type": "string"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "description": "Mirror of name."
          },
          "prompt": {
            "type": [
              "string",
              "null"
            ]
          },
          "team_id": {
            "type": "integer"
          },
          "created_at": {
            "type": "integer",
            "description": "Unix ms timestamp."
          },
          "sort_order": {
            "type": "integer"
          },
          "updated_at": {
            "type": "integer",
            "description": "Unix ms timestamp."
          },
          "category_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "offset_days": {
            "type": [
              "integer",
              "null"
            ]
          },
          "playbook_id": {
            "type": "integer"
          },
          "blueprint_id": {
            "type": [
              "integer",
              "null"
            ]
          }
        }
      }
    },
    "team_id": {
      "type": "integer"
    },
    "link_url": {
      "type": "string",
      "description": "Opens the playbook in the Marcora web app."
    },
    "created_at": {
      "type": "integer",
      "description": "Unix ms timestamp."
    },
    "created_by": {
      "type": "integer"
    },
    "updated_at": {
      "type": "integer",
      "description": "Unix ms timestamp."
    },
    "visibility": {
      "enum": [
        "private",
        "team"
      ],
      "type": "string",
      "description": "private = creator-only; team = visible to all active teammates."
    },
    "anchor_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "Persisted YYYY-MM-DD reference date, or null."
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "description": "The created playbook object, including its persisted anchor_date (YYYY-MM-DD or null) and a link_url that opens it in the Marcora web app."
}

Instructions

Create a reusable content playbook — an ordered template of content-plan items ("save a repeatable content sequence"). Provide a name and, optionally, the ordered items; each item becomes one content plan when the playbook is instantiated. To build a playbook from plans you already ran, use create_playbook_from_plans instead.

Parameters:

Parameter Type Required Description
name string Yes Playbook name
description string No Free-text description
visibility string No team (default) or private
anchor_date string No Optional YYYY-MM-DD reference date the playbook is built around (a launch, event, campaign kickoff). Persisted on the playbook; each item's offset_days counts from it, and it becomes the default anchor when instantiating. Leave off for an evergreen/undated template
items array No Ordered playbook items (each becomes one plan on instantiation)

Output: the created playbook object, including its persisted anchor_date (or null) and a link_url that opens the new playbook in the Marcora web app — share it with the user.

Example prompts:

  • "Make me a launch-week playbook"
  • "Save this sequence as a template"
Scroll to Top