Skip to main content
Glama

save_research

Idempotent

Save a HookLayer result the user already received in this conversation so it appears under Saved Research in their HookMafia dashboard. 0 credits: this stores the result you already hold, it never re-runs the research tool. After a research result, offer once in one line to save it to HookMafia; call this only when the user says yes or asks to save, keep or bookmark a result. Pass the tool's structured result as result (billing and chain fields are dropped server-side), the kind that matches the tool, a short title, and a stable request_id so a retried save is deduplicated instead of duplicated. Returns the saved id and a dashboard link. Use list_saved_research / get_saved_research to read it back and compare_saved_products for 2-4 saved analyze_product results.

Input Schema

NameRequiredDescriptionDefault
kindYescreator_analysis (analyze_account), hook_score (score_hook), virality_prediction (predict_virality), product_scout (product_scout), product_analysis (analyze_product), script (viral_remix, match_voice), template (find_viral_template, brief_to_blueprint)
titleYesShort plain-text title, e.g. "@handle TikTok analysis" or the product name
resultYesThe structured result of the earlier tool call, exactly as received. Up to 64 KB after server-side allowlisting.
tool_nameYesThe HookLayer tool that produced the result, e.g. analyze_product
product_idNoCanonical product id for product_analysis / product_scout results
request_idNoIdempotency key. Reuse the same value when retrying the same save; a different result under the same key is refused.
product_urlNohttp(s) product page URL
input_summaryNoWhat was asked: handle, platform, topic, product URL. Up to 4 KB. Never include credentials.
source_timestampNoISO 8601 time the research ran (the result's as_of / fetched_at when present)

Output Schema

NameRequiredDescriptionDefault
savedNo
deduplicatedNotrue when the same request_id and identical content had already been saved; nothing new was written
dashboard_urlNo
dropped_fieldsNoTop-level result fields that are not persisted (billing, chain hints, unknown keys)
credits_chargedNoAlways 0

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: states zero credit cost, that the tool never re-runs research, that billing and chain fields are dropped server-side, and that a stable request_id deduplicates retried saves. It also discloses the return shape (saved id and dashboard link). The idempotentHint annotation is reinforced with the actual mechanism rather than repeated.

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 cost model are front-loaded in the first two sentences, and the routing alternatives are appended at the end where they belong. The single dense paragraph is efficient, though it packs several distinct concerns (cost, offering behavior, params, return, read-back) without visual breaks.

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 9 params, nested objects, an output schema and a high-risk mutation profile, the description covers credits, idempotency, server-side field handling, return values and alternatives. It omits edge cases such as size limits beyond the 64 KB schema note or behavior under an exhausted credit balance, but nothing essential for correct invocation is missing.

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 the baseline is 3, but the description adds real meaning: what to pass as result (the tool's structured output, with billing/chain fields stripped), the need for a matching kind, a short title, and a stable request_id for retry dedup. It does not restate the enum-to-tool mapping already in the schema, but the added behavioral framing of the key params justifies an above-baseline score.

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 and resource ('Save a HookLayer result ... so it appears under Saved Research') and immediately scopes it to results the user already received, distinguishing it from the research-producing siblings like analyze_product or score_hook. An agent can tell what this does and what it does not do (re-run research) 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 Guidelines5/5

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

Gives explicit trigger conditions ('call this only when the user says yes or asks to save, keep or bookmark a result') plus an interaction convention (offer once in one line after a result). It also routes reads to list_saved_research / get_saved_research and 2-4 comparisons to compare_saved_products, naming concrete alternatives.

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.