Skip to main content
Glama

Save a hashtag group or a snippet

save_writing_asset

Save a reusable hashtag group or text snippet (a signature, a disclaimer, a recurring call to action) for this workspace and return its id. Saved items appear in list_writing_assets, which the team and future captions draw on; check it first to avoid duplicates. It only stores text: nothing is published.

Input Schema

NameRequiredDescriptionDefault
kindYes"hashtags" for a hashtag group, "snippet" for a reusable text.
nameYesShort label to find it later, e.g. "Summer sale" or "Email signature".
textNoRequired with kind "snippet": the text to reuse.
hashtagsNoRequired with kind "hashtags": the hashtags of the group, e.g. ["#coffee", "#barista"].
workspaceIdNoWorkspace to work on (an id from list_workspaces). Not needed when this connection is tied to one workspace, or when you pass an account: the account's workspace is used.
idempotencyKeyNoOptional. A unique id for this action (16-128 chars: letters, digits, _ : . -). If you are unsure whether a call went through (timeout, network error), repeat it with the SAME idempotencyKey and the same arguments: you get the original result and nothing is done twice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / hashtags / description
      Previous value: -"For kind=hashtags."New value: +"Required with kind \"hashtags\": the hashtags of the group, e.g. [\"#coffee\", \"#barista\"]."
    • addedInput schema / properties / kind / description
      Added value: +"\"hashtags\" for a hashtag group, \"snippet\" for a reusable text."
    • addedInput schema / properties / name / description
      Added value: +"Short label to find it later, e.g. \"Summer sale\" or \"Email signature\"."
    • changedInput schema / properties / text / description
      Previous value: -"For kind=snippet."New value: +"Required with kind \"snippet\": the text to reuse."
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=true; the description adds genuinely new behavioral context by clarifying 'It only stores text: nothing is published', which bounds the blast radius of a non-destructive write. It also states the return value (`id`) and the dedupe expectation. It does not say what happens on a duplicate name (overwrite vs error).

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 sentences, front-loaded with the action and resource, followed by the dedupe hint and the scope limit. No filler and nothing redundant with the title.

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 6-parameter mutation with no output schema, the description covers purpose, dedupe workflow, return value and effect boundary. The remaining gap is collision behavior when a name already exists and whether a call is an upsert, which matters given openWorldHint=true.

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%, so every parameter (kind enum, name, text, hashtags, workspaceId, idempotencyKey) is already documented with examples. The description restates the kind distinction and the returned id but adds no syntax or conditional detail beyond the schema; baseline 3 applies.

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 a specific verb (save), two concrete resource types (hashtag group, text snippet) with examples (signature, disclaimer, CTA), the scope (this workspace) and the return value (its `id`). An agent can distinguish it from `list_writing_assets` (read) and `suggest_hashtags` (generation) without opening a schema.

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?

Gives explicit pre-call guidance: check `list_writing_assets` first to avoid duplicates, and explains that saved items feed future captions. It does not name exclusions (e.g. when to use `create_reply_template` or `remember_brand_fact` instead), so it stops short of a full when/when-not matrix.

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