Skip to main content
Glama

Search content ideas (Content AI)

search_content
Read-only

Content AI (lite) search: find short-video content ideas by meaning — Instagram Reels, TikTok and YouTube Shorts ranked for a free-text query (a topic, a niche, a hook, an idea, up to 500 characters; any language). One row = one video. Rows carry id, platform, views, likes, comments, shares (null when the platform hides it), viral_score, published_at, language and duration_sec. AUTHORS, CAPTIONS, TITLES AND LINKS ARE NOT RETURNED — Content AI masks them by design; never invent them, and send the user to Content AI on spytrend.com for the full cards. Filters: platforms (instagram, tiktok, youtube — a list; empty = all), published_within_days (7, 30 or 90 — only videos published in that window), sort (best_match default, fire, views, likes, comments, newest). The tool returns the FIRST page only (limit at most 10): there is no paging, repeat the search with a sharper query instead. total is the number of matches found so far for the query (not an exact market size) and can be absent; low_relevance=true means nothing matched well — say so instead of presenting weak rows as ideas. filters_applied=false means this deployment ignored sort, platforms and published_within_days for this call — do not claim the result was filtered by them. Each search also counts against the account's daily Content AI search limit; a repeated identical query is served from cache. Gate errors are reported as tool errors: subscription_required (Content AI needs a subscription or token balance on the account), not available, or busy (retry after the indicated delay). QUOTA: 1 MCP credit per delivered row; short pages are refunded. PRICING: price × number of filters set (min 1), on paid plans ×1 after 500 MCP credits/month; one-time consent via accept_pricing_terms; before calling, get the maximum debit from estimate_cost (free) and tell the user.

Input Schema

NameRequiredDescriptionDefault
sortNoorder: best_match (default), fire, views, likes, comments or newest
limitNomax rows (default 10, at most 10; each delivered row costs 1 MCP credit). There is no paging.
queryYeswhat to look for: a topic, niche, idea or hook in free text, 1-500 characters, any language
platformsNolimit to platforms: instagram, tiktok, youtube (a list; empty = all)
published_within_daysNoonly videos published in the last 7, 30 or 90 days

Output Schema

NameRequiredDescriptionDefault
dataNo
noteNo
errorNoPresent only when isError is true: machine-readable failure. The human explanation stays in content.
totalNo
paramsNoRequest parameter echo: applied = parameters that shaped this result; normalized = parameters rewritten before applying (alias, type coercion, resolved id); ignored = parameters that were accepted but NOT applied, with the reason.
addon_hintsNoAdd-on modules that have additional data for objects of this result (no prices, no paid values). subscription_status=active: the account has the module — use its normal path. Do not push a purchase the user did not ask about.
low_relevanceNo
filters_appliedNo
semantic_unavailableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"max rows (default 10, at most 10; each delivered row costs 1 token). There is no paging."New value: +"max rows (default 10, at most 10; each delivered row costs 1 MCP credit). There is no paging."
    • addedOutput schema / properties / addon_hints
      Added value: +{
      +  "description": "Add-on modules that have additional data for objects of this result (no prices, no paid values). subscription_status=active: the account has the module — use its normal path. Do not push a purchase the user did not ask about.",
      +  "items": {
      +    "properties": {
      +      "available_data_types": {
      +        "description": "kinds of data the module confirmedly has for the object",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "info_url": {
      +        "description": "the object (or its limited breakdown) inside the module on spytrend.com",
      +        "type": "string"
      +      },
      +      "module": {
      +        "description": "nutra | crypto | web2app | search_arb | startups",
      +        "type": "string"
      +      },
      +      "object_id": {
      +        "description": "the ad id, or the site domain for site rows",
      +        "type": "string"
      +      },
      +      "preland_downloadable": {
      +        "description": "Nutra / Crypto: the saved pre-lander can be downloaded in the module",
      +        "type": "boolean"
      +      },
      +      "subscription_status": {
      +        "description": "active | not_connected",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Discloses far more than the readOnly/openWorld annotations: masked authors, captions, titles and links; first-page-only with limit ≤ 10; imprecise 'total'; low_relevance and filters_applied flags; per-account daily search limits; cache behavior for repeated queries; and specific gate errors (subscription_required, busy with retry). Nothing contradicts readOnlyHint=true.

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 is front-loaded in the first clause and nearly every sentence carries actionable information (masking, cost, flags, errors). It is a dense single-paragraph block, though, and some schema-redundant field enumeration could be trimmed for readability.

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 paid, quota-metered, read-only search tool the description covers the full call lifecycle: required precondition (estimate_cost), consent, cost model, result-shape caveats, failure modes and what not to claim. Return fields are enumerated even though an output schema exists, which is redundant but not harmful.

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 parameter documentation is already strong; the description still adds meaning by stating that empty platforms means all, that published_within_days only accepts 7/30/90 windows, that limit is capped at 10 with no paging, and that each delivered row costs a credit. Most of this is reinforcement of the schema rather than new semantics, keeping it just short of a 5.

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 — semantically search short-video content ideas across Instagram Reels, TikTok and YouTube Shorts — and scopes it as 'Content AI (lite)'. Clearly distinct from sibling tools like search_ads, search_creatives or search_influencers, which cover other entity types.

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 when-to-use context (free-text topic/niche/hook lookup), names the alternative behavior for going deeper ('repeat the search with a sharper query instead' since there is no paging), and routes the agent to siblings estimate_cost and accept_pricing_terms before calling. It also says what to do when low_relevance=true and filters_applied=false.

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.