Skip to main content
Glama
hermoso-ai

Hermoso

Official

Import a channel’s past posts

backfill_posts
Idempotent

Import a channel’s past posts into the performance record so ‘which hook works’ uses historical data. Dry run by default; confirm to import and resume with the returned cursor.

Instructions

Import this brand's PAST posts from a channel into the performance record, so 'which hook works' can draw on history rather than only on what was published since Hermoso started recording. Supports facebook, instagram, threads, youtube, tiktok, pinterest and bluesky; the others say plainly why they cannot (LinkedIn and Reddit have no enumerate-my-posts endpoint on our grant, X bills per read so it is excluded from bulk import, Google Business has had no per-post insights since 2023, and Telegram's Bot API cannot read a chat's past messages at all — nothing published before Hermoso is recoverable through a bot token). BOUNDED, RESUMABLE AND QUOTED: it runs as a DRY RUN by default and tells you how many posts it found and what reading them will cost — pass confirm:true to import, and pass the returned cursor to continue. AN IMPORTED POST IS WEAKER EVIDENCE THAN A RECORDED ONE and is labelled 'backfilled': its hook is recovered ONLY where the post matches a Hermoso creation by asset or caption. A post made outside Hermoso stays UNATTRIBUTED — it counts toward channel and format totals but never votes on which hook works. Never guess a hook from a caption. Free.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNohow many posts this page (default 50, max 200)
cursorNoresume from a previous run
channelYeswhich channel to import from
confirmNoactually import — omit for a dry run that only quotes the cost
accountRefNowhich Page / account, when the brand has more than one

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.161

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses far more than annotations: it is bounded/resumable/quoted, runs as a dry run by default, requires confirm:true to import, and returns a cursor to continue. It explicitly warns that backfilled posts are weaker evidence, labeled 'backfilled', and that unattributed posts never vote on hooks. This goes well beyond readOnlyHint=false and idempotentHint=true.

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 long but every sentence earns its place: supported channels with denials, the dry-run/confirm workflow, the evidentiary caveat, and the 'never guess a hook' rule. It is front-loaded with the core purpose and then progressively adds actionable constraints. The capitalization draws attention to critical warnings without being noise.

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 no output schema, the description tells the agent what it will get (a count and a cost quote, a cursor to resume), what will happen on confirm (import with backfill labels), and what the limitations are (unattributed posts, no voting). It also covers edge channels and the reasoning for exclusions. Nothing essential is missing.

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 coverage is 100%, so the schema already documents all five parameters (limit, cursor, channel, confirm, accountRef). The description adds semantic context around confirm ('dry run by default', 'pass the returned cursor to continue') but doesn't add meaning to limit or accountRef beyond the schema. 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 ('Import') and resource ('this brand's PAST posts from a channel'), and immediately states the purpose: feeding the 'which hook works' analysis with historical data. It clearly distinguishes this from list_published_posts or collect_post_metrics by emphasizing the backfill/import nature and the channel support list.

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 explicitly says when to use it (to draw on history predating Hermoso recording) and names excluded channels with reasons (LinkedIn, Reddit, X, Google Business, Telegram). It even states the dry-run/confirm workflow, which is a usage instruction. The alternative tools are implicit through sibling names but the conditions for choosing this tool are clearly stated.

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

Deploy Server

Other Tools