Skip to main content
Glama

Server Details

Your agent needs what people are posting — across X, Instagram, Reddit, Pinterest and YouTube at once, not five accounts and five rate limits.

What you can ask for • "What is being said about our brand this week on X and Reddit?" • "Find the creators posting about this category on Instagram and YouTube." • "Pull the replies and quotes on this tweet and the comments on that reel." • "What is trending in this country right now?" • "Which subreddits and hashtags keep coming up for this topic?"

How to use it Point any MCP client at https://mcp.aisa.one/social/mcp and sign in with OAuth — there is no key to create or paste. 56 read tools across five platforms: X/Twitter (users, tweets, communities, lists, Spaces, trends), Instagram (profiles, posts, reels, highlights, transcripts), Reddit (search, subreddits, comment trees), Pinterest (pins, boards, search) and YouTube search.

Why this rather than the source One login instead of five developer programmes, and no app review on any of them.

It is also a door to the rest The same login reaches 26 sources and 580+ operations. Measure the conversation here, then ask the same agent for the site traffic behind it or the people to contact — without adding a second server.

What it costs Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident.

Where else it reaches https://mcp.aisa.one/twitter-api/mcp · /instagram/mcp · /reddit/mcp · /pinterest/mcp · /youtube-search/mcp for one platform at a time; https://mcp.aisa.one/gtm/mcp adds Similarweb and Apollo.

Ownership verified
Status
Healthy
Uptime
93.4% over 41 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.2/5.0

Scored across 62 tools

Disambiguation4/5

Most tools have clearly distinct platform/resource/action targets, and descriptions actively explain when to use one over another. There are still overlapping pairs, such as tweet replies v1 vs v2, user last tweets vs user tweet timeline, and raw Instagram posts vs digest, which can cause occasional misselection.

Naming Consistency4/5

The dominant pattern is consistent snake_case with platform/resource prefixes, especially across Instagram, Pinterest, Reddit, Twitter, and YouTube tools. Deviations exist in meta tools like account, search, use, and digest tools like instagram_posts_digest, but the naming remains broadly predictable.

Tool Count1/5

With 62 tools, the surface is far beyond a well-scoped agent toolset, even for a multi-platform social-data server. The many platform endpoints, near-duplicate variants, and a deprecated use tool make the set unwieldy and raise selection and maintenance costs.

Completeness4/5

The read-only social research surface is broad, covering profiles, posts, comments, reels, searches, boards, subreddits, communities, lists, trends, and YouTube search, plus discovery and billing flow. Minor gaps remain, such as expanding Instagram comment replies, YouTube video/channel detail beyond search, and pagination in some digest tools.

Available Tools

62 tools
accountShow account and usageA
Read-only
Inspect

Who am I, what can I use, how much can I spend: the key, the account balance, the Go-to-Market wallet when one is active, and usage for today, 7 days and 30 days. Free; needs the Authorization header. Call it to verify a new connection or to explain a 402. ok is true only when the balance was read; otherwise each entry of errors says what to do in next_step.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Adds substantial context beyond the readOnlyHint/openWorldHint/destructiveHint annotations: the call is free, it requires the Authorization header, and it discloses result semantics ('ok is true only when the balance was read; otherwise each entry of errors says what to do in next_step'). That tells an agent how to interpret partial failure, which annotations cannot convey.

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 sentences, front-loaded with what the agent gets, followed by cost/auth, then call triggers, then result interpretation. No sentence is redundant and none could be dropped without losing information.

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 tool with an output schema already present, the description covers the remaining gaps: cost, auth requirement, invocation triggers, and the ok/errors/next_step contract. Nothing an agent needs to call or interpret it correctly 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?

The tool takes zero parameters, so the description has nothing parameter-level to compensate for, and the schema is fully covered. A 4 rather than 5 reflects that it adds no input-syntax detail, though none is possible here.

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 concrete resource set (identity/key, account balance, Go-to-Market wallet, usage over 1/7/30 days) rather than restating the name. It is clearly distinguishable from every sibling, which are all Reddit, batch, or search tools. An agent knows exactly what it will learn by calling it.

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?

Explicit triggering conditions are given: 'Call it to verify a new connection or to explain a 402.' That is a strong when-to-use statement. It stops short of 5 because it names no alternative tool or a when-not condition, though the sibling list offers no obvious competing diagnostic.

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

batch_get_schemaGet AIsa tool schemas in one batchA
Read-onlyIdempotent
Inspect

Retrieve schemas for 1 to 20 exact tool names from search. Build arguments from successful schemas, then call batch_quote. Do not call batch_use yet. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolsYesExact tool names returned by search whose complete contracts are needed. Never invent tool names.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
include_documentationNoReturn the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support.
include_response_schemaNoReturn the complete response_schema. Defaults to false.
include_arguments_schemaNoReturn the complete arguments_schema. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolsYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description is not required to restate it. It adds genuine operational context: the batch_use prohibition, exact-name/prefix requirements, and session reuse semantics. It does not cover failure handling when names are invalid, keeping it below a 5.

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?

Front-loaded with the core action and size limit, and every sentence carries workflow value. The session_id sentence duplicates the schema's own parameter description, which is minor redundancy rather than bloat.

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 read-only batch retrieval tool with an output schema, the description supplies the orchestration context an agent needs (source of names, next steps, session handling) without needing to explain return values. Nothing essential to 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 description coverage is 100%, so the baseline is 3. The description adds real meaning beyond the schema by constraining names to those returned by search and warning against a client prefix such as mcp__aisa__, which is not encoded in the 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 a specific verb and resource ('Retrieve schemas for 1 to 20 exact tool names') and pins the source of those names to search. This clearly separates it from siblings like search (finds tools), batch_quote, and batch_use.

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?

Explicitly sequences the workflow: build arguments from successful schemas, then call batch_quote, and 'Do not call batch_use yet.' This is an explicit when-to-use and when-not-to-use instruction naming the alternative siblings.

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

batch_quoteQuote published AIsa tools without executing themA
Read-onlyIdempotent
Inspect

Obtain AIsaServices cost quotes for 1 to 20 published tools without executing them. Same input as batch_use: exact tool names and schema-valid arguments. Never falls back to execution. The response reports auto_execute_eligible and auto_execute_threshold_micros_usd. auto_execute_eligible waives only the extra cost-confirmation step and does not override a user prohibition on execution, a narrower scope, or a tighter budget limit. Quotes are price observations, not authorization grants. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

ParametersJSON Schema
NameRequiredDescriptionDefault
callsYes
search_idNoOptional search correlation identifier returned by search.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYes
batch_idYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYesDeterministic next-step instructions derived from this result. Not an authorization grant.
auto_execute_eligibleNoTrue when the worst-known total of successful USD quotes is at or below auto_execute_threshold_micros_usd. A non-USD successful quote makes the batch ineligible. Present on quote responses.
auto_execute_threshold_micros_usdNoConfigured auto-execute threshold in micro-USD. 0 disables automatic execution. Present on quote responses.

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the readOnly/idempotent annotations by explaining that quotes are price observations rather than authorization grants, and precisely delimiting what auto_execute_eligible does and does not waive (user prohibition, narrower scope, tighter budget). It also guarantees no execution fallback, which is the key behavioral risk for this tool.

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 and most sentences carry distinct rules (no fallback, eligibility limits, naming, session reuse). It is on the long side and the argument-shape constraint is stated twice in spirit, but little is truly wasted.

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?

An output schema exists, so return-value documentation isn't required, yet the description still flags the two response fields that matter for a downstream decision. Combined with session and naming guidance, an agent has everything needed to call 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?

At 67% schema coverage the schema already documents each parameter, so the description earns credit only for added meaning: exact-name rules for 'tool', session_id reuse semantics, and the 1-to-20 argument-shape parallel with batch_use. It doesn't clarify search_id beyond what the schema states.

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 ('Obtain AIsaServices cost quotes for 1 to 20 published tools') plus the crucial scope qualifier 'without executing them.' It is immediately distinguishable from the sibling batch_use, which executes rather than quotes.

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?

Explicitly names the parallel sibling ('Same input as batch_use') and draws the boundary ('Never falls back to execution'). It also gives operational conditions: use names exactly as search returns them, strip any mcp__aisa__ prefix, and reuse session_id from Search for the task.

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

batch_useExecute published AIsa toolsA
Destructive
Inspect

Billable API calls can incur substantial charges. Never call before a successful batch_quote for the same tools and arguments. Execute only when that quote response reports auto_execute_eligible=true for these calls, or when explicit user authorization covers that cost and risk. auto_execute_eligible waives only the extra cost-confirmation step; it does not override a user prohibition on execution, a narrower scope, or a tighter budget limit. Re-quote if tools, arguments, or scope change. Execute 1 to 20 independent published-tool calls; never silently retry. A missing or failed quote is not free. Use tool names exactly as search returns them, without a client prefix such as mcp__aisa__. Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

ParametersJSON Schema
NameRequiredDescriptionDefault
callsYes
search_idNoOptional search correlation identifier returned by search.
session_idNoReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYes
batch_idYes
session_idYesReuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.
error_countYes
total_countYes
success_countYes
next_steps_guidanceYesDeterministic next-step instructions derived from this result. Not an authorization grant.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover mutability, destructiveness, and open-world behavior. The description adds critical business logic: billable calls, quote dependency, the meaning of auto_execute_eligible (waives only cost confirmation, not user prohibitions), and no silent retry. It doesn't detail rate limits or return format, but with an output schema present, that's acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loads the cost warning, but it packs many separate instructions into one block, making it less scannable. Some sentences like 'A missing or failed quote is not free' add value, but the overall flow could be better structured.

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?

Given the destructive, open-world annotations and the presence of an output schema, the description covers the essential preconditions and behavioral constraints. It could mention error handling or partial failure behavior, but the core guidance is sufficient for correct invocation.

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 67%, and the description adds important semantics: tool names must be exact without client prefix, session_id reuse guidance, and 1-20 call limit. It doesn't explain search_id, but the schema description for search_id is already clear enough.

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 clearly states the verb and resource: 'Execute 1 to 20 independent published-tool calls', and the title matches. It distinguishes itself from batch_quote by requiring a quote first, but doesn't explicitly contrast with the singular 'use' sibling, though that's implied by 'batch'.

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 gives explicit when-to-use and when-not-to-use conditions: only after a successful batch_quote with auto_execute_eligible=true or explicit user authorization. It also states re-quote conditions and prohibits silent retries, leaving little ambiguity.

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

get_instagram_basic_profilebasic-profileA
Read-onlyIdempotent
Inspect

Returns a compact public profile for a numeric Instagram user id, about 4 KB against the 380 KB of get_instagram_profile. Flat, already-normalised fields: username, full_name, biography, follower_count, following_count, is_verified, is_private, category, profile_pic_url, hd_profile_pic_url_info, bio_links, external_url and pk. Prefer this endpoint whenever the id is in hand; obtain it from data.user.id in get_instagram_profile, from id in get_instagram_search_profiles, or from the owner of any post. Use get_instagram_profile only when a handle is all that is available.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdNoInstagram user id
cache_max_ageNoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)

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 already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely new behavioral context — the ~4 KB footprint versus 380 KB, the flat/already-normalised shape, and the injected billing estimate. It doesn't discuss rate limiting or the credit-free cached path, which the schema covers but the description does not reinforce.

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?

Front-loaded with purpose and size comparison, then the selection rule, then id sourcing — a sensible order with little filler. It runs long and the HTML-comment pricing block is noise, but that block appears to be machine-injected boilerplate rather than authorial padding.

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?

An output schema exists, so return values need no prose explanation, and the schema itself carries the cache_max_age semantics. Given that, the description covers everything an agent needs: what it returns, how big it is, when to prefer it, and where the id comes from.

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 100%, so the baseline is 3 and the schema already documents cache_max_age and its enums. The description still adds value beyond the schema by specifying the id is 'numeric' and by telling the agent where to obtain it (data.user.id, id from search, post owner).

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+resource ('Returns a compact public profile for a numeric Instagram user id'), quantifies the payload (~4 KB vs 380 KB), and explicitly separates itself from the sibling get_instagram_profile. It also names a second sibling (get_instagram_search_profiles) as an id source, so an agent can route 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 an explicit decision rule: 'Prefer this endpoint whenever the id is in hand' and 'Use get_instagram_profile only when a handle is all that is available.' It even enumerates the three places the required id can be sourced from, so the prerequisites are fully closed.

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

get_instagram_media_transcripttranscriptA
Read-onlyIdempotent
Inspect

Transcribes the speech in a public Instagram video or reel and returns transcripts, each with id, shortcode and the transcribed text. The target must be a video under two minutes long: a photo post returns 400 bad_request, so when the URL's type is unknown check is_video with get_instagram_post first. Measured at 13 seconds, the slowest call in this API, for about 1 KB back. For the caption the author wrote rather than the words spoken in the video, read edge_media_to_caption from get_instagram_post.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoInstagram post or reel URL
cache_max_ageNoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (By default, successful AI up to 120 seconds costs a flat 1 credit per request; over 120 seconds requires allow_long_transcription=true, which bills ALL successful AI at 10 credits per started minute, including short videos; empty AI results and errors cost 0 credits). [See the Caching page for details.](https://docs.scrapecreators.com/caching)
allow_long_transcriptionNoPaid opt-in, enabled only by the literal query value 'true' (allow_long_transcription=true). Defaults to false when omitted; other values do not enable paid mode. By default, successful AI transcription of videos up to 120 seconds (two minutes, inclusive) costs a flat 1 credit per request. Over 120 seconds, videos cannot be AI-transcribed by default. Set allow_long_transcription=true to opt into paid AI with no fixed duration cap: ALL successful AI transcriptions in this mode cost 10 credits per started minute, including short videos: 10 * ceil(duration_seconds / 60). For example, 177 seconds costs 30 credits and an opted-in 60 seconds costs 10 credits. Empty AI results and errors cost 0 credits for AI transcription. This flag does not force AI and does not enable transcription or AI fallback by itself. Keep get_transcript=true or use_ai_as_fallback=true where required by the endpoint. Returned native captions still cost 1 credit on dedicated transcript routes, even for long videos with this flag; on detail routes they leave the base price unchanged. These routes remain synchronous. Allow at least 30 seconds on your client. Paid long transcription can exceed resource limits or timeouts, so successful transcription of long videos is not guaranteed. Provider reference (supplier schema): `{"default":false,"type":"boolean"}`.

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?

Annotations already cover safety (readOnly, idempotent, non-destructive), and the description adds behavioral facts the annotations cannot convey: the 400 error on photo posts, the ~13 second latency as the slowest call in the API, and the ~1 KB payload size. These are exactly the beyond-annotation details that change an agent's calling strategy.

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?

Front-loads purpose, then constraints, then alternative routing, in four tight sentences. The appended pricing comment block is boilerplate rather than task-relevant guidance, which slightly dilutes an otherwise waste-free entry.

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?

An output schema exists, yet the description still names the return shape (id, shortcode, transcribed text), and it covers the operational envelope: duration cap, error behavior on photo posts, latency, and payload size. Nothing an agent needs to call this correctly 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 description coverage is 100%, and the two non-trivial parameters (cache_max_age, allow_long_transcription) carry extensive inline documentation including enum values, billing semantics and the 'true'-only opt-in rule. The description adds no parameter-level detail beyond what the schema provides, so the 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 (transcribes the speech) and resource (public Instagram video or reel), and explicitly distinguishes itself from get_instagram_post by contrasting spoken words with the author's caption. An agent can separate this from the transcript-adjacent siblings 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 a hard precondition (video under two minutes), the failure mode when violated (photo post returns 400 bad_request), the diagnostic step when URL type is unknown (check is_video with get_instagram_post first), and names an alternative tool for a different need (caption via edge_media_to_caption). When-to-use and when-to-use-something-else are both explicit.

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

get_instagram_postpostA
Read-onlyIdempotent
Inspect

Returns full metadata for one public post or reel identified by its URL, under data.xdt_shortcode_media: shortcode, is_video, video_url, video_duration, has_audio, display_url, dimensions, accessibility_caption, edge_media_to_caption for the caption text, and owner. Measured at about 197 KB. Setting download_media=true also mirrors the media to permanent storage and costs ten credits rather than one, so leave it off unless the files are needed. For the comment thread call get_instagram_post_comments with the same URL, and for the spoken words in a video call get_instagram_media_transcript.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoInstagram post or reel URL
trimNoSet to true to get a trimmed response
regionNo2 letter country code to set the proxy in
cache_max_ageNoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)
download_mediaNoSet to true to download the video/images and get back permanent Supabase URLs. Costs 10 credits if media is found, 1 credit otherwise.
include_play_countNoSet to false to omit `video_play_count` and skip its additional fetch for a faster response. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the read-only/idempotent/non-destructive profile, but the description goes further by disclosing response payload location (data.xdt_shortcode_media), approximate response size (~197 KB), and the side effect plus credit cost of download_media (mirrors media to permanent storage, 10 credits vs 1). It does not discuss rate limits or auth requirements, but the added operational cost/size context is genuinely useful beyond the 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?

Purpose and routing are front-loaded, and every sentence carries operational information. However, the long enumeration of output fields in the first sentence is largely redundant given the tool has an output schema, making it denser than necessary.

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?

With an output schema present, the description need not explain return structure, and it still supplies size, cost, caching-adjacent trade-offs, and sibling routing. An agent has everything needed to decide whether to call this tool and how to configure it.

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 all six parameters (including cache_max_age semantics and download_media cost) are already documented in the schema. The description reinforces the download_media cost/default trade-off but adds no syntax or behavior that the schema does not already carry, so the 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?

The opening sentence gives a specific verb (returns), resource (full metadata for one public post or reel), and identity mechanism (by URL). It is immediately distinguishable from siblings like get_instagram_post_comments and get_instagram_media_transcript, which the description itself names.

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?

Explicit routing rules are provided: call get_instagram_post_comments for the comment thread and get_instagram_media_transcript for spoken words in a video. It also gives a clear when-not for a costly parameter ('leave it off unless the files are needed'), so the agent knows both alternatives and cost trade-offs.

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

get_instagram_post_commentscommentsA
Read-onlyIdempotent
Inspect

Returns the comments on a public post or reel by URL in an already-normalised shape: comments, each with id, text, comment_like_count, child_comment_count, created_at and a nested user, plus cursor to page. Measured at about 10 KB, one of the few small responses in this API. Only top-level comments are returned; child_comment_count reports how many replies a comment has but the replies themselves are not included, and there is no endpoint that expands them. For the post itself, its caption, view counts and video URL, call get_instagram_post with the same URL.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe URL of the post or reel to get comments from
cursorNoThe cursor to get more comments. Get 'cursor' from previous response.
include_repliesNoSet to true to include replies for every returned comment. This always costs 15 credits because each comment requires a separate Instagram replies request. You will still be charged 15 credits if no replies are returned. This is much slower and may time out at 29 seconds.

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?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, yet the description adds substantial extra context: the normalised response shape, approximate ~10 KB payload size, cursor paging, and the key constraint that only top-level comments are returned while child_comment_count merely reports reply counts. This is behavioural detail far beyond the 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?

Front-loaded with purpose and shape, and each sentence carries information (shape, size, pagination, reply limitation). The pricing boilerplate and the 'one of the few small responses' remark are the only mild padding.

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 annotations plus an output schema present, the core safety and return-shape burdens are covered, and the description still enriches them. It is slightly incomplete/inconsistent regarding how include_replies reconciles with the claim that replies cannot be expanded.

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 url, cursor and include_replies, and the description adds little parameter-specific meaning. There is a mild tension: the description says replies 'are not included, and there is no endpoint that expands them,' while the schema exposes include_replies to fetch replies, which could confuse an agent about whether replies are retrievable.

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 ('Returns the comments on a public post or reel by URL'), and names the sibling it is not for post-level data ('call get_instagram_post'). An agent can distinguish this from the sibling 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?

Explicitly routes the agent to get_instagram_post when the post's caption/view counts/video URL is wanted, giving a clear alternative selection rule. However it gives no guidance on when to prefer this over get_instagram_user_posts or the digest tools for broader comment needs.

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

get_instagram_profileprofileA
Read-onlyIdempotent
Inspect

Returns the full public profile for an Instagram handle, forwarded from Instagram's own web API. Counts sit under data.user.edge_followed_by.count and data.user.edge_follow.count, alongside biography, bio_links, external_url, full_name, is_verified, is_private, highlight_reel_count, the numeric id, and the twelve most recent posts under data.user.edge_owner_to_timeline_media.edges. Measured at about 380 KB; trim=true saves under one percent, so do not rely on it to shrink the payload. When the numeric id is already known, get_instagram_basic_profile returns the same headline numbers in about 4 KB.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
trimNoSet to true to get a trimmed response
handleNoInstagram handle
cache_max_ageNoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)

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?

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description adds substantive behavior: an approximate payload size (~380 KB), the counterintuitive finding that trim saves under 1% and shouldn't be relied on, and the exact response paths where counts and posts live. This is meaningful context an agent cannot get from the structured fields.

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 core content is front-loaded and every sentence carries information: response shape, size, trim caveat, and the cheaper alternative. The trailing pricing boilerplate adds length but is a platform-injected block rather than author prose, so it only marginally detracts.

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?

An output schema exists, so return-value documentation is not strictly required, yet the description still maps the key fields to their JSON paths. Combined with the size estimate, trim caveat, and alternative-tool routing, an agent has everything needed to call this correctly and predict the response.

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 100%, so the baseline is 3. The description goes beyond the schema by disclosing that the trim parameter is effectively useless for shrinking the payload — information that directly contradicts the optimistic schema text 'Set to true to get a trimmed response' — and by naming where the handle's data surfaces. cache_max_age is left entirely to the schema, which documents it well.

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 ('Returns the full public profile for an Instagram handle') and identifies the upstream source. It explicitly distinguishes itself from the sibling get_instagram_basic_profile, so an agent can route correctly without opening either 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?

Provides an explicit alternative with its selecting condition: 'When the numeric id is already known, get_instagram_basic_profile returns the same headline numbers in about 4 KB.' It also warns that trim=true is not a viable way to reduce payload. It does not address other profile-adjacent siblings (instagram_profile_digest, get_instagram_user_posts), which keeps it short of a 5.

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

get_instagram_search_hashtagsearch-hashtagA
Read-onlyIdempotent
Inspect

Finds public posts carrying a hashtag through Google, returning hashtag, media_type, cursor and posts in the same normalised shape as get_instagram_reels_search: shortcode, url, caption, like_count, comment_count, video_play_count, video_view_count, owner, location and taken_at. The leading # is optional. Set media_type=reels to narrow to reels, or all for posts and reels together. Note that cursor here is the next Google results page number rather than an Instagram cursor. Measured at about 78 KB for ten posts. To search caption keywords rather than a hashtag, use get_instagram_reels_search.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoThe cursor returned by the previous response. In this version, it is the next Google results page number.
hashtagNoThe hashtag to search for. Include or omit the #.
media_typeNoUse all to search public posts and reels, or reels to only return reels. Defaults to all.
date_postedNoOnly return Google-indexed posts found in this relative window.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, open-world and non-destructive, yet the description adds non-obvious behavior: results are Google-indexed rather than direct Instagram data, the cursor is a Google results page number rather than an Instagram cursor, and payload size is about 78 KB for ten posts. The cursor quirk in particular is exactly the kind of detail that prevents misuse.

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, return shape, enum behavior, the cursor caveat and the alternative are all front-loaded with no filler. It is densely packed into a single block rather than cleanly segmented, and the injected pricing block adds bulk, but every sentence of the authored text earns its place.

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?

With an output schema, full annotation coverage and 100% schema description coverage, the description already goes further by naming the normalized return fields and the size/cursor behavior. Nothing an agent needs to call this correctly 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 description coverage is 100%, so the schema already documents hashtag, cursor, media_type and date_posted; the description mostly restates them (optional '#', all vs reels). It adds little parameter meaning beyond what the schema provides, so the baseline of 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 and resource ('Finds public posts carrying a hashtag through Google') plus the exact scope of coverage. It names the sibling it is not (get_instagram_reels_search) and explains the shared normalized shape, so an agent can distinguish it without opening the 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 clear routing guidance: media_type=reels vs all, and an explicit alternative ('To search caption keywords rather than a hashtag, use get_instagram_reels_search'). It stops short of stating exclusions or prerequisites (e.g., hashtag is not required), so it is strong context rather than 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.

get_instagram_search_profilessearch-profilesA
Read-onlyIdempotent
Inspect

Searches Google for public Instagram profiles matching a keyword or bio phrase and returns profiles with username, full_name, biography, follower_count, following_count, media_count, is_verified, is_private, category_name, external_url, bio_links, url, the numeric id, and matched_from, which records whether the hit came from a profile page or from a post. google_title and google_description carry the underlying search result. Measured at about 18 KB and 13 seconds. The numeric id feeds get_instagram_basic_profile directly. To search posts rather than people, use get_instagram_search_hashtag or get_instagram_reels_search.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoBio or caption keyword/phrase to search for.
cursorNoThe cursor returned by the previous response. In this version, it is the next Google results page number.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description still adds meaningful traits: the source is Google (open-world scraping, not the Instagram API), the measured payload/latency (~18 KB, ~13 s), and the matched_from field that explains why a profile appeared. Rate limits and failure behavior are not covered, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and routing are front-loaded and the performance metrics are compact, but the long enumeration of return fields is largely redundant with the existing output schema and consumes most of the description's length. It could be trimmed to keep only the fields that inform selection.

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?

An output schema exists, so return values need no explanation, and the description still supplies the source of the data, cost/latency expectation, sibling routing, and the chaining target for the returned id. Nothing an agent needs to invoke this correctly 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 description coverage is 100%, so both parameters are already documented, and the description adds no syntax or format detail beyond restating 'keyword or bio phrase'. The cursor/pagination parameter is not addressed at all. Baseline 3 is appropriate when the schema does the heavy lifting.

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+resource ('Searches Google for public Instagram profiles matching a keyword or bio phrase') and enumerates the returned identity fields, so the agent knows exactly what it gets back. It also distinguishes itself from siblings by naming the post-search alternatives, so an agent can pick correctly 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 an explicit exclusion ('To search posts rather than people, use get_instagram_search_hashtag or get_instagram_reels_search') and a downstream chaining rule ('The numeric id feeds get_instagram_basic_profile directly'). Both when-to-use and when-not-to-use are stated rather than inferred.

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

get_instagram_song_reelsreelsA
Read-onlyIdempotent
Inspect

Returns the reels that use one audio track, as raw Instagram media objects under reels, with cursor and has_more for paging. There are two confirmed ways to obtain audio_id: the number in an instagram.com/reels/audio// URL, and clips_metadata.original_sound_info.audio_asset_id on any reel returned by get_instagram_user_reels. Measured at about 177 KB for five reels, in the same raw shape as get_instagram_user_reels rather than the normalised shape of the search endpoints. To find reels by keyword instead of by sound, use get_instagram_reels_search.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor returned by Instagram from the previous response.
audio_idNoThe audio id from the Instagram audio page 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?

Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), and the description adds real behavior beyond them: raw Instagram media objects under a 'reels' key, cursor/has_more paging, and a measured payload size (~177 KB for five reels). It also discloses that the response shape matches get_instagram_user_reels rather than the normalised search-endpoint shape, which is non-obvious and useful.

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?

Front-loaded with the core purpose, then progressively more specific detail (shape, acquisition paths, size, alternative tool). It is dense but every content sentence carries information; the appended pricing block is boilerplate rather than authored prose.

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?

An output schema exists so return values need not be doc-dumped, yet the description still orients the agent on response shape and paging. The one residual gap is that audio_id is technically optional in the schema but effectively the tool's subject, and the description never says what happens if it is omitted.

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 goes beyond the schema by explaining how audio_id is obtained and where it lives on other responses. Cursor semantics are only echoed from the schema rather than extended.

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+resource+filter: 'Returns the reels that use one audio track.' It explicitly names the sibling it is not (get_instagram_reels_search for keyword-based discovery), so an agent can distinguish it without opening either 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 concrete selection guidance: use this when you have an audio_id, use get_instagram_reels_search when you want keyword search. It also supplies two confirmed acquisition paths for audio_id (the /reels/audio/<id>/ URL number and clips_metadata.original_sound_info.audio_asset_id), which removes the main prerequisite uncertainty.

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

get_instagram_user_embedembedA
Read-onlyIdempotent
Inspect

Returns Instagram's official profile embed widget for a handle as a single html string, ready to drop into a web page. Measured at about 206 KB, nearly all of it inlined markup and styling, so treat the result as something to store or render rather than something to read. It carries no structured profile data at all: for follower counts, biography or bio links use get_instagram_basic_profile when the numeric id is known, or get_instagram_profile when only the handle is.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleNoInstagram handle

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?

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description adds genuinely new traits: the ~206 KB payload size, the fact that it is nearly all inlined markup and styling, and that it contains zero structured profile data. These are the details that change how an agent handles the result.

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 author-written text is tight and front-loaded: purpose first, then handling advice, then the alternative tools. The injected pricing banner adds length the author does not control, which keeps this just short of a 5.

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?

An output schema exists, so return values need not be explained, and the description goes further by characterizing the payload's size and composition. For a single-parameter read tool with full annotation coverage, nothing an agent needs 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 description coverage is 100% for the single 'handle' parameter, so the schema already carries the semantics. The description mentions the handle only in passing and adds no format or validation detail beyond the schema, so the 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 and resource ('Returns Instagram's official profile embed widget for a handle as a single html string') and immediately distinguishes itself from data-returning siblings by noting it carries no structured profile data. An agent can identify the tool's output shape without opening the 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?

Explicitly routes the agent to alternatives: get_instagram_basic_profile when the numeric id is known, get_instagram_profile when only the handle is. It also gives a usage posture ('treat the result as something to store or render rather than something to read'), which is exactly the when/when-not guidance needed.

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

get_instagram_user_highlight_detaildetailA
Read-onlyIdempotent
Inspect

Returns the stories inside one highlight album: reel_type, latest_reel_media, the owning user, and items, each a raw Instagram story media object. Pass the bare numeric id from get_instagram_user_highlights. The response echoes that id back in the prefixed form highlight:, and feeding the prefixed form to this endpoint returns 404 with a message blaming deletion or a private account, which points at the wrong cause; send the bare number. Measured at 630 KB for an album of 38 stories, so size scales with the album.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoHighlight ID. Use `/instagram/user/highlights` to discover current highlight IDs for a public account.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/non-destructive, but the description adds real behavioral context: the response echoes the id in prefixed form, the 404 misattribution gotcha, and measured payload size (~630 KB for 38 stories) that scales with the album. This is exactly the kind of beyond-annotations disclosure that earns a top score.

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?

Front-loaded with purpose, then the parameter gotcha, then the failure mode, then the size note. Every sentence carries actionable information; nothing is padding despite the density.

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?

With an output schema present, return values need no elaboration, yet the description still names key fields. Combined with the ID-format warning and size scaling, an agent has everything needed to call it correctly.

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

Parameters5/5

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

Schema coverage is 100%, yet the description adds the critical semantics the schema omits: the id must be the bare numeric form from get_instagram_user_highlights, and the prefixed highlight:<id> form yields a 404 whose message misleadingly blames deletion or a private account. This is meaningful parameter meaning beyond the 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 a specific verb and resource ('Returns the stories inside one highlight album') and enumerates the returned fields, which cleanly separates it from the sibling list-level get_instagram_user_highlights. An agent can tell exactly what this tool does versus its siblings.

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 routes the agent to get_instagram_user_highlights as the source of valid IDs and implies this tool is the per-album follow-up. It does not state explicit exclusions or when not to use it, but the upstream/downstream relationship is unambiguous.

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

get_instagram_user_highlightshighlightsA
Read-onlyIdempotent
Inspect

Lists the story highlight albums on a public profile. Returns highlights, each with the numeric id, title, cover_media.thumbnail_src, cover_media_cropped_thumbnail and owner. Small and quick at about 6 KB, which makes it a cheap way to see whether an account keeps highlights at all. This is the only source of a highlight id, and get_instagram_user_highlight_detail requires the bare numeric id exactly as returned here. Pass user_id rather than handle for a faster response.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleNoInstagram handle. Use user_id for faster response times.
user_idNoInstagram user id. Use for faster response times.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely non-structured context: approximate payload size (~6 KB), the fields returned, the chaining prerequisite for the detail tool, and a latency tradeoff between handle and user_id. It stops short of rate-limit or failure-mode detail.

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?

Front-loads what it returns, then the routing rationale, then the parameter tip — a sensible order with no filler. The speed/parameter sentence duplicates the schema text rather than earning new space, and the embedded pricing block sits awkwardly in the middle of the tool description.

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, the definition need not enumerate returns, yet it does so concisely alongside cost and chaining guidance. Nothing critical is missing for a two-optional-parameter read tool; only explicit pagination or empty-result behavior is absent.

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% and both properties already document themselves, including the 'use user_id for faster response times' hint, which the description largely repeats. The description confirms both params are optional by omission but adds no new syntax, format, or mutual-exclusion guidance beyond the 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 a specific verb and resource ('Lists the story highlight albums on a public profile') and immediately differentiates from sibling get_instagram_user_highlight_detail by declaring itself 'the only source of a highlight id.' An agent can pick between the two without opening either 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 usage context ('a cheap way to see whether an account keeps highlights at all') and the routing condition to the sibling tool, noting the detail tool 'requires the bare numeric id exactly as returned here.' It also tells the agent which parameter to prefer and why, which is more than most definitions offer.

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

get_instagram_user_postspostsA
Read-onlyIdempotent
Inspect

Returns one page of a public account's timeline, reels and photos and carousels alike, as raw Instagram media objects under items. Page with next_max_id and stop on more_available; num_results reports the page size. Each item carries media_type, code, caption, like_count, comment_count, taken_at, image_versions2 and video_versions among roughly two hundred internal flags. Measured at 632 KB per page, the largest response in this API, and trim=true only reduces it to 523 KB. For reels alone use get_instagram_user_reels, and for one known post use get_instagram_post; both return the same raw shape, so neither is a way to get a smaller payload.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
trimNoSet to true to get a trimmed response
handleNoInstagram handle
next_max_idNoCursor to get next page of results.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), yet the description adds substantial context beyond them: measured payload size (632 KB), the limited effect of trim (only down to 523 KB), pagination loop mechanics, and the fields present in each item. This is exactly the value-add the dimension rewards.

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?

Front-loaded with purpose, then pagination, payload realities, and alternatives in a logical order; nearly every sentence earns its place. Slightly dense, and the appended pricing boilerplate is external noise not attributable to the tool author.

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?

Despite an output schema existing, the description still conveys return shape and size, pagination termination, and sibling routing. For a large-payload, paginated list tool, an agent has everything needed to call 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?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it clarifies that next_max_id is a cursor for paging and that trim=true barely reduces the already-large payload, tempering a user's expectation. It does not document the handle parameter's format, keeping it from 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?

Opens with a specific verb and resource scope ('Returns one page of a public account's timeline, reels and photos and carousels alike') and explicitly distinguishes itself from get_instagram_user_reels and get_instagram_post. An agent can identify the tool's role without opening the 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?

States the selection rule explicitly: use get_instagram_user_reels for reels alone and get_instagram_post for one known post. It also pre-empts a common wrong assumption by noting neither alternative yields a smaller payload.

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

get_instagram_user_reelsreelsA
Read-onlyIdempotent
Inspect

Returns one page of a public account's reels as raw Instagram media objects under items[].media, with paging_info.max_id for the following page. Each reel carries code, caption, like_count, comment_count, video_versions, image_versions2 and clips_metadata, whose original_sound_info.audio_asset_id is exactly the id that get_instagram_song_reels expects. Pass user_id rather than handle for a faster response. Measured at 594 KB per page. Use get_instagram_user_posts for the whole timeline including photos and carousels.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
trimNoSet to true for a trimmed down version of the response
handleNoInstagram handle. Use user_id for faster response times.
max_idNoMax id to get more reels. Get 'max_id' from previous response.
user_idNoInstagram user id. Use this for faster response times.

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?

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description adds behavior beyond them: one-page-at-a-time pagination via max_id, an expected payload size of 594 KB per page for context budgeting, and the exact fields returned per reel. That is real operational context not derivable from the 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?

Return shape and pagination are front-loaded, and the alternative-tool routing sits at the end where it belongs. The sentences are dense but each carries distinct information; the appended pricing boilerplate is noise but outside the author's prose.

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?

With an output schema present, the description need not explain return values, yet it still sketches the envelope and cross-references a sibling tool's input contract. Combined with annotations and 100% schema coverage, an agent has everything needed to call this correctly on the first try.

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 the schema already documents handle, user_id, max_id, and trim, and the description largely restates the user_id-vs-handle preference and max_id chaining. The trim parameter is not addressed at all in the description. Baseline 3 is appropriate given the schema does the heavy lifting.

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 ('Returns one page of a public account's reels'), names the response envelope (items[].media) and the pagination token (paging_info.max_id), and explicitly contrasts itself with get_instagram_user_posts for the full timeline. An agent can distinguish it from get_instagram_song_reels, get_instagram_user_posts, and reels_search without opening any 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?

It names two concrete alternatives with selecting conditions: get_instagram_song_reels is invoked by piping clips_metadata.original_sound_info.audio_asset_id, and get_instagram_user_posts covers the whole timeline including photos and carousels. It also advises user_id over handle for speed, giving the agent actionable routing rather than inference.

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

get_pinterest_boardboardA
Read-onlyIdempotent
Inspect

Returns one page of pins from a board URL, with a cursor to page. Board pins carry a third field subset, different from both search results and pin detail: node_id, link, domain, rich_summary, seo_url, board and auto_alt_text among them. Measured at 104 KB for 16 pins; trim=true cuts it to 28 KB, keeping per pin id, title, description, link, domain, board, pinner, alt_text, rich_summary and reaction_counts. Board URLs come from board.url on search results — relative, like /agkelsey/the-apartment/, so prefix https://www.pinterest.com — or from get_pinterest_user_boards. For a user's board list rather than one board's pins, use get_pinterest_user_boards.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe URL of the board to get
trimNoSet to true for a trimmed down version of the response
cursorNoThe cursor to get the next page of results

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 readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered elsewhere. The description adds substantial behavioral context beyond that: pagination via cursor, concrete payload sizes (104 KB for 16 pins; 28 KB trimmed) and the exact field subsets returned. It stops short of stating rate limits or error behavior, so a 4 rather than 5.

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?

Front-loaded with the core action and paging behavior, and every sentence carries information. The two inline field enumerations ('node_id, link, domain...' and the trim field list) are dense and slightly bloat the text, and the injected pricing boilerplate sits outside the definition's control.

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?

An output schema already exists, so return values need no further explanation, and annotations cover the read-only/idempotent profile. Between the URL-source guidance, paging semantics and field-set/size notes, nothing needed to call it correctly is missing.

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

Parameters5/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: url must be absolute, with relative board paths needing an https://www.pinterest.com prefix, and trim=true is quantified as cutting 104 KB to 28 KB while enumerating the retained fields. This goes well beyond the schema's one-line parameter docs.

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 — 'returns one page of pins from a board URL' — and immediately differentiates from siblings by noting it also emits a paging cursor and that board pins use a distinct field subset from search results and pin detail. An agent can distinguish it from get_pinterest_search and get_pinterest_user_boards 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?

Explicitly routes the agent: 'For a user's board list rather than one board's pins, use get_pinterest_user_boards,' and explains where valid URLs originate (board.url on search results, or get_pinterest_user_boards). Both when-to-use and the alternative are named.

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

get_pinterest_pinpinA
Read-onlyIdempotent
Inspect

Fetches one pin by URL, of the form pinterest.com/pin/. The response is a different shape from search results: camelCase fields including entityId, description, category, totalReactionCount, aggregatedPinData, richMetadata, pinner, originPinner and genAiTopics. Measured at 12.5 KB, the smallest full response in this API; trim=true reduces it to 1.6 KB, keeping entityId, description, createdAt, pinner, originPinner, nativeCreator, shareCount, repinCount and totalReactionCount while dropping richMetadata and category. To find pins by keyword use get_pinterest_search; to page through the board a pin sits on use get_pinterest_board. Only standard numeric pin URLs resolve: of 12 search results fed straight back, the 3 whose URL ended in a shortcode (dwA0UYrl style) all answered 404 and one numeric id did too, so check for a numeric trailing id before calling and expect occasional 404s on deleted pins.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPinterest pin URL
trimNoSet to true for a trimmed down version of the response
cache_max_ageNoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description goes well beyond them: response size (12.5 KB), what trim actually changes (drops richMetadata and category, keeps a named field set), how shortcode URLs fail with 404, and the caching behavior's cost implications. This is unusually rich disclosure for a read tool.

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?

Front-loaded with purpose, then alternatives, then output-shape detail — a sensible ordering. It is dense and the long field enumeration plus the embedded pricing note add bulk, but nearly every sentence carries decision-relevant information, so it stays efficient rather than padded.

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?

An output schema exists, so return values need not be described, yet the description still quantifies size and the trim trade-off that the schema cannot express. Combined with the 404 and URL-format warnings, an agent has everything needed to call this 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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: the exact URL shape pinterest.com/pin/<id> and a precise account of what trim trades away, which is more than the schema's vague 'trimmed down version'. cache_max_age semantics remain schema-only, keeping this 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 (fetches) and resource (one pin) scoped by URL form, and explicitly distinguishes itself from get_pinterest_search and get_pinterest_board. An agent can route between the three pin/board/search tools without opening any 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 alternatives and the condition selecting each: 'To find pins by keyword use get_pinterest_search; to page through the board a pin sits on use get_pinterest_board.' It also adds a pre-call check (ensure a numeric trailing id) and a caveat to expect occasional 404s, which is actionable when-to-use guidance.

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

get_pinterest_user_boardsboardsA
Read-onlyIdempotent
Inspect

Lists a user's public boards by username, with a cursor to page. Each board carries id, name, url, description, pin_count, follower_count, section_count, collaborator_count, privacy, owner, created_at, cover_pin and cover_images. Measured at 59 KB for 10 boards; trim=true collapses it to 3.3 KB — the largest trim ratio in this API — keeping id, name, url, description, pin_count, follower_count, created_at and image_cover_hd_url. The handle is the bare username as it appears in a profile URL (agkelsey, not a full URL). Feed each board's url to get_pinterest_board to read its pins; to search across all of Pinterest use get_pinterest_search.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
trimNoSet to true for a trimmed down version of the response
handleNoThe username of the user to get boards for. (e.g. broadstbullycom from https://www.pinterest.com/broadstbullycom/)

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?

Annotations already cover read-only/idempotent/non-destructive, so the bar is lower, yet the description adds real behavioral detail: response payload size (59 KB for 10 boards), the trim ratio and exactly which fields survive trimming. This is the kind of operational context an agent needs to avoid oversized responses.

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?

Front-loaded with purpose, then output fields, then the trim tradeoff, then routing. Dense but nearly every sentence earns its place; the trailing pricing boilerplate is injected and slightly dilutes the structure.

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?

Pagination (cursor), input format, response shape, payload-size tradeoff, and sibling routing are all covered. With an output schema present, return values need not be explained, and the extra field listing is a bonus rather than a gap.

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 baseline is 3, but the description goes beyond the schema's terse 'trimmed down version' by naming the exact fields trim keeps, and reinforces that handle is a bare username rather than a profile URL.

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?

Opens with a specific verb+resource+scope: 'Lists a user's public boards by username, with a cursor to page.' It also names the sibling tools it is not (get_pinterest_board for pins, get_pinterest_search for cross-Pinterest search), so an agent can route correctly without opening another 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?

Explicitly routes to alternatives with conditions: feed each board's url to get_pinterest_board for pins, use get_pinterest_search for Pinterest-wide search. It also clarifies the expected handle input format. There are no explicit when-not-to-use statements, but the alternative routing is clear.

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

get_reddit_post_commentscommentsA
Read-onlyIdempotent
Inspect

Returns one post and its discussion from a post URL: post with title, author, selftext, score, ups, upvote_ratio, num_comments, created_utc, permalink, archived and locked, then comments, each with author, body, score, ups, downs, created_utc, parent_id, permalink and a nested replies object holding items and more. Paging is a third shape again: the top level carries more.has_more and more.cursor rather than the after of get_reddit_search or the cursor of get_reddit_subreddit_search. Measured at about 21 KB for 19 top-level comments. To find posts worth opening, start from get_reddit_search or get_reddit_subreddit.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoReddit post URL
trimNoSet to true for a trimmed down version of the response
cursorNoCursor to get more comments, or replies.
trimmedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds genuinely new behavioral detail: the paging shape differs from both sibling search tools (more.has_more/more.cursor vs after vs cursor), and the payload cost is quantified ('about 21 KB for 19 top-level comments'). That size estimate and paging divergence are exactly the traits an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core content is a single run-on sentence that enumerates every post and comment field even though an output schema already exists, which is redundant rather than informative. Routing guidance that an agent most needs is buried at the end, and the appended pricing boilerplate further dilutes it.

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?

Because an output schema exists, the field enumeration is unnecessary and the description would be complete without it; what remains (routing from search tools, paging semantics, response size) is the information an agent genuinely needs. It is slightly over-complete rather than under-complete.

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 75%, so the baseline is already near 3. The description clarifies what cursor does ('more comments, or replies') and implies the url input, but it never explains trim or accounts for the undocumented 'trimmed' string parameter, so it adds only marginal meaning beyond the 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?

Opens with a specific verb and resource: 'Returns one post and its discussion from a post URL.' It also explicitly differentiates itself from the search siblings by positioning them as the discovery step, so an agent can distinguish this tool from get_reddit_search and get_reddit_subreddit without opening any 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 a clear entry condition: 'To find posts worth opening, start from get_reddit_search or get_reddit_subreddit,' and describes the cursor path for continued paging. It stops short of stating any when-not-to-use case, so it is clear context rather than a full routing rule.

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

get_reddit_subredditsubredditA
Read-onlyIdempotent
Inspect

Returns the post stream of one subreddit with an after token to page. Posts carry the same fields as get_reddit_search, including title, author, selftext, score, ups, upvote_ratio, num_comments, created_utc, created_at_iso, url, permalink and subreddit_subscribers. sort accepts best, hot, new, top and rising. Important: timeframe is only accepted together with sort=top, and any other combination returns 400 rather than ignoring the parameter. Subreddit names are case-sensitive. Measured at about 18 KB for 24 posts. To search inside the same subreddit use get_reddit_subreddit_search, and for its metadata use get_reddit_subreddit_details.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order Provider reference (supplier schema): `{"enum":["best","hot","new","top","rising"],"type":"string"}`.
trimNoSet to true for a trimmed down version of the response
afterNoAfter to get more posts. Get 'after' from previous response.
subredditNoSubreddit name
timeframeNoTimeframe to get posts from. Runtime requires `sort=top` when `timeframe` is provided. Provider reference (supplier schema): `{"enum":["all","day","week","month","year"],"type":"string"}`.
cache_max_ageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish the read-only, idempotent, non-destructive profile, so the description is free to add runtime behavior instead. It does: the timeframe/sort=top 400 error (rather than silent ignoring), case-sensitive subreddit names, pagination via the after token, and a concrete ~18 KB / 24 posts size figure. Auth and rate-limit behavior are still unstated, so it falls short of a 5.

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?

Front-loaded with the core purpose and scope, then constraints, then routing. Every sentence carries information, including the size estimate and error edge case. The appended pricing boilerplate adds length without helping tool selection.

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-param, unpaginated-boundary tool with an output schema, this covers purpose, constraints, paging, alternatives and approximate payload size. Minor gaps remain: the trim payload reduction and cache_max_age are not clarified in narrative form. Nothing an agent needs to call it successfully 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 description coverage is 83%, so the schema already documents sort, timeframe, after and trim; the description largely restates the sort enum and the timeframe constraint. It adds the genuinely useful case-sensitivity note for subreddit, but leaves cache_max_age and the semantics of trim (what gets removed) unexplained. Baseline 3 is appropriate when the schema carries most of the load.

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+resource and scope: the post stream of one subreddit. It explicitly distinguishes itself from the three nearest siblings (get_reddit_search, get_reddit_subreddit_search, get_reddit_subreddit_details), so an agent can route correctly without opening any 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?

Names the alternatives and the exact conditions that select them: use get_reddit_subreddit_search to search inside the same subreddit, get_reddit_subreddit_details for its metadata. It also states the sort=top pairing rule for timeframe, giving explicit when-to-use behavior rather than leaving it to inference.

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

get_reddit_subreddit_detailsdetailsA
Read-onlyIdempotent
Inspect

Returns metadata about one subreddit, by name or by URL: subreddit_id, display_name, subscribers, weekly_active_users, weekly_contributions, description, rules, icon_img, header_img, advertiser_category, submit_text and created_at. Use it to size a community or read its rules before posting anything elsewhere. The name is case-sensitive, so AskReddit resolves and askreddit does not. Measured at about 5 KB, the smallest response here. It returns no posts at all: for those call get_reddit_subreddit, or get_reddit_subreddit_search to query within the community.

Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSubreddit URL
subredditNoSubreddit name. MUST be case sensitive. So 'AskReddit' not 'askreddit'.
cache_max_ageNoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)

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 readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: approximate response size (~5 KB, smallest response here), the case-sensitivity gotcha, and the explicit scope exclusion (returns no posts). It doesn't discuss caching semantics, though the schema covers those.

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?

Front-loaded with the core purpose and return fields, then usage, then the case-sensitivity caveat, then sibling routing. Every sentence carries information; the trailing billing block is platform metadata rather than authored prose.

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?

An output schema exists so return-value documentation is not required, and the annotations already carry the safety profile. The description nonetheless covers identity, scope, size, naming constraint, and sibling routing, which is everything an agent needs to select and invoke this tool correctly.

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 the baseline is 3. The description adds only the framing that the target can be given 'by name or by URL' (clarifying that the two params are alternatives) and restates the case-sensitivity rule already documented on the subreddit field. The cache_max_age enum is left to the 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 a specific verb and resource ('returns metadata about one subreddit') and enumerates the exact fields returned, so the agent knows precisely what it gets. It also explicitly distinguishes itself from siblings by noting it returns no posts and naming get_reddit_subreddit and get_reddit_subreddit_search as alternatives.

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 guidance ('size a community or read its rules before posting anything elsewhere') and explicit when-not-to-use routing ('It returns no posts at all: for those call get_reddit_subreddit, or get_reddit_subreddit_search'). Alternatives are named with the condition that selects them.

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

get_twitter_articleGet ArticleA
Read-onlyIdempotent
Inspect

Get the full body of an X Article (long-form post) by its tweet ID. Use this when a tweet links to or is an Article and the 280-character preview is not enough — this returns the complete text rather than the truncated tweet. Returns the article under article. For ordinary tweets use get_twitter_tweets.

Published reference price: $0.001 USD per successful request. Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
tweet_idNoThe tweet ID of the article.

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, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description still adds useful behavior: that it returns complete article text instead of the truncated tweet, where the payload lives (`article`), and a pricing note. The `article` key is semi-redundant given the output schema, keeping this from a 5.

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 tight sentences that front-load the capability, then the usage condition and alternative. The pricing block is boilerplate metadata rather than prose bloat.

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?

With an output schema present, return values need not be explained, and the description nonetheless notes the `article` key. Purpose, trigger, alternative, and cost are all present for a simple one-parameter read tool.

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?

Single parameter with 100% schema description coverage, so the schema already documents `tweet_id`. The description only restates "by its tweet ID" with no added format or edge-case detail, which is the expected baseline when the schema does the work.

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 (Get) and resource (full body of an X Article / long-form post) keyed by tweet ID, and immediately distinguishes it from the ordinary-tweet tool. An agent can tell exactly what this returns without opening the 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 an explicit trigger ("when a tweet links to or is an Article and the 280-character preview is not enough") and names the alternative for the other case ("For ordinary tweets use `get_twitter_tweets`"). When-to-use and when-not-to-use are both covered.

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

get_twitter_community_infoGet Community InfoA
Read-onlyIdempotent
Inspect

Get metadata for an X Community by its numeric community ID — name, description, member count, and access rules. Use this to qualify a community before pulling its members or posts. Returns the object under community_info. To discover communities by topic, search their posts with get_twitter_community_tweets_all.

Published reference price: $0.0002 USD per successful request. Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
community_idYesID of the community

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, idempotentHint, non-destructive and openWorld. The description adds where the payload lands ('Returns the object under community_info') and discloses the per-request cost, which the annotations do not cover. It stops short of noting rate limits or failure modes, so it is strong but not exhaustive.

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 tight sentences that lead with the purpose, then usage, then return shape; the pricing note is boilerplate appended after the substance and nothing is redundant.

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?

A read-only, single-parameter lookup with an output schema in place needs only purpose, routing, and return location — all present. Annotations carry the safety profile and the output schema covers the payload fields.

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 100% schema description coverage the baseline is 3, but the description adds format detail the schema lacks by specifying the ID is numeric, which helps an agent avoid passing a screen name or slug.

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 ('Get metadata for an X Community by its numeric community ID') and enumerates the returned fields (name, description, member count, access rules). It also names the sibling route for a different goal (discovery via get_twitter_community_tweets_all), so an agent can distinguish it from get_twitter_community_members, get_twitter_community_tweets, etc.

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?

Explicitly says when to use it ('qualify a community before pulling its members or posts') and provides the alternative for the adjacent task ('to discover communities by topic, search their posts with get_twitter_community_tweets_all'). This routes the agent correctly without schema inspection.

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

get_twitter_community_membersList Community MembersA
Read-onlyIdempotent
Inspect

List the members of an X Community, cursor-paginated. Use this to map who participates in a topic-specific group — usually a higher-signal audience than general followers, because membership is opt-in. Returns full user objects. For the subset who moderate it, use get_twitter_community_moderators.

Usage-based billing; Default request estimate: $0.0036 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for pagination
community_idYesID of the community

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 declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely useful behavioral context: cursor-based pagination and that full user objects are returned (the latter is partly redundant given the output schema).

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 purpose is front-loaded in the first clause, and the alternative is deferred to the end where it belongs. The body is tight, though the injected pricing boilerplate is noise the definition author does not control.

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 covering the safety profile, the description needn't explain return values or read-only status. It covers purpose, pagination, and the sibling alternative, leaving little an agent would need that isn't in structured fields.

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 both parameters (community_id, cursor) are already documented. The description only echoes the pagination concept via 'cursor-paginated' and adds no syntax, format, or constraint detail beyond the schema, so 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?

The description states a specific verb and resource ('List the members of an X Community') and explicitly distinguishes itself from the moderator-listing sibling. An agent can identify this tool's scope without opening the 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?

It gives clear usage context ('map who participates in a topic-specific group') and names the specific alternative for moderators with the selecting condition. It stops short of stating when NOT to use it versus the many other community siblings (info, tweets), so it is clear but not exhaustive.

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

get_twitter_community_moderatorsGet Community ModeratorsA
Read-onlyIdempotent
Inspect

List the moderators of an X Community, cursor-paginated. Use this to identify the people who set the agenda in a community — the highest-leverage contacts for outreach or partnership. Returns full user objects. For the full membership use get_twitter_community_members.

Usage-based billing; Default request estimate: $0.0036 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for pagination
community_idYesID of the community

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered structurally. The description adds only two behavioral facts beyond that: results are cursor-paginated and it 'Returns full user objects'. It says nothing about ordering, page size, or how a partial page should be interpreted, so the added context is modest.

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 authored portion is three tight sentences with the core purpose front-loaded and the sibling routing at the end, so it reads well. It loses a point only because the injected pricing block roughly doubles the rendered length with billing boilerplate that competes with the substantive wording.

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, the description is not obliged to explain the returned user objects, and it correctly avoids doing so. Purpose, scope, pagination, and the alternative tool are all covered; only secondary operational detail (page size, cursor exhaustion) is absent, which is minor for a read-only list tool.

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 both `community_id` and `cursor` are already documented in the schema; the baseline is 3. The description's 'cursor-paginated' phrase only restates the cursor parameter's function rather than adding format or usage detail (e.g. passing back the returned cursor).

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 ('List the moderators of an X Community') plus a scope qualifier ('cursor-paginated'), and explicitly contrasts itself with the closest sibling, `get_twitter_community_members`. An agent can distinguish this from the members/info/tweets family without opening any 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 an explicit use case ('identify the people who set the agenda... highest-leverage contacts for outreach or partnership') and names the alternative for a different need ('For the full membership use `get_twitter_community_members`'). Nothing about tool selection is left to inference.

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

get_twitter_community_tweetsGet Community TweetsA
Read-onlyIdempotent
Inspect

Get posts published inside one specific X Community, cursor-paginated. Use this to read what a known community is actually discussing. Returns full tweet objects with engagement counts. If you do not know which community to look at, search across all of them with get_twitter_community_tweets_all.

Usage-based billing; Default request estimate: $0.003 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for pagination
community_idYesID of the community

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false. The description adds value beyond them by disclosing pagination behavior ('cursor-paginated'), the shape of the result ('full tweet objects with engagement counts'), and billing context, though it doesn't cover rate limits or result caps.

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?

Three tight sentences that are front-loaded with purpose, then usage, then return shape. The injected pricing block adds length but is boilerplate rather than authored content, so the core prose is efficient.

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?

An output schema exists, so return values need not be detailed, and the description still gives a useful hint about the result shape. Annotations plus description fully equip an agent to invoke this tool correctly for its narrow, well-scoped purpose.

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 both cursor and community_id are already documented in the schema. The description's mention of cursor pagination corroborates but does not add syntax, format, or ID-acquisition guidance beyond the schema, so 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 (get) and resource (posts inside one specific X Community) with scope qualifiers (cursor-paginated). It explicitly names the sibling get_twitter_community_tweets_all as the alternative, so an agent can distinguish the two without opening either 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 the affirmative use case ('read what a known community is actually discussing') and the negative/alternative case ('If you do not know which community to look at, search across all of them with ..._all'), which routes the agent correctly between siblings.

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

get_twitter_community_tweets_allGet Community TweetsA
Read-onlyIdempotent
Inspect

Search posts across all X Communities by keyword, sorted by Latest (default) or Top, cursor-paginated. Use this to find topic-specific discussion happening inside communities rather than on the public timeline — signal density is usually higher and noise lower. Returns full tweet objects. Once you identify a community worth following, use get_twitter_community_tweets to read it directly, or get_twitter_community_info for its metadata. For public-timeline search use get_twitter_tweet_advanced_search.

Usage-based billing; Default request estimate: $0.003 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (e.g., keyword)
cursorNoCursor for pagination
queryTypeYesQuery type (Latest or Top)Latest

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, open-world behavior, so the bar is lower. The description adds useful context—cursor pagination, sort options, and that full tweet objects are returned—though it omits billing implications beyond the appended pricing note and rate-limit behavior.

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?

Front-loaded with the core action and scope, followed by a compact usage rationale and sibling routing. The appended pricing block adds tokens but is operational metadata rather than the description's own prose.

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?

Complete enough for a 3-param search tool with full schema coverage, annotations, and an output schema. It covers scope, sorting, pagination, and siblings; only deeper behavioral details like error modes or limits are absent.

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 documents query, cursor, and queryType. The description mentions sorting by Latest/Top and cursor-paginated results but adds no syntax, format, or filter semantics beyond what the schema already provides, so 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?

States a specific verb (Search), resource (posts across all X Communities), and scope (by keyword, sorted, paginated). It explicitly distinguishes itself from the public-timeline sibling and names the narrower community tool.

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 an explicit when-to-use rationale (topic-specific community discussion, higher signal density) and routes to siblings: get_twitter_community_tweets for a single community, get_twitter_community_info for metadata, and get_twitter_tweet_advanced_search for public timeline.

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

get_twitter_list_followersList List FollowersA
Read-onlyIdempotent
Inspect

List the accounts that subscribe to an X List, 20 per page, cursor-paginated. Use this to gauge how much attention a curated list attracts and who cares about that topic. Returns full user objects under followers. For the accounts included in the List (not its subscribers) use get_twitter_list_members.

Published reference price: $0.0015 USD per successful request. Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor of the page
list_idYesID of the list

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, open-world, non-destructive, so the safety profile is covered. The description adds non-obvious operational context: page size of 20, cursor pagination, and the response key `followers`. It stops short of noting rate limits or whether the cursor is opaque, but the added value over annotations is real.

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 tight sentences plus one routing sentence, all front-loaded: what it does, why to call it, and which sibling to use instead. No sentence is filler; the injected pricing comment is template noise rather than authored text.

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?

An output schema exists, so return-value explanation is not strictly required, yet the description still points to the `followers` key, which helps. Combined with full schema coverage and rich annotations, an agent has everything needed to call it correctly; only minor operational details are absent.

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% and both parameters (`list_id`, `cursor`) are documented in the schema, so the baseline is 3. The description only alludes to cursor pagination generically and adds no format or ID-sourcing detail beyond what the schema already states.

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?

Specific verb + resource ('List the accounts that subscribe to an X List') with pagination behavior stated up front. It explicitly distinguishes itself from the closest sibling by noting that `get_twitter_list_members` returns List members, not subscribers, so an agent can route without opening either 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 an explicit use case ('gauge how much attention a curated list attracts and who cares about that topic') and names the alternative tool for the adjacent-but-different case (members vs. subscribers). Both the when-to-use and the when-to-use-something-else are stated.

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

get_twitter_list_membersGet List MembersA
Read-onlyIdempotent
Inspect

List the accounts included in an X List, 20 per page, cursor-paginated. Use this to extract a ready-made, human-curated cohort — someone else has already done the filtering. Returns full user objects under members. To read what those accounts are posting as one feed, use get_twitter_list_tweets_timeline. For the List's subscribers use get_twitter_list_followers.

Published reference price: $0.0015 USD per successful request. Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor of the page
list_idYesID of the list

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 readOnly/idempotent/openWorld and non-destructive, so safety is covered. The description adds real behavioral context beyond that: page size (20), cursor pagination, and the return key (`members`). It stops short of rate-limit guidance, but pricing is supplied inline, making this a solid above-baseline disclosure.

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?

Front-loaded with the core action, followed by usage framing, return shape, then explicit sibling routing. Every sentence earns its place; the pricing block is metadata, not prose.

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?

An output schema exists so return values need not be detailed, yet the description still points to the `members` key. Combined with pagination and sibling routing, an agent has everything needed to call this correctly.

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 both parameters are already documented and the baseline is 3. The description adds only that results are 'cursor-paginated, 20 per page', which lightly clarifies the cursor parameter's role but no format or ID-acquisition details beyond the 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 a precise verb and resource ('List the accounts included in an X List') and immediately distinguishes itself from the two nearest siblings (list tweets vs. list followers). An agent can pick this tool without opening any 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?

Explicitly names alternatives with the conditions that select them: get_twitter_list_tweets_timeline for reading the members as a feed, and get_twitter_list_followers for subscribers. It also frames the use case (extracting a human-curated cohort), leaving nothing to inference.

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

get_twitter_list_tweets_timelineGet List Tweet TimeLineA
Read-onlyIdempotent
Inspect

Get the tweet timeline of an X List by listId, up to 20 per page, cursor-paginated. Use this to monitor a hand-curated set of accounts as a single feed — Lists are the cheapest way to track a fixed cohort (competitors, analysts, a beat) without polling each account. Returns tweets with has_next_page and next_cursor. To see who is in the List use get_twitter_list_members.

Published reference price: $0.0015 USD per successful request. Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for paginating through results. Leave empty for the first page.
listIdNoThe list ID to get tweets from. e.g. 1846987139428634858

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 cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description nonetheless adds real behavioral context: page size (up to 20), cursor pagination, and the return fields `has_next_page`/`next_cursor`. It doesn't mention rate limits or auth requirements, keeping it at a 4.

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?

Front-loads the core action, followed by use case and return-shape notes; each sentence is informative. The 'cheapest way to track a fixed cohort' phrasing leans slightly promotional and costs a bit of tightness.

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?

With an output schema present, return values needn't be explained, yet the description still notes pagination fields. Pagination behavior, scope, and sibling routing are all covered, so an agent has everything needed to call it correctly.

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 both parameters are already documented and the baseline is 3. The description reinforces `listId` and cursor-pagination semantics but adds no syntax or format detail beyond the 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 a specific verb (Get), resource (tweet timeline of an X List), and scoping parameter (`listId`), which cleanly distinguishes it from the many sibling timeline tools like get_twitter_user_tweet_timeline. An agent can identify the target without opening the 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 an explicit use case (monitor a hand-curated set of accounts as a single feed) and routes to a related sibling (get_twitter_list_members) for a distinct need. It lacks an explicit when-not or a direct comparison to the user-level timeline sibling, so it falls just short of a 5.

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

get_twitter_tweet_quotesGet Tweet QuotationsA
Read-onlyIdempotent
Inspect

Get quote tweets of a given tweet — posts that embedded it with added commentary — cursor-paginated. Use this to see how a post is being reframed or argued about, which is often more revealing than plain replies. Returns full tweet objects with engagement counts. For direct replies use get_twitter_tweet_replies_v2; for accounts that amplified it without comment use get_twitter_tweet_retweeters.

Usage-based billing; Default request estimate: $0.003 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for pagination.
tweetIdNoThe tweet ID to get quotes for.
sinceTimeNo
untilTimeNo
includeRepliesNoWhether to include replies in the results. Default is True. Provider reference (supplier schema): `{"default":true,"type":"boolean"}`.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real context beyond them: cursor-based pagination, and the shape of the payload ('full tweet objects with engagement counts'). It also carries a usage-based billing note with a per-request estimate, which is material for an agent deciding whether to call it. It does not mention rate limits or result caps.

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?

Three tight sentences, front-loaded with the core definition before the routing advice. The injected pricing block is boilerplate rather than tool guidance, but it is short and clearly delimited, so it does not disrupt the structure.

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?

An output schema exists, so return values need not be detailed, yet the description still usefully summarizes the payload. Purpose, alternatives, and pagination are all covered. The only shortfall is the undocumented sinceTime/untilTime pair, which an agent may need to bound a large quote set.

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 60%, and the description only reinforces the cursor parameter via 'cursor-paginated'. The two time-window parameters (sinceTime, untilTime) have no description in the schema and no explanation here, so half-documented inputs remain opaque. Baseline 3 is appropriate since the schema does much of the work but the description does not compensate for the gap.

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 ('Get quote tweets of a given tweet') and immediately defines the concept ('posts that embedded it with added commentary'), which is genuinely useful because 'quote tweet' is jargon. It explicitly distinguishes itself from get_twitter_tweet_replies_v2 and get_twitter_tweet_retweeters, so an agent can route without opening any 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 the when-to-use rationale ('to see how a post is being reframed or argued about, which is often more revealing than plain replies') and names both alternatives with the condition that selects each: direct replies -> get_twitter_tweet_replies_v2, silent amplification -> get_twitter_tweet_retweeters. Nothing is left to inference.

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

get_twitter_tweet_repliesGet Tweet RepliesA
Read-onlyIdempotent
Inspect

Get the direct replies to a tweet, cursor-paginated. Use this to read the discussion under a post — sentiment, corrections, or follow-up questions. Returns full tweet objects with engagement counts. Prefer get_twitter_tweet_replies_v2 when you want to control ordering (Relevance, Latest, or Likes); this v1 endpoint returns the default order only. To follow a conversation upward to its root instead of downward, use get_twitter_tweet_thread_context.

Usage-based billing; Default request estimate: $0.01335 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for pagination.
tweetIdNoThe tweet ID to get replies for.
queryTypeNoSort order for replies. Default is Relevance. Provider reference (supplier schema): `{"default":"Relevance","type":"string"}`.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is covered. The description adds real behavioral value beyond that: pagination behavior, the ordering limitation of the v1 endpoint, and the shape of returned objects. It stops short of describing rate limits or response envelope details, but is solid given annotation coverage.

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 core definition is three tight, front-loaded sentences that each carry routing or behavioral information. The appended pricing boilerplate is machine-generated and not part of the semantic definition, slightly diluting conciseness but not the author's fault.

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?

An output schema exists, so return-value structure need not be spelled out, and annotations carry the safety profile. Combined with the sibling routing and pagination notes, an agent has everything needed to invoke this correctly. Complete for a read-only list endpoint.

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 the schema already documents cursor, tweetId, and the queryType enum with its default. The description reinforces the cursor pagination and default-order behavior but adds no syntax or format detail beyond the schema. Note a mild tension: the schema exposes an ordering enum while the description says this v1 endpoint returns default order only.

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 ('Get the direct replies to a tweet') and immediately scopes the shape of the result (cursor-paginated, full tweet objects). It explicitly distinguishes itself from two named siblings, get_twitter_tweet_replies_v2 and get_twitter_tweet_thread_context, so an agent can route correctly 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?

Gives explicit use context ('read the discussion under a post — sentiment, corrections, or follow-up questions') plus two exclusion routes: use v2 for ordering control, use thread_context to walk upward to the root. This is a full when/when-not/alternatives treatment.

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

get_twitter_tweet_replies_v2Get Tweet Replies V2A
Read-onlyIdempotent
Inspect

Get replies to a tweet with control over sort order — Relevance (default), Latest, or Likes — 20 per page, cursor-paginated. Use this instead of get_twitter_tweet_replies whenever ordering matters: Likes surfaces the community's top responses, Latest gives a live view of an unfolding thread. Returns full tweet objects with engagement counts.

Usage-based billing; Default request estimate: $0.01095 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for paginating through results. Leave empty for the first page.
tweetIdNoThe tweet ID to get replies for. e.g. 1846987139428634858
queryTypeNoSort order for replies. Default is Relevance. Provider reference (supplier schema): `{"default":"Relevance","enum":["Relevance","Latest","Likes"],"type":"string"}`.

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 already declare the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds useful behavior: page size (20 per page), cursor pagination, the Relevance default, and a usage-based billing note. It stops short of disclosing rate limits or quota behavior, but covers more than the annotations do.

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 tool-relevant content is two tight, front-loaded sentences with zero waste. The injected pricing block is boilerplate that dilutes the payload slightly but is small relative to the whole.

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?

An output schema exists, so return values need no explanation; the description correctly just notes they are full tweet objects with engagement counts. Pagination, defaults, sort semantics, the sibling relationship, and billing are all covered, so nothing needed to invoke it correctly 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 description coverage is 100%, so the baseline is 3, but the description adds semantic meaning beyond the schema by explaining what Relevance, Latest, and Likes actually surface. That is genuine interpretation, not restatement of the enum.

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 ('Get replies to a tweet') and immediately distinguishes itself from the sibling get_twitter_tweet_replies by naming the ordering control. An agent can tell the two apart without opening either 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?

Explicitly says to use this instead of `get_twitter_tweet_replies` 'whenever ordering matters' and explains what each ordering buys you ('Likes surfaces the community's top responses, Latest gives a live view'). The alternative and the selecting condition are both named.

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

get_twitter_tweet_retweetersGet Tweet RetweetersA
Read-onlyIdempotent
Inspect

List the accounts that retweeted a given tweet, cursor-paginated. Use this to map who amplified a message and how influential they are. Returns user objects (handle, name, bio, follower count, verification) — not tweets. For retweets that added commentary use get_twitter_tweet_quotes.

Usage-based billing; Default request estimate: $0.0036 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for pagination.
tweetIdYesThe tweet ID to get retweeters for.

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 cover read-only, idempotent, open-world, non-destructive, so the description is freed to add what they don't: the return shape ('user objects — handle, name, bio, follower count, verification — not tweets') and cursor pagination. It adds no permission, rate-limit, or ordering detail, which is the only real gap.

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?

Core content is three tight sentences with the scope statement front-loaded and the negative clarification ('not tweets') placed early. The injected pricing boilerplate adds bulk the author did not control, which keeps this just short of a 5.

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 two-parameter read tool with full schema coverage, an output schema, and rich safety annotations, the description supplies the missing return-type context and the sibling disambiguation an agent needs. Only ordering/result-count behavior is unspecified, a minor omission.

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 both parameters (tweetId, cursor) are fully documented in the schema itself. The description echoes pagination via 'cursor-paginated' but adds no format, cursor-opacity, or max-page-size detail 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?

Specific verb and resource ('List the accounts that retweeted a given tweet') plus the pagination model. It also distinguishes itself from a close sibling by naming `get_twitter_tweet_quotes` as the tool for retweets with commentary, so an agent can route without opening either 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 an explicit use case ('map who amplified a message and how influential they are') and names the alternative tool for the adjacent case (quote tweets). It stops short of stating exclusions against the other retweet-adjacent siblings (replies, thread context), so it is clear context rather than complete routing guidance.

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

get_twitter_tweetsGet Tweets By IDsA
Read-onlyIdempotent
Inspect

Fetch the full content of specific tweets when you already know their numeric tweet IDs (accepts multiple IDs in one call). Use this to expand IDs surfaced by search, timelines, or replies into complete objects. Returns text, author, source client, language, creation time, and engagement counts (likes, retweets, replies, quotes, bookmarks, views). If you do not have IDs yet, start with get_twitter_tweet_advanced_search.

Usage-based billing; Default request estimate: $0.0075 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
tweet_idsNoComma-separated list of tweet IDs.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds real value beyond that: batch acceptance in one call and the exact fields returned (text, author, source client, language, creation time, engagement counts), which helps an agent judge sufficiency before calling.

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 core is front-loaded and tight, with purpose, precondition, alternative and return fields in three economical sentences. The appended pricing boilerplate adds length that serves billing context rather than tool selection, a minor deduction.

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 simple ID-expansion lookup with full schema coverage, an output schema, and rich annotations, the description supplies everything an agent needs: precondition, batch behavior, alternative entry point, and field coverage.

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?

Only one parameter and schema coverage is 100%, so the schema already documents the comma-separated ID format. The description's note that multiple IDs are accepted in one call adds a small amount of batch semantics but nothing about limits or ordering; 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 (Fetch) and resource (full content of specific tweets) plus the precondition (you already know their numeric IDs). It also names the sibling `get_twitter_tweet_advanced_search` as the contrasting entry point, so an agent can place it without opening the 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 when-to-use (you already have IDs) and when-not-to-use (if you do not have IDs yet), routing the agent to the correct alternative by name. The 'expand IDs surfaced by search, timelines, or replies' line clarifies its role in a workflow.

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

get_twitter_tweet_thread_contextGet Tweet Thread ContextA
Read-onlyIdempotent
Inspect

Reconstruct the conversation around a tweet. Accepts either a reply or an original tweet and returns the surrounding thread, cursor-paginated. Use this when a tweet lacks context on its own and you need the parent chain to interpret it correctly. Returns tweets under tweets with has_next_page and next_cursor. For only the replies below a post use get_twitter_tweet_replies_v2.

Usage-based billing; Default request estimate: $0.00555 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoThe cursor to paginate through the results. First page is empty.
tweetIdNoThe tweet ID to get. Can be a reply tweet or an original tweet.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds valuable behavioral context: cursor-paginated output and the parent-chain reconstruction behavior. It stops short of noting auth requirements or rate limits, so a 4 is warranted.

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 core description is front-loaded and efficient: purpose, trigger, return format, and alternative in four tight sentences. The appended billing note is clearly demarcated but does add non-behavioral length, keeping it just under a 5.

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 annotations covering safety, a full schema, and an output schema present, the description needn't explain return values yet still summarizes them usefully. It covers the key distinctions and pagination behavior; only auth/permission details are absent, which is minor given the read-only annotations.

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 both parameters are fully documented in the schema itself (cursor semantics and the reply/original tweet note for tweetId). The description's 'accepts either a reply or an original tweet' merely echoes the schema's tweetId description, adding no new parameter semantics. 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?

States a specific verb and resource ('Reconstruct the conversation around a tweet') and clarifies its scope by noting it accepts either a reply or an original tweet. It explicitly distinguishes itself from the sibling get_twitter_tweet_replies_v2, so an agent can tell them apart 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?

Provides an explicit trigger condition ('when a tweet lacks context on its own and you need the parent chain') and names the alternative with its selecting condition ('For only the replies below a post use get_twitter_tweet_replies_v2'). Nothing is left to inference.

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

get_twitter_user_aboutGet User About InfoA
Read-onlyIdempotent
Inspect

Get the extended 'About this account' panel for an X user by @handle. Use this for provenance and trust checks — it surfaces signals the standard profile does not, such as the account's country, verification details, and username-change history. Returns a single profile object under data. For the standard profile (bio, follower counts, avatar), use get_twitter_user_info instead.

Published reference price: $0.00018 USD per successful request. Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNameYesThe screen name of the user

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 readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description still adds real value beyond that: what the panel surfaces (country, verification details, username-change history) and the shape of the return ('a single profile object under `data`'). It does not mention auth or rate limits, but the annotation bar is met with useful extra context.

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 front-loaded sentences with zero waste: purpose, use case, return shape, and sibling routing in order of importance. The appended pricing block is boilerplate, not part of the authored description.

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?

An output schema exists, so return values need not be enumerated, yet the description still notes the `data` wrapper. For a one-parameter read tool with rich annotations, everything an agent needs to select and call it correctly is present.

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 single userName parameter is fully documented by the schema; baseline is 3. The description's 'by @handle' offers a marginally different framing than the schema's 'screen name' but adds no syntax or format detail beyond it.

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 + resource — fetch the extended 'About this account' panel for an X user by @handle — and explicitly contrasts it with the sibling get_twitter_user_info. An agent can distinguish this from the standard-profile tool without opening either 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 when-to-use ('provenance and trust checks') and names the alternative with its selecting condition ('For the standard profile (bio, follower counts, avatar), use get_twitter_user_info instead'). Nothing is left to inference.

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

get_twitter_user_batch_info_by_idsBatch Get User Info By UserIdsD
Read-onlyIdempotent
Inspect

Usage-based billing; Default request estimate: $0.00018 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.3/5.0
Behavior2/5

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

Annotations already establish that this is a read-only, idempotent, non-destructive, open-world operation. The description adds only a usage-based pricing estimate, which is useful cost context but does not explain batch size behavior, return format, rate limits, or any other operational trait. It does not contradict the annotations, but it adds very little beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short and structured as a comment block, so it is not bloated. However, it is almost entirely irrelevant to tool selection and invocation, with no front-loaded purpose statement. The resulting definition is under-specified rather than concise in any useful sense.

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

Completeness1/5

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

For a batch user-lookup tool with one undocumented parameter and an output schema, the description provides no operational, semantic, or usage information. Only a billing estimate is present, leaving the definition critically incomplete for correct tool selection and invocation.

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

Parameters1/5

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

The single input parameter, userIds, has 0% description coverage in the schema, and the description does not mention it at all. It does not explain the comma-delimited format, the 100,000 ID maximum, the 1 ID minimum, or what kinds of user identifiers are accepted. With low schema coverage, the description was required to compensate and completely failed to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains only a pricing boilerplate block and never states what the tool does. The name and title imply batch retrieval of Twitter users, but the description itself provides no verb, resource, or scope. This is a missing purpose, not merely a vague or tautological one.

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

Usage Guidelines1/5

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

No guidance is given about when to use this tool, when not to, or how it relates to alternatives. In particular, it never mentions the single-user sibling get_twitter_user_info or explains when batch lookup is preferable. An agent is left to infer usage entirely from the tool name.

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

get_twitter_user_check_follow_relationshipCheck Follow RelationshipA
Read-onlyIdempotent
Inspect

Check whether one X user follows another, in both directions, by @handle. Use this for a single targeted lookup instead of paging through get_twitter_user_followers or get_twitter_user_followings — it answers 'does A follow B, and does B follow A' in one request. Returns the relationship flags under data.

Published reference price: $0.001 USD per successful request. Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_user_nameYesScreen name of the source user.
target_user_nameYesScreen name of the target user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely new behavior: it answers both directions (A→B and B→A) in a single request and returns the flags under `data`. The pricing disclosure adds cost context. Minor gap: no note on what happens when a handle doesn't exist or when accounts are protected/private.

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?

Front-loaded with the core behavior followed by the routing advice, with no redundant sentences. The injected pricing block inflates the text slightly but is boilerplate rather than author padding.

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 annotations, full schema coverage, and an output schema present, the description needn't explain return values, yet it usefully points to `data`. Routing to alternatives and bidirectional semantics are covered. Edge-case behavior (nonexistent/private accounts) is the only material omission.

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%, with both source_user_name and target_user_name documented as screen names, so the baseline is 3. The description only adds 'by @handle', a small hint on identifier format, but does not clarify directionality mapping (which param is the follower vs. the followed) beyond the 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 a specific verb (check), resource (follow relationship), and scope (one X user follows another, both directions, by @handle). It explicitly names the sibling tools it is not (get_twitter_user_followers / get_twitter_user_followings), so an agent can distinguish it 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?

Gives explicit when-to-use guidance: 'Use this for a single targeted lookup instead of paging through...'. Names the alternatives and the condition (single targeted lookup vs. paging), leaving nothing to inference.

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

get_twitter_user_followersList User FollowersA
Read-onlyIdempotent
Inspect

List the accounts that follow a given X user, identified by @handle, newest follower first. Returns up to 200 per page by default with has_next_page and next_cursor; each entry is a full user object (handle, name, bio, follower count, verification). Use this for audience analysis, mapping a competitor's follower base, or finding influential followers. For the reverse direction (who this user follows) use get_twitter_user_followings. For only the verified subset use get_twitter_user_verified_followers — note that one takes a numeric user_id, not a handle.

Usage-based billing; Default request estimate: $0.00326 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for pagination
pageSizeNoNumber of followers per page Provider reference (supplier schema): `{"default":200,"type":"integer"}`.
userNameNoScreen name of the user

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 already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description adds real behavioral context: 200 results per page by default, has_next_page/next_cursor pagination, and the shape of each entry. It stops short of stating rate limits or cursor lifetime, but the added pagination and page-payload detail is well beyond what the annotations provide.

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?

Front-loaded with the core action, then pagination, then use cases, then sibling routing — a logical order with no redundant sentences. The injected aisa-pricing boilerplate adds length that does not serve tool selection, which keeps it out of the top band.

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?

Despite an output schema existing, the description goes further by summarizing the per-entry fields, and it covers pagination, the identifier format, use cases, and both alternatives. Given a three-parameter read-only tool with full annotation coverage, an agent has everything needed to call it correctly on the first try.

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, and the description earns a step up by clarifying that the user is addressed by @handle rather than the schema's vaguer "screen name," and by restating the 200-per-page default in prose. It does not add cursor format or sizing rules beyond the 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 a specific verb (list), resource (accounts that follow a given X user), the identity key (@handle), and the ordering (newest follower first). It also names the two closest siblings and how they differ, so an agent can pick it apart from get_twitter_user_followings and get_twitter_user_verified_followers 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?

Explicitly gives when-to-use scenarios (audience analysis, mapping a competitor's follower base, finding influential followers) and names both alternatives with their selecting conditions — reverse direction for followings, verified subset for verified followers. It even flags that the verified sibling takes a numeric user_id rather than a handle, which is exactly the kind of routing detail that prevents a wrong call.

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

get_twitter_user_followingsList User FollowingsA
Read-onlyIdempotent
Inspect

List the accounts a given X user follows, identified by @handle. Returns 200 entries per page with has_next_page and next_cursor. Use this to infer a user's interests, information sources, or professional network — who someone follows is usually a stronger signal of intent than who follows them. For the opposite direction use get_twitter_user_followers. To test a single specific pair without paging through thousands of records, use get_twitter_user_check_follow_relationship.

Usage-based billing; Default request estimate: $0.0036 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoThe cursor to paginate through the results. First page is empty.
pageSizeNoThe number of followings to return per page. Provider reference (supplier schema): `{"default":200,"type":"integer"}`.
userNameNoScreen name of the user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered structurally. The description adds genuine behavior beyond that: 200 entries per page, has_next_page/next_cursor paging, and a cost estimate (~$0.0036 per request, usage-based). It stops short of auth/permission requirements or rate-limit behavior, so it is strong but not complete.

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 core sentence is front-loaded and every clause about direction and alternatives earns its place. The auto-injected pricing block adds length that is not behavioral guidance, which dilutes an otherwise tight definition.

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?

An output schema exists, so return values need not be explained, yet the description still flags the two pagination fields an agent needs to iterate. Combined with direction, alternatives, page size and cost, nothing an agent needs to call this correctly 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 description coverage is 100%, so cursor, pageSize and userName are already documented in the schema, and the description adds no format or syntax detail for them. The phrase 'identified by @handle' loosely maps to userName but the schema lists no required parameters, so the description does not clarify whether the handle is mandatory. 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?

States a specific verb and resource ('List the accounts a given X user follows'), and immediately pins the direction of the relationship with 'identified by @handle'. It explicitly names the sibling that does the opposite direction and the sibling that tests a single pair, so an agent can separate it from the ~30 other get_twitter_* tools 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 the analytical use case ('infer a user's interests, information sources, or professional network — who someone follows is usually a stronger signal of intent than who follows them') plus two explicit alternative routes: get_twitter_user_followers for the reverse direction and get_twitter_user_check_follow_relationship for a single pair without paging. When-to-use and when-to-use-something-else are both covered.

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

get_twitter_user_infoGet User InfoA
Read-onlyIdempotent
Inspect

Look up one X (Twitter) user's public profile by @handle (screen name). Use this when you need to know who an account is — identity, reach, or credibility — before deciding whether to trust or analyze their content. Returns display name, bio, follower/following counts, verification status, account creation date, location, and profile images. If you only have a numeric user ID, use get_twitter_user_batch_info_by_ids instead. If you need extended profile metadata such as country or username-change history, use get_twitter_user_about. If you want their posts rather than their profile, use get_twitter_user_tweet_timeline.

Published reference price: $0.00018 USD per successful request. Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNameNoThe screen name of the user

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 already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds the meaningful scoping detail that this is a public-profile lookup keyed by handle, plus the returned field set; it does not mention auth or rate limits, which keeps it short of a 5.

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 and each subsequent sentence earns its place by routing to a distinct sibling. The injected pricing block adds length that is not part of the tool's semantic content, keeping it from a 5.

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?

An output schema exists so return-value explanation is optional, annotations carry the safety profile, and the single parameter is fully documented. An agent has everything needed to select and call this tool correctly, with sibling disambiguation included.

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% and there is only one parameter, so the schema already documents it (baseline 3). The description adds value by specifying the format is the @handle/screen name and by routing numeric-ID callers to a different tool, which the schema alone does not convey.

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 (look up) and resource (one X/Twitter user's public profile) with the exact input form (@handle). It is immediately distinguishable from the profile-adjacent siblings it names, so an agent can route without opening any 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 an explicit when-to-use framing (to assess identity, reach, or credibility before trusting content) and then names three concrete alternatives with the condition that selects each: numeric ID → get_twitter_user_batch_info_by_ids, extended metadata → get_twitter_user_about, posts → get_twitter_user_tweet_timeline.

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

get_twitter_user_last_tweetsGet User TweetsA
Read-onlyIdempotent
Inspect

Get a user's most recent tweets, accepting either userName (@handle) or userId — useful when you have not resolved the handle to an ID yet. Optionally include replies. Cursor-paginated. Returns tweets under data with has_next_page and next_cursor. Use get_twitter_user_tweet_timeline instead when you already have the numeric ID and want the full profile-order timeline with parent-tweet expansion.

Usage-based billing; Default request estimate: $0.003 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
cursorNoCursor for pagination
userIdNoUser ID of the user
userNameNoScreen name of the user
includeRepliesNoInclude replies in the results Provider reference (supplier schema): `{"default":false,"type":"boolean"}`.

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 establish read-only, idempotent, open-world, non-destructive behavior, so the bar is lower; the description still adds real behavioral context — cursor pagination and the response shape (data, has_next_page, next_cursor). It does not discuss rate limits or the billing estimate's non-fixed nature beyond the injected pricing note.

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?

Front-loaded with the core action, then pagination, return shape, and the alternative — each sentence earns its place. The auto-injected pricing block adds length but is boilerplate rather than authored text.

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?

With an output schema present, return values need not be described, yet the description still summarizes them; annotations carry the safety profile; and parameters, pagination, and alternatives are all addressed. An agent can call this correctly without further inference.

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 80%, so the baseline is a 3, and the description adds genuine meaning: that userName is a @handle, that userId and userName are interchangeable entry points (useful before handle resolution), and that replies are optional. Only 'count' remains undocumented in both places.

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?

Specific verb+resource: retrieves a user's most recent tweets, with the scope (recent, cursor-paginated, optional replies) stated up front. It attempts differentiation by naming an alternative timeline tool, but that tool does not appear in the sibling list, so the contrast lands weakly against the actual siblings (get_twitter_user_mentions, get_twitter_tweet_replies, etc.).

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 a clear usage condition: use this when you have not resolved the handle to an ID (accepts either userName or userId). It also names an explicit alternative and the condition selecting it. The referenced alternative is not present among siblings, which slightly undercuts the routing value.

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

get_twitter_user_mentionsGet User MentionsA
Read-onlyIdempotent
Inspect

Get tweets that mention a given @handle, 20 per page. This is the only user-scoped X endpoint that supports a time window: pass sinceTime and/or untilTime as Unix timestamps in seconds to bound the range. Use this for monitoring — brand mentions, inbound replies, reputation tracking, or 'what happened to this account in the last 24 hours'. Returns tweets with has_next_page and next_cursor. For the account's own posts rather than mentions of it, use get_twitter_user_tweet_timeline.

Usage-based billing; Default request estimate: $0.003 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoThe cursor to paginate through the results. First page is empty.
userNameNoThe user screen name to get mentions for.
sinceTimeNo
untilTimeNo

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 already cover readOnly/idempotent/non-destructive/open-world, so the burden is lower. The description still adds real behavioral context: page size (20 per page) and the unique time-window capability. The return-format note (has_next_page/next_cursor) is redundant against the output schema, so it isn't a full 5.

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?

Front-loads purpose then usage then return shape in a sensible order, with no filler sentences. The trailing auto-injected pricing comment is noise but boilerplate; the return-value sentence is mildly redundant given the output schema.

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 read-only, paginated list endpoint with a full output schema and safety annotations, the description covers purpose, when-to-use, the time-window mechanics, and pagination size. An agent has everything needed to call 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?

Schema coverage is only 50% — sinceTime and untilTime have no schema description. The description compensates by telling the agent these are Unix timestamps in seconds and that they bound the range, which is exactly the missing semantic detail. cursor and userName are already schema-documented, so it doesn't need to repeat them.

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 ('Get tweets that mention a given @handle') and immediately differentiates itself from the sibling for own-posts content. An agent can tell it apart from get_twitter_user_last_tweets without reading either 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 use cases (monitoring, brand mentions, inbound replies, reputation tracking, 'last 24 hours') and names the alternative ('For the account's own posts... use get_twitter_user_tweet_timeline'). It also declares a differentiating constraint — the only user-scoped X endpoint with a time window — which routes the agent decisively.

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

get_twitter_user_tweet_timelineGet User TimeLineA
Read-onlyIdempotent
Inspect

Retrieve a user's own tweets by numeric userId, newest first, matching the order shown on their profile in the X app. Up to 20 tweets per page; pass the returned cursor for more. Optionally include replies and the parent tweet of each reply. Use this to read what an account publishes over time. Time-range filtering is NOT supported here — if you need tweets within a specific time window, use get_twitter_user_mentions (which accepts sinceTime/untilTime) or get_twitter_tweet_advanced_search with date operators in the query. If you only have a @handle, get_twitter_user_last_tweets accepts either handle or ID.

Usage-based billing; Default request estimate: $0.0057 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoCursor for paginating through results. Leave empty for the first page.
userIdNoUser ID of the user whose timeline to retrieve.
userNameNo
includeRepliesNoWhether to include replies in the results. Defaults to false. Provider reference (supplier schema): `{"default":false,"type":"boolean"}`.
includeParentTweetNoWhether to include the parent tweet when a tweet is a reply. Defaults to false. Provider reference (supplier schema): `{"default":false,"type":"boolean"}`.

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 already declare read-only, idempotent, non-destructive, open-world behavior, so the description's job is to add context beyond that. It does: pagination ceiling ('Up to 20 tweets per page; pass the returned cursor for more'), result ordering, and the absence of time-range filtering. It stops short of permission/auth requirements, but the added operational detail is substantial.

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 and each sentence carries routing information rather than filler. It runs five sentences and is somewhat dense, but the alternative-routing and pagination content justify the length; only the injected pricing block is pure 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?

With an output schema present, return values need not be described, and the description still covers pagination, ordering, reply handling, and the filtering limitation with concrete alternatives. Nothing an agent needs to invoke this correctly 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 description coverage is 80%, so baseline is 3, and the description adds real value: it clarifies cursor usage across pages, notes userId must be numeric, and explains includeParentTweet's meaning ('the parent tweet of each reply'). The one gap is the undocumented userName parameter, which the description never addresses.

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 ('Retrieve a user's own tweets by numeric userId') plus scope and ordering ('newest first, matching the order shown on their profile'). It also implicitly separates itself from siblings like get_twitter_user_last_tweets and get_twitter_user_mentions by naming them as alternatives, so an agent can pick correctly 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?

Explicitly states when to use it ('read what an account publishes over time'), when not to ('Time-range filtering is NOT supported here'), and which alternatives to use instead (get_twitter_user_mentions for sinceTime/untilTime, get_twitter_tweet_advanced_search for date operators). It even handles the handle-vs-ID case by pointing to get_twitter_user_last_tweets.

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

get_twitter_user_verified_followersGet Verified FollowersA
Read-onlyIdempotent
Inspect

List only the verified accounts following a given X user, in reverse chronological order. Use this to gauge the quality rather than the size of an audience — verified followers are a better credibility signal than raw follower count. Cursor-paginated. Takes a numeric user_id, not a @handle; resolve the handle first with get_twitter_user_info. For the complete follower list use get_twitter_user_followers.

Usage-based billing; Default request estimate: $0.006 USD (not a fixed price). Account-specific pricing and final settlement may differ.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoThe cursor to paginate through the results. First page is empty.
user_idYesUser ID of the user.

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 already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: cursor-based pagination and reverse-chronological ordering. It does not mention rate limits, result caps, or per-page sizes, which keeps it short of a 5.

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 substantive content is six tight clauses, front-loaded with what/why before the disambiguation and prerequisite. The injected pricing block adds non-behavioral noise, but the author's own prose is efficient and well ordered.

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?

An output schema exists, so return values need no explanation. Between the description (scope, ordering, pagination, ID format, prerequisites) and the annotations (read-only, idempotent, open-world), nothing an agent needs in order to call this correctly 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 the schema lacks: user_id must be numeric and not an @handle, plus a named resolution path. Pagination via cursor is also called out, aligning with the schema's cursor field.

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 precise verb+resource+scope ('List only the verified accounts following a given X user') and adds ordering semantics ('reverse chronological order'). It explicitly distinguishes itself from the sibling get_twitter_user_followers, so an agent can route without opening either 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 an explicit use case ('gauge the quality rather than the size of an audience'), names the alternative for the full list (get_twitter_user_followers), and states a prerequisite (resolve the handle with get_twitter_user_info). All three when/how/what-before questions are answered.

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

instagram_posts_digestInstagram posts digest: a timeline page at ~3% of the sizeA
Read-only
Inspect

One page of a public account's timeline, projected down to what fits a context window.

Calls the same upstream as get_instagram_user_posts and keeps, per post: code, full caption text, taken_at, media_type, like/comment/play counts, owner, ONE image URL and ONE video URL (the largest variant of each), video_duration, and the carousel slide count. Measured: 632 KB raw becomes about 20 KB; nothing is summarised and no post is dropped — every post and every caption byte survives, in upstream order.

What does NOT survive: the other 9 resolution variants per image, dash manifests, and ~100 internal flag fields per post. If you need any of those — downloading every resolution, building a player, forensic detail — call get_instagram_user_posts instead; it returns the upstream response untouched.

Returns the first page. The response keeps next_max_id and more_available as provider metadata; the current API contract does not accept a pagination cursor, so this tool cannot request subsequent pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYes

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?

Beyond the annotations (readOnly, idempotent=false, openWorld), it discloses concrete behavior: 632 KB → ~20 KB, nothing summarised, no post dropped, upstream order preserved, which 9 variants and ~100 flags are dropped, and a pagination limitation the API cannot work around. This is unusually rich.

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?

Front-loaded with the core purpose and routing, then the survival/removal detail. Slightly long, but nearly every sentence carries decision-relevant information; the byte-savings figures and field list earn their space.

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 single-param read tool with an output schema, the description covers projection semantics, dropped fields, ordering, and the pagination constraint. 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.

Parameters3/5

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

One required parameter with 0% schema description coverage. The description implies the handle identifies a public account whose timeline is fetched, but never explicitly defines the parameter or its format. With a single trivial param and an output schema present, this is adequate but not compensating for the coverage gap.

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+resource ('one page of a public account's timeline, projected down') and explicitly contrasts with `get_instagram_user_posts`, so an agent can distinguish it from the sibling without opening either 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?

It gives explicit when-to-use (need compact captions/counts in a context window) and when-not (downloading every resolution, building a player, forensic detail), and routes to the exact alternative tool by name.

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

instagram_profile_digestInstagram profile digest: the profile card at ~1% of the sizeA
Read-only
Inspect

A public profile as a flat card, projected from the same upstream as get_instagram_profile.

Keeps: username, full_name, numeric id, biography, external_url, bio_links (title + url), follower/following/posts counts, verification and privacy flags, category, one profile picture URL, and the recent posts Instagram embeds in the profile (shortcode, full caption, like/comment counts, taken_at, one display URL each). Measured: 380 KB raw becomes about 15 KB — the recent posts and their display URLs are most of it.

Counts are flattened from their upstream wrappers: followers here is data.user.edge_followed_by.count there. The numeric id feeds get_instagram_basic_profile, which is the cheap (4.5 KB) per-id lookup for enriching many accounts.

For the untouched upstream response — every field, every wrapper — call get_instagram_profile instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already mark this as read-only and non-destructive, and the description adds meaningful behavior beyond that: field flattening with a concrete path mapping (`edge_followed_by.count` → `followers`), measured size reduction from 380 KB to 15 KB, what is retained vs. dropped, and the one-display-URL-per-post rule. 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?

Four compact sentences, front-loaded with the core purpose, followed by the field list, measured size, flattening detail, and alternative routing. Every sentence adds operational value with no wasted words.

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 plus the existing output schema cover almost everything an agent needs: scope, field semantics, size characteristics, relation to siblings, and return shape. The only meaningful gap is the undocumented `handle` input and any format restrictions. For a one-parameter public read tool, this is very close to 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?

The only parameter, `handle`, is never described in the definition. With 0% schema-description coverage, the description should at least state that `handle` is the Instagram username and whether a leading `@` is accepted, but it only mentions `username` as an output field. The input contract is 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?

Defines the resource (a public Instagram profile) and the transformation (a compact flat-card projection), then enumerates exactly which fields are kept. It explicitly contrasts itself with `get_instagram_profile`, so an agent can distinguish it from that upstream tool and from `instagram_posts_digest`.

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 an explicit when-not signal: if the agent needs the untouched upstream response with every field and wrapper, call `get_instagram_profile` instead. It also explains that the returned numeric `id` feeds `get_instagram_basic_profile`, enabling intentional chaining for bulk enrichment. The size framing tells the agent when the compact digest is the right choice.

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

list_categoriesBrowse the AIsa catalogue
Read-only
Inspect

The AIsa catalogue at a glance: categories, the servers in each, tool counts, and the dedicated endpoint to connect if you only need one category. Free. (AIsa-only: tool-router has no equivalent.) Use mcp.aisa.one/mcp?modules=<category> (or mcp.aisa.one/<category>/mcp) to have that category's tools listed directly instead of via search.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

useRun an AIsa operationC
Destructive
Inspect

deprecated, use batch_use instead

ParametersJSON Schema
NameRequiredDescriptionDefault
argumentsNoArguments matching input_schema / arguments_schema
search_idNosearch_id from the search that found this operation
operation_idYesoperation_id as returned by search
max_price_usdNoRefuse the call before any spend if its quoted price is above this many USD

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the agent knows this is a state-changing, open-world operation. The description adds only the deprecation status and says nothing about what gets mutated, spend behavior (despite a max_price_usd param), or authorization needs.

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?

A single clause with zero waste; the deprecation notice and the replacement are front-loaded. It is terse by design for a deprecated endpoint, though it is under-specified rather than optimally efficient.

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

Completeness2/5

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

Has an output schema and annotations, which reduces the burden, but a 4-parameter operation tool with a deprecation notice gives no information about what it executes or whether it remains functional. For an agent deciding between this and batch_use, the description is thin.

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 all four parameters (operation_id, arguments, search_id, max_price_usd) are already documented in the schema. The description adds no parameter meaning on top, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool does — no verb or resource. It only labels the tool as deprecated and points to a replacement, leaving the actual capability ('Run an AIsa operation' from the title) unexplained. An agent must infer the purpose from the title and schema alone.

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 routes the agent to the alternative ('use batch_use instead'), which is exactly the guidance needed for a deprecated tool. It doesn't explain when, if ever, this tool should still be called (e.g., during a migration window), so it stops short of a 5.

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.

  1. 1 tool update
    • Changedinstagram_posts_digest1 field changed
      • removedInput schema / properties / next_max_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
  2. 41 tool updates
    • Addedaccount
    • Removedget_details
    • Changedget_instagram_basic_profile2 fields changed
      • addedInput schema / properties / cache_max_age
        Added value: +{
        +  "description": "If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with \"cached\": true and a \"cached_at\" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)",
        +  "enum": [
        +    "14d",
        +    "1d",
        +    "30d",
        +    "3d",
        +    "7d"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / userId / description
        Added value: +"Instagram user id"
    • Changedget_instagram_media_transcript3 fields changed
      • addedInput schema / properties / allow_long_transcription
        Added value: +{
        +  "description": "Paid opt-in, enabled only by the literal query value 'true' (allow_long_transcription=true). Defaults to false when omitted; other values do not enable paid mode. By default, successful AI transcription of videos up to 120 seconds (two minutes, inclusive) costs a flat 1 credit per request. Over 120 seconds, videos cannot be AI-transcribed by default. Set allow_long_transcription=true to opt into paid AI with no fixed duration cap: ALL successful AI transcriptions in this mode cost 10 credits per started minute, including short videos: 10 * ceil(duration_seconds / 60). For example, 177 seconds costs 30 credits and an opted-in 60 seconds costs 10 credits. Empty AI results and errors cost 0 credits for AI transcription. This flag does not force AI and does not enable transcription or AI fallback by itself. Keep get_transcript=true or use_ai_as_fallback=true where required by the endpoint. Returned native captions still cost 1 credit on dedicated transcript routes, even for long videos with this flag; on detail routes they leave the base price unchanged. These routes remain synchronous. Allow at least 30 seconds on your client. Paid long transcription can exceed resource limits or timeouts, so successful transcription of long videos is not guaranteed.\n\nProvider reference (supplier schema): `{\"default\":false,\"type\":\"boolean\"}`.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / cache_max_age
        Added value: +{
        +  "description": "If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with \"cached\": true and a \"cached_at\" timestamp). Otherwise, scrape a live result (By default, successful AI up to 120 seconds costs a flat 1 credit per request; over 120 seconds requires allow_long_transcription=true, which bills ALL successful AI at 10 credits per started minute, including short videos; empty AI results and errors cost 0 credits). [See the Caching page for details.](https://docs.scrapecreators.com/caching)",
        +  "enum": [
        +    "14d",
        +    "1d",
        +    "30d",
        +    "3d",
        +    "7d"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / url / description
        Added value: +"Instagram post or reel URL"
    • Changedget_instagram_post6 fields changed
      • addedInput schema / properties / cache_max_age
        Added value: +{
        +  "description": "If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with \"cached\": true and a \"cached_at\" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)",
        +  "enum": [
        +    "14d",
        +    "1d",
        +    "30d",
        +    "3d",
        +    "7d"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / download_media
        Added value: +{
        +  "description": "Set to true to download the video/images and get back permanent Supabase URLs. Costs 10 credits if media is found, 1 credit otherwise.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / include_play_count
        Added value: +{
        +  "description": "Set to false to omit `video_play_count` and skip its additional fetch for a faster response. Defaults to true.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / region
        Added value: +{
        +  "description": "2 letter country code to set the proxy in",
        +  "type": "string"
        +}
      • addedInput schema / properties / trim
        Added value: +{
        +  "description": "Set to true to get a trimmed response",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / url / description
        Added value: +"Instagram post or reel URL"
    • Changedget_instagram_post_comments3 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "The cursor to get more comments. Get 'cursor' from previous response.",
        +  "type": "string"
        +}
      • addedInput schema / properties / include_replies
        Added value: +{
        +  "description": "Set to true to include replies for every returned comment. This always costs 15 credits because each comment requires a separate Instagram replies request. You will still be charged 15 credits if no replies are returned. This is much slower and may time out at 29 seconds.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / url / description
        Added value: +"The URL of the post or reel to get comments from"
    • Changedget_instagram_profile3 fields changed
      • addedInput schema / properties / cache_max_age
        Added value: +{
        +  "description": "If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with \"cached\": true and a \"cached_at\" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)",
        +  "enum": [
        +    "14d",
        +    "1d",
        +    "30d",
        +    "3d",
        +    "7d"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / handle / description
        Added value: +"Instagram handle"
      • addedInput schema / properties / trim / description
        Added value: +"Set to true to get a trimmed response"
    • Changedget_instagram_reels_search3 fields changed
      • addedInput schema / properties / date_posted / description
        Added value: +"Optional Google-search date filter. Runtime confirmed with `last-hour`; omit this parameter if a provider search window is unavailable.\n\nProvider reference (supplier schema): `{\"enum\":[\"last-hour\",\"last-day\",\"last-week\",\"last-month\",\"last-year\"],\"type\":\"string\"}`."
      • addedInput schema / properties / page / description
        Added value: +"The page number to return."
      • addedInput schema / properties / query / description
        Added value: +"The keyword to search for"
    • Changedget_instagram_search_hashtag4 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "The cursor returned by the previous response. In this version, it is the next Google results page number.",
        +  "type": "string"
        +}
      • addedInput schema / properties / date_posted
        Added value: +{
        +  "description": "Only return Google-indexed posts found in this relative window.",
        +  "enum": [
        +    "last-day",
        +    "last-hour",
        +    "last-month",
        +    "last-week",
        +    "last-year"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / hashtag / description
        Added value: +"The hashtag to search for. Include or omit the #."
      • addedInput schema / properties / media_type
        Added value: +{
        +  "description": "Use all to search public posts and reels, or reels to only return reels. Defaults to all.",
        +  "enum": [
        +    "all",
        +    "reels"
        +  ],
        +  "type": "string"
        +}
    • Changedget_instagram_search_profiles2 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "The cursor returned by the previous response. In this version, it is the next Google results page number.",
        +  "type": "string"
        +}
      • addedInput schema / properties / query / description
        Added value: +"Bio or caption keyword/phrase to search for."
    • Changedget_instagram_song_reels2 fields changed
      • addedInput schema / properties / audio_id / description
        Added value: +"The audio id from the Instagram audio page URL."
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Pagination cursor returned by Instagram from the previous response.",
        +  "type": "string"
        +}
    • Changedget_instagram_user_embed1 field changed
      • addedInput schema / properties / handle / description
        Added value: +"Instagram handle"
    • Changedget_instagram_user_highlight_detail1 field changed
      • addedInput schema / properties / id / description
        Added value: +"Highlight ID. Use `/instagram/user/highlights` to discover current highlight IDs for a public account."
    • Changedget_instagram_user_highlights2 fields changed
      • addedInput schema / properties / handle / description
        Added value: +"Instagram handle. Use user_id for faster response times."
      • addedInput schema / properties / user_id
        Added value: +{
        +  "description": "Instagram user id. Use for faster response times.",
        +  "type": "string"
        +}
    • Changedget_instagram_user_posts3 fields changed
      • addedInput schema / properties / handle / description
        Added value: +"Instagram handle"
      • addedInput schema / properties / next_max_id
        Added value: +{
        +  "description": "Cursor to get next page of results.",
        +  "type": "string"
        +}
      • addedInput schema / properties / trim / description
        Added value: +"Set to true to get a trimmed response"
    • Changedget_instagram_user_reels4 fields changed
      • addedInput schema / properties / handle / description
        Added value: +"Instagram handle. Use user_id for faster response times."
      • addedInput schema / properties / max_id
        Added value: +{
        +  "description": "Max id to get more reels. Get 'max_id' from previous response.",
        +  "type": "string"
        +}
      • addedInput schema / properties / trim
        Added value: +{
        +  "description": "Set to true for a trimmed down version of the response",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / user_id
        Added value: +{
        +  "description": "Instagram user id. Use this for faster response times.",
        +  "type": "string"
        +}
    • Changedget_pinterest_board3 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "The cursor to get the next page of results",
        +  "type": "string"
        +}
      • addedInput schema / properties / trim / description
        Added value: +"Set to true for a trimmed down version of the response"
      • addedInput schema / properties / url / description
        Added value: +"The URL of the board to get"
    • Changedget_pinterest_pin3 fields changed
      • addedInput schema / properties / cache_max_age
        Added value: +{
        +  "description": "If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with \"cached\": true and a \"cached_at\" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)",
        +  "enum": [
        +    "14d",
        +    "1d",
        +    "30d",
        +    "3d",
        +    "7d"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / trim / description
        Added value: +"Set to true for a trimmed down version of the response"
      • addedInput schema / properties / url / description
        Added value: +"Pinterest pin URL"
    • Changedget_pinterest_search3 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Cursor",
        +  "type": "string"
        +}
      • addedInput schema / properties / query / description
        Added value: +"Search query"
      • addedInput schema / properties / trim / description
        Added value: +"Set to true for a trimmed down version of the response"
    • Changedget_pinterest_user_boards2 fields changed
      • addedInput schema / properties / handle / description
        Added value: +"The username of the user to get boards for. (e.g. broadstbullycom from https://www.pinterest.com/broadstbullycom/)"
      • addedInput schema / properties / trim / description
        Added value: +"Set to true for a trimmed down version of the response"
    • Changedget_reddit_post_comments3 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Cursor to get more comments, or replies."
      • addedInput schema / properties / trim
        Added value: +{
        +  "description": "Set to true for a trimmed down version of the response",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / url / description
        Added value: +"Reddit post URL"
    • Changedget_reddit_search6 fields changed
      • addedInput schema / properties / after
        Added value: +{
        +  "description": "Used to paginate to next page",
        +  "type": "string"
        +}
      • addedInput schema / properties / filter
        Added value: +{
        +  "description": "Search posts or comments",
        +  "enum": [
        +    "comments",
        +    "posts"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / query / description
        Added value: +"Search query"
      • addedInput schema / properties / sort / description
        Added value: +"Sort by\n\nProvider reference (supplier schema): `{\"enum\":[\"relevance\",\"new\",\"top\",\"comment_count\"],\"type\":\"string\"}`."
      • addedInput schema / properties / timeframe / description
        Added value: +"Timeframe\n\nProvider reference (supplier schema): `{\"enum\":[\"all\",\"day\",\"week\",\"month\",\"year\"],\"type\":\"string\"}`."
      • addedInput schema / properties / trim / description
        Added value: +"Set to true for a trimmed down version of the response"
    • Changedget_reddit_subreddit5 fields changed
      • addedInput schema / properties / after / description
        Added value: +"After to get more posts. Get 'after' from previous response."
      • addedInput schema / properties / sort / description
        Added value: +"Sort order\n\nProvider reference (supplier schema): `{\"enum\":[\"best\",\"hot\",\"new\",\"top\",\"rising\"],\"type\":\"string\"}`."
      • addedInput schema / properties / subreddit / description
        Added value: +"Subreddit name"
      • addedInput schema / properties / timeframe / description
        Added value: +"Timeframe to get posts from. Runtime requires `sort=top` when `timeframe` is provided.\n\nProvider reference (supplier schema): `{\"enum\":[\"all\",\"day\",\"week\",\"month\",\"year\"],\"type\":\"string\"}`."
      • addedInput schema / properties / trim / description
        Added value: +"Set to true for a trimmed down version of the response"
    • Changedget_reddit_subreddit_details3 fields changed
      • addedInput schema / properties / cache_max_age
        Added value: +{
        +  "description": "If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with \"cached\": true and a \"cached_at\" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.](https://docs.scrapecreators.com/caching)",
        +  "enum": [
        +    "14d",
        +    "1d",
        +    "30d",
        +    "3d",
        +    "7d"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / subreddit / description
        Added value: +"Subreddit name. MUST be case sensitive. So 'AskReddit' not 'askreddit'."
      • addedInput schema / properties / url
        Added value: +{
        +  "description": "Subreddit URL",
        +  "type": "string"
        +}
    • Changedget_reddit_subreddit_search5 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Cursor to get more results. Get 'cursor' from previous response.",
        +  "type": "string"
        +}
      • addedInput schema / properties / query / description
        Added value: +"Search query to find matching content"
      • addedInput schema / properties / sort / description
        Added value: +"Sort order. For posts/media: relevance, hot, top, new, comments. For comments: relevance, top, new\n\nProvider reference (supplier schema): `{\"enum\":[\"relevance\",\"hot\",\"top\",\"new\",\"comments\"],\"type\":\"string\"}`."
      • addedInput schema / properties / subreddit / description
        Added value: +"Subreddit name (e.g. 'Fitness', not 'r/Fitness' or a full URL)"
      • addedInput schema / properties / timeframe / description
        Added value: +"Timeframe to filter results\n\nProvider reference (supplier schema): `{\"enum\":[\"all\",\"year\",\"month\",\"week\",\"day\",\"hour\"],\"type\":\"string\"}`."
    • Changedget_twitter_article1 field changed
      • addedInput schema / properties / tweet_id / description
        Added value: +"The tweet ID of the article."
    • Changedget_twitter_list_tweets_timeline2 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Cursor for paginating through results. Leave empty for the first page."
      • addedInput schema / properties / listId / description
        Added value: +"The list ID to get tweets from. e.g. 1846987139428634858"
    • Changedget_twitter_trends2 fields changed
      • addedInput schema / properties / count / description
        Added value: +"The number of trends to return. Default is 30.\n\nProvider reference (supplier schema): `{\"default\":30,\"format\":\"int64\",\"minimum\":30,\"type\":\"integer\"}`."
      • addedInput schema / properties / woeid / description
        Added value: +"The WOEID of the location. Example: 2418046.\n\nProvider reference (supplier schema): `{\"format\":\"int64\",\"type\":\"integer\"}`."
    • Changedget_twitter_tweet_advanced_search3 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"The cursor to paginate through the results. First page is empty."
      • addedInput schema / properties / query / description
        Added value: +"The query to search for."
      • addedInput schema / properties / queryType / description
        Added value: +"The query type to search for.\n\nProvider reference (supplier schema): `{\"default\":\"Latest\",\"enum\":[\"Latest\",\"Top\"],\"type\":\"string\"}`."
    • Changedget_twitter_tweet_quotes5 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Cursor for pagination.",
        +  "type": "string"
        +}
      • addedInput schema / properties / includeReplies
        Added value: +{
        +  "description": "Whether to include replies in the results. Default is True.\n\nProvider reference (supplier schema): `{\"default\":true,\"type\":\"boolean\"}`.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / sinceTime
        Added value: +{
        +  "maximum": 9223372036854776000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / tweetId / description
        Added value: +"The tweet ID to get quotes for."
      • addedInput schema / properties / untilTime
        Added value: +{
        +  "maximum": 9223372036854776000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedget_twitter_tweet_replies3 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Cursor for pagination."
      • addedInput schema / properties / queryType
        Added value: +{
        +  "description": "Sort order for replies. Default is Relevance.\n\nProvider reference (supplier schema): `{\"default\":\"Relevance\",\"type\":\"string\"}`.",
        +  "enum": [
        +    "Latest",
        +    "Likes",
        +    "Relevance"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / tweetId / description
        Added value: +"The tweet ID to get replies for."
    • Changedget_twitter_tweet_replies_v23 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Cursor for paginating through results. Leave empty for the first page.",
        +  "type": "string"
        +}
      • addedInput schema / properties / queryType / description
        Added value: +"Sort order for replies. Default is Relevance.\n\nProvider reference (supplier schema): `{\"default\":\"Relevance\",\"enum\":[\"Relevance\",\"Latest\",\"Likes\"],\"type\":\"string\"}`."
      • addedInput schema / properties / tweetId / description
        Added value: +"The tweet ID to get replies for. e.g. 1846987139428634858"
    • Changedget_twitter_tweet_thread_context2 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"The cursor to paginate through the results. First page is empty."
      • addedInput schema / properties / tweetId / description
        Added value: +"The tweet ID to get. Can be a reply tweet or an original tweet."
    • Changedget_twitter_tweets1 field changed
      • addedInput schema / properties / tweet_ids / description
        Added value: +"Comma-separated list of tweet IDs."
    • Changedget_twitter_user_followers3 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Cursor for pagination"
      • addedInput schema / properties / pageSize
        Added value: +{
        +  "description": "Number of followers per page\n\nProvider reference (supplier schema): `{\"default\":200,\"type\":\"integer\"}`.",
        +  "maximum": 200,
        +  "minimum": 20,
        +  "type": "integer"
        +}
      • addedInput schema / properties / userName / description
        Added value: +"Screen name of the user"
    • Changedget_twitter_user_followings3 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"The cursor to paginate through the results. First page is empty."
      • addedInput schema / properties / pageSize
        Added value: +{
        +  "description": "The number of followings to return per page.\n\nProvider reference (supplier schema): `{\"default\":200,\"type\":\"integer\"}`.",
        +  "maximum": 200,
        +  "minimum": 20,
        +  "type": "integer"
        +}
      • addedInput schema / properties / userName / description
        Added value: +"Screen name of the user."
    • Changedget_twitter_user_info1 field changed
      • addedInput schema / properties / userName / description
        Added value: +"The screen name of the user"
    • Changedget_twitter_user_last_tweets4 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Cursor for pagination"
      • addedInput schema / properties / includeReplies / description
        Added value: +"Include replies in the results\n\nProvider reference (supplier schema): `{\"default\":false,\"type\":\"boolean\"}`."
      • addedInput schema / properties / userId / description
        Added value: +"User ID of the user"
      • addedInput schema / properties / userName / description
        Added value: +"Screen name of the user"
    • Changedget_twitter_user_mentions4 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "The cursor to paginate through the results. First page is empty.",
        +  "type": "string"
        +}
      • addedInput schema / properties / sinceTime
        Added value: +{
        +  "maximum": 9223372036854776000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / untilTime
        Added value: +{
        +  "maximum": 9223372036854776000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / userName / description
        Added value: +"The user screen name to get mentions for."
    • Changedget_twitter_user_search2 fields changed
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "The cursor to paginate through the results. First page is empty.",
        +  "type": "string"
        +}
      • addedInput schema / properties / query / description
        Added value: +"The keyword to search."
    • Changedget_twitter_user_tweet_timeline4 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Cursor for paginating through results. Leave empty for the first page."
      • addedInput schema / properties / includeParentTweet / description
        Added value: +"Whether to include the parent tweet when a tweet is a reply. Defaults to false.\n\nProvider reference (supplier schema): `{\"default\":false,\"type\":\"boolean\"}`."
      • addedInput schema / properties / includeReplies / description
        Added value: +"Whether to include replies in the results. Defaults to false.\n\nProvider reference (supplier schema): `{\"default\":false,\"type\":\"boolean\"}`."
      • addedInput schema / properties / userId / description
        Added value: +"User ID of the user whose timeline to retrieve."
  3. 1 tool update
    • Removedget_twitter_spaces_detail
  4. 46 tool updates
    • Addedbatch_get_schema
    • Addedbatch_quote
    • Changedbatch_use18 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / calls / description
        Removed value: -"Up to 20 items of {call_id, operation_id, arguments}; steps at the same execution_level of a plan go in one batch"
      • addedInput schema / properties / calls / items / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / calls / items / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / calls / items / properties
        Added value: +{
        +  "arguments": {
        +    "additionalProperties": true,
        +    "description": "Strictly schema-compliant arguments using the exact field names and types from this tool's arguments_schema.",
        +    "type": "object"
        +  },
        +  "call_id": {
        +    "description": "Caller-chosen identifier unique within this batch.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "tool": {
        +    "description": "Exact tool name returned by search or batch_get_schema. Never invent a name.",
        +    "minLength": 1,
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / calls / items / required
        Added value: +[
        +  "call_id",
        +  "tool",
        +  "arguments"
        +]
      • addedInput schema / properties / calls / maxItems
        Added value: +20
      • addedInput schema / properties / calls / minItems
        Added value: +1
      • removedInput schema / properties / max_price_usd
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "number"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Per-call price cap applied to every item"
        -}
      • removedInput schema / properties / search_id / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / search_id / default
        Removed value: -null
      • changedInput schema / properties / search_id / description
        Previous value: -"search_id from the search that found these operations"New value: +"Optional search correlation identifier returned by search."
      • addedInput schema / properties / search_id / type
        Added value: +"string"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedOutput schema / $defs
        Added value: +{
        +  "jsonValue": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "type": "object"
        +      },
        +      {
        +        "items": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "type": "array"
        +      },
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "number"
        +      },
        +      {
        +        "type": "boolean"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "description": "JSON value returned by the upstream tool."
        +  }
        +}
      • addedOutput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / properties
        Added value: +{
        +  "batch_id": {
        +    "type": "string"
        +  },
        +  "error_count": {
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "next_steps_guidance": {
        +    "description": "Deterministic next-step instructions derived from this result. Not an authorization grant.",
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "results": {
        +    "items": {
        +      "$schema": "https://json-schema.org/draft/2020-12/schema",
        +      "additionalProperties": false,
        +      "properties": {
        +        "call_id": {
        +          "type": "string"
        +        },
        +        "customer_cost_micros_usd": {
        +          "description": "Actual customer charge settled by AIsaServices, in micro-USD. Omitted when the upstream response does not report it.",
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "data": {
        +          "$ref": "#/$defs/jsonValue"
        +        },
        +        "error": {
        +          "anyOf": [
        +            {
        +              "$schema": "https://json-schema.org/draft/2020-12/schema",
        +              "additionalProperties": false,
        +              "properties": {
        +                "message": {
        +                  "type": "string"
        +                },
        +                "retryable": {
        +                  "type": "boolean"
        +                },
        +                "status": {
        +                  "type": "integer"
        +                },
        +                "type": {
        +                  "enum": [
        +                    "validation",
        +                    "authentication",
        +                    "payment",
        +                    "permission",
        +                    "rate_limit",
        +                    "upstream",
        +                    "timeout",
        +                    "internal"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type",
        +                "status",
        +                "retryable"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "request_id": {
        +          "type": "string"
        +        },
        +        "successful": {
        +          "type": "boolean"
        +        },
        +        "tool": {
        +          "type": "string"
        +        },
        +        "upstream_status": {
        +          "description": "HTTP status returned by AIsaServices when a request was dispatched.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "call_id",
        +        "tool",
        +        "successful",
        +        "request_id"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]*$",
        +    "type": "string"
        +  },
        +  "success_count": {
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  "total_count": {
        +    "minimum": 1,
        +    "type": "integer"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "session_id",
        +  "batch_id",
        +  "total_count",
        +  "success_count",
        +  "error_count",
        +  "results",
        +  "next_steps_guidance"
        +]
    • Changedget_details13 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / arguments
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": true,
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "The arguments the operation would be called with, for a price that reflects them. Keyed by operation_id for a batch, or passed flat for a single operation_id. Routes whose required parameters are validated before pricing have no price without them."
        -}
      • addedInput schema / properties / include_arguments_schema
        Added value: +{
        +  "default": true,
        +  "description": "Return the complete arguments_schema. Defaults to true.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / include_documentation / description
        Previous value: -"Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged."New value: +"Return the complete immutable public OpenAPI operation, referenced declarations, provenance and scoped completeness. Documentation does not change execution support."
      • addedInput schema / properties / include_response_schema
        Added value: +{
        +  "default": false,
        +  "description": "Return the complete response_schema. Defaults to false.",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / operation_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "One operation_id from search"
        -}
      • removedInput schema / properties / operation_ids
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Up to 20 operation_ids, for a batch"
        -}
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedInput schema / properties / tools
        Added value: +{
        +  "description": "Exact tool names returned by search whose complete contracts are needed. Never invent tool names.",
        +  "items": {
        +    "minLength": 1,
        +    "pattern": "^\\S(?:.*\\S)?$",
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "minItems": 1,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • removedInput schema / properties / with_quote
        Removed value: -{
        -  "default": true,
        -  "description": "Whether each operation is priced for this account before the answer. One round trip per operation; spends nothing.",
        -  "type": "boolean"
        -}
      • addedInput schema / required
        Added value: +[
        +  "tools"
        +]
      • addedOutput schema / properties
        Added value: +{
        +  "error_count": {
        +    "type": "integer"
        +  },
        +  "next_steps_guidance": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "type": "string"
        +    }
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]{1,128}$",
        +    "type": "string"
        +  },
        +  "success_count": {
        +    "type": "integer"
        +  },
        +  "tools": {
        +    "additionalProperties": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "arguments_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "canonical_operation_id": {
        +          "type": "string"
        +        },
        +        "documentation": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "error": {
        +          "additionalProperties": false,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ],
        +          "properties": {
        +            "code": {
        +              "type": "string"
        +            },
        +            "message": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "code",
        +            "message"
        +          ]
        +        },
        +        "execution_supported": {
        +          "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.",
        +          "type": "boolean"
        +        },
        +        "execution_unsupported_reason": {
        +          "description": "Why execution and quoting remain unavailable through this router.",
        +          "type": "string"
        +        },
        +        "idempotent": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "boolean"
        +            }
        +          ]
        +        },
        +        "known_pitfalls": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "read_only": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "boolean"
        +            }
        +          ]
        +        },
        +        "response_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "side_effects": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "successful": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "successful"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "object"
        +  },
        +  "total_count": {
        +    "type": "integer"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "error_count",
        +  "next_steps_guidance",
        +  "session_id",
        +  "success_count",
        +  "tools",
        +  "total_count"
        +]
    • Changedget_instagram_basic_profile2 fields changed
      • removedInput schema / properties / userId / description
        Removed value: -"Instagram user id"
      • removedInput schema / properties / userId / example
        Removed value: -"314216"
    • Changedget_instagram_media_transcript2 fields changed
      • removedInput schema / properties / url / description
        Removed value: -"Instagram post or reel URL"
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[]
    • Changedget_instagram_post5 fields changed
      • removedInput schema / properties / download_media
        Removed value: -{
        -  "description": "Set to true to download the video/images and get back permanent Supabase URLs. Costs 10 credits if media is found, 1 credit otherwise.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / region
        Removed value: -{
        -  "description": "2 letter country code to set the proxy in",
        -  "example": "US",
        -  "type": "string"
        -}
      • removedInput schema / properties / trim
        Removed value: -{
        -  "description": "Set to true to get a trimmed response",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / url / description
        Removed value: -"Instagram post or reel URL"
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[]
    • Changedget_instagram_post_comments4 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "The cursor to get more comments. Get 'cursor' from previous response.",
        -  "example": "eyJjYWNoZWRfY29tbWVud...",
        -  "type": "string"
        -}
      • removedInput schema / properties / url / description
        Removed value: -"The URL of the post or reel to get comments from"
      • removedInput schema / properties / url / example
        Removed value: -"https://www.instagram.com/reel/DOq6eV6iIgD"
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[]
    • Changedget_instagram_profile5 fields changed
      • removedInput schema / properties / handle / description
        Removed value: -"Instagram handle"
      • removedInput schema / properties / handle / example
        Removed value: -"jane"
      • removedInput schema / properties / trim / description
        Removed value: -"Set to true to get a trimmed response"
      • changedInput schema / properties / trim / type
        Previous value: -"boolean"New value: +"string"
      • changedInput schema / required
        Previous value: -[
        -  "handle"
        -]New value: +[]
    • Changedget_instagram_reels_search10 fields changed
      • removedInput schema / properties / date_posted / description
        Removed value: -"Optional Google-search date filter. Runtime confirmed with `last-hour`; omit this parameter if a provider search window is unavailable."
      • removedInput schema / properties / date_posted / enum
        Removed value: -[
        -  "last-hour",
        -  "last-day",
        -  "last-week",
        -  "last-month",
        -  "last-year"
        -]
      • removedInput schema / properties / date_posted / example
        Removed value: -"last-hour"
      • addedInput schema / properties / limit
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / page / description
        Removed value: -"The page number to return."
      • removedInput schema / properties / page / example
        Removed value: -1
      • changedInput schema / properties / page / type
        Previous value: -"number"New value: +"string"
      • removedInput schema / properties / query / description
        Removed value: -"The keyword to search for"
      • removedInput schema / properties / query / example
        Removed value: -"dogs"
      • changedInput schema / required
        Previous value: -[
        -  "query"
        -]New value: +[]
    • Changedget_instagram_search_hashtag6 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "The cursor returned by the previous response. In this version, it is the next Google results page number.",
        -  "example": "2",
        -  "type": "string"
        -}
      • removedInput schema / properties / date_posted
        Removed value: -{
        -  "description": "Only return Google-indexed posts found in this relative window.",
        -  "enum": [
        -    "last-hour",
        -    "last-day",
        -    "last-week",
        -    "last-month",
        -    "last-year"
        -  ],
        -  "example": "last-week",
        -  "type": "string"
        -}
      • removedInput schema / properties / hashtag / description
        Removed value: -"The hashtag to search for. Include or omit the #."
      • removedInput schema / properties / hashtag / example
        Removed value: -"makeup"
      • removedInput schema / properties / media_type
        Removed value: -{
        -  "description": "Use all to search public posts and reels, or reels to only return reels. Defaults to all.",
        -  "enum": [
        -    "all",
        -    "reels"
        -  ],
        -  "example": "all",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "hashtag"
        -]New value: +[]
    • Changedget_instagram_search_profiles4 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "The cursor returned by the previous response. In this version, it is the next Google results page number.",
        -  "example": "2",
        -  "type": "string"
        -}
      • removedInput schema / properties / query / description
        Removed value: -"Bio or caption keyword/phrase to search for."
      • removedInput schema / properties / query / example
        Removed value: -"fitness coach"
      • changedInput schema / required
        Previous value: -[
        -  "query"
        -]New value: +[]
    • Changedget_instagram_song_reels4 fields changed
      • removedInput schema / properties / audio_id / description
        Removed value: -"The audio id from the Instagram audio page URL."
      • removedInput schema / properties / audio_id / example
        Removed value: -"1392969992841787"
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "Pagination cursor returned by Instagram from the previous response.",
        -  "example": "Gsbyq-aju4eF02y...",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "audio_id"
        -]New value: +[]
    • Changedget_instagram_user_embed3 fields changed
      • removedInput schema / properties / handle / description
        Removed value: -"Instagram handle"
      • removedInput schema / properties / handle / example
        Removed value: -"jane"
      • changedInput schema / required
        Previous value: -[
        -  "handle"
        -]New value: +[]
    • Changedget_instagram_user_highlight_detail2 fields changed
      • removedInput schema / properties / id / description
        Removed value: -"Highlight ID. Use `/instagram/user/highlights` to discover current highlight IDs for a public account."
      • removedInput schema / properties / id / example
        Removed value: -"18029499352961095"
    • Changedget_instagram_user_highlights3 fields changed
      • removedInput schema / properties / handle / description
        Removed value: -"Instagram handle. Use user_id for faster response times."
      • removedInput schema / properties / handle / example
        Removed value: -"jane"
      • removedInput schema / properties / user_id
        Removed value: -{
        -  "description": "Instagram user id. Use for faster response times.",
        -  "example": "2700692569",
        -  "type": "string"
        -}
    • Changedget_instagram_user_posts5 fields changed
      • removedInput schema / properties / handle / description
        Removed value: -"Instagram handle"
      • removedInput schema / properties / next_max_id
        Removed value: -{
        -  "description": "Cursor to get next page of results.",
        -  "type": "string"
        -}
      • removedInput schema / properties / trim / description
        Removed value: -"Set to true to get a trimmed response"
      • changedInput schema / properties / trim / type
        Previous value: -"boolean"New value: +"string"
      • changedInput schema / required
        Previous value: -[
        -  "handle"
        -]New value: +[]
    • Changedget_instagram_user_reels5 fields changed
      • removedInput schema / properties / handle / description
        Removed value: -"Instagram handle. Use user_id for faster response times."
      • removedInput schema / properties / handle / example
        Removed value: -"jane"
      • removedInput schema / properties / max_id
        Removed value: -{
        -  "description": "Max id to get more reels. Get 'max_id' from previous response.",
        -  "example": "QVFCVzNnS2lI...==",
        -  "type": "string"
        -}
      • removedInput schema / properties / trim
        Removed value: -{
        -  "description": "Set to true for a trimmed down version of the response",
        -  "example": "false",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / user_id
        Removed value: -{
        -  "description": "Instagram user id. Use this for faster response times.",
        -  "example": "2700692569",
        -  "type": "string"
        -}
    • Changedget_pinterest_board7 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "The cursor to get the next page of results",
        -  "example": "Y2JURlEwTWsxNlp6Vk9SR2MwV....",
        -  "type": "string"
        -}
      • removedInput schema / properties / trim / description
        Removed value: -"Set to true for a trimmed down version of the response"
      • removedInput schema / properties / trim / example
        Removed value: -"false"
      • changedInput schema / properties / trim / type
        Previous value: -"boolean"New value: +"string"
      • removedInput schema / properties / url / description
        Removed value: -"The URL of the board to get"
      • removedInput schema / properties / url / example
        Removed value: -"https://www.pinterest.com/lizmrodgers/moms-night/"
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[]
    • Changedget_pinterest_pin6 fields changed
      • removedInput schema / properties / trim / description
        Removed value: -"Set to true for a trimmed down version of the response"
      • removedInput schema / properties / trim / example
        Removed value: -"false"
      • changedInput schema / properties / trim / type
        Previous value: -"boolean"New value: +"string"
      • removedInput schema / properties / url / description
        Removed value: -"Pinterest pin URL"
      • removedInput schema / properties / url / example
        Removed value: -"https://www.pinterest.com/pin/1124351863225567517/"
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[]
    • Changedget_pinterest_search8 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "Cursor",
        -  "example": "Y2JVSG81V2sxcmNHRlpWM1J...",
        -  "type": "string"
        -}
      • addedInput schema / properties / limit
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / query / description
        Removed value: -"Search query"
      • removedInput schema / properties / query / example
        Removed value: -"Italian Pot Roast"
      • removedInput schema / properties / trim / description
        Removed value: -"Set to true for a trimmed down version of the response"
      • removedInput schema / properties / trim / example
        Removed value: -"false"
      • changedInput schema / properties / trim / type
        Previous value: -"boolean"New value: +"string"
      • changedInput schema / required
        Previous value: -[
        -  "query"
        -]New value: +[]
    • Changedget_pinterest_user_boards6 fields changed
      • removedInput schema / properties / handle / description
        Removed value: -"The username of the user to get boards for. (e.g. broadstbullycom from https://www.pinterest.com/broadstbullycom/)"
      • removedInput schema / properties / handle / example
        Removed value: -"broadstbullycom"
      • removedInput schema / properties / trim / description
        Removed value: -"Set to true for a trimmed down version of the response"
      • removedInput schema / properties / trim / example
        Removed value: -"false"
      • changedInput schema / properties / trim / type
        Previous value: -"boolean"New value: +"string"
      • changedInput schema / required
        Previous value: -[
        -  "handle"
        -]New value: +[]
    • Changedget_reddit_post_comments7 fields changed
      • removedInput schema / properties / cursor / description
        Removed value: -"Cursor to get more comments, or replies."
      • removedInput schema / properties / cursor / example
        Removed value: -"ed1lvsa,ed3fnpq,ed25l2w"
      • removedInput schema / properties / trim
        Removed value: -{
        -  "description": "Set to true for a trimmed down version of the response",
        -  "example": "false",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / trimmed
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / url / description
        Removed value: -"Reddit post URL"
      • removedInput schema / properties / url / example
        Removed value: -"https://www.reddit.com/r/AskReddit/comments/ablzuq/people_who_havent_pooped_in_2019_yet_why_are_you/"
      • changedInput schema / required
        Previous value: -[
        -  "url"
        -]New value: +[]
    • Changedget_reddit_search16 fields changed
      • removedInput schema / properties / after
        Removed value: -{
        -  "description": "Used to paginate to next page",
        -  "example": "t3_1i8z28z",
        -  "type": "string"
        -}
      • addedInput schema / properties / count
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / query / description
        Removed value: -"Search query"
      • removedInput schema / properties / sort / description
        Removed value: -"Sort by"
      • removedInput schema / properties / sort / enum
        Removed value: -[
        -  "relevance",
        -  "new",
        -  "top",
        -  "comment_count"
        -]
      • removedInput schema / properties / sort / example
        Removed value: -"relevance"
      • addedInput schema / properties / time
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / timeframe / description
        Removed value: -"Timeframe"
      • removedInput schema / properties / timeframe / enum
        Removed value: -[
        -  "all",
        -  "day",
        -  "week",
        -  "month",
        -  "year"
        -]
      • removedInput schema / properties / timeframe / example
        Removed value: -"all"
      • removedInput schema / properties / trim / description
        Removed value: -"Set to true for a trimmed down version of the response"
      • removedInput schema / properties / trim / example
        Removed value: -"false"
      • changedInput schema / properties / trim / type
        Previous value: -"boolean"New value: +"string"
      • addedInput schema / properties / trimmed
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "query"
        -]New value: +[]
    • Changedget_reddit_subreddit12 fields changed
      • removedInput schema / properties / after / description
        Removed value: -"After to get more posts. Get 'after' from previous response."
      • removedInput schema / properties / after / example
        Removed value: -"t3_1234567890"
      • addedInput schema / properties / cache_max_age
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / sort / description
        Removed value: -"Sort order"
      • removedInput schema / properties / sort / enum
        Removed value: -[
        -  "best",
        -  "hot",
        -  "new",
        -  "top",
        -  "rising"
        -]
      • removedInput schema / properties / subreddit / description
        Removed value: -"Subreddit name"
      • removedInput schema / properties / timeframe / description
        Removed value: -"Timeframe to get posts from. Runtime requires `sort=top` when `timeframe` is provided."
      • removedInput schema / properties / timeframe / enum
        Removed value: -[
        -  "all",
        -  "day",
        -  "week",
        -  "month",
        -  "year"
        -]
      • removedInput schema / properties / trim / description
        Removed value: -"Set to true for a trimmed down version of the response"
      • removedInput schema / properties / trim / example
        Removed value: -"false"
      • changedInput schema / properties / trim / type
        Previous value: -"boolean"New value: +"string"
      • changedInput schema / required
        Previous value: -[
        -  "subreddit"
        -]New value: +[]
    • Changedget_reddit_subreddit_details3 fields changed
      • removedInput schema / properties / subreddit / description
        Removed value: -"Subreddit name. MUST be case sensitive. So 'AskReddit' not 'askreddit'."
      • removedInput schema / properties / subreddit / example
        Removed value: -"AskReddit"
      • removedInput schema / properties / url
        Removed value: -{
        -  "description": "Subreddit URL",
        -  "example": "https://www.reddit.com/r/AbsoluteUnits/",
        -  "type": "string"
        -}
    • Changedget_reddit_subreddit_search9 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "Cursor to get more results. Get 'cursor' from previous response.",
        -  "example": "eyJjYW5kaWRhdGVzX3JldHVybmVkIjoi...",
        -  "type": "string"
        -}
      • removedInput schema / properties / query / description
        Removed value: -"Search query to find matching content"
      • removedInput schema / properties / query / example
        Removed value: -"push ups"
      • removedInput schema / properties / sort / description
        Removed value: -"Sort order. For posts/media: relevance, hot, top, new, comments. For comments: relevance, top, new"
      • removedInput schema / properties / sort / enum
        Removed value: -[
        -  "relevance",
        -  "hot",
        -  "top",
        -  "new",
        -  "comments"
        -]
      • removedInput schema / properties / subreddit / description
        Removed value: -"Subreddit name (e.g. 'Fitness', not 'r/Fitness' or a full URL)"
      • removedInput schema / properties / timeframe / description
        Removed value: -"Timeframe to filter results"
      • removedInput schema / properties / timeframe / enum
        Removed value: -[
        -  "all",
        -  "year",
        -  "month",
        -  "week",
        -  "day",
        -  "hour"
        -]
      • changedInput schema / required
        Previous value: -[
        -  "subreddit"
        -]New value: +[]
    • Changedget_twitter_article2 fields changed
      • removedInput schema / properties / tweet_id / description
        Removed value: -"The tweet ID of the article."
      • changedInput schema / required
        Previous value: -[
        -  "tweet_id"
        -]New value: +[]
    • Changedget_twitter_list_tweets_timeline3 fields changed
      • removedInput schema / properties / cursor / description
        Removed value: -"Cursor for paginating through results. Leave empty for the first page."
      • removedInput schema / properties / listId / description
        Removed value: -"The list ID to get tweets from. e.g. 1846987139428634858"
      • changedInput schema / required
        Previous value: -[
        -  "listId"
        -]New value: +[]
    • Changedget_twitter_trends9 fields changed
      • removedInput schema / properties / count / default
        Removed value: -30
      • removedInput schema / properties / count / description
        Removed value: -"The number of trends to return. Default is 30."
      • removedInput schema / properties / count / format
        Removed value: -"int64"
      • removedInput schema / properties / count / minimum
        Removed value: -30
      • changedInput schema / properties / count / type
        Previous value: -"integer"New value: +"string"
      • removedInput schema / properties / woeid / description
        Removed value: -"The WOEID of the location. Example: 2418046."
      • removedInput schema / properties / woeid / format
        Removed value: -"int64"
      • changedInput schema / properties / woeid / type
        Previous value: -"integer"New value: +"string"
      • changedInput schema / required
        Previous value: -[
        -  "woeid"
        -]New value: +[]
    • Changedget_twitter_tweet_advanced_search9 fields changed
      • addedInput schema / properties / count
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / cursor / description
        Removed value: -"The cursor to paginate through the results. First page is empty."
      • addedInput schema / properties / max_results
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / query / description
        Removed value: -"The query to search for."
      • removedInput schema / properties / queryType / default
        Removed value: -"Latest"
      • removedInput schema / properties / queryType / description
        Removed value: -"The query type to search for."
      • removedInput schema / properties / queryType / enum
        Removed value: -[
        -  "Latest",
        -  "Top"
        -]
      • addedInput schema / properties / start_time
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "query",
        -  "queryType"
        -]New value: +[]
    • Changedget_twitter_tweet_quotes3 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "Cursor for pagination.",
        -  "type": "string"
        -}
      • removedInput schema / properties / tweetId / description
        Removed value: -"The tweet ID to get quotes for."
      • changedInput schema / required
        Previous value: -[
        -  "tweetId"
        -]New value: +[]
    • Changedget_twitter_tweet_replies3 fields changed
      • removedInput schema / properties / cursor / description
        Removed value: -"Cursor for pagination."
      • removedInput schema / properties / tweetId / description
        Removed value: -"The tweet ID to get replies for."
      • changedInput schema / required
        Previous value: -[
        -  "tweetId"
        -]New value: +[]
    • Changedget_twitter_tweet_replies_v26 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "Cursor for paginating through results. Leave empty for the first page.",
        -  "type": "string"
        -}
      • removedInput schema / properties / queryType / default
        Removed value: -"Relevance"
      • removedInput schema / properties / queryType / description
        Removed value: -"Sort order for replies. Default is Relevance."
      • removedInput schema / properties / queryType / enum
        Removed value: -[
        -  "Relevance",
        -  "Latest",
        -  "Likes"
        -]
      • removedInput schema / properties / tweetId / description
        Removed value: -"The tweet ID to get replies for. e.g. 1846987139428634858"
      • changedInput schema / required
        Previous value: -[
        -  "tweetId"
        -]New value: +[]
    • Changedget_twitter_tweet_thread_context3 fields changed
      • removedInput schema / properties / cursor / description
        Removed value: -"The cursor to paginate through the results. First page is empty."
      • removedInput schema / properties / tweetId / description
        Removed value: -"The tweet ID to get. Can be a reply tweet or an original tweet."
      • changedInput schema / required
        Previous value: -[
        -  "tweetId"
        -]New value: +[]
    • Changedget_twitter_tweets4 fields changed
      • removedInput schema / properties / tweet_ids / description
        Removed value: -"Comma-separated list of tweet IDs."
      • removedInput schema / properties / tweet_ids / items
        Removed value: -{
        -  "type": "string"
        -}
      • changedInput schema / properties / tweet_ids / type
        Previous value: -"array"New value: +"string"
      • changedInput schema / required
        Previous value: -[
        -  "tweet_ids"
        -]New value: +[]
    • Changedget_twitter_user_batch_info_by_ids4 fields changed
      • removedInput schema / properties / userIds / description
        Removed value: -"Comma-separated user IDs"
      • addedInput schema / properties / userIds / x-aisa-delimiter
        Added value: +","
      • addedInput schema / properties / userIds / x-aisa-maxItems
        Added value: +100000
      • addedInput schema / properties / userIds / x-aisa-minItems
        Added value: +1
    • Changedget_twitter_user_followers4 fields changed
      • removedInput schema / properties / cursor / description
        Removed value: -"Cursor for pagination"
      • removedInput schema / properties / pageSize
        Removed value: -{
        -  "default": 200,
        -  "description": "Number of followers per page",
        -  "maximum": 200,
        -  "minimum": 20,
        -  "type": "integer"
        -}
      • removedInput schema / properties / userName / description
        Removed value: -"Screen name of the user"
      • changedInput schema / required
        Previous value: -[
        -  "userName"
        -]New value: +[]
    • Changedget_twitter_user_followings4 fields changed
      • removedInput schema / properties / cursor / description
        Removed value: -"The cursor to paginate through the results. First page is empty."
      • removedInput schema / properties / pageSize
        Removed value: -{
        -  "default": 200,
        -  "description": "The number of followings to return per page.",
        -  "maximum": 200,
        -  "minimum": 20,
        -  "type": "integer"
        -}
      • removedInput schema / properties / userName / description
        Removed value: -"Screen name of the user."
      • changedInput schema / required
        Previous value: -[
        -  "userName"
        -]New value: +[]
    • Changedget_twitter_user_info2 fields changed
      • removedInput schema / properties / userName / description
        Removed value: -"The screen name of the user"
      • changedInput schema / required
        Previous value: -[
        -  "userName"
        -]New value: +[]
    • Changedget_twitter_user_last_tweets7 fields changed
      • addedInput schema / properties / count
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / cursor / description
        Removed value: -"Cursor for pagination"
      • removedInput schema / properties / includeReplies / default
        Removed value: -false
      • removedInput schema / properties / includeReplies / description
        Removed value: -"Include replies in the results"
      • changedInput schema / properties / includeReplies / type
        Previous value: -"boolean"New value: +"string"
      • removedInput schema / properties / userId / description
        Removed value: -"User ID of the user"
      • removedInput schema / properties / userName / description
        Removed value: -"Screen name of the user"
    • Changedget_twitter_user_mentions5 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "The cursor to paginate through the results. First page is empty.",
        -  "type": "string"
        -}
      • removedInput schema / properties / sinceTime
        Removed value: -{
        -  "description": "On or after a specified unix timestamp in seconds.",
        -  "format": "int64",
        -  "type": "integer"
        -}
      • removedInput schema / properties / untilTime
        Removed value: -{
        -  "description": "Before a specified unix timestamp in seconds.",
        -  "format": "int64",
        -  "type": "integer"
        -}
      • removedInput schema / properties / userName / description
        Removed value: -"The user screen name to get mentions for."
      • changedInput schema / required
        Previous value: -[
        -  "userName"
        -]New value: +[]
    • Changedget_twitter_user_search3 fields changed
      • removedInput schema / properties / cursor
        Removed value: -{
        -  "description": "The cursor to paginate through the results. First page is empty.",
        -  "type": "string"
        -}
      • removedInput schema / properties / query / description
        Removed value: -"The keyword to search."
      • changedInput schema / required
        Previous value: -[
        -  "query"
        -]New value: +[]
    • Changedget_twitter_user_tweet_timeline9 fields changed
      • removedInput schema / properties / cursor / description
        Removed value: -"Cursor for paginating through results. Leave empty for the first page."
      • removedInput schema / properties / includeParentTweet / default
        Removed value: -false
      • removedInput schema / properties / includeParentTweet / description
        Removed value: -"Whether to include the parent tweet when a tweet is a reply. Defaults to false."
      • changedInput schema / properties / includeParentTweet / type
        Previous value: -"boolean"New value: +"string"
      • removedInput schema / properties / includeReplies / default
        Removed value: -false
      • removedInput schema / properties / includeReplies / description
        Removed value: -"Whether to include replies in the results. Defaults to false."
      • changedInput schema / properties / includeReplies / type
        Previous value: -"boolean"New value: +"string"
      • removedInput schema / properties / userId / description
        Removed value: -"User ID of the user whose timeline to retrieve."
      • addedInput schema / properties / userName
        Added value: +{
        +  "type": "string"
        +}
    • Changedsearch17 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / category / anyOf
        Removed value: -[
        -  {
        -    "enum": [
        -      "seo",
        -      "finance",
        -      "social",
        -      "search",
        -      "sales",
        -      "mail"
        -    ],
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / category / default
        Removed value: -null
      • changedInput schema / properties / category / description
        Previous value: -"Restrict to one category (seo, finance, social, search, sales, mail). Omit to search everything."New value: +"Restrict retrieval to one category. Omit to search everything. (AIsa-only: tool-router has no equivalent.)"
      • addedInput schema / properties / category / enum
        Added value: +[
        +  "seo",
        +  "finance",
        +  "social",
        +  "search",
        +  "sales",
        +  "mail"
        +]
      • addedInput schema / properties / category / type
        Added value: +"string"
      • addedInput schema / properties / known_fields
        Added value: +{
        +  "additionalProperties": true,
        +  "default": {},
        +  "description": "Known values such as ticker, URL, provider, or identifier that improve retrieval.",
        +  "type": "object"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum candidates, 1-10"New value: +"Maximum number of additional direct tool candidates."
      • addedInput schema / properties / limit / maximum
        Added value: +20
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • addedInput schema / properties / provider_filters
        Added value: +{
        +  "default": [],
        +  "description": "Optional exact catalog provider keys used to narrow retrieval (for example similarweb). Do not use display brands. Omit this field if the exact key is unknown.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • changedInput schema / properties / query / description
        Previous value: -"What you need, in plain language, e.g. 'backlinks of a domain', 'recent tweets by a user', 'insider trades for AAPL'. English works best."New value: +"Natural-language capability or task to discover."
      • addedInput schema / properties / query / maxLength
        Added value: +2000
      • addedInput schema / properties / query / minLength
        Added value: +1
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +  "maxLength": 128,
        +  "pattern": "^[A-Za-z0-9_-]*$",
        +  "type": "string"
        +}
      • addedOutput schema / properties
        Added value: +{
        +  "next_steps_guidance": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "type": "string"
        +    }
        +  },
        +  "plan": {
        +    "additionalProperties": false,
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "object"
        +      }
        +    ],
        +    "properties": {
        +      "canonical_use_case": {
        +        "type": "string"
        +      },
        +      "description": {
        +        "type": "string"
        +      },
        +      "known_pitfalls": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "plan_ref": {
        +        "type": "string"
        +      },
        +      "primary_tools": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "recommended_steps": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      },
        +      "related_tools": {
        +        "anyOf": [
        +          {
        +            "type": "null"
        +          },
        +          {
        +            "type": "array"
        +          }
        +        ],
        +        "items": {
        +          "type": "string"
        +        }
        +      }
        +    },
        +    "required": [
        +      "canonical_use_case",
        +      "description",
        +      "known_pitfalls",
        +      "plan_ref",
        +      "primary_tools",
        +      "recommended_steps",
        +      "related_tools"
        +    ]
        +  },
        +  "retrieval_mode": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "string"
        +      }
        +    ]
        +  },
        +  "search_id": {
        +    "type": "string"
        +  },
        +  "session_id": {
        +    "description": "Reuse the session_id returned by Search in all subsequent tool calls for this task. If omitted, a new session is created.",
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "pattern": "^[A-Za-z0-9_-]{1,128}$",
        +    "type": "string"
        +  },
        +  "tools": {
        +    "anyOf": [
        +      {
        +        "type": "null"
        +      },
        +      {
        +        "type": "array"
        +      }
        +    ],
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "arguments_schema": {
        +          "additionalProperties": true,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "description": {
        +          "type": "string"
        +        },
        +        "execution_supported": {
        +          "description": "Whether this router can execute and quote the operation; false retains documentation and discovery only.",
        +          "type": "boolean"
        +        },
        +        "execution_unsupported_reason": {
        +          "description": "Why execution and quoting remain unavailable through this router.",
        +          "type": "string"
        +        },
        +        "has_full_schema": {
        +          "type": "boolean"
        +        },
        +        "match_reasons": {
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "array"
        +            }
        +          ],
        +          "items": {
        +            "type": "string"
        +          }
        +        },
        +        "price": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "retrieval_debug": {
        +          "additionalProperties": false,
        +          "anyOf": [
        +            {
        +              "type": "null"
        +            },
        +            {
        +              "type": "object"
        +            }
        +          ],
        +          "properties": {
        +            "fused_rank": {
        +              "type": "integer"
        +            },
        +            "fused_score": {
        +              "type": "number"
        +            },
        +            "lexical_rank": {
        +              "type": "integer"
        +            },
        +            "lexical_score": {
        +              "type": "number"
        +            },
        +            "rerank_admission_rank": {
        +              "type": "integer"
        +            },
        +            "rerank_rank": {
        +              "type": "integer"
        +            },
        +            "rerank_score": {
        +              "anyOf": [
        +                {
        +                  "type": "null"
        +                },
        +                {
        +                  "type": "number"
        +                }
        +              ]
        +            },
        +            "runtime_availability": {
        +              "type": "string"
        +            },
        +            "vector_view_ranks": {
        +              "additionalProperties": {
        +                "type": "integer"
        +              },
        +              "type": "object"
        +            },
        +            "vector_view_scores": {
        +              "additionalProperties": {
        +                "type": "number"
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "fused_rank",
        +            "fused_score",
        +            "lexical_rank",
        +            "lexical_score",
        +            "rerank_admission_rank",
        +            "rerank_rank",
        +            "runtime_availability",
        +            "vector_view_ranks",
        +            "vector_view_scores"
        +          ]
        +        },
        +        "summary": {
        +          "type": "string"
        +        },
        +        "tool": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "description",
        +        "has_full_schema",
        +        "price",
        +        "summary",
        +        "tool"
        +      ],
        +      "type": "object"
        +    }
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "next_steps_guidance",
        +  "search_id",
        +  "session_id",
        +  "tools"
        +]
    • Changeduse1 field changed
      • changedInput schema / properties / max_price_usd / description
        Previous value: -"Refuse the call before any spend if it would cost more than this many USD"New value: +"Refuse the call before any spend if its quoted price is above this many USD"
  5. 1 tool update
    • Changedget_details1 field changed
      • addedInput schema / properties / include_documentation
        Added value: +{
        +  "default": false,
        +  "description": "Include the complete native public OpenAPI document, reference closure and scoped completeness. Existing execution schemas remain unchanged.",
        +  "type": "boolean"
        +}
  6. 21 tool updates
    • Changedget_instagram_basic_profile1 field changed
      • addedInput schema / properties / userId / example
        Added value: +"314216"
    • Changedget_instagram_post1 field changed
      • addedInput schema / properties / region / example
        Added value: +"US"
    • Changedget_instagram_post_comments2 fields changed
      • addedInput schema / properties / cursor / example
        Added value: +"eyJjYWNoZWRfY29tbWVud..."
      • addedInput schema / properties / url / example
        Added value: +"https://www.instagram.com/reel/DOq6eV6iIgD"
    • Changedget_instagram_profile1 field changed
      • addedInput schema / properties / handle / example
        Added value: +"jane"
    • Changedget_instagram_reels_search3 fields changed
      • addedInput schema / properties / date_posted / example
        Added value: +"last-hour"
      • addedInput schema / properties / page / example
        Added value: +1
      • addedInput schema / properties / query / example
        Added value: +"dogs"
    • Changedget_instagram_search_hashtag4 fields changed
      • addedInput schema / properties / cursor / example
        Added value: +"2"
      • addedInput schema / properties / date_posted / example
        Added value: +"last-week"
      • addedInput schema / properties / hashtag / example
        Added value: +"makeup"
      • addedInput schema / properties / media_type / example
        Added value: +"all"
    • Changedget_instagram_search_profiles2 fields changed
      • addedInput schema / properties / cursor / example
        Added value: +"2"
      • addedInput schema / properties / query / example
        Added value: +"fitness coach"
    • Changedget_instagram_song_reels2 fields changed
      • addedInput schema / properties / audio_id / example
        Added value: +"1392969992841787"
      • addedInput schema / properties / cursor / example
        Added value: +"Gsbyq-aju4eF02y..."
    • Changedget_instagram_user_embed1 field changed
      • addedInput schema / properties / handle / example
        Added value: +"jane"
    • Changedget_instagram_user_highlight_detail1 field changed
      • addedInput schema / properties / id / example
        Added value: +"18029499352961095"
    • Changedget_instagram_user_highlights2 fields changed
      • addedInput schema / properties / handle / example
        Added value: +"jane"
      • addedInput schema / properties / user_id / example
        Added value: +"2700692569"
    • Changedget_instagram_user_reels4 fields changed
      • addedInput schema / properties / handle / example
        Added value: +"jane"
      • addedInput schema / properties / max_id / example
        Added value: +"QVFCVzNnS2lI...=="
      • addedInput schema / properties / trim / example
        Added value: +"false"
      • addedInput schema / properties / user_id / example
        Added value: +"2700692569"
    • Changedget_pinterest_board3 fields changed
      • addedInput schema / properties / cursor / example
        Added value: +"Y2JURlEwTWsxNlp6Vk9SR2MwV...."
      • addedInput schema / properties / trim / example
        Added value: +"false"
      • addedInput schema / properties / url / example
        Added value: +"https://www.pinterest.com/lizmrodgers/moms-night/"
    • Changedget_pinterest_pin2 fields changed
      • addedInput schema / properties / trim / example
        Added value: +"false"
      • addedInput schema / properties / url / example
        Added value: +"https://www.pinterest.com/pin/1124351863225567517/"
    • Changedget_pinterest_search3 fields changed
      • addedInput schema / properties / cursor / example
        Added value: +"Y2JVSG81V2sxcmNHRlpWM1J..."
      • addedInput schema / properties / query / example
        Added value: +"Italian Pot Roast"
      • addedInput schema / properties / trim / example
        Added value: +"false"
    • Changedget_pinterest_user_boards2 fields changed
      • addedInput schema / properties / handle / example
        Added value: +"broadstbullycom"
      • addedInput schema / properties / trim / example
        Added value: +"false"
    • Changedget_reddit_post_comments3 fields changed
      • addedInput schema / properties / cursor / example
        Added value: +"ed1lvsa,ed3fnpq,ed25l2w"
      • addedInput schema / properties / trim / example
        Added value: +"false"
      • addedInput schema / properties / url / example
        Added value: +"https://www.reddit.com/r/AskReddit/comments/ablzuq/people_who_havent_pooped_in_2019_yet_why_are_you/"
    • Changedget_reddit_search4 fields changed
      • addedInput schema / properties / after / example
        Added value: +"t3_1i8z28z"
      • addedInput schema / properties / sort / example
        Added value: +"relevance"
      • addedInput schema / properties / timeframe / example
        Added value: +"all"
      • addedInput schema / properties / trim / example
        Added value: +"false"
    • Changedget_reddit_subreddit2 fields changed
      • addedInput schema / properties / after / example
        Added value: +"t3_1234567890"
      • addedInput schema / properties / trim / example
        Added value: +"false"
    • Changedget_reddit_subreddit_details2 fields changed
      • addedInput schema / properties / subreddit / example
        Added value: +"AskReddit"
      • addedInput schema / properties / url / example
        Added value: +"https://www.reddit.com/r/AbsoluteUnits/"
    • Changedget_reddit_subreddit_search2 fields changed
      • addedInput schema / properties / cursor / example
        Added value: +"eyJjYW5kaWRhdGVzX3JldHVybmVkIjoi..."
      • addedInput schema / properties / query / example
        Added value: +"push ups"
  7. 61 tool updates
    • First observedbatch_use
    • First observedget_details
    • First observedget_instagram_basic_profile
    • First observedget_instagram_media_transcript
    • First observedget_instagram_post
    • First observedget_instagram_post_comments
    • First observedget_instagram_profile
    • First observedget_instagram_reels_search
    • First observedget_instagram_reels_trending
    • First observedget_instagram_search_hashtag
    • First observedget_instagram_search_profiles
    • First observedget_instagram_song_reels
    • First observedget_instagram_user_embed
    • First observedget_instagram_user_highlight_detail
    • First observedget_instagram_user_highlights
    • First observedget_instagram_user_posts
    • First observedget_instagram_user_reels
    • First observedget_pinterest_board
    • First observedget_pinterest_pin
    • First observedget_pinterest_search
    • First observedget_pinterest_user_boards
    • First observedget_reddit_post_comments
    • First observedget_reddit_search
    • First observedget_reddit_subreddit
    • First observedget_reddit_subreddit_details
    • First observedget_reddit_subreddit_search
    • First observedget_twitter_article
    • First observedget_twitter_community_info
    • First observedget_twitter_community_members
    • First observedget_twitter_community_moderators
    • First observedget_twitter_community_tweets
    • First observedget_twitter_community_tweets_all
    • First observedget_twitter_list_followers
    • First observedget_twitter_list_members
    • First observedget_twitter_list_tweets_timeline
    • First observedget_twitter_spaces_detail
    • First observedget_twitter_trends
    • First observedget_twitter_tweet_advanced_search
    • First observedget_twitter_tweet_quotes
    • First observedget_twitter_tweet_replies
    • First observedget_twitter_tweet_replies_v2
    • First observedget_twitter_tweet_retweeters
    • First observedget_twitter_tweet_thread_context
    • First observedget_twitter_tweets
    • First observedget_twitter_user_about
    • First observedget_twitter_user_batch_info_by_ids
    • First observedget_twitter_user_check_follow_relationship
    • First observedget_twitter_user_followers
    • First observedget_twitter_user_followings
    • First observedget_twitter_user_info
    • First observedget_twitter_user_last_tweets
    • First observedget_twitter_user_mentions
    • First observedget_twitter_user_search
    • First observedget_twitter_user_tweet_timeline
    • First observedget_twitter_user_verified_followers
    • First observedget_youtube_search
    • First observedinstagram_posts_digest
    • First observedinstagram_profile_digest
    • First observedlist_categories
    • First observedsearch
    • First observeduse

Publisher details

Operator
AIsa · Publisher source
Operator website
https://aisa.one
Vendor relationship
Independent
Trust center
Not available
Restrictions
No paid plan, admin approval, regional limit or custom OAuth app is needed to connect. Sign-in is OAuth against auth.aisa.one with dynamic client registration (RFC 7591), or an Authorization: Bearer AIsa API key. search, get_details and list_categories are free. use and batch_use are billed per call to the caller's own AIsa key, and max_price_usd refuses anything above a cap before any spend. Some operations are subscription-only on the gateway and answer 402 without the Hive GTM Growth plan.

Related MCP Connectors

  • Your agent needs public Instagram data — a creator's posts and reels, what a hashtag is producing, what a video actually says. The official Graph API only sees accounts you already own, and needs app review to see those. **What you can ask for** • "Pull this creator's last 50 posts and reels with engagement counts." • "What is trending under #skincare this week, and which profiles keep appearing?" • "Transcribe this reel and tell me what the hook in the first three seconds is." • "Read the comments on this post and group the objections." • "Which reels use this song right now?" **How to use it** Point any MCP client at https://mcp.aisa.one/instagram/mcp and sign in with OAuth — there is no key to create or paste. 17 read tools: profiles (basic and full), a user's posts, reels and highlights, post and profile digests, post comments, reels search, trending reels, reels by song, hashtag and profile search, and media transcripts. **Why this rather than the source** Public profiles without owning the account, and no app review to sit through. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Size a creator's audience here, then ask the same agent what their brand's site traffic looks like or who to contact there — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/social/mcp for X plus Instagram, Reddit, Pinterest and YouTube; https://mcp.aisa.one/gtm/mcp for those plus Similarweb and Apollo.

  • Your agent needs X/Twitter data — who follows a competitor, what a community is posting, who quoted that tweet, what is trending in Japan. Normally that means applying for an X developer account, passing app review, and managing a quota per endpoint. **What you can ask for** • "Who follows @stripe, and which of them are verified?" • "Pull every reply and quote on this tweet and summarise what people object to." • "List this community's moderators and its posts this week." • "What is trending in Japan right now?" • "Give me the full thread context behind this link, including the long-form article." **How to use it** Point any MCP client at https://mcp.aisa.one/twitter-api/mcp and sign in with OAuth — there is no key to create or paste. 29 read tools: users (profile, about, batch lookup by id, search, followers, verified followers, followings, follow check), tweets (timeline, latest, mentions, advanced search, replies, quotes, retweeters, thread context, articles), communities, lists, Spaces and trends. **Why this rather than the source** No developer account to apply for, no app review, no per-endpoint quota to manage. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Ask for a handle's followers here, then ask the same agent for that brand's search traffic, its backlinks, or the people to contact — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/social/mcp for X plus Instagram, Reddit, Pinterest and YouTube; https://mcp.aisa.one/gtm/mcp for those plus Similarweb and Apollo.

  • Your agent needs to know what a community actually thinks — which subreddit is discussing your category, what the top posts argue, what the comment tree says underneath. **What you can ask for** • "Which subreddits discuss project-management tools, and how big are they?" • "Find posts complaining about Notion pricing in the last month." • "Read the full comment tree on this thread and summarise the disagreement." • "What is r/selfhosted posting about this week?" • "Search every community for mentions of our product name." **How to use it** Point any MCP client at https://mcp.aisa.one/reddit/mcp and sign in with OAuth — there is no key to create or paste. 5 read tools: search across all of Reddit or inside one subreddit, browse a subreddit's post stream, read a subreddit's details, and pull a post's comment tree. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Find the complaint here, then ask the same agent what the competitor's traffic or backlinks look like — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/social/mcp for X plus Instagram, Reddit, Pinterest and YouTube; https://mcp.aisa.one/gtm/mcp for those plus Similarweb and Apollo.

  • Your agent needs live data — a competitor's traffic, who to contact there, what people are saying, what Google and ChatGPT answer about you, a company's filings. Normally that is six vendor accounts, six sets of keys and six SDKs. This is one URL. **What you can ask for** • "How much traffic does stripe.com get, where does it come from, and who competes for the same keywords?" • "Find 20 Series-B fintech companies in Germany and the heads of marketing there, with emails." • "Does ChatGPT mention our brand when someone asks for the best CRM — and what does it cite?" • "What is X saying about $NVDA today, and what did the stock actually do?" • "Search the web for this, then scrape the three best pages into markdown." **How to use it** Point any MCP client at https://mcp.aisa.one/mcp and sign in with OAuth — there is no key to create or paste. Then just ask: the agent calls search to find the right operation and use to run it. **Why this rather than the source** 26 sources behind one account and one bill — DataForSEO, Semrush, Ahrefs, Similarweb, Apollo, X/Twitter, Instagram, Reddit, Pinterest, YouTube, Tavily, Exa, Perplexity, Firecrawl, CoinGecko, Kalshi, Polymarket, AgentMail and more, 580+ operations. tools/list returns five tools, not 580, so the introduction does not eat your context window. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** One slice at a time: https://mcp.aisa.one/seo/mcp · /finance/mcp · /social/mcp · /search/mcp · /sales/mcp · /mail/mcp · /gtm/mcp, or a single provider like /twitter-api/mcp. Same account, fewer tools listed, and search still reaches everything. Full list at https://mcp.aisa.one/servers

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    One remote MCP endpoint giving agents live data from Twitter/X, Reddit, web, GitHub, Amazon, and YouTube, no API keys needed, pay per call.
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to query public social media data across TikTok, Instagram, YouTube, X, Douyin and Xiaohongshu through ten unified business-level tools covering creator and post search, comments, trending topics, and comment insights. Ships one normalized schema over MCP, SSE, REST and stdio, with per-call pricing and cost/balance reported in every response.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Social media API and MCP server for AI agents that enables publishing to X, Instagram, LinkedIn, Reddit, Bluesky, and Threads from a single endpoint.
    100 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to post, schedule, thread, delete, and analyze social media posts across platforms like X, Bluesky, LinkedIn, and Instagram through a single MCP interface.
    241 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources