Skip to main content
Glama

export_to_tap

Destructive

Send one Jack to a Total Audio Promo (TAP) campaign, creating a new draft campaign or writing into an existing one, and return TAP’s receipt. TAP is a separate product, so only call this when the person has asked for the Jack in TAP. Provide either content_id (a saved Post; its text, platform and title are used) or content (raw text). Without campaign_id it creates a draft TAP campaign named after title and stores the Jack as its goal. With campaign_id it overwrites that campaign’s existing goal field with the Jack, which cannot be undone from NewsJack. The write goes through the TAP API key configured on the NewsJack server (TAP_API_KEY), not a per-user TAP login, and fails if that key is missing or TAP refuses. Returns structuredContent { receipt: { campaignId, campaignUrl, created, acknowledgedAt } }. Not idempotent: repeating it without campaign_id creates another campaign. Needs the generate:posts scope; no NewsJack allowance is used.

Input Schema

NameRequiredDescriptionDefault
titleNoName for a new TAP campaign, e.g. 'Spring single newsjack'. A saved Post's own title wins; defaults to 'NewsJack export'.
contentNoJack text to export when there is no saved Post, for example the output of generate_post_dry_run. Required if content_id is omitted.
platformNoPlatform label written into the TAP goal as '[NewsJack <platform>]', e.g. 'linkedin' (default), 'twitter' or 'newsletter'. Ignored when content_id is set.linkedin
content_idNoFull id of a saved Post owned by this account, from generate_post or list_scheduled. When set, its text, platform and title are used and content and platform are ignored.
campaign_idNoID of an existing TAP campaign to write into. Its goal field is replaced with the Jack. Omit to create a new draft campaign instead.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / campaign_id / description
      Previous value: -"Existing TAP campaign ID. Omit to create one."New value: +"ID of an existing TAP campaign to write into. Its goal field is replaced with the Jack. Omit to create a new draft campaign instead."
    • changedInput schema / properties / content / description
      Previous value: -"Direct Jack text if not using content_id."New value: +"Jack text to export when there is no saved Post, for example the output of generate_post_dry_run. Required if content_id is omitted."
    • changedInput schema / properties / content_id / description
      Previous value: -"Existing Post ID containing the Jack to export."New value: +"Full id of a saved Post owned by this account, from generate_post or list_scheduled. When set, its text, platform and title are used and content and platform are ignored."
    • changedInput schema / properties / platform / description
      Previous value: -"Destination platform."New value: +"Platform label written into the TAP goal as '[NewsJack <platform>]', e.g. 'linkedin' (default), 'twitter' or 'newsletter'. Ignored when content_id is set."
    • changedInput schema / properties / title / description
      Previous value: -"Optional campaign or track title."New value: +"Name for a new TAP campaign, e.g. 'Spring single newsjack'. A saved Post's own title wins; defaults to 'NewsJack export'."
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, but the description adds context annotations cannot: the overwrite "cannot be undone from NewsJack," the write uses a server-level TAP_API_KEY rather than a per-user login, it fails when that key is missing or TAP refuses, and it requires the generate:posts scope without consuming a NewsJack allowance. It even names the return payload. The one gap is the absence of any partial-failure guidance (e.g., whether a campaign is created before the goal write fails).

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?

Purpose and the when-to-call gate are front-loaded, and nearly every sentence carries distinct information (auth model, mutation semantics, return shape, scope, non-idempotency). It is delivered as a single dense paragraph with no structural breaks, which makes the mode-switching rules between content_id/content and campaign_id/new-draft harder to scan than they need to be.

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

Completeness5/5

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

This is an open-world, destructive, non-idempotent write with no output schema, and the description covers everything an agent needs: preconditions, auth model, branch behavior, irreversibility, failure condition, and the shape of the returned receipt. Nothing material is left to the schema or annotations to guess at.

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

Parameters4/5

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

Schema coverage is 100%, so baseline would be 3, but the description adds a constraint the schema cannot express: with zero required parameters, at least one of content_id or content must be supplied. It also restates the precedence rule that content_id overrides content and platform and describes what campaign_id does to the target's goal field.

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

Purpose5/5

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

"Send one Jack to a Total Audio Promo (TAP) campaign, creating a new draft campaign or writing into an existing one" gives a specific verb, resource, and the two operating modes. No sibling tool touches TAP, and the description makes that external boundary explicit ("TAP is a separate product"), so an agent can select it unambiguously.

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

Usage Guidelines5/5

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

It states an explicit gate: "only call this when the person has asked for the Jack in TAP," which rules out speculative or default use. It also explains the two input modes (content_id versus content) and the two output modes (campaign_id versus a new draft), including the warning that omitting campaign_id on a repeat call creates another campaign.

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