Skip to main content
Glama

Server Details

Deterministic visual marketing engine. Your agent plans, renders, and posts on-brand campaigns.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL
Repository
Hexahedral-Inc/siren-mcp
GitHub Stars
0

TDQS

A4.1/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, but a few pairs overlap in purpose: create_campaign vs render_asset both generate runs, and post_run vs schedule_post both publish runs. The descriptions provide enough guidance to choose correctly, so ambiguity is limited.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern, such as get_account, list_runs, upload_product_screen, and schedule_post. The names are predictable and clearly signal the action and target resource.

Tool Count5/5

With 14 tools, the set is well-scoped for the server's purpose: brand DNA management, product screen asset handling, run generation, and social posting. Each tool covers a meaningful operation without feeling redundant or bloated.

Completeness4/5

The tool surface covers the core lifecycle: clarify briefs, create/run campaigns, read/list runs, manage brand DNA and product screens, and post or schedule output. Minor gaps exist, such as no way to cancel or delete a run, but the main workflows are not blocked.

Available Tools

14 tools
clarify_briefA
Read-onlyIdempotent
Inspect

Ask Siren's clarifier whether a brief is specific enough to generate from. Returns ready=true/false plus follow-up questions. Use before create_campaign when the user's request is vague.

ParametersJSON Schema
NameRequiredDescriptionDefault
briefYesPlain-language request for the post, e.g. "announce the new export feature, use the dashboard screenshot".

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool's safe behavioral profile is clear. The description adds the return shape (ready flag plus questions) but does not add further behavioral context such as rate limits, auth, or external effects; that is acceptable given strong annotations.

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?

Three short sentences cover the action, return value, and invocation context with no filler. The most important purpose and usage guidance are front-loaded.

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 read-only single-parameter tool, the description provides enough to call it correctly: purpose, input, return value, and when to use it. The output schema presumably details the return structure, and the only minor gap is guidance on how to use the follow-up questions after a false ready result.

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?

The schema only defines 'brief' as a required string with 0% description coverage. The tool description adds meaning by indicating the brief is the content evaluated for specificity, but it does not explain what a valid brief looks like, required content, or format expectations. Some compensation occurs, but not fully.

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 clearly states the tool asks Siren's clarifier whether a brief is specific enough to generate from, which specifies both the action and the resource. It also names the return type (ready=true/false plus follow-up questions) and positions the tool as a precursor to create_campaign, making it distinct from sibling tools.

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

Usage Guidelines4/5

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

It explicitly says to use this tool before create_campaign when the user's request is vague, providing a clear trigger condition. It does not enumerate when not to use it or name alternative tools, but the condition implies that specific briefs do not need this pre-check.

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

create_campaignAInspect

Create a Siren campaign from a plain-language brief — the full pipeline: plan, on-brand copy, deterministic render, verify. Returns the run; poll get_run until it finishes. Spends credits (image 10, video 25; voice or music-only is the same 25). Optional scheduled_at (ISO-8601) queues a sequential post (X → Instagram → TikTok, or platforms you pass) when the render succeeds — requires Allow posting. Fails with a 402 upgrade message if the plan or balance can't cover it.

ParametersJSON Schema
NameRequiredDescriptionDefault
briefYesPlain-language request for the post, e.g. "announce the new export feature, use the dashboard screenshot".
channelNoTarget channel for the render: twitter, instagram, linkedin, tiktok, or youtube. Sets the aspect and copy length.twitter
timezoneNoIANA timezone name for scheduled_at, e.g. Africa/Lagos or America/New_York.UTC
platformsNoWhere to post: any of x, instagram, tiktok, linkedin, youtube, or ["everything"] for every connected channel.
asset_typeNoWhat to make: card (still image) or video.card
scheduled_atNoISO-8601 time to post, e.g. 2026-09-12T09:00:00. Interpreted in the given timezone.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

The description discloses significant behavioral details beyond the annotations: it returns a run to poll, consumes credits with specific costs, supports optional scheduling with sequencing, requires the 'Allow posting' permission, and fails with a 402 upgrade message when credits are insufficient. This goes well beyond the generic hints and gives the agent concrete 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 dense but every sentence earns its place: purpose, lifecycle, costs, scheduling, auth, and failure mode are all covered without fluff. The core action is front-loaded, and the supporting details appear in a logical order.

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?

For a tool with six parameters and no schema-level descriptions, this description is remarkably complete. It tells the agent what the tool does, how to track the result, what it costs, when scheduling happens, what permission is needed, and when it will fail. The presence of an output schema further reduces the need to describe return values.

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 0%, so the description must compensate. It adds meaning for brief, scheduled_at, and platforms, and touches on asset_type through credit costs. However, it does not explain channel or timezone parameters at all, leaving some parameters semantically uncovered.

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 clearly identifies the tool's action ('Create a Siren campaign') and the resource ('from a plain-language brief'), while also distinguishing it from related tools by framing it as the full pipeline (plan, copy, render, verify). It is specific enough that an agent can separate it from siblings like render_asset or schedule_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?

The description implies usage context: it is for the full campaign creation pipeline and instructs the agent to poll get_run afterward. However, it does not explicitly state when to prefer an alternative tool (e.g., schedule_post for posting only, or render_asset for a single asset), so the when-not-to-use guidance is only implied.

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

delete_product_screenA
Destructive
Inspect

Remove a product screenshot from Brand DNA. Does not delete Brand Memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
screen_idYesId of the brand asset from list_product_screens.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark this as destructive, and the description adds a meaningful boundary: it deletes the product screenshot but not Brand Memory. This gives useful behavioral context beyond the structured annotations, though it does not discuss irreversibility or side effects.

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 two short sentences with no filler. The primary action is front-loaded, and the second sentence earns its place by clarifying the deletion scope.

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 single-parameter destructive tool with an output schema and annotations, the description covers the essential behavior and scope well. Minor gap: it does not point to list_product_screens as a way to find the screen_id, but this is not a critical omission given the tool's simplicity.

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

Parameters2/5

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

The input schema has one required string, screen_id, with 0% description coverage. The description does not explain what screen_id refers to or how to obtain it, though the parameter name is reasonably self-explanatory from context.

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 uses a specific verb-resource pair, 'Remove a product screenshot from Brand DNA,' and explicitly distinguishes this from deleting Brand Memory. This clearly identifies what the tool does and separates it from nearby concepts.

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?

The description implies this tool is for removing screenshots while preserving Brand Memory, but it does not explicitly state when to use it over update_product_screen or upload_product_screen. The usage context is clear enough, but no direct alternatives or when-not-to-use guidance is provided.

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

get_accountA
Read-onlyIdempotent
Inspect

Get the connected Siren workspace: plan, key scopes, auto-post setting, and daily limit. Call this first to learn what the account can do before generating.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value beyond annotations by specifying what the call reveals about account capabilities, which frames the agent's subsequent decisions. No contradiction with annotations.

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?

Two tightly written sentences with zero waste: the first states precisely what is retrieved, the second states when and why to call it. Every word carries meaning, and the most important guidance ('call this first') is front-loaded in the second sentence.

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?

The tool has an output schema (return values need no prose), zero parameters, and comprehensive annotations. The description supplies the remaining pieces — the resource being read, its contents, and the recommended invocation ordering — so an agent has everything it needs to select and call this tool correctly.

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?

With zero parameters, the schema fully documents the input side and the baseline of 4 applies. The description productively shifts focus to what the response exposes (plan, scopes, limits), which is the information an agent actually needs to plan its next calls.

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 uses a specific verb ('Get') with a clearly defined resource ('the connected Siren workspace') and enumerates the exact data returned: plan, key scopes, auto-post setting, and daily limit. This cleanly distinguishes it from siblings like get_run, get_brand_dna, and list_runs, which target different resources.

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?

'Call this first to learn what the account can do before generating' is explicit, prescriptive sequencing guidance. It tells the agent exactly when to invoke the tool — as the initial discovery step ahead of the generation-family siblings (render_asset, post_run, schedule_post, create_campaign) — which is the full extent of the guidance needed for a unique 0-parameter discovery tool.

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

get_brand_dnaA
Read-onlyIdempotent
Inspect

Get this workspace's Brand DNA: name, overview, tagline, offer, features, products, audience, palette, logos. Not Brand Memory.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate safety. It adds useful context by scoping the operation to 'this workspace' and listing the data payload. No contradiction with annotations exists.

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 a single efficient sentence: a clear lead, a colon-delimited list of contents, and a one-phrase exclusion. There is no filler, repetition, or unnecessary detail.

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?

For a zero-parameter, read-only getter with comprehensive annotations and an output schema, the description is complete. It identifies the resource, the workspace scope, the included fields, and the Brand Memory boundary, so an agent has everything needed to select and invoke it correctly.

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?

The tool has zero parameters, so the schema is fully covered and the description correctly adds no parameter documentation. The only relevant semantic context is the implicit workspace scoping, which the description provides with 'this workspace's.'

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 uses a specific verb ('Get') with a clear resource ('this workspace's Brand DNA') and enumerates the exact contents: name, overview, tagline, offer, features, products, audience, palette, logos. The explicit 'Not Brand Memory' clause helps distinguish it from a related but different concept, and sibling names like update_brand_dna reinforce the get/update distinction.

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

Usage Guidelines4/5

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

The description clearly conveys when to use this tool: whenever the agent needs the current workspace's Brand DNA fields. It also rules out Brand Memory as a target. However, it does not explicitly name a sibling alternative to use for Brand Memory, so the guidance stops short of full alternative routing.

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

get_runA
Read-onlyIdempotent
Inspect

Get one run by id — full status, output text, asset URLs, impact and audience scores, and any error. Poll this after create_campaign or render_asset until status is terminal.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe run id returned by create_campaign, render_asset, or list_runs.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds beyond that by revealing polling semantics and the response contents, including terminal-status tracking and error exposure. This is useful behavioral context without contradicting annotations.

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?

One dense sentence that front-loads the purpose, lists returned data, and closes with actionable polling guidance. Every phrase earns its place with no filler.

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?

The tool is simple (one required param) and has an output schema, so the description need not detail return fields. It conveys the object, scope, usage trigger, and stopping condition, making it complete enough for correct invocation and polling.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only says 'by id' and does not explain run_id format, source, or constraints beyond the schema's type string. The parameter name is self-explanatory, but the description provides almost no additional semantic value.

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?

Description uses specific verb 'Get' with resource 'one run by id' and enumerates what is returned: full status, output text, asset URLs, impact/audience scores, and any error. This clearly distinguishes it from list-oriented siblings like list_runs.

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

Usage Guidelines4/5

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

Explicitly instructs when to call it: poll after create_campaign or render_asset until status is terminal. It gives clear contextual usage, though it does not explicitly state when not to use it or name alternative list tools.

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

list_product_screensA
Read-onlyIdempotent
Inspect

List the brand assets in Brand DNA: product photos, app screenshots, packaging. Each row has name, kind, description, use_when, tags, scan_status (scanning / ready / failed), device, theme, url.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful context like the Brand DNA scope and scan_status lifecycle values, but it does not disclose pagination, sorting, or whether the full set of assets is returned in one call.

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?

The first clause is front-loaded with the purpose, and the second clause compactly lists the row fields. It is not bloated, though the field list may partially duplicate the output schema and could be trimmed without losing 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 no-parameter, read-only list tool with strong annotations and an output schema, the description is largely sufficient: it states what is listed and the shape of each row. It stops short of fully complete by not addressing pagination or how this tool relates to get_brand_dna.

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?

The tool has zero parameters and the schema covers 100% of them, so there is no parameter ambiguity to resolve. The description's field list describes output rows rather than inputs, and the baseline for zero-parameter tools is appropriately strong.

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 states a specific action ('List') and a specific resource ('brand assets in Brand DNA'), then further delimits the scope to product photos, app screenshots, and packaging. The row-field enumeration makes the purpose concrete and distinguishes it from mutation siblings like update_product_screen and delete_product_screen.

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

Usage Guidelines2/5

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

The description does not say when to prefer this over alternatives such as get_brand_dna, nor does it give exclusions or context. The imperative 'List...' implies the basic operation, but there is no explicit guidance about when this tool should be selected or avoided.

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

list_runsA
Read-onlyIdempotent
Inspect

List the workspace's recent generation runs (newest first): status, brief, channel, asset URLs, and audience scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many runs to return, 1 to 50. Newest first.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate a safe, read-only, idempotent operation. The description adds useful behavioral context: it returns recent runs, in newest-first order, with specific fields like status, brief, channel, asset URLs, and audience scores. This supplements the annotations without contradicting them.

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 a single, focused sentence that front-loads the action and scope, then lists the returned fields. Every phrase earns its place, with no redundant or filler content.

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?

The tool is simple, has strong annotations, and has an output schema, so the description does not need to explain return values in depth. It covers the main behavior, ordering, and scope. The only notable gap is the omitted semantics of the limit parameter, but the tool is otherwise adequately specified.

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

Parameters2/5

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

With 0% schema description coverage and only one parameter, the description carries the burden of explaining the limit parameter. However, it does not mention limit at all, leaving the agent to infer its meaning from the name and default value. The schema provides minimal structural info, but the description adds nothing about how limit affects results.

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 uses a specific verb ('List') and resource ('the workspace's recent generation runs'), includes the ordering ('newest first'), and names the key fields returned. This clearly distinguishes it from siblings like get_run, which retrieves a single run.

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

Usage Guidelines4/5

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

The description makes it clear this is for viewing recent runs as a collection, which is distinct from get_run for individual run details. It does not explicitly name alternatives or state when not to use it, but the context is clear enough for an agent to choose appropriately.

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

post_runA
Destructive
Inspect

Post a finished run's assets to the workspace's CONNECTED SOCIAL ACCOUNT. This is live, public distribution on the customer's channel — always confirm with the user before calling. Only works if the grant was authorised with posting allowed.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe run id returned by create_campaign, render_asset, or list_runs.
platformNoConnected channel to post to: x, instagram, tiktok, linkedin, or youtube.x

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

The description goes well beyond the annotations by disclosing that this is live, public, irreversible distribution on the customer's channel and that user confirmation is mandatory. It also adds the permission prerequisite, which is critical behavioral context an agent needs before invoking a destructive action.

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?

Three short sentences deliver the action, the consequence, and the safety requirement without any wasted words. The most important behavioral warning ('always confirm with the user') is placed prominently.

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?

With an output schema present and annotations already covering read-only, idempotency, and destructiveness, the description adds the essential human-confirmation and permission context. The only notable gap is undocumented platform semantics, which keeps it from being fully complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameter meaning. It implies run_id refers to a finished run's identifier via 'a finished run's assets', but it says nothing about the platform parameter or its possible values beyond the schema default of 'x'.

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 uses a specific verb ('Post') and a precise resource ('a finished run's assets to the workspace's CONNECTED SOCIAL ACCOUNT'). It clearly distinguishes this from scheduling by calling out 'live, public distribution on the customer's channel.'

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

Usage Guidelines4/5

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

It gives clear usage context: this is for finished runs only, requires a grant authorized with posting allowed, and mandates user confirmation before calling. It does not explicitly name alternatives like schedule_post, but the live-distribution framing makes the intended situation clear.

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

render_assetAInspect

Render pre-formed SirenSeed bodies directly (advanced): deterministic template render, no planner. Each item: {output_type, channel, seed_body, archetype?, family?, surface?, caption?, voice_id?}. Prefer create_campaign unless the user has concrete seed JSON. Returns run ids — poll get_run for status.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoHuman-readable name for the asset or run.
itemsYesPre-formed SirenSeed bodies to render. Each item: {output_type, channel, seed_body, archetype?, family?, surface?, caption?, voice_id?}.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations are all false, so the description carries the burden. It adds meaningful behavioral context: 'deterministic template render, no planner' and 'Returns run ids — poll get_run for status' reveal an asynchronous, run-based execution model. It doesn't contradict annotations, though it doesn't disclose potential side effects or costs.

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 dense and efficient: three sentences deliver purpose, usage guidance, item structure, and post-call behavior. Every sentence earns its place, and the most important scoping guidance is front-loaded.

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 an advanced tool with zero schema descriptions, the description covers the key context: what inputs are expected, when to prefer an alternative, and what to do with the returned run ids. The only minor gap is the lack of detail on how to construct seed_body and the optional 'name' parameter, but the term 'pre-formed' reduces the agent's responsibility.

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 description coverage is 0%, but the description compensates by enumerating the expected per-item fields: output_type, channel, seed_body, archetype?, family?, surface?, caption?, voice_id?. This gives meaning beyond the generic 'additionalProperties: true' schema, though the optional 'name' parameter is not mentioned and individual field semantics are left to inference.

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 clearly states the tool renders pre-formed SirenSeed bodies directly with a deterministic template render and no planner. It identifies the specific resource and operation, and differentiates from sibling tools like create_campaign by emphasizing the 'direct' advanced path.

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 explicitly instructs the agent to prefer create_campaign unless the user has concrete seed JSON, which is a precise when-to-use rule. It also directs the agent to poll get_run after receiving run ids, providing clear follow-up guidance.

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

schedule_postA
Destructive
Inspect

Schedule a finished run to post at scheduled_at (ISO-8601). Shows in the customer's local timezone. platforms: x, instagram, tiktok, linkedin, youtube, or everything. Posts fire sequentially. Requires Allow posting. Prefer this over post_run when the user names a time. On create_campaign you can pass scheduled_at instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe run id returned by create_campaign, render_asset, or list_runs.
captionsNoOptional caption override per platform, e.g. {"x": "...", "linkedin": "..."}.
timezoneNoIANA timezone name for scheduled_at, e.g. Africa/Lagos or America/New_York.UTC
platformsNoWhere to post: any of x, instagram, tiktok, linkedin, youtube, or ["everything"] for every connected channel.
scheduled_atYesISO-8601 time to post, e.g. 2026-09-12T09:00:00. Interpreted in the given timezone.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

The description adds meaningful behavior beyond the annotations: posts fire sequentially, times display in the customer's local timezone, and Allow posting permission is required. These are useful operational details that annotations do not convey, and there is no contradiction with the write/destructive flags.

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 compact and front-loaded: the primary purpose appears first, followed by behavior, permission, and routing guidance. Every sentence adds value without repeating schema or annotation information.

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?

The description covers purpose, permission, platform values, timing semantics, and alternatives. An output schema exists, so return values need not be explained. Minor gaps remain around run_id and captions semantics, but sibling tools like get_run and the schema shapes mostly compensate.

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 0%, so the description must compensate. It clarifies scheduled_at as ISO-8601, lists acceptable platforms, and hints at timezone behavior, but it leaves run_id and captions with no semantic explanation, and the timezone parameter is only implied rather than explicitly described.

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 states a specific verb and resource: 'Schedule a finished run to post at scheduled_at (ISO-8601)'. It also explicitly distinguishes from siblings by saying 'Prefer this over post_run' and referencing create_campaign's alternative, so an agent can tell this tool apart without opening schemas.

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 gives explicit when-to-use guidance: 'Prefer this over post_run when the user names a time' and notes that create_campaign can accept scheduled_at instead. It also states a prerequisite, 'Requires Allow posting', which is actionable selection context.

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

update_brand_dnaAInspect

Patch Brand DNA. Send only keys to change. Nested bags (offer, product_map, icp) merge. Examples: {tagline, overview, offer: {product_name, one_liner, features, who_its_for, primary_cta}, product_map: {offerings, how_we_work}, icp: {who_buys, pains}}. Does not read or write Brand Memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesBrand DNA keys to change, e.g. {"tagline": "...", "offer": {"one_liner": "..."}}. Nested bags merge.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the annotations, the description reveals important behavioral details: nested objects merge rather than replace, and the tool 'does not read or write Brand Memory.' This adds meaningful side-effect context that the annotations alone do not convey, though it stops short of documenting error behavior or exact write semantics.

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 tightly written and front-loaded with the core behavior: 'Patch Brand DNA. Send only keys to change.' Every sentence adds value: the merge rule, the example keys, and the Brand Memory boundary. There is no filler or repetition.

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 single-parameter tool with a dynamic object field, the description provides sufficient structural examples and merge semantics to call the tool correctly. It also clarifies the key boundary with Brand Memory. The presence of an output schema means return-value documentation is not required, so no major information gap remains.

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 description coverage is 0%, so the description carries the burden of explaining the 'fields' parameter. It compensates well by listing concrete accept keys like tagline, overview, offer, product_map, and icp, plus their nested structure. It remains example-based rather than a complete schema, but it gives an agent enough to construct a valid payload.

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 states a specific action and resource: 'Patch Brand DNA.' It clearly distinguishes the tool from get_brand_dna by framing this as a write/update operation, and the emphasis on partial updates makes its function clear. It doesn't explicitly name sibling alternatives, but the intent is unambiguous.

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?

The description gives useful invocation guidance: 'Send only keys to change' and explains that nested bags merge. However, it does not explicitly state when to use this tool over alternatives like get_brand_dna or clarify_brief, nor does it mention any exclusion conditions. Usage is implied rather than explicitly routed.

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

update_product_screenAInspect

Edit an existing brand asset: name, description, kind, use_when, and the screenshot tags (screen_type, device, theme).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoFree-text kind: product photo, dashboard screenshot, packaging, logo, team photo.
nameNoHuman-readable name for the asset or run.
themeNoUI theme in the screenshot: light, dark, or unknown.
deviceNoDevice the screenshot was taken on: phone, tablet, desktop, or none.
use_whenNoWhen Siren should reach for this asset, e.g. "any post about the analytics page".
screen_idYesId of the brand asset from list_product_screens.
descriptionNoWhat the picture shows and what it is for, in your words. When set, Siren files the asset without reading it.
screen_typeNoScreen role: feature, hero, onboarding, settings, or marketing.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate a non-read-only mutation (readOnlyHint=false). The description adds that it edits an existing brand asset and lists the mutable fields, but does not disclose whether it performs a partial update (only provided fields) or what happens if screen_id does not exist. No contradiction with annotations.

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?

Single sentence, front-loaded with verb and resource, no filler. The list of fields is useful but makes the sentence long; acceptable for eight parameters.

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

Completeness3/5

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

For an update tool with eight optional parameters and a required identifier, the description identifies the resource and editable fields but omits behavioral details like partial-update semantics or the requirement that screen_id reference an existing screen. Output schema exists, so return values need not be described.

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 0%, so the description carries the burden. It lists 7 of 8 parameters and groups screen_type, device, and theme as 'screenshot tags', which adds semantic context. However, it does not define ambiguous fields like kind or use_when, and screen_id is only implied by the required schema.

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?

States verb 'Edit' with resource 'existing brand asset' and enumerates the mutable fields. Clearly distinguishes from sibling tools like upload_product_screen, delete_product_screen, and update_brand_dna by targeting screen metadata. Unambiguous about what operation this tool performs.

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?

The description implies usage for editing an existing brand asset but provides no explicit guidance on when to choose it over alternatives such as upload_product_screen or delete_product_screen. It does not state exclusions or conditions, e.g., 'use when the screen already exists.'

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

upload_product_screenAInspect

Upload a brand asset (product photo, app screenshot, packaging) into Brand DNA and store it on R2. Pass image_url (https PNG/JPG/WebP) or image_base64.

Two ways to file it:

  • Send description (and optionally kind, use_when, tags, name): Siren trusts your words and files the asset as-is. No read.

  • Send only the file: Gemini reads the picture and writes name, kind, description, use_when, tags itself. scan_status goes scanning → ready in about 8 seconds; poll list_product_screens.

kind is free text ("product photo", "dashboard screenshot", "packaging"), there is no fixed list. A brief that names an asset ("advertise the pink handbag") pulls that file into the still. screen_type / device / theme only matter for device-framed screenshot masters.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoFree-text kind: product photo, dashboard screenshot, packaging, logo, team photo.
nameNoHuman-readable name for the asset or run.
tagsNoShort lowercase tags for search, e.g. ["dashboard", "dark-mode"].
themeNoUI theme in the screenshot: light, dark, or unknown.unknown
deviceNoDevice the screenshot was taken on: phone, tablet, desktop, or none.phone
use_whenNoWhen Siren should reach for this asset, e.g. "any post about the analytics page".
image_urlNoPublic https URL of a PNG, JPG, or WebP to store as a brand asset.
descriptionNoWhat the picture shows and what it is for, in your words. When set, Siren files the asset without reading it.
screen_typeNoScreen role: feature, hero, onboarding, settings, or marketing.feature
image_base64NoThe image bytes as base64, if you have no URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, the description discloses meaningful behavior: Gemini reads the image and writes metadata itself, scan_status transitions from scanning to ready in about 8 seconds, Siren trusts provided descriptions and does not read the file, and screen_type/device/theme only matter for device-framed screenshot masters. This goes well beyond the generic annotation hints.

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 well-structured with a clear opening, bulleted modes, and a concise clarification about kind and device-framing parameters. Despite covering 10 parameters, every sentence earns its place and the bullets make the two ingestion paths easy to parse.

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?

Given the tool's complexity and the absence of schema descriptions, the description is remarkably complete: it covers input formats, both filing modes, auto-generated metadata, async scanning status, polling guidance, free-text kind semantics, and parameter scoping. Since an output schema exists, the description does not need to explain return values, and nothing critical is missing for invoking the tool correctly.

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?

With 0% schema description coverage, the description carries the burden and mostly succeeds: it explains image_url vs image_base64 alternatives, optional metadata parameters, free-text kind with no fixed list, and the limited relevance of screen_type/device/theme. It leaves some parameters like name, tags, and use_when only implied rather than fully defined, but the semantics are reasonably inferable.

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 opening sentence states a specific action (upload a brand asset into Brand DNA and store it on R2) with concrete example content types. It clearly distinguishes this upload tool from sibling tools like update_product_screen, delete_product_screen, and list_product_screens by describing the core upload-and-file behavior.

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

Usage Guidelines4/5

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

The description gives clear context for when to use each mode: send description to file as-is, or send only the file to let Gemini generate metadata. It also tells the agent to poll list_product_screens after auto-scanning, but it does not explicitly contrast this tool with update_product_screen or other alternatives.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 11 tool updates
    • Changedclarify_brief1 field changed
      • addedInput schema / properties / brief / description
        Added value: +"Plain-language request for the post, e.g. \"announce the new export feature, use the dashboard screenshot\"."
    • Changedcreate_campaign6 fields changed
      • addedInput schema / properties / asset_type / description
        Added value: +"What to make: card (still image) or video."
      • addedInput schema / properties / brief / description
        Added value: +"Plain-language request for the post, e.g. \"announce the new export feature, use the dashboard screenshot\"."
      • addedInput schema / properties / channel / description
        Added value: +"Target channel for the render: twitter, instagram, linkedin, tiktok, or youtube. Sets the aspect and copy length."
      • addedInput schema / properties / platforms / description
        Added value: +"Where to post: any of x, instagram, tiktok, linkedin, youtube, or [\"everything\"] for every connected channel."
      • addedInput schema / properties / scheduled_at / description
        Added value: +"ISO-8601 time to post, e.g. 2026-09-12T09:00:00. Interpreted in the given timezone."
      • addedInput schema / properties / timezone / description
        Added value: +"IANA timezone name for scheduled_at, e.g. Africa/Lagos or America/New_York."
    • Changeddelete_product_screen1 field changed
      • addedInput schema / properties / screen_id / description
        Added value: +"Id of the brand asset from list_product_screens."
    • Changedget_run1 field changed
      • addedInput schema / properties / run_id / description
        Added value: +"The run id returned by create_campaign, render_asset, or list_runs."
    • Changedlist_runs1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"How many runs to return, 1 to 50. Newest first."
    • Changedpost_run2 fields changed
      • addedInput schema / properties / platform / description
        Added value: +"Connected channel to post to: x, instagram, tiktok, linkedin, or youtube."
      • addedInput schema / properties / run_id / description
        Added value: +"The run id returned by create_campaign, render_asset, or list_runs."
    • Changedrender_asset2 fields changed
      • addedInput schema / properties / items / description
        Added value: +"Pre-formed SirenSeed bodies to render. Each item: {output_type, channel, seed_body, archetype?, family?, surface?, caption?, voice_id?}."
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name for the asset or run."
    • Changedschedule_post5 fields changed
      • addedInput schema / properties / captions / description
        Added value: +"Optional caption override per platform, e.g. {\"x\": \"...\", \"linkedin\": \"...\"}."
      • addedInput schema / properties / platforms / description
        Added value: +"Where to post: any of x, instagram, tiktok, linkedin, youtube, or [\"everything\"] for every connected channel."
      • addedInput schema / properties / run_id / description
        Added value: +"The run id returned by create_campaign, render_asset, or list_runs."
      • addedInput schema / properties / scheduled_at / description
        Added value: +"ISO-8601 time to post, e.g. 2026-09-12T09:00:00. Interpreted in the given timezone."
      • addedInput schema / properties / timezone / description
        Added value: +"IANA timezone name for scheduled_at, e.g. Africa/Lagos or America/New_York."
    • Changedupdate_brand_dna1 field changed
      • addedInput schema / properties / fields / description
        Added value: +"Brand DNA keys to change, e.g. {\"tagline\": \"...\", \"offer\": {\"one_liner\": \"...\"}}. Nested bags merge."
    • Changedupdate_product_screen8 fields changed
      • addedInput schema / properties / description / description
        Added value: +"What the picture shows and what it is for, in your words. When set, Siren files the asset without reading it."
      • addedInput schema / properties / device / description
        Added value: +"Device the screenshot was taken on: phone, tablet, desktop, or none."
      • addedInput schema / properties / kind / description
        Added value: +"Free-text kind: product photo, dashboard screenshot, packaging, logo, team photo."
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name for the asset or run."
      • addedInput schema / properties / screen_id / description
        Added value: +"Id of the brand asset from list_product_screens."
      • addedInput schema / properties / screen_type / description
        Added value: +"Screen role: feature, hero, onboarding, settings, or marketing."
      • addedInput schema / properties / theme / description
        Added value: +"UI theme in the screenshot: light, dark, or unknown."
      • addedInput schema / properties / use_when / description
        Added value: +"When Siren should reach for this asset, e.g. \"any post about the analytics page\"."
    • Changedupload_product_screen10 fields changed
      • addedInput schema / properties / description / description
        Added value: +"What the picture shows and what it is for, in your words. When set, Siren files the asset without reading it."
      • addedInput schema / properties / device / description
        Added value: +"Device the screenshot was taken on: phone, tablet, desktop, or none."
      • addedInput schema / properties / image_base64 / description
        Added value: +"The image bytes as base64, if you have no URL."
      • addedInput schema / properties / image_url / description
        Added value: +"Public https URL of a PNG, JPG, or WebP to store as a brand asset."
      • addedInput schema / properties / kind / description
        Added value: +"Free-text kind: product photo, dashboard screenshot, packaging, logo, team photo."
      • addedInput schema / properties / name / description
        Added value: +"Human-readable name for the asset or run."
      • addedInput schema / properties / screen_type / description
        Added value: +"Screen role: feature, hero, onboarding, settings, or marketing."
      • addedInput schema / properties / tags / description
        Added value: +"Short lowercase tags for search, e.g. [\"dashboard\", \"dark-mode\"]."
      • addedInput schema / properties / theme / description
        Added value: +"UI theme in the screenshot: light, dark, or unknown."
      • addedInput schema / properties / use_when / description
        Added value: +"When Siren should reach for this asset, e.g. \"any post about the analytics page\"."
  2. 14 tool updates
    • First observedclarify_brief
    • First observedcreate_campaign
    • First observeddelete_product_screen
    • First observedget_account
    • First observedget_brand_dna
    • First observedget_run
    • First observedlist_product_screens
    • First observedlist_runs
    • First observedpost_run
    • First observedrender_asset
    • First observedschedule_post
    • First observedupdate_brand_dna
    • First observedupdate_product_screen
    • First observedupload_product_screen

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to generate on-brand visuals from ideas, URLs, documents, or PDFs in over 100 formats and 150+ languages, with consistent brand kits.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to create high-resolution marketing images from simple JSON configs without design skills or API keys. Provides presets, themes, and layouts to render deterministic PNGs locally.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.