MCPHerramientas MCP/Ideas de publicaciones/save_month_plan

save_month_plan

Writeideas:write

Write a whole month of planned posts for one location in a single call, after get_month_plan_brief. Each post lands as a dated IDEA for the agency to review on the Social calendar, never as a scheduled post, so nothing publishes until a human adds it. Captions over the limit and post types the chosen profiles cannot carry are trimmed and coerced rather than rejected. Refuses if the window already holds a plan, unless replace is true.

Parámetros
locationIdstringobligatorio
The location these posts are for. Same id passed to get_month_plan_brief.
fromstringopcional
First day of the window, local YYYY-MM-DD. Use the brief's window.from verbatim, years included. A date in the past is ignored and the window starts today instead.
daysnumberopcional
Length of the window in days. Must match the brief.
connectionIdsstring[]opcional
Connections every post should publish to. Pre-seeds them so the agency can add the whole plan to the calendar in one click.
replacebooleanopcional
Replace an existing plan for this window. Default false, which refuses rather than writing a second set on top of the first.
postsobject[]obligatorio
The planned posts, in any order. Dates are spread and de-collided on save.
datestringopcional
Local YYYY-MM-DD inside the window.
titlestringopcional
Short title for the card, max 80 characters.
messagestringopcional
The full caption, hashtags included, within captionMaxChars.
whystringopcional
One sentence telling the owner why this post, on this day.
image_promptstringopcional
A visual prompt for generating the picture later, max 200 chars.
typestringopcional
One of the allowedPostTypes vocabulary from the brief.
Solicitud de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "save_month_plan",
    "arguments": {
      "locationId": "string",
      "posts": [
        {}
      ]
    }
  }
}
Respuesta de ejemplo
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "..."
      }
    ]
  }
}

La forma de la respuesta se muestra a modo ilustrativo — el contenido real depende de la herramienta y de tus datos.