Skip to main content
Glama

Add an output

niche_add_output

Add an output cell to a session that's already reached CP3. Use this when the user picked a small initial cell set, previewed the drafts, and now wants another surface (e.g. the session started with linkedin:text_post and the user wants to add instagram:carousel too).

Text-only cells (linkedin:text_post, x:thread, long_form_article, etc.): generates text via the matching generator if it hasn't run yet, then creates the Output row. This call blocks synchronously ~20-30s when it must run a new generator family (no status to poll); it returns fast when that family already generated. Idempotent: if the cell is already on the session, returns the existing Output unchanged.

Asset cells (linkedin:image_post, x:reel, instagram:image_post, etc.): creates the text Output row; image-bearing cells auto-attach a free branded card (static_urls populated without an explicit render, swappable anytime), while video/reel assets are never auto-rendered. The response's next_step says exactly what to call for more: niche_render_image_card (cell plus an explicit background: 'photo' or 'brand_color') or niche_render_reel (cell). The response's copy_lineage says whether this cell drafted fresh text or shares its generator family's existing copy.

Remove: pass remove_cell to delete a produced cell the user no longer wants on this run. Idempotent: a clean message when the cell isn't present.

Errors: 400 if session is pre-CP3; 422 if cell is invalid.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cellNoCell to add. Must be one of the valid cells (see niche_signal_scan's target_outputs for the list).
session_idYes
remove_cellNoCell to remove from this run (deletes the produced output). Idempotent: a no-op message when the cell isn't present. Pass this instead of `cell` to remove rather than add.
estimate_onlyNoWhen true, return the credit cost of adding this cell without creating a row or generating. Returns 0 when the cell's platform family already generated (text is reused).

TDQS

A4.7/5.0
Behavior5/5

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

The description goes far beyond the minimal annotations (readOnlyHint=false, destructiveHint=false). It discloses blocking behavior (~20-30s), idempotency, auto-attachment of branded cards for image cells, no auto-render for video/reel assets, next_step guidance, copy_lineage semantics, and error conditions (400 pre-CP3, 422 invalid cell). This is rich behavioral context that an agent needs to invoke correctly and set user expectations.

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

Conciseness5/5

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

The description is structured in clear paragraphs: purpose/usage, text vs asset behavior, next_step guidance, removal, and errors. Each sentence contributes meaningful information; no filler or repetition beyond the necessary emphasis on idempotency (which is important). For a tool with this complexity, the length is justified and front-loaded with the core purpose.

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?

Despite having no output schema, the description fully explains what the response contains (next_step, copy_lineage) and covers all major behaviors: adding text/asset cells, blocking, idempotency, auto-rendering rules, removal, and error cases. Given the tool's complexity (4 params, multiple cell types, sub-operations), this description is complete and leaves no critical gaps.

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 75%, with cell, remove_cell, and estimate_only already described. The description adds usage context (e.g., text-only vs asset cells) but does not significantly elaborate on parameter syntax beyond the schema. It reinforces that remove_cell is an alternative to cell, but the schema already states this. Since schema does the heavy lifting and the description adds marginal parameter-specific value, a baseline 3 is appropriate.

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?

The description opens with a specific verb and resource: 'Add an output cell to a session that's already reached CP3.' It clearly distinguishes from sibling tools like niche_render_image_card and niche_render_reel by stating when to use and what the response's next_step directs to. It also differentiates text-only vs asset cells, making the tool's scope and behavior unambiguous.

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?

The description provides explicit when-to-use context: 'Use this when the user picked a small initial cell set, previewed the drafts, and now wants another surface.' It also names alternatives (niche_render_image_card, niche_render_reel) and explains the removal path via remove_cell. This is a clear usage guideline that distinguishes this tool from siblings.

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.

TDQS

A4.2/5.0
Disambiguation4/5

Tools are mostly distinct across the pipeline—discovery, brand setup, drafting, rendering, publishing, session management—and descriptions are detailed. Minor overlap exists between niche_signal_scan and niche_intelligence_query (both discovery) and between niche_add_output and niche_draft_create (both generate outputs), but the descriptions clearly differentiate them. Overall, an agent can reliably select the right tool.

Naming Consistency3/5

All tools share the `niche_` prefix and snake_case, but the verb/noun order is inconsistent: some are verb-first (add_output, render_image_card, list_sessions) while many are noun-first (angle_propose, brand_kit_ingest, draft_create, session_cancel). This mixed convention requires the agent to learn each name individually rather than predict the pattern.

Tool Count3/5

25 tools is on the heavy side but appropriate for the platform's scope—full editorial intelligence from discovery to publish. No redundant tools, and each covers a distinct aspect, but the count is high enough that it feels dense and may require orientation (which niche_whoami addresses).

Completeness4/5

The toolset covers the full workflow: discovery, angle proposal, drafting, revision, publishing, rendering, asset attachment, brand setup, and session management. Minor gaps exist, such as no direct read tool for the current BrandKit (only via ingest status) and no hard-delete tool (session_cancel mentions the REST endpoint instead), but these are edge cases and agents can work around them.