Skip to main content
Glama

Add a post

add_post

Add a post to a campaign on one lane and day, as Promo's + does, with its words, the angle they take and a picture or video from the Library if you have them. It is a post on its own, not part of a moment, and a draft until it is scheduled.

Input Schema

NameRequiredDescriptionDefault
dateYesThe day it goes out, YYYY-MM-DD, inside the campaign's window. A draft may be saved with a day gone by; Schedule asks for one still ahead (schedule_check says so).
laneYesWhere it goes.
timeNoThe time it goes out, HH:MM 24-hour, in the artist's own time zone.
angleNoWhich of Audora's post angles the words take (the key names it: listener_pov is the listener's side of the song, tail_section a part of the track no other post used, hook_object an object the song names, and so on). Audora counts how each angle does for the artist, and promo_results' what_works shows the result. get_campaign shows each post's angle.
artistNoOnly when you are connected as a label: the roster artist this call is for — their artist_user_id from list_roster, or their exact artist name. Required for every artist tool on a label connection. Leave it out on an artist's own connection.
captionNoThe words of the post, as they will be published. The lane's limit and Audora's text rules apply (no placeholders, nothing that points back at another post).
dry_runNoTrue to check the call and see what it would do, without writing anything.
hashtagsNoUp to 12 hashtags, with or without #. Replaces the list.
link_urlNoA web address the post links to, or null to remove it.
campaign_idYesFrom list_campaigns.
media_asset_idNoA picture (for a picture post) or a video (for a video post) already in the artist's Library, by its media asset id. Audora does not make pictures or videos through this connection.
idempotency_keyNoSend the same key if you retry, and the change happens once.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / date / description
      Previous value: -"The day it goes out, YYYY-MM-DD, inside the campaign's window and not in the past."New value: +"The day it goes out, YYYY-MM-DD, inside the campaign's window. A draft may be saved with a day gone by; Schedule asks for one still ahead (schedule_check says so)."
  2. Changed1 schema field changed
    • changedInput schema / properties / angle / enum
      Previous value: -[
      -  "pin_angle.hook_object",
      -  "pin_angle.listener_pov",
      -  "pin_angle.lyric_line_on_beat",
      -  "pin_angle.occasion_day",
      -  "pin_angle.one_answerable_question",
      -  "pin_angle.ordinary_scene_contrast",
      -  "pin_angle.place_light_and_weather",
      -  "pin_angle.place_named_in_words",
      -  "pin_angle.release_fact_card",
      -  "pin_angle.repeat_what_worked",
      -  "pin_angle.scene_vocabulary",
      -  "pin_angle.story_line_that_nearly_went",
      -  "pin_angle.story_place",
      -  "pin_angle.tail_section",
      -  "pin_angle.uploaded_asset_hero"
      -]New value: +[
      +  "pin_angle.hook_object",
      +  "pin_angle.listener_pov",
      +  "pin_angle.lyric_line_on_beat",
      +  "pin_angle.occasion_day",
      +  "pin_angle.one_answerable_question",
      +  "pin_angle.ordinary_scene_contrast",
      +  "pin_angle.place_light_and_weather",
      +  "pin_angle.place_named_in_words",
      +  "pin_angle.release_fact_card",
      +  "pin_angle.repeat_what_worked",
      +  "pin_angle.scene_vocabulary",
      +  "pin_angle.show_coming_up",
      +  "pin_angle.story_line_that_nearly_went",
      +  "pin_angle.story_place",
      +  "pin_angle.tail_section",
      +  "pin_angle.uploaded_asset_hero"
      +]
  3. Changed1 schema field changed
    • addedInput schema / properties / angle
      Added value: +{
      +  "description": "Which of Audora's post angles the words take (the key names it: listener_pov is the listener's side of the song, tail_section a part of the track no other post used, hook_object an object the song names, and so on). Audora counts how each angle does for the artist, and promo_results' what_works shows the result. get_campaign shows each post's angle.",
      +  "enum": [
      +    "pin_angle.hook_object",
      +    "pin_angle.listener_pov",
      +    "pin_angle.lyric_line_on_beat",
      +    "pin_angle.occasion_day",
      +    "pin_angle.one_answerable_question",
      +    "pin_angle.ordinary_scene_contrast",
      +    "pin_angle.place_light_and_weather",
      +    "pin_angle.place_named_in_words",
      +    "pin_angle.release_fact_card",
      +    "pin_angle.repeat_what_worked",
      +    "pin_angle.scene_vocabulary",
      +    "pin_angle.story_line_that_nearly_went",
      +    "pin_angle.story_place",
      +    "pin_angle.tail_section",
      +    "pin_angle.uploaded_asset_hero"
      +  ],
      +  "type": "string"
      +}
  4. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring non-destructive, non-read-only behavior, the description adds real value: it discloses that the result is a draft until scheduled, that media must already exist in the Library (Audora does not generate it here), and implicitly that nothing is published yet. It does not describe the return payload or error behavior, but the draft semantics are the key disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences that front-load the action and scope, then qualify with the moment distinction and draft status. No wasted clauses, though the reference to 'Promo's +' is an opaque internal pointer that costs a little clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter mutation with full schema coverage and no output schema, the description covers scope, draft behavior, and media provenance adequately. It could say more about what the call returns or what happens on validation failure, but nothing essential for calling it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the parameter docs are unusually rich (date window, angle semantics, hashtag limits, dry_run, idempotency). The description mirrors a few of these (words/caption, angle, media from Library) but adds little beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Add a post to a campaign') plus the scoping dimensions (one lane and day) and the content it carries (words, angle, media). It also distinguishes itself from a related concept ('not part of a moment'), though it never explicitly contrasts with the sibling update_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'It is a post on its own, not part of a moment, and a draft until it is scheduled' implies the context of use and that scheduling is a separate step. However, it never names an alternative tool (update_post, keep_post, skip_post) or states when not to use it, so the guidance is implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources