MCP Tools
Plans & Playbooks

create_playbook_from_plans

Create a playbook by capturing existing content plans as reusable template items ("save what worked as a template").

Input Schema

{
  "type": "object",
  "required": [
    "plan_ids"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Title for the new playbook being saved from these plans — usually the campaign or sequence they came from. Treat it as required: if it is omitted or blank the call fails with \"Missing param: name\". It also becomes the base of the auto-generated cycle name each time the playbook is later run."
    },
    "plan_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      },
      "description": "UUIDs of existing content plans to capture as template items."
    },
    "visibility": {
      "enum": [
        "private",
        "team"
      ],
      "type": "string",
      "description": "Optional. Defaults to \"team\". \"private\" keeps the playbook creator-only."
    },
    "description": {
      "type": "string",
      "description": "Optional free-text note on what this captured sequence is for and when to reuse it, shown to teammates browsing playbooks. It describes the playbook only — the captured steps keep the titles, descriptions and prompts copied from the source plans. Omitted means 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 anchor_date (null unless later set) and a link_url that opens it in the Marcora web app."
}

Instructions

Create a playbook by capturing existing content plans as reusable template items ("save what worked as a template"). Pass the plan UUIDs; their title / description / prompt / blueprint / category are copied into ordered playbook items.

Parameters:

Parameter Type Required Description
plan_ids uuid[] Yes Plan UUIDs to capture as ordered template items
name string No Playbook name (derived if omitted)
description string No Free-text description
visibility string No team (default) or private

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

Example prompts:

  • "Turn these plans into a playbook"
  • "Save this campaign as a template"
Scroll to Top