KonbiniAPI MCP
Server Details
Get social media data from Instagram and TikTok: profiles, posts, videos, comments, and more.
- Status
- Healthy
- Uptime
- 77.8% over 82 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 94 tools
Each tool follows a clear platform + resource + action pattern (e.g. tiktok_get_user_videos vs tiktok_get_user_likes vs tiktok_get_user_reposts), so agents can reliably pick the right one. A few endpoints overlap slightly — reddit_search_comments vs reddit_search_subreddit_comments, and tiktok_search_content vs tiktok_search_videos/tiktok_search_users — but the descriptions clarify the boundaries (platform-wide with optional subreddit filter vs subreddit-scoped). Only these minor overlaps keep it from a perfect score.
Naming is uniformly snake_case with a strict platform_verb_noun convention across all 94 tools (instagram_get_post, reddit_search_subreddit_posts, youtube_get_video_transcript). Platform prefixes are consistent and abbreviations are uniform, so the surface reads predictably with no mixed conventions.
94 tools is very heavy for an agent to navigate, far past the 25+ threshold where a set feels cumbersome. The breadth is partly justified since it spans six distinct platforms (~15 tools each), so it is not an arbitrary mismatch, but the aggregate count is large enough to meaningfully burden selection.
Read coverage is extensive and consistent across platforms: profiles, posts, comments and replies, media, hashtags/tags, playlists, transcripts, and search are all present. It is read-only by design (a public social-data API), which is coherent, but a few minor gaps exist (e.g. Instagram lacks comment-reply and user-search endpoints that other platforms have).
Available Tools
94 toolsinstagram_get_audio_reelsInstagram: Get reels by audioARead-onlyIdempotentInspect
Returns a paginated list of reels using a given audio/music track. Instagram always returns a fixed batch of 12 per page. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| audioId | Yes | Instagram audio/music cluster ID (from instagram.com/reels/audio/{id}/) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description only needs to add beyond that. It does: the fixed 12-items-per-page constraint is a genuine, non-obvious behavioral trait, and the paginated-with-cursor nature of the response is stated. Auth requirements and rate limits are not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero waste, front-loaded with the core action and page-size constraint before the optional payload-tuning parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description plus the item_fields enum give the agent a workable picture of the return payload, and the fixed page size plus cursor parameter make pagination clear. Only the response envelope's shape and any access constraints are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, audioId, and the three field-selection parameters in detail. The description's only addition is the rationale that projection_preset/data_fields/item_fields exist 'for payload reduction', which is mild extra value and does not help choose between presets.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: a paginated list of reels filtered by a given audio/music track. That scope distinguishes it from the sibling reels tools (instagram_get_user_reels, instagram_get_trending_reels), though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource qualifier: use this when you have an audio/music track and want its reels. There is no explicit when-not guidance and no routing to the alternative reels endpoints, so the agent must infer the choice from the names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_highlight_storiesInstagram: Get highlight storiesARead-onlyIdempotentInspect
Returns all story items within a highlight reel, including images and videos. The highlight ID comes from the highlights list endpoint. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| highlightId | Yes | Instagram highlight ID | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds behavioral context beyond annotations by naming the returned content (images and videos) and the payload-reduction mechanism (projection_preset, data_fields, item_fields).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences with the core purpose front-loaded, followed by the ID provenance and payload-reduction note. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with full schema coverage and annotations covering safety, the description need only summarize return content and usage prerequisites. It does both, and no output schema exists so nothing further is required. Minor omission: no mention of pagination or limits, though none are indicated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema, including the enum values for projection_preset and field arrays. The description only adds a high-level note that these options exist for payload reduction, which is marginal added meaning over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: 'Returns all story items within a highlight reel.' It distinguishes itself from sibling instagram_get_user_highlights by clarifying that the highlight ID comes from the highlights list endpoint, so an agent knows this tool operates on an individual reel rather than listing highlights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the source for the required highlightId ('from the highlights list endpoint'), which is a clear prerequisite and implicitly routes the agent to the correct sibling for obtaining IDs. It does not state explicit when-not conditions, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_location_postsInstagram: Get posts by locationARead-onlyIdempotentInspect
Returns recent posts tagged at a location. Single page only, about 15 posts (platform limit). The location ID is a numeric Facebook Places ID. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Accepted for compatibility; the platform decides the page size Default: 21 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| locationId | Yes | Instagram/Facebook location ID (numeric) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe-read profile (readOnly, idempotent, non-destructive, openWorld), so the description's additional disclosure of the ~15-post single-page platform cap and the numeric Facebook Places ID format is genuinely additive. It stops short of noting auth requirements or how the location ID is obtained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core purpose front-loaded, followed by the page-size limit and the payload-reduction options. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully covers the return shape indirectly (about 15 posts, single page) and the field-selection mechanics. It is close to complete for a six-parameter read tool, with only the origin of the location ID and any auth expectations left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description adds real meaning: projection_preset, data_fields, and item_fields are framed as payload-reduction controls and locationId is characterized as a numeric Facebook Places ID. That clarifies intent beyond the schema's terse field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns posts tagged at a location, which no sibling covers (the nearest, instagram_get_user_tagged, is user-scoped rather than place-scoped). The one-line scope sentence makes the resource unambiguous, though it never explicitly names a sibling to distinguish itself from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose statement rather than spelled out; there is no when-to-use/when-not or alternative routing. It does add a practical constraint (single page only, ~15 posts due to platform limit) that steers the agent away from expecting heavy pagination, which is more than nothing but not explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_postInstagram: Get post detailsARead-onlyIdempotentInspect
Returns details for a single post by its shortcode, including media, captions, and engagement counts. Supports photos, videos, and carousels. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | Post shortcode (from instagram.com/p/{shortcode}/) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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: it discloses media types supported (photos, videos, carousels) and that projection_preset/data_fields exist to reduce payload size, which is useful for an agent managing response size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core purpose before the supporting media-type and payload-reduction details. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema available, the description carries the burden of describing return content and does so by naming media, captions, and engagement counts. It is nearly complete, though it could mention whether the response is a single object and note the default projection behavior more prominently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 slightly further by explaining the intent of projection_preset and data_fields — payload reduction — which the schema only describes mechanically ('Add top-level data keys on top of the selected projection_preset').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns details for a single post by its shortcode', then enumerates the content (media, captions, engagement counts). This cleanly separates it from siblings like instagram_get_post_comments or instagram_get_user_posts, which operate on collections or comments rather than a single post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the shortcode as the lookup key, but it offers no explicit when-to-use guidance or named alternatives. An agent must infer that comments, user posts, and reels have their own dedicated tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_post_commentsInstagram: Get post commentsARead-onlyIdempotentInspect
Returns top-level comments on an Instagram post. Fixed page size of 15 (platform limit). Includes comment text, author info, like counts, and timestamps. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Page size (fixed at 15 by the platform) Default: 15 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| postId | Yes | Post shortcode (from instagram.com/p/{shortcode}/) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds genuinely new behavioral context: the fixed page size of 15 imposed by the platform, the fact that only top-level comments are returned, and the projection controls for payload reduction. It stops short of describing rate limits or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose before the pagination constraint and the projection controls. Every sentence carries information, though the page-size detail partially duplicates the count parameter's schema description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly enumerates the returned fields (comment text, author info, like counts, timestamps) and covers pagination behavior and payload shaping. For a read-only 6-parameter tool this is nearly complete, lacking only guidance on when this tool is preferable to adjacent comment tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 schema already documents cursor, postId, count and the projection parameters in detail. The description adds value by explaining the intent of projection_preset/data_fields/item_fields (payload reduction) and restating the platform-imposed page size, which clarifies why count is effectively fixed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Returns top-level comments on an Instagram post" states a specific verb (returns) and resource (top-level comments) plus the scoping qualifier "top-level," which distinguishes it from reply-fetching siblings like tiktok_get_comment_replies and reddit_get_comment_replies. It does not explicitly name a sibling it is meant to be used instead of, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisites (e.g., that postId must be a shortcode), and no exclusions or alternatives named among the many comment-related siblings. The only hint of usage context is the schema-level note about omitting cursor for the first page, which is not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_trending_reelsInstagram: Get trending reelsBRead-onlyIdempotentInspect
Returns a paginated batch of reels from Instagram's public trending reels feed. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds that results arrive in paginated batches, which is useful context, but it says nothing about rate limits, auth requirements, or feed freshness beyond what the annotations and schema already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core resource stated first and the payload-reduction capability second. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter read tool with full schema coverage and rich annotations, the description is largely sufficient, and the absence of an output schema is mitigated by the item_fields enum documenting the return shape. The one real gap is that the projection presets (full/minimal/identity/engagement/content) are never characterized, which matters when the default is 'minimal'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 merely lists projection_preset, data_fields and item_fields as existing for 'payload reduction' without explaining what any preset contains or how the additive fields interact with a preset — no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('paginated batch of reels') and pins the source to Instagram's public trending reels feed, which distinguishes it from instagram_get_user_reels and instagram_get_audio_reels. It never names a sibling explicitly, so an agent must infer the distinction from the source phrase rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. The description says what the feed is but never contrasts it with instagram_search_popular, instagram_get_user_reels, or instagram_search_media, leaving the agent to guess which entry point fits a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_userInstagram: Get user profileARead-onlyIdempotentInspect
Returns profile information for an Instagram user including bio, follower counts, profile picture, and account metadata. Look up any public Instagram account by username, or pass ?userId= to look up by numeric user ID instead. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | Look up the account by its numeric Instagram user ID instead of its username. If you already have the ID (e.g. from a post or comment's attributedTo field in another response), passing it here returns the profile faster than a username lookup. When set, it overrides the username in the URL — any placeholder there works. | |
| username | Yes | Instagram username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 useful context about public-only access and payload reduction, but does not disclose rate limits, auth requirements, or any edge-case behavior. Given the annotations, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences front-load the core purpose, then cover lookup alternatives and payload reduction. Every sentence earns its place with no redundant filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only profile lookup with a rich schema and comprehensive safety annotations, the description provides enough: output contents, public-scope caveat, lookup modes, and payload options. With no output schema, a slightly more explicit return-format note would make it fully complete, but the current summary is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters in detail. The description adds a little value by framing projection_preset and data_fields as payload reduction and by mentioning the numeric-ID shortcut, but it does not meaningfully compensate or extend beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 profile information for an Instagram user.' It names concrete output content (bio, follower counts, profile picture, account metadata) and clarifies it covers any public account. This clearly differentiates it from sibling tools focused on posts, reels, tagged content, and highlights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear lookup context: use a username, or pass userId for a numeric ID lookup, and optionally reduce payload with projection_preset/data_fields. It does not explicitly name sibling alternatives or state when not to use this tool, but the single-purpose profile resource makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_user_highlightsInstagram: Get user story highlightsARead-onlyIdempotentInspect
Returns the list of story highlight reels on a user's profile. Use the highlight endpoint to get individual stories within a highlight. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | Instagram username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 fully covered. The description adds that it returns a list and supports projection presets for payload reduction, but does not disclose pagination behavior, rate limits, or authentication needs. A 3 is appropriate given the annotations carry the behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The primary purpose is front-loaded, followed immediately by the routing alternative and a brief note on payload reduction options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description states what is returned (list of story highlight reels), and annotations fully cover the read-only safety profile. The input schema handles parameter details and pagination cursor, so nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema by explaining that projection_preset, data_fields, and item_fields exist for payload reduction, which clarifies their purpose rather than just restating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) and resource (list of story highlight reels on a user's profile). Distinguishes itself from the sibling instagram_get_highlight_stories by explicitly naming that alternative for individual stories within a highlight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative endpoint (highlight endpoint) and the condition under which to use it (to get individual stories within a highlight). This leaves no ambiguity about when to use this tool versus the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_user_postsInstagram: Get user postsARead-onlyIdempotentInspect
Returns a paginated list of posts from an Instagram user's profile feed. Maximum 12 posts per page. Includes photos, videos, carousels, and engagement counts. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of posts to fetch (maximum: 12) Default: 12 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | Instagram username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and destructive=false, so the bar is lower. The description still adds real context beyond them: a 12-post page ceiling, the content types returned (photos, videos, carousels), and engagement counts. It omits auth requirements and rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the purpose and pagination limit. The trailing sentence enumerating the projection parameters adds little but is short enough not to be wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the return-value burden; it covers pagination, page size, and included media types reasonably well. It stops short of describing the response envelope shape or cursor lifecycle, but is usable as-is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented (count max, cursor nextCursor, username @ handling). The description only names projection_preset/data_fields/item_fields as payload-reduction knobs without adding semantics beyond the schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns a paginated list of posts from an Instagram user's profile feed.' The 'profile feed' scoping implicitly separates it from instagram_get_user_reels and instagram_get_user_tagged, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through scope ('user's profile feed'); there is no explicit when-to-use, when-not-to-use, or alternative-tool guidance despite many overlapping siblings like instagram_get_user_highlights and instagram_get_user_tagged.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_user_reelsInstagram: Get user reelsARead-onlyIdempotentInspect
Returns a paginated list of reels from an Instagram user's profile, newest first. Maximum 8 reels per page. Includes video URLs, captions, and engagement counts. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of reels to fetch (2-8) Default: 8 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | Instagram username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, open-world, non-destructive), and the description adds genuinely useful behavior: newest-first ordering, an 8-per-page cap, pagination, and the return contents (video URLs, captions, engagement counts). It stops short of noting rate limits or how many pages are practically retrievable, but goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with purpose, then behavior, then return contents, then the payload-reduction option. No sentence is redundant with another and nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so adequately by naming the included fields and the projection mechanism. A brief note on pagination termination (when nextCursor is absent) would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description earns above baseline by explaining the shared purpose of the three projection parameters ('for payload reduction') and confirming the per-page cap that constrains count, adding intent the enum lists alone do not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Returns a paginated list of reels from an Instagram user's profile"), which cleanly separates it from instagram_get_user_posts and instagram_get_user_highlights. It does not explicitly name the closer siblings it could be confused with, such as instagram_get_audio_reels or instagram_get_trending_reels, but the scope ('from a user's profile') makes the distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no alternative tool is named. The 'newest first' and '8 per page' details describe behavior, not selection criteria, so an agent gets no help choosing between this and the audio/trending reels siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_get_user_taggedInstagram: Get user tagged postsARead-onlyIdempotentInspect
Returns Instagram posts where the user has been tagged by other accounts. Maximum 12 posts per page. Includes full post details and engagement counts. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of posts to fetch (maximum: 12) Default: 12 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | Instagram username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: a 12-post page cap, pagination via nextCursor (schema), and the payload-reduction knobs, though it omits rate limits or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core behavior, then pagination limit, then payload controls. No filler, though the third sentence is largely a restatement of schema parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description says what is returned (full post details and engagement counts) and covers the page cap and pagination. For a read-only paginated listing with 100% schema coverage, this is nearly complete, with only ordering/rate-limit details missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 count, cursor, username, and the field selectors. The description restates the projection/data_fields/item_fields purpose for payload reduction without adding syntax or selection guidance 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus a distinguishing scope: posts where the user was tagged by other accounts, which cleanly separates it from instagram_get_user_posts (own posts) and instagram_get_user_reels among the many siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope wording implies when to reach for it (tagged-by-others rather than authored content), but there is no explicit when-to-use/when-not or named alternative such as instagram_get_user_posts. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_search_mediaInstagram: Search mediaARead-onlyIdempotentInspect
Searches Instagram for trending reels and videos matching a keyword. Maximum 24 results per page. Some valid keywords may return no results, since this surfaces trending content rather than a full-text search. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results to fetch (maximum: 24) Default: 24 | |
| query | Yes | Search query | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description adds genuine behavioral context beyond that: a hard cap of 24 results per page and the caveat that valid keywords may return empty because results are trending-driven, not exhaustive. Pagination via cursor is left implicit, which keeps it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose and the result cap, followed by the empty-result caveat and payload-reduction note. Every sentence carries information, though the payload-reduction line is somewhat incidental.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter search tool with no output schema, the description covers result limits, the surprise-empty-result behavior, and the projection options, which is close to what an agent needs. No output schema means return values needn't be explained, but cursor-based pagination behavior is only implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all six parameters, establishing a baseline of 3. The description adds only marginal meaning by explaining that projection_preset, data_fields, and item_fields exist for payload reduction, without adding format or syntax detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Searches) and resource (Instagram trending reels and videos) scoped by keyword, so the agent can tell it apart from getter-style siblings like instagram_get_trending_reels. It does not, however, explicitly name the nearest alternatives (instagram_search_popular, instagram_get_trending_reels), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful context that some keyword searches return nothing because this surfaces trending content rather than full-text search, setting expectations about success. But it provides no when-to-use/when-not framing against the nearby search or trending siblings, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instagram_search_popularInstagram: Search popular topicsARead-onlyIdempotentInspect
Returns a paginated batch of posts matching a keyword, along with Instagram's generated description of the topic and related sub-topics as links. Not an exact-topic lookup — coverage varies by keyword: some return posts, a description, and related terms, others return only some of these, or none. Instagram always returns a fixed batch of 12 posts per page. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavior beyond the annotations: fixed batch of 12 posts per page, cursor-based pagination, and the important warning that coverage varies by keyword (some results return posts, description, related terms, or none). Annotations already cover read-only/idempotent/open-world safety, so this variable-coverage disclosure is the genuinely useful addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what the tool returns, and every sentence carries useful information (coverage caveat, batch size, projection support). Slightly dense but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% schema coverage, safety annotations, and no output schema, the description supplies what an agent needs: pagination model, fixed page size, unpredictable coverage, and payload-reduction options. It stops short of describing the shape of returned post objects, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all five parameters, including cursor and the projection fields. The description only names projection_preset, data_fields, and item_fields 'for payload reduction,' adding minimal semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns a paginated batch of posts matching a keyword' plus the topic description and related sub-topics. It clearly scopes what comes back, but it never contrasts itself with the obvious sibling instagram_search_media (or the other get_* tools), so an agent has to infer which search tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Not an exact-topic lookup' implies when this is and isn't appropriate, which nudges the agent away from using it as a precise topic matcher. However, no alternative tool is named and no explicit when-to-use trigger is given, so usage is only implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_get_companyLinkedIn: Get company pageARead-onlyIdempotentInspect
Returns public information for a LinkedIn company page including description, location, employee count, and logo. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| company | Yes | Company vanity name | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds that it returns 'public information' and supports 'payload reduction' via projection_preset and data_fields. It does not contradict annotations, and adds incremental value by stating the read-only nature and customization options, though it could mention rate limits or that data is cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, one sentence that states the core purpose, lists included data fields, and mentions the two customization parameters. Every word earns its place, and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that it is a simple read operation with annotations covering safety, the description is nearly complete. It explains what is returned and how to reduce payload, but does not specify the output format (e.g., JSON structure) or error cases. However, since there is no output schema, a brief note on return structure could have improved it, but it remains adequate for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with descriptions for company ('Company vanity name') and optional projection_preset/data_fields. The description adds no new parameter details beyond what 'payload reduction' implies, but the schema already provides sufficient documentation. Since coverage is high, a baseline of 3 is appropriate; the description does not introduce any confusing or missing semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns public information for a LinkedIn company page, listing specific fields (description, location, employee count, logo). It is distinct from siblings like linkedin_get_company_posts, which focus on posts rather than page details. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternativestons. However, the context of retrieving company page information is inherently clear, and the sibling list shows obvious distinctions like company_posts for post feeds. There is no exclusions or alternatives specified, but the use case is straightforward enough to imply when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_get_company_postsLinkedIn: Get company postsARead-onlyIdempotentInspect
Returns recent posts from a LinkedIn company page, newest first. Use cursor to page through further results. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| company | Yes | Company vanity name | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, openWorld, idempotent, and destructive hints. The description adds useful behavioral context beyond that: newest-first ordering, cursor-based pagination, and the payload-reduction purpose of projection/data/item fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and result ordering, followed by pagination and projection controls. Every phrase carries information and there is no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only five-parameter list tool with no output schema, the description covers return content, ordering, pagination, and response-size controls. Nothing essential for correct invocation appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all five parameters. The description only names the projection-related parameters and adds 'payload reduction,' without adding syntax, defaults, or usage details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 recent posts from a LinkedIn company page.' It distinguishes company posts from sibling tools like linkedin_get_company and linkedin_get_user_posts by naming the resource and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not, or alternative-tool guidance. The cursor instruction is operational, not selection guidance, and no sibling LinkedIn retrieval tools are referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_get_postLinkedIn: Get postARead-onlyIdempotentInspect
Returns a public LinkedIn post including author, engagement counts, and up to ~5 inline comments. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | LinkedIn post activity ID: the full slug (from linkedin.com/posts/{id}), a bare `urn:li:activity:{id}` (from linkedin.com/feed/update/{urn}/), or a bare numeric activity ID (e.g. `7517390588447621121`) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds genuinely useful context beyond that: results are public-only and comments are truncated to ~5 inline items, which prevents an agent from assuming a complete comment set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and the returned-content summary is front-loaded ahead of the optional parameter note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns and does so adequately (author, engagement counts, comments). It could say more about what projection presets yield or whether counts are approximate, but for a simple 3-parameter read tool this is close to sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 postId formats, the data_fields enum, and the projection_preset default. The description only adds the rationale ('for payload reduction') for the two payload-shaping params, which is marginal value over the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns) and resource (public LinkedIn post) plus the payload contents: author, engagement counts, and up to ~5 inline comments. The 'up to ~5 inline comments' detail distinguishes it from sibling comment tools like linkedin_get_post_comments, though it doesn't name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no routing to alternatives such as linkedin_get_post_transcript or linkedin_get_user_posts. The word 'public' hints at an availability constraint but never states the exclusion condition explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_get_post_transcriptLinkedIn: Get post video transcriptARead-onlyIdempotentInspect
Returns the caption/transcript for a video post, when the post carries captions. Returns 404 if the post has no video or no captions. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | LinkedIn post activity ID: the full slug (from linkedin.com/posts/{id}), a bare `urn:li:activity:{id}` (from linkedin.com/feed/update/{urn}/), or a bare numeric activity ID (e.g. `7517390588447621121`) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent, read-only open-world read. The description adds genuinely useful behavior beyond that: the 404 condition when there is no video or no captions, and the availability of payload-reduction options. It stops short of describing rate limits or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, zero filler, with the capability, the failure condition, and the optional parameters presented in a logical, front-loaded order. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description names the returned content (caption/transcript) but does not describe the response shape or field structure. For a single-purpose read tool with fully documented params and clear annotations, this is nearly complete, with only the return format left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 a rationale the schema lacks by stating that projection_preset and data_fields exist for payload reduction, which tells the agent why it would set them. It does not elaborate on the enum values, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns caption/transcript for a video post) and scopes it precisely to captioned video posts. This is clearly distinct from sibling linkedin_get_post, which fetches the post itself; an agent can pick between them 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: applicable only when the post carries captions, with a stated failure mode (404 if no video or captions). It does not name an explicit alternative (e.g., linkedin_get_post) for posts without captions, so it falls short of a full when/when-not routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_get_userLinkedIn: Get user profileARead-onlyIdempotentInspect
Returns profile information for a public LinkedIn member: headline, location, and a simple list of job titles and school/employer names. Fields the member has restricted are omitted. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | LinkedIn username | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds a genuinely useful behavioral fact beyond annotations: restricted fields are omitted, so the agent knows results may be incomplete. It stops short of explaining error/not-found behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the return payload before the caveat and the optional params. Nothing redundant; each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description competently enumerates the return shape (headline, location, job titles, school/employer names) plus the restricted-field caveat. It omits edge behavior such as invalid/unknown username handling, but is otherwise sufficient for a 3-param read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3. The description adds rationale beyond the schema by explaining that projection_preset and data_fields exist 'for payload reduction', giving the agent a reason to use them rather than just their definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns profile information for a public LinkedIn member') and enumerates the actual returned fields (headline, location, job titles, school/employer names). An agent can tell this apart from linkedin_get_user_posts or linkedin_get_user_articles, which return content rather than the profile itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and purpose (fetch a member's profile), and the 'public LinkedIn member' phrasing is a useful scope hint. However, there is no explicit when-to-use/when-not guidance or routing to sibling tools like linkedin_get_user_posts, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_get_user_articlesLinkedIn: Get user articlesARead-onlyIdempotentInspect
Returns a public LinkedIn member's published articles. This endpoint is not paginated — everything available is returned in a single response. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | LinkedIn username | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety is covered. The description adds real behavioral context beyond that: the endpoint is not paginated and returns all available items in one response, and the projection parameters exist for payload reduction. It does not describe error cases or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, then the pagination trait, then the projection knobs. No filler, though the last sentence largely restates functionality the schema already exposes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description conveys the response shape indirectly by stating everything is returned in one unpaginated response and that payload size is controllable via projections. Missing only a brief note on what an item represents or error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 username and the projection/data_fields/item_fields parameters in detail, including the 'minimal' default. The description names the reduction parameters and their purpose but adds no syntax or semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns a public LinkedIn member's published articles. The 'articles' vs 'posts' distinction implicitly separates it from linkedin_get_user_posts, though no sibling is named. An agent can identify the resource 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance or mention of alternatives such as linkedin_get_user_posts or linkedin_get_user. Usage is only implied by the tool name and the statement that the endpoint is unpaginated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_get_user_postsLinkedIn: Get user postsARead-onlyIdempotentInspect
Returns a public LinkedIn member's recent posts and shares. This endpoint is not paginated — everything available is returned in a single response. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | LinkedIn username | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds valuable context beyond annotations: the endpoint is not paginated and returns everything available in one response, plus it notes the public-data access constraint. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose first, then the key pagination behavior, then the optional payload-reduction parameters. Every sentence earns its place and the most important facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with fully described parameters and rich enum values for item_fields, the description is nearly complete. It lacks an explicit description of the response envelope beyond 'single response', but the schema fields and item_fields already reveal the expected output shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds extra value by framing projection_preset, data_fields, and item_fields as payload-reduction controls, giving the agent a reason to use them beyond the raw schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and a precise resource ('a public LinkedIn member's recent posts and shares'). It clearly distinguishes from sibling tools such as linkedin_get_user and linkedin_get_user_articles without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this when you need a public member's recent posts and shares, and expect a single non-paginated response. It does not explicitly name alternatives or state when not to use it, 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.
reddit_get_commentReddit: Get commentBRead-onlyIdempotentInspect
Returns a public Reddit comment with author info, scores, reply presence, and media when available. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`) | |
| commentId | Yes | Reddit comment ID (e.g. `hxcf648` or `t1_hxcf648`) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds useful context about what the payload contains (author info, scores, reply presence, media) but says nothing about rate limits, projection side-effects, or failure modes when the comment is deleted/private.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned and followed by the payload-shaping options. No redundant restatement of the name or title, though the second sentence is terse enough that it could have been folded in.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Read-only annotations cover the safety profile and the schema fully documents parameters, so the description's remaining job is to hint at return value. It does so lightly (author info, scores, reply presence, media), which is adequate given there is no output schema, though the projection presets' actual output shape is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 postId, commentId, data_fields, and projection_preset, including the enum and default. The description adds only a brief rationale for projection_preset/data_fields ('for payload reduction'), which is marginal beyond what the schema states. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a public Reddit comment') and enumerates included data (author info, scores, reply presence, media). It is clearly distinct from a generic list tool, but it never names the obvious siblings (reddit_get_comment_replies, reddit_get_post_comments) to draw the boundary explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance. With siblings like reddit_get_comment_replies and reddit_get_comments_batch, an agent must guess whether this single-comment fetch is the right choice versus the batch or replies variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_comment_repliesReddit: Get comment repliesARead-onlyIdempotentInspect
Returns direct replies to a Reddit comment using cursor-based pagination. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of replies to fetch (maximum: 100) Default: 20 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| postId | Yes | Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`) | |
| commentId | Yes | Reddit comment ID (e.g. `hxcf648` or `t1_hxcf648`) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds genuinely new behavior: cursor-based pagination (omit cursor for first page) and the projection/field controls used for payload reduction, which is meaningful for an agent planning calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: purpose and pagination model first, reduction controls second. No filler, nothing repeated from the name/title, and the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, 7-parameter tool with no output schema, the description covers what is fetched, the pagination contract, and the payload-shaping options — enough to invoke it correctly. The remaining gap is the lack of explicit differentiation from sibling comment-retrieval tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with per-parameter docs including count default/max, cursor semantics, ID formats, and preset/field enums. The description only restates the presence of projection_preset, data_fields and item_fields, adding no syntax or constraint 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns direct replies to a Reddit comment, and adds the pagination model. It is clearly distinguishable from reddit_get_comment (a single comment) and reddit_get_post_comments (top-level post comments), though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'direct replies to a Reddit comment' — an agent can infer this is for expanding a comment thread rather than reading a post's comment list. But there is no explicit when-to-use, when-not-to-use, or named alternative, so the routing 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.
reddit_get_comments_batchReddit: Get comments in batchARead-onlyIdempotentInspect
Returns up to 100 Reddit comments by ID in a single request. Costs 1 credit per ID submitted. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| entityIds | Yes | Up to 100 ids, with or without the `t1_` prefix. Example: hxcf648, hxc8s0c | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, idempotent, non-destructive profile, so the safety bar is low. The description usefully adds a billing behavior ('Costs 1 credit per ID submitted') and mentions payload-reduction controls, which are not captured by the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core batch action, followed by cost and payload-shaping information. No wasted words or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch read tool with no output schema and fully documented parameters, the description covers purpose, batch limit, credit cost, and payload controls. It does not state behavior for missing or invalid IDs, but that is a minor gap for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 entityIds, data_fields, and projection_preset. The description adds only that projection_preset and data_fields exist 'for payload reduction,' a slight contextual addition over the schema's own text, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 up to 100 Reddit comments by ID'), and the 'in a single request' scope distinguishes it from the single-comment sibling reddit_get_comment. An agent can tell it is a batch-by-ID retrieval 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID in a single request' implies this is for fetching multiple comments at once, but it never names an alternative (e.g., reddit_get_comment for one ID) or states when not to use it. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_feedReddit: Get feedBRead-onlyIdempotentInspect
Returns posts from a top-level Reddit feed such as best, hot, new, top, rising, or controversial. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| feed | Yes | Reddit feed kind | |
| count | No | Number of posts to fetch (maximum: 100) Default: 25 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| published | No | Time window for top or controversial feeds: hour, day, week, month, year, or all | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds useful payload-reduction context (projection_preset/data_fields/item_fields), but omits pagination behavior via cursor, the count cap, and the fact that the projection defaults to a reduced 'minimal' payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: purpose first, capability second. No filler, no restatement of the title, and the scope-limiting qualifier is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter list tool with full schema coverage and annotations but no output schema, the description covers purpose and the projection feature. It leaves pagination flow (cursor round-tripping) and the default minimal projection to the schema, which is acceptable but slightly short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all seven parameters including enums, defaults, and the cursor's nextCursor origin. The description only gestures at the three projection controls without adding semantics (e.g., how data_fields vs item_fields differ from a preset). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns posts) plus the exact scope ('top-level Reddit feed') and enumerates the feed kinds, which implicitly separates it from subreddit- or user-scoped siblings. It never names an alternative tool (e.g., reddit_get_subreddit_posts), so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool returns but gives no when-to-use guidance, no prerequisites, and no indication of when to prefer it over reddit_get_subreddit_posts, reddit_search_posts, or reddit_get_posts_batch. The projection prose describes capability, not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_postReddit: Get postARead-onlyIdempotentInspect
Returns a public Reddit post with title, body, author info, engagement counts, and attachments. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. Beyond that, the description adds genuinely useful context with no output schema present: it lists what the response contains (title, body, author, engagement counts, attachments) and notes that payload size can be controlled. It stops short of noting behavior for deleted, private, or quarantined posts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first establishes what is returned, the second covers payload control. Nothing is redundant with the title, and the primary capability is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return content and does so adequately, and the single required parameter is covered by the schema. An agent still lacks error/edge-case behavior for inaccessible posts, which keeps this from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented, including the enum values for projection_preset and data_fields. The description only echoes that these two knobs exist 'for payload reduction' without explaining preset differences or the 'minimal' default, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 a public Reddit post') and enumerates the payload contents, so an agent immediately knows this is a single-post fetch. It does not, however, explicitly distinguish itself from close siblings like reddit_get_posts_batch, reddit_get_post_comments, or reddit_get_post_duplicates, leaving the singular-vs-batch distinction to the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the tool fetches one post given an ID. There is no statement of when to prefer it over reddit_get_posts_batch or reddit_search_posts, nor any prerequisite or failure conditions. The only guidance offered concerns payload reduction via projection_preset/data_fields, which is parameter-level rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_post_commentsReddit: Get post commentsARead-onlyIdempotentInspect
Returns top-level comments on a Reddit post, paginated with a cursor. new and old are exact across every page. For best, top and controversial, the first page follows the requested order and later pages continue oldest first, sorted by order within each page, so a comment on page 3 can outrank one on page 2. Deleted or removed comments can make a page shorter than count. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of comments to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: best (default), top, new, controversial, old, or qa (Reddit's Q&A sort, used in AMAs) Default: best | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| postId | Yes | Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, yet the description adds genuinely non-obvious behavior: cursor pagination, that `new`/`old` are exact across pages while `best`/`top`/`controversial` degrade to oldest-first on later pages, and that deleted comments can shorten a page below `count`. This is exactly the kind of subtlety an agent could not infer 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, return value front-loaded, each sentence carrying a distinct, non-redundant behavioral fact. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, fully documented-schema tool with no output schema, the description covers pagination, ordering and payload reduction well. It could say a bit more about what a comment item contains by default, but that gap is modest given the projection options are enumerated in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning beyond the enum list by explaining the cross-page semantics of specific `order` values and naming projection_preset/data_fields/item_fields for payload reduction. It omits `qa` and does not elaborate on `cursor`/`count`, so it stays just above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope qualifier: 'Returns top-level comments on a Reddit post.' The 'top-level' qualifier distinguishes it from sibling reddit_get_comment_replies and reddit_get_comment, so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the pagination and ordering caveats; there is no explicit 'use this when / use X instead when' routing against siblings like reddit_get_comments_batch or reddit_search_comments. Adequate but leaves alternative selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_post_duplicatesReddit: Get duplicate postsBRead-onlyIdempotentInspect
Returns duplicate submissions and crossposts associated with a Reddit post. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of posts to fetch (maximum: 100) Default: 25 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| postId | Yes | Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety and access profile is fully covered by structured data. The description's only additional behavioral content is that the result set is reduced by the projection parameters; it says nothing about pagination, rate limits, or result volume beyond what the schema implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and no filler. The second sentence lists three parameter names that are already documented in the schema, which is slightly redundant, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return shape; it does state that duplicates and crossposts are returned, but omits that results are paginated via count/cursor/nextCursor and how the projection presets shape the payload. Adequate but leaves real gaps for a 6-parameter paginated retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with count, cursor, postId, and the three projection parameters all documented in the schema itself, so the baseline is 3. The description's mention of projection_preset, data_fields, and item_fields adds only the framing 'for payload reduction', which is marginally useful but largely restates the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns duplicate submissions and crossposts associated with a Reddit post'), which clearly distinguishes it from siblings like reddit_get_post, reddit_get_post_comments, and reddit_get_posts_batch. An agent can tell what unique data this tool yields 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The reader must infer that this is used when deduplicating or finding reposts of a known post ID, but nothing in the text states that intent or warns when another tool (e.g. reddit_get_post) is more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_posts_batchReddit: Get posts in batchARead-onlyIdempotentInspect
Returns up to 100 Reddit posts by ID in a single request. Costs 1 credit per ID submitted. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| entityIds | Yes | Up to 100 ids, with or without the `t3_` prefix. Example: suvhyq, 1u7hraf, 1vgbkge | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds genuinely new behavioral context: the 1-credit-per-ID cost model and that projection_preset/data_fields exist for payload reduction, which an agent can't infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler; the core capability, cost model, and reduction options are all front-loaded and each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description adequately conveys the return (Reddit posts), the batch cap, the cost, and payload controls. Only the routing against the single-post and search siblings is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 further by explaining the intent of projection_preset and data_fields ('for payload reduction') rather than merely listing them, adding meaning about why an agent would set them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: returns Reddit posts by ID, up to 100, in one request. The 'batch' scope distinguishes it from the single-post reddit_get_post sibling, though it never names that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'in a single request' and 'up to 100 ids', and the credit cost hints this is for bulk retrieval, but there is no explicit guidance on when to prefer this over looping reddit_get_post or using reddit_search_posts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_subredditReddit: Get subredditARead-onlyIdempotentInspect
Returns public subreddit metadata including title, description, icon, banner, and subscriber count. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds useful context that this returns only public metadata and that projection_preset/data_fields reduce payload, but it discloses no auth needs, rate limits, or default-preset behavior beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the return scope front-loaded and the payload-reduction feature second. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return content and does so by listing the key metadata fields. Combined with annotations and full schema coverage this is sufficient, though it could note the default payload shape given minimal is the default preset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all three parameters including the enum values and defaults. The description's mention of projection_preset and data_fields for payload reduction adds intent but no syntax or semantics beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Returns public subreddit metadata") and enumerates the returned fields. This clearly distinguishes it from sibling subreddit tools that return posts, comments, rules, sticky, or wiki content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to use this tool versus alternatives such as reddit_search_subreddits, reddit_get_subreddits_batch, or the various reddit_get_subreddit_* endpoints. It only lists what is returned and which payload-tuning params exist, leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_subreddit_commentsReddit: Get subreddit commentsARead-onlyIdempotentInspect
Returns public comments from a subreddit. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of comments to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: hot (default), new, top, or controversial Default: hot | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| published | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) | |
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive behavior, so the safety profile is fully covered there. The description adds that comments are public and that payload-reduction presets exist, but says nothing about pagination limits, rate limits, or auth requirements beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose before the option enumeration, with no filler. The ordering and time-window sentence largely duplicates enum information available in the schema, which is the only mild redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter read tool with full schema coverage and safety annotations, the description covers purpose, sort options, time windows, and payload-reduction controls. Pagination (cursor) and the missing output schema are the only items an agent might want more on, and the cursor parameter is self-documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema (count cap of 100, cursor semantics, enum values, projection presets). The description only restates that ordering, time windows, and projection fields are supported, adding no syntax or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource ('Returns public comments from a subreddit'), so an agent knows exactly what it retrieves. It does not, however, distinguish this tool from close siblings such as reddit_get_comments_batch or reddit_search_subreddit_comments, which retrieve similar data under different conditions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing supported sort orders and time-window behavior, which tells the agent when certain options apply. But it never states when to prefer this tool over the batch or subreddit-search siblings, leaving the key selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_subreddit_postsReddit: Get subreddit postsBRead-onlyIdempotentInspect
Returns public posts from a subreddit. Supports hot, new, top, rising, and controversial ordering, with optional time windows for top and controversial. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of posts to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: hot (default), new, top, rising, or controversial Default: hot | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| published | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) | |
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnly, idempotent, openWorld, and non-destructive hints, so the safety profile is covered. The description adds useful constraints, namely that time windows apply only to top/controversial, and notes payload reduction, but it omits pagination/rate-limit behavior and what a page contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and no filler. Every sentence carries a distinct point (what it returns, ordering options, payload reduction), though the third sentence slightly crowds in three parameter names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with a full schema and rich annotations, the description covers purpose and the notable ordering constraints. There is no output schema and the description appropriately does not attempt return-format detail, though pagination semantics are left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, which sets a baseline of 3. The description's mentions of projection_preset, data_fields, item_fields and the top/controversial time-window rule largely restate what the schema already says, adding 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns) and resource (public posts from a subreddit), which cleanly separates it from reddit_get_post and reddit_get_subreddit. However it never names or contrasts the closest siblings, reddit_search_subreddit_posts and reddit_get_feed, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains ordering and time-window capability but gives no when-to-use guidance versus reddit_search_subreddit_posts, reddit_get_feed, or reddit_get_posts_batch. No prerequisites or exclusions are stated, leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_subreddit_rulesReddit: Get subreddit rulesARead-onlyIdempotentInspect
Returns structured community rules for a subreddit. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, so the description does not need to restate those. It adds useful context about returning structured rules and supporting payload reduction, but does not disclose additional behavioral details such as output shape or any limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core purpose and followed by a concise mention of relevant parameters. Every word earns its place, and there is no redundant restatement of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one required parameter and fully documented optional parameters, the description is largely complete. The only minor gap is the absence of an output shape description, especially since no output schema is provided, though 'structured community rules' and the field enums give a reasonable picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters including the subreddit prefix rule, projection presets, and field arrays. The description adds modest value by noting that projection_preset, data_fields, and item_fields serve payload reduction, but it does not explain parameter semantics beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Returns structured community rules for a subreddit.' This clearly identifies what the tool does and distinguishes it from sibling Reddit tools like post, comment, or sticky retrieval without requiring the schema to be opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the stated purpose: use it when you need a subreddit's rules. However, it does not explicitly mention when to prefer this over sibling tools, nor does it provide exclusions or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_subreddits_batchReddit: Get subreddits in batchARead-onlyIdempotentInspect
Returns up to 100 Reddit subreddits by ID in a single request. Costs 1 credit per ID submitted. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| entityIds | Yes | Up to 100 ids, with or without the `t5_` prefix. Example: 5s5qbl, 2qh1i | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds valuable context beyond them: a per-ID credit cost, the 100-ID cap, and payload reduction via projection_preset and data_fields. It does not cover auth needs or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the primary action and scope. The credit cost and payload options follow efficiently; every clause adds useful information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description explains the return scope ('up to 100 Reddit subreddits') and payload shaping options. Annotations carry the safety profile. Minor gaps around missing-ID behavior are not critical for a read-only batch retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents entityIds, projection_preset, and data_fields. The description names projection_preset and data_fields as payload reduction options but adds no syntax or semantic detail beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('Reddit subreddits by ID'), plus the batch constraint ('up to 100 in a single request'). It implicitly distinguishes itself from the single-item sibling reddit_get_subreddit through the batch limit, but does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is batch retrieval by IDs, reinforced by the cost note ('1 credit per ID submitted'). However, it gives no explicit when-to-use guidance relative to alternatives like reddit_get_subreddit or reddit_search_subreddits, and no when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_subreddit_stickyReddit: Get subreddit sticky postsBRead-onlyIdempotentInspect
Returns sticky posts for a subreddit across all available slots. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the behavioral note that results span 'all available slots', but leaves 'slots' unexplained, which is a missed opportunity to clarify ordering/coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and no filler. The second sentence re-lists parameter names already visible in the schema, which is slightly redundant but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a read-only tool with full annotation coverage and no output schema, but the undefined 'slots' concept and the absence of any routing guidance against the many reddit_get_subreddit* siblings leave the definition only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema. The description adds the rationale for the projection params ('for payload reduction'), which gives context beyond the schema's per-field text, but no format or interaction detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns sticky posts for a subreddit') that cleanly separates it from siblings like reddit_get_subreddit_posts and reddit_get_subreddit. However, it never explicitly names the sibling it is not, so the differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as reddit_get_subreddit_posts for non-sticky content. The agent must infer the use case entirely from the purpose phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_subreddit_wiki_pageReddit: Get subreddit wiki pageARead-onlyIdempotentInspect
Returns one page of a subreddit's wiki in markdown, with its last revision. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | Page path; nested pages use slashes (e.g. `config/sidebar`) | |
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive. The description adds that content is markdown, includes the last revision, and supports projection_preset and data_fields for payload reduction, which is useful behavioral context beyond the annotations. It does not cover auth or rate limits, but that is a minor gap for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It efficiently conveys the action, output format, and optional payload-reduction controls.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of return-value disclosure and does state markdown plus last revision. Annotations cover safety. Minor gaps like error behavior or pagination are not specified, but for a single wiki-page read tool the definition is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are fully documented in the schema. The description only reiterates that projection_preset and data_fields reduce payload, adding marginal purpose beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb 'Returns' and the resource 'one page of a subreddit's wiki', including output format (markdown) and revision metadata. It distinguishes itself from the sibling 'reddit_get_subreddit_wiki_pages' by specifying a single page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly name alternatives or state when to use this tool versus 'reddit_get_subreddit_wiki_pages'. The phrase 'one page' implies single-page retrieval, but no conditions or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_subreddit_wiki_pagesReddit: Get subreddit wiki pagesBRead-onlyIdempotentInspect
Lists the pages of a subreddit's wiki. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the payload-reduction capability (projection_preset/data_fields/item_fields), which is useful behavioral context, but says nothing about pagination, rate limits, or whether private/restricted wikis are accessible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed by the optional payload controls. No filler, though the second sentence is largely a restatement of parameters the schema already names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with a fully documented 4-parameter schema and annotations covering the safety profile, this is adequate. Missing is any indication of the shape of the returned page list (no output schema exists) and no routing guidance toward the singular sibling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — subreddit, data_fields, item_fields and projection_preset are all documented in the schema, including the enum values and the 'minimal' default. The description merely enumerates three of the four parameter names without adding syntax, defaults, or interaction semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Lists the pages of a subreddit's wiki.' An agent can distinguish it from reddit_get_subreddit_wiki_page by the plural 'pages', but the description never explicitly contrasts the two siblings, so the differentiation is left to the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of the closely related reddit_get_subreddit_wiki_page sibling, and no note on when this is preferable to fetching a single page. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_userReddit: Get user profileBRead-onlyIdempotentInspect
Returns public Reddit user profile information including bio, avatar, verification flags, and account creation date. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Reddit username (with or without `u/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds the useful facts that the data is public and that projection_preset/data_fields reduce payload, but says nothing about auth requirements, rate limits, or behavior when the user is missing/suspended.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the resource and return contents front-loaded before the payload-reduction note. Slightly terse for a tool with five projection presets, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only profile fetch with full schema coverage, no output schema, and annotations covering safety, the description tells the agent what comes back and how to trim it. The remaining gap is sibling disambiguation against reddit_get_user_overview, which the description does not address.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 username, the projection_preset enum, and data_fields semantics. The description only restates that these two parameters exist for 'payload reduction', adding no format, default, or interaction detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns public Reddit user profile information') and enumerates the returned fields (bio, avatar, verification flags, creation date), which distinguishes it from data-oriented siblings like reddit_get_user_comments or reddit_get_user_posts. However it never names or contrasts reddit_get_user_overview, the closest sibling, so an agent must infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternative tools. With reddit_get_user_overview and reddit_get_user_achievements sitting directly alongside it, the definition gives the agent nothing to route on beyond the word 'profile'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_user_achievementsReddit: Get user achievementsARead-onlyIdempotentInspect
Returns a user's achievements (e.g. streaks), as shown on their achievements page. Trophies are a separate set. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Reddit username (with or without `u/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 useful behavioral context by explaining that projection_preset, data_fields and item_fields exist for payload reduction, and it disambiguates the returned data set from trophies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose, then the sibling boundary, then the parameter note. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries some burden of describing the return, and it does so adequately via 'achievements (e.g. streaks)' plus the item_fields enum hints. It stops short of describing the response envelope (totalItems/orderedItems), leaving a minor gap for an agent reasoning about the shape of the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented including the enum values and defaults. The description only restates the three optional parameter names and their collective purpose (payload reduction), adding little semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a user's achievements') and immediately bounds it with 'Trophies are a separate set', which is exactly the distinction needed against the sibling reddit_get_user_trophies. An agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Trophies are a separate set' sentence functions as an implicit routing rule to the sibling tool, and the mention of payload-reduction options signals when to tune the request. However, it never explicitly says when to call this tool over alternatives like reddit_get_user or reddit_get_user_overview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_user_commentsReddit: Get user commentsBRead-onlyIdempotentInspect
Returns public comments made by a Reddit user. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of comments to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: new (default), hot, top, or controversial Default: new | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | Reddit username (with or without `u/` prefix) | |
| published | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 fully covered. The description adds that only public comments are returned and that time windows apply solely to top/controversial ordering, but says nothing about pagination limits, rate limiting, or empty/deleted-user behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core return value and followed by ordering and payload-reduction notes. No filler, though the payload-reduction sentence is close to a restatement of schema-documented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter read tool with no output schema and full annotation coverage, the description covers the return content, ordering options, and projection capability. Minor gaps remain around pagination behavior and the count cap, but these are already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter, including the ordering enum, time-window enum, cursor, and projection fields, is documented in the schema itself. The description largely restates those parameters, so it earns the baseline 3 rather than adding new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns public comments made by a Reddit user, which is immediately distinguishable from reddit_get_user_posts or reddit_get_post_comments by name alone. It does not, however, explicitly name the sibling tools it competes with, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains supported sort orders and time windows but gives no when-to-use guidance relative to siblings such as reddit_get_user_overview, reddit_get_user_posts, or reddit_search_comments, and no exclusions or prerequisites. The agent must infer selection purely 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.
reddit_get_user_overviewReddit: Get user overviewARead-onlyIdempotentInspect
Returns a mixed Reddit user activity feed including posts and comments. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of activity items to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: new (default), hot, top, or controversial Default: new | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | Reddit username (with or without `u/` prefix) | |
| published | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 genuine context beyond that: which orderings exist, that time windows apply only to top/controversial, and that projection_preset/data_fields/item_fields exist specifically for payload reduction. It omits pagination behavior and rate limits, keeping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the return shape, then ordering, then payload controls. No filler, though the third sentence is a list of parameter names that the schema already exposes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, 8-parameter, fully schema-documented list tool with no output schema, the description covers purpose, ordering, time-window constraints and payload options adequately. Pagination (cursor) is only in the schema, but that is a minor gap given full coverage elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, and the description mostly restates it (orderings, time windows, projection fields). The only marginal addition is framing the projection parameters as payload reduction, which is a useful hint but not new semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns a mixed Reddit user activity feed including posts and comments. The word 'mixed' implicitly distinguishes it from reddit_get_user_posts and reddit_get_user_comments, but neither sibling is named, so the differentiation is left for the agent to infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: by describing a combined posts-and-comments feed, the description hints this is the choice when you want both types at once. It never names reddit_get_user_posts/reddit_get_user_comments as alternatives, nor states any when-not condition, so the agent gets no explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_user_postsReddit: Get user postsBRead-onlyIdempotentInspect
Returns public posts submitted by a Reddit user. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of posts to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: new (default), hot, top, or controversial Default: new | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | Reddit username (with or without `u/` prefix) | |
| published | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 that the posts are public and that time windows only apply to top/controversial ordering, but says nothing about authentication needs, rate limits, or pagination behavior beyond what the schema exposes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences that front-load the core action and then enumerate supported options. No filler, though the closing projection sentence is somewhat list-like.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema, the description omits anything about the returned payload shape, which is non-trivial given the projection_preset/data_fields/item_fields reduction mechanics. Annotations cover safety, but return-format transparency is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all eight parameters are already documented, including the enum values for order, published, and the projection fields. The description restates the ordering and projection options without adding syntax, defaults, or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
"Returns public posts submitted by a Reddit user" gives a specific verb and resource, and implicitly separates itself from siblings like reddit_get_user_comments and reddit_get_subreddit_posts by scoping to a user's posts. Clear, though it does not explicitly name a sibling to differentiate against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists ordering and time-window features but offers no when-to-use guidance, no prerequisites, and no alternatives. An agent is left to infer that this is for user post timelines rather than subreddit feeds or user comments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_user_trophiesReddit: Get user trophiesARead-onlyIdempotentInspect
Returns the trophies on a user's profile (e.g. Ten-Year Club), with the date each was granted. Achievements are a separate set. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Reddit username (with or without `u/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds the return content shape (trophies with grant dates) but says nothing about rate limits, auth requirements, pagination, or empty-profile behavior, so it only moderately exceeds the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose and return shape first, sibling distinction second, payload-reduction knobs last. No filler and every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully describes what is returned and explicitly notes the payload-reduction controls. For a single-required-parameter read tool with full annotations this is nearly sufficient; only pagination and edge-case behavior are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds genuine meaning by explaining why projection_preset, data_fields and item_fields exist ('for payload reduction'), a rationale the schema descriptions do not state. It still does not explain what each preset actually contains, so it falls short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns the trophies on a user's profile), gives a concrete example (Ten-Year Club), and names the return content (the date each was granted). Crucially, it distinguishes itself from the very similarly named sibling reddit_get_user_achievements by noting that achievements are a separate set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Achievements are a separate set' explicitly routes the agent away from this tool when it wants achievements, which is the highest-risk confusion among siblings. It does not, however, clarify the boundary against reddit_get_user or reddit_get_user_overview, so no exclusions are stated for those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_search_commentsReddit: Search commentsBRead-onlyIdempotentInspect
Searches public Reddit comments, optionally limited to one or more subreddits. Supports relevance, new, and top sorting. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of comments to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: relevance (default), new, or top Default: relevance | |
| query | Yes | Search query. Supports `author:name`, `"phrase"` and `-word` to exclude | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| subreddits | No | Comma-separated subreddit names to search within | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so safety and idempotency are covered and the bar for the description is lower. The description adds useful context about payload-reduction knobs (projection_preset, data_fields, item_fields) and sort options, but says nothing about pagination behavior beyond what the schema's cursor field implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with the core operation and scope before the optional knobs. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, non-output-schema tool, the description covers the operation, subreddit scoping, sorting, and the three projection parameters that meaningfully change the response shape. What is missing is pagination behavior (how cursor/nextCursor round-trips), which the agent must infer from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all eight parameters, including the query operators, count default/max, cursor, and enum values. The description only restates sort modes and the projection fields at a high level, adding no syntax or default detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Searches public Reddit comments') and adds scope ('optionally limited to one or more subreddits'), which is enough for an agent to understand the operation. It does not, however, differentiate itself from the very close siblings reddit_search_subreddit_comments and reddit_get_subreddit_comments, so the sibling distinction is left to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, and no named alternative. Given that reddit_search_subreddit_comments exists as an obvious near-duplicate, the absence of routing guidance is a real gap; only a weak implied scope ('optionally limited to subreddits') is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_search_postsReddit: Search postsARead-onlyIdempotentInspect
Searches public Reddit posts across the platform. Supports relevance, hot, top, new, and comments sorting with optional time windows, and can be limited to formats such as images or videos. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of posts to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: relevance (default), hot, top, new, or comments Default: relevance | |
| query | Yes | Search query. Supports `author:name`, `subreddit:name`, `"phrase"` and `-word` to exclude | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| formats | No | Comma-separated content formats to include: image, video, gallery, gif, text, link | |
| published | No | Optional time window for search results: hour, day, week, month, year, or all | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered. The description adds that sorts, time windows, and format filters are supported and that projection_preset/data_fields/item_fields exist for payload reduction — the latter explains the intent of the projection params, which annotations/schema do not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what the tool does before the capability and payload-reduction details. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description hints at return structure through projection presets and item/data fields, and covers filtering, sorting, and pagination via cursor in the schema. It never explicitly describes the returned envelope, so it is strong but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are already documented in the schema. The description restates sorting, time windows, formats, and projection fields without adding syntax or format detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Searches public Reddit posts') and clarifies platform-wide scope ('across the platform'), which implicitly distinguishes it from the subreddit-scoped sibling reddit_search_subreddit_posts. It does not name the sibling explicitly, so it falls just short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Across the platform' implies the use case (broad search vs a subreddit-restricted search), but there is no explicit when-to-use/when-not guidance and no sibling alternative is named. Usage must be inferred from the scope phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_search_subreddit_commentsReddit: Search subreddit commentsARead-onlyIdempotentInspect
Searches public Reddit comments within a subreddit. Supports relevance, new, and top sorting. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of comments to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: relevance (default), new, or top Default: relevance | |
| query | Yes | Search query. Supports `author:name`, `"phrase"` and `-word` to exclude | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds that results are public comments and that projection parameters reduce payload, but it omits rate limits, data freshness, and pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, then sorting support and payload reduction options. No wasted words, and the most important information appears first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, full schema coverage, and no output schema, the description is nearly sufficient. It could better distinguish itself from reddit_search_comments and reddit_get_subreddit_comments, but an agent has enough context to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all eight parameters. The description repeats sorting options and mentions projection_preset, data_fields, and item_fields for payload reduction, which adds a small amount of rationale but no syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Searches'), resource ('public Reddit comments'), and scope ('within a subreddit'), which distinguishes it from global comment search and subreddit post search siblings. An agent can identify the tool 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as reddit_search_comments or reddit_get_subreddit_comments. It implies a search-in-subreddit use case but provides no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_search_subreddit_postsReddit: Search subreddit postsARead-onlyIdempotentInspect
Searches public Reddit posts within a subreddit. Supports relevance, hot, top, new, and comments sorting with optional time windows, and can be limited to formats such as images or videos. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of posts to fetch (maximum: 100) Default: 25 | |
| order | No | Sort order: relevance (default), hot, top, new, or comments Default: relevance | |
| query | Yes | Search query. Supports `author:name`, `"phrase"` and `-word` to exclude | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| formats | No | Comma-separated content formats to include: image, video, gallery, gif, text, link | |
| published | No | Optional time window for search results: hour, day, week, month, year, or all | |
| subreddit | Yes | Subreddit name (with or without `r/` prefix) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/openWorldHint/idempotentHint/destructiveHint=false, so safety is covered. The description adds that results are 'public' and can be narrowed by sort/time/format, but says nothing about rate limits, result caps, or pagination behavior beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the core scope ('within a subreddit') leads before capability detail. Slightly dense in the second sentence with parameter names, but still front-loaded and disciplined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, no-output-schema search tool with annotations covering the safety profile, the description covers scope, sorting, time windows, format limiting, and projection. Only minor gaps remain around result caps and paging, which the schema already handles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 every parameter, including count limits, cursor, and enum meanings. The description adds only a light gloss ('optional time windows', 'payload reduction') and no syntax or interaction detail beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: 'Searches public Reddit posts within a subreddit.' The 'within a subreddit' scoping implicitly separates it from reddit_search_posts (site-wide) and reddit_get_subreddit_posts (query-less listing), but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It enumerates capabilities (sort orders, time windows, format filters) which implies when the tool is useful, but never states when to prefer it over reddit_search_posts or reddit_get_subreddit_posts, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_search_subredditsReddit: Search subredditsBRead-onlyIdempotentInspect
Searches public Reddit subreddits across the platform. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of subreddits to fetch (maximum: 100) Default: 25 | |
| query | Yes | Search query | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds one useful behavioral trait – that projection_preset/data_fields/item_fields exist for payload reduction – but says nothing about pagination via cursor, rate limits, or auth. Some added context, but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and no filler. The projection/payload-reduction clause is compact. Slightly terse given there is room for a when-to-use clause, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with full schema coverage and no output schema, the definition is adequate to invoke but thin on context: it doesn't describe the shape of returned subreddit results (member counts, description, etc.) or paging behavior, both relevant since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all six parameters are documented in the schema, so the baseline is 3. The description names three parameters and frames them as 'payload reduction', which clarifies intent 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Searches public Reddit subreddits across the platform'), clearly distinct from siblings like reddit_get_subreddit (fetch a known subreddit) and reddit_search_users/posts. It stops short of explicitly naming an alternative, but the verb+resource combination is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The word 'Searches' and the scope phrase 'public subreddits' imply discovery-by-query, but the agent must infer this rather than being told. No exclusions are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_search_usersReddit: Search usersBRead-onlyIdempotentInspect
Searches public Reddit users across the platform. Returns up to 100 users per page. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of users to fetch (maximum: 100) Default: 25 | |
| query | Yes | Search query | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, and non-destructive behavior, so the safety profile is covered. The description adds useful pagination context ('up to 100 users per page') but says nothing about rate limits, auth requirements, or ordering of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler, and the core action is front-loaded. Slightly more could be trimmed but it is well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a read-only search tool whose annotations cover safety and whose schema covers all params, and it does disclose the page size. With no output schema, it could still say more about the shape of returned user objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 query, count, cursor, and the projection fields. The description adds only the purpose of the projection params ('payload reduction'), which is marginal beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Searches public Reddit users') that clearly separates it from retrieval siblings like reddit_get_user. However, it doesn't explicitly contrast itself with other search tools (reddit_search_posts, reddit_search_subreddits), leaning on the 'users' resource noun to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, and no conditions distinguishing search from a direct user lookup. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_audioTikTok: Get audio detailsARead-onlyIdempotentInspect
Returns metadata for a TikTok audio track including title, artist, duration, usage count, and cover image. Look up any sound by its audio ID. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| audioId | Yes | TikTok audio/music ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral trait beyond the schema: that projection_preset and data_fields exist to reduce payload size. It says nothing about rate limits, auth requirements, or behavior when the audioId is invalid/private.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the tool returns before the identifier and the payload-reduction options. No filler, though the middle sentence ('Look up any sound by its audio ID') is partly redundant with the required-param name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description enumerates the key returned fields, and with read-only annotations plus fully documented parameters there is little risk of misinvocation. Missing only the sibling disambiguation and any note on error/rate-limit behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (including the enum for projection_preset and the data_fields item list) are documented in the schema. The description only adds that the two optional knobs are for 'payload reduction' and does not explain what each preset or field key yields, so it stays at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Returns metadata') with a precise resource ('a TikTok audio track') and even enumerates the returned fields (title, artist, duration, usage count, cover image). It does not, however, distinguish itself from the close sibling tiktok_get_audio_videos, so an agent must infer the split between 'audio details' and 'videos using this audio'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Look up any sound by its audio ID' implies the lookup precondition and required identifier, but there is no explicit when-to-use/when-not guidance and no mention of the alternative tiktok_get_audio_videos. Usage is reasonably inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_audio_videosTikTok: Get videos with audioARead-onlyIdempotentInspect
Returns a paginated list of TikTok videos using a specific audio track. Maximum 30 per page. Discover trending content by sound or music. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to fetch (maximum: 30) Default: 30 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| audioId | Yes | TikTok audio/music ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds pagination behavior ('Maximum 30 per page'), which is genuinely useful context, but much of the pagination detail (cursor, count) and the payload-reduction mechanism is already documented in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and scope, then pagination and payload options. The 'Discover trending content by sound or music' sentence is mildly decorative but the whole is tight and free of repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list endpoint with no output schema and full schema coverage, the description supplies the essentials: what it returns, the page size cap, and available projection controls. It leaves return-item shape and cursor semantics to the schema, which is acceptable here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is documented in the schema, making the baseline 3. The description's mention of projection_preset, data_fields, and item_fields adds the rationale ('payload reduction') but no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Returns a paginated list of TikTok videos using a specific audio track.' This clearly separates it from tiktok_get_audio (the audio entity itself) by implication, but it never names that sibling explicitly, so differentiation is left partially to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Discover trending content by sound or music' hints at the use case but is vague and evocative rather than directive. There is no explicit when-to-use, when-not-to-use, or alternative routing against tiktok_get_audio or tiktok_search_videos.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_collection_videosTikTok: Get collection videosARead-onlyIdempotentInspect
Returns a paginated list of videos in a TikTok collection (playlist or mix). Maximum 35 per page. Includes full video details and engagement counts. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to fetch (maximum: 35) Default: 20 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| collectionId | Yes | TikTok collection ID (mix ID) | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world safety. The description adds that pagination is capped at 35 per page and that projection_preset, data_fields, and item_fields enable payload reduction, which is useful context beyond annotations. It stops short of auth, rate limits, or cursor behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the core action and pagination limit, then payload controls. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description gives the essential return shape: paginated video list, max page size, full details, and engagement counts. It does not unpack cursor semantics or all selectable field groups, but it is sufficient for invocation given the 100% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 names three optional parameters and frames them as payload reduction, but that framing is imprecise because data_fields and item_fields add keys on top of a preset rather than strictly reduce payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Returns' and resource 'videos in a TikTok collection (playlist or mix)', with pagination scope. It does not explicitly distinguish from siblings like tiktok_get_user_collections or tiktok_get_user_videos, so it is clear but lacks explicit sibling contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not guidance and no alternative tool named. Usage is only implied by the retrieval verb and the 'maximum 35 per page' note, so it meets the minimum viable bar but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_comment_repliesTikTok: Get comment repliesARead-onlyIdempotentInspect
Returns a paginated list of replies to a TikTok comment. Maximum 50 per page. Includes author info, like counts, and reply timestamps. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of replies to fetch (maximum: 50) Default: 50 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| videoId | Yes | TikTok video ID | |
| commentId | Yes | TikTok comment ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 goes beyond them by disclosing the 50-per-page cap, the paginated nature of the result, and the payload-reduction mechanism via projection_preset/data_fields/item_fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core behavior front-loaded and no filler. It is efficient, though the third sentence listing projection parameters borders on restating schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated read tool with a fully described schema and no output schema, the description covers what is returned, page limits, and payload shaping. It is nearly complete, with only the cursor-based pagination flow left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 each parameter, including enum values and the cursor continuation semantics. The description names the projection parameters but adds no syntax or selection guidance 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a paginated list of replies to a TikTok comment'), which is precise enough to separate it conceptually from tiktok_get_video_comments. However, it never names that sibling or otherwise explicitly distinguishes itself from the top-level comment tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives such as tiktok_get_video_comments for top-level comments. The agent must infer the use case purely from the verb and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_tag_videosTikTok: Get videos with tagBRead-onlyIdempotentInspect
Returns TikTok videos associated with a hashtag or challenge. Includes video details and engagement counts. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | Tag name | |
| count | No | Number of videos to fetch (maximum: 30) Default: 30 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds only that results include engagement counts and that payload can be reduced via the projection parameters, without disclosing rate limits, auth needs, or pagination behavior beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with the core purpose front-loaded and no redundant filler. It is appropriately sized for a six-parameter read tool, though the final clause about payload reduction is largely a restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full schema coverage, annotations, and no output schema, the definition covers what the tool returns and how to reduce payload. It omits pagination semantics (cursor/nextCursor usage), which the schema handles but the description could reinforce.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 names projection_preset, data_fields, and item_fields but adds no syntax, defaults, or meaning beyond what the schema already documents (including the 'minimal' default and the max of 30).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns TikTok videos associated with a hashtag or challenge'), which is clearly distinct from user-based siblings like tiktok_get_user_videos. It does not explicitly name the nearest alternative (tiktok_search_videos), so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'associated with a hashtag or challenge' implies when the tool applies, but there is no explicit when-to-use guidance and no mention of alternatives such as tiktok_search_videos, which could plausibly also retrieve hashtag content. The agent must infer the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_trending_videosTikTok: Get trending videosARead-onlyIdempotentInspect
Returns a batch of popular TikTok videos. TikTok has no curated trending ranking, so this is a feed of what is popular now rather than a chart. Not paginated — each call returns an independent batch. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to fetch (maximum: 30) Default: 30 | |
| region | No | Region to get results for (2-letter ISO country code). Results aren't limited to content from that region: they include anything available there. Default: US | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld, but the description adds genuine behavioral context beyond them: the ranking is not curated, results are a non-chart popularity feed, and calls are independent non-paginated batches. It stops short of describing return shape or ordering guarantees, keeping it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what the tool returns, followed by the semantic caveat and the batch/pagination behavior. No filler and nothing is buried — the most decision-relevant facts come first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameter-light read tool with a full-coverage schema and safety annotations, the description supplies the non-obvious facts an agent needs: no curated ranking, no pagination, independent batches, and payload-trimming options. It does not discuss ordering or result stability across calls, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 purpose-level meaning the schema lacks by framing projection_preset, data_fields, and item_fields as 'payload reduction' controls. Region/count semantics are left entirely to the schema, which is acceptable given its coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns a batch of popular TikTok videos') and clarifies the semantic scope by noting TikTok has no curated trending ranking, so it is a popularity feed rather than a chart. It does not explicitly contrast itself against siblings like tiktok_search_videos or tiktok_get_tag_videos, which would have pushed this to a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an important usage constraint — 'Not paginated — each call returns an independent batch' — which tells the agent not to attempt pagination. However, it never names an alternative tool or states the condition under which a sibling (e.g. tiktok_search_videos) should be preferred, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_userTikTok: Get user profileARead-onlyIdempotentInspect
Returns profile information for a TikTok user including bio, follower counts, verification status, and profile picture. Look up any public TikTok account by username. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 the useful qualifier that the account must be public and that payload size can be reduced via projection_preset/data_fields, but it doesn't describe behavior on private/suspended accounts or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with what is returned, then the lookup condition, then the payload controls. No filler and nothing redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with full annotation coverage and a fully documented schema, the description supplies enough: what comes back, which accounts qualify, and how to trim the payload. The absence of an output schema is mitigated by the enumerated return fields, though pagination/error behavior is unaddressed (mostly moot for a single-entity read).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the intent of two optional parameters — both projection_preset and data_fields are framed as payload-reduction controls. That adds semantic purpose the schema descriptions alone don't convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 profile information for a TikTok user') and enumerates the key fields returned (bio, follower counts, verification status, profile picture), which cleanly separates it from siblings like tiktok_get_user_videos or tiktok_get_user_followers. It doesn't name an alternative template tool explicitly, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Look up any public TikTok account by username' gives implied usage context, indicating a direct lookup rather than a search. However, it never states when-not to use it or points to the natural alternative tiktok_search_users for finding accounts by keyword, leaving that routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_user_collectionsTikTok: Get user collectionsARead-onlyIdempotentInspect
Returns a paginated list of video collections (playlists and mixes) on a TikTok user's profile. Includes collection name, cover image, and video count. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of collections to fetch (maximum: 30) Default: 30 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, open-world behavior. The description adds useful context beyond that: pagination behavior, returned fields (name, cover image, video count), and projection controls for payload reduction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly structured sentences: purpose first, then returned data, then optional projection controls. There is no filler, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, pagination, core return fields, and payload-reduction options, which is sufficient given 100% schema coverage and safety annotations. It leaves usage routing and deeper auth or rate-limit context unstated, but those are not critical for this read-only list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all six parameters. The description names projection_preset, data_fields, and item_fields but adds no syntax, defaults, or semantic meaning beyond payload reduction, keeping it at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns video collections (playlists and mixes) on a TikTok user's profile. It does not explicitly differentiate from sibling tiktok_get_collection_videos, which returns videos within a collection, so it is clear but not fully sibling-aware.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternative routing is provided. The description states what the tool returns but never says when to choose it over related siblings such as tiktok_get_collection_videos or tiktok_get_user_videos.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_user_followersTikTok: Get user followers listARead-onlyIdempotentInspect
Returns a paginated list of accounts following a TikTok user. Maximum 30 per page. Includes profile details for each follower account. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of users to fetch (maximum: 30) Default: 30 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds genuinely new behavioral context: pagination with a 30-per-page cap and that each follower entry carries profile details, plus the payload-reduction capability. It does not describe cursor traversal mechanics, but that is a minor omission given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with the core purpose first and no filler. The "Maximum 30 per page" clause is partially redundant with the schema's count maximum, a small duplication cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, non-destructive list tool with 100% schema coverage and no output schema, the description supplies what the structured fields do not: pagination behavior, page-size limit, and the shape of returned entries. Cursor semantics for advancing pages are implied but not spelled out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema. The description only names projection_preset, data_fields and item_fields without adding meaning (allowed values, defaults, or interaction between presets and field lists) beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Returns a paginated list of accounts following a TikTok user"), which is clear enough to distinguish it in spirit from tiktok_get_user_following. However, it never explicitly names or contrasts with that near-identical sibling, so the differentiation is left to the reader's inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance, and no alternative tool is named. The closest thing to guidance is the page-size cap, which is a constraint rather than a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_user_followingTikTok: Get user following listBRead-onlyIdempotentInspect
Returns a paginated list of accounts a TikTok user follows. Maximum 30 per page. Includes profile details for each followed account. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of users to fetch (maximum: 30) Default: 30 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive). The description adds the 30-per-page cap and payload-reduction options, which is useful context, but it does not explain pagination/ordering behavior or any auth constraints, so it stays moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose and pagination limit, with zero filler. Every sentence earns its place and the reader learns the essentials immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated list tool with a rich, fully documented schema and solid annotations, the description covers the essential return shape, page size, and projection options. It omits result ordering and authentication needs, but the gaps are minor given the structured data available.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents username, cursor, count, and the projection/field parameters. The description only names projection_preset, data_fields, and item_fields without adding meaning beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns a paginated list of accounts a TikTok user follows'), making it easy to distinguish from tiktok_get_user_followers since the direction of the relationship is explicit. It does not name the sibling tool directly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool returns but offers no when-to-use guidance, no prerequisites, and no reference to alternatives like tiktok_get_user_followers or tiktok_get_user. An agent gets no routing help from the text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_user_likesTikTok: Get user liked videosARead-onlyIdempotentInspect
Returns a paginated list of videos liked by a TikTok user. Note: Users may have their likes set to private, in which case an empty list will be returned. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to fetch (maximum: 35) Default: 35 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 useful behavioral context the annotations lack: results are paginated and a private likes setting yields an empty list rather than an error, which prevents misreading an empty result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose first, the important privacy caveat second, the projection controls third. No redundancy and correctly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and annotations covering the safety profile, the description is nearly complete for a paginated list tool, covering the resource, the pagination contract, and the empty-result edge case. It could say slightly more about the shape of returned items, but the named projection fields imply that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented, giving a baseline of 3. The sentence naming projection_preset, data_fields, and item_fields adds only a generic 'for payload reduction' rationale and says nothing about count, cursor, or username beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns a paginated list of videos liked by') and resource, making it inherently distinguishable from tiktok_get_user_videos, tiktok_get_user_reposts, and tiktok_get_user_collections. An agent can identify the operation 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never states when to choose this tool over its TikTok siblings (user videos, reposts, collections) nor any prerequisites such as needing a public profile. The private-likes note is a data caveat, not usage routing, so an agent gets no explicit selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_user_liveTikTok: Get user live streamARead-onlyIdempotentInspect
Returns the current live stream for a user, including stream URLs and viewer count. Returns 404 if the user is not currently live. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent, so the description need not repeat safety. It adds the context that it returns 404 when not live, which is useful. However, it doesn't mention whether it returns null data or error details beyond the 404, but this is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading what the tool returns, then the 404 behavior, then the payload options. Every sentence adds value and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with a clear purpose, the description covers the key behavior (returns stream info, 404 if not live) and mentions payload reduction. However, it could clarify the meaning of the return fields and provide an example usage. The lack of an output schema means the agent guess at the structure, but the description mentions key fields (stream URLs, viewer count) which helps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes all parameters (username, data_fields, projection_preset) with enums. The description only mentions the parameters by name without adding details on how they interact, such as whether data_fields overrides or extends the preset. The schemas' descriptions are minimal, and the description does not compensate, so value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a user's current live stream, including stream URLs and viewer count, and distinguishes it by noting the 404 case if not live. It's specific to TikTok live streams, differentiating it from other tiktok_get_user_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for checking live streams, and the 404 note tells the agent how to interpret absence. However, it does not explicitly say when to use this over other tiktok user tools (e.g., tiktok_get_user_videos) or mention prerequisites like the user existing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_user_repostsTikTok: Get user repostsARead-onlyIdempotentInspect
Returns a paginated list of videos reposted by a TikTok user. Note: Users may have their reposts set to private, in which case an empty list will be returned. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to fetch (maximum: 30) Default: 30 | |
| order | No | Sort order: newest (default), popular, or oldest Default: newest | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description adds genuinely new behavior: pagination semantics and the important caveat that private reposts settings yield an empty list rather than an error. It does not mention auth requirements or rate limits, keeping it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, then the caveat that affects result interpretation, then the payload-reduction capability. Purpose is front-loaded and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, no-output-schema tool, the description covers scope, pagination, the empty-result edge case, and result-shaping options, and the item_fields enum reveals the returnable fields. Only auth/permission expectations are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, which sets the baseline at 3. The description names projection_preset, data_fields, and item_fields and gives the rationale 'payload reduction', 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns a paginated list'), a precise resource ('videos reposted by a TikTok user'), and makes the repost scope explicit, which cleanly separates it from siblings like tiktok_get_user_videos and tiktok_get_user_likes. An agent can route to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The private-reposts note tells the agent how to interpret an empty result, which is useful context. However, there is no guidance on when to pick this over alternatives such as get_user_videos, get_user_likes, or search_videos, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_user_storiesTikTok: Get user storiesARead-onlyIdempotentInspect
Returns a paginated list of active stories for a TikTok user. Stories expire after 24 hours and include both images and videos with engagement data. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of stories to fetch (maximum: 35) Default: 4 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and openWorld, so the safety profile is covered. The description adds genuinely new behavioral context: results are paginated, stories expire after 24 hours, items mix images and videos with engagement data, and three parameters exist for payload reduction. It does not mention the 35-item cap or cursor semantics, which keeps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and scope, then lifecycle detail, then optional tuning knobs. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does useful work by naming the returned content shape (stories with engagement data) and the paginated nature, and the schema covers count/cursor. Missing only edge behavior such as what happens for private or nonexistent users and the hard 35-item limit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 one step beyond by explaining the purpose of projection_preset, data_fields, and item_fields collectively ('for payload reduction'), which tells the agent why to reach for them rather than just what they accept.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a paginated list of active stories for a TikTok user') and characterizes the payload (images, videos, engagement data). This clearly separates it from the many sibling list tools such as tiktok_get_user_videos, tiktok_get_user_likes, and tiktok_get_user_reposts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource name ('stories') and the 24-hour expiry note hints at why a fresh fetch is needed, but there is no explicit when-to-use guidance and no mention of alternatives (e.g. tiktok_get_user_videos for permanent content). The agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_user_videosTikTok: Get user videosARead-onlyIdempotentInspect
Returns a paginated list of videos from a user's profile. Supports sorting by newest, popular, or oldest. Maximum 35 videos per page. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to fetch (maximum: 35) Default: 35 | |
| order | No | Sort order: newest (default), popular, or oldest Default: newest | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | TikTok username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only, idempotent, open-world profile, so the description's job is narrower. It adds real value with the 35-videos-per-page cap and the note that projection_preset/data_fields/item_fields exist for payload reduction, which materially affects how an agent sizes requests. It stops short of describing rate limits or pagination-loop behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core purpose and followed by constraints and payload controls. The repeated 'Supports ...' clause is slightly formulaic but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and seven parameters, the description covers purpose, ordering, page-size limits, and payload-shaping options. Cursor-based continuation is left entirely to the schema, which does describe nextCursor, so the gap is minor rather than blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, and the description largely restates what the schema says about count, order, and the projection fields. It does not clarify the interaction between data_fields and item_fields or how they layer on top of projection_preset, which is the one place description could have added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns a paginated list of videos from a user's profile. That cleanly separates it from tiktok_get_user_likes, tiktok_get_user_reposts, and tiktok_get_user_stories, though it never names those siblings or search_videos explicitly to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource scope ('a user's profile'), and the sorting/projection notes hint at when the tool is useful. But there is no explicit when-to-use or when-not guidance, and no routing to alternatives like tiktok_search_videos or tiktok_get_tag_videos for non-profile sources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_videoTikTok: Get video detailsARead-onlyIdempotentInspect
Returns details for a single TikTok video including engagement counts, media files in multiple qualities, audio track, author info, and hashtags. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | TikTok video ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 largely describes returned content rather than behavior, and adds little on auth needs, error modes, or rate limits. With annotations carrying the behavioral load, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the return payload is front-loaded and the optional-parameter purpose follows. Every clause earns its place and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly carries the burden of describing what comes back, and it does so thoroughly (engagement, media qualities, audio, author, hashtags). It stops short of prerequisites or error behavior, which is minor for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents videoId, data_fields, and projection_preset in detail, setting the baseline at 3. The description adds meaning beyond the schema by framing both optional parameters as serving 'payload reduction,' clarifying their intent for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns details for a single TikTok video') and enumerates the returned content (engagement counts, media files, audio track, author info, hashtags). An agent can distinguish it from single-facet siblings like tiktok_get_video_comments, tiktok_get_video_transcript, and tiktok_get_video_download_url, though those siblings are not named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-to-avoid guidance relative to alternatives. The only usage hint is that projection_preset and data_fields support 'payload reduction,' which implies optimization rather than a selection rule. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_video_commentsTikTok: Get video commentsARead-onlyIdempotentInspect
Returns a paginated list of top-level comments on a video. Maximum 50 per page. Use the replies endpoint to fetch threaded replies. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of comments to fetch (maximum: 50) Default: 20 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| videoId | Yes | TikTok video ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 behavior: the 50-per-page cap, top-level-only scope, and that cursor-based pagination is in play.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose, then pagination and the sibling routing. Nothing is wasted, though the final projection sentence is a bare parameter list rather than tightly integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description covers the shape (paginated top-level comment list), the page limit, and the cursor mechanism. Combined with a fully documented schema and rich annotations, an agent has what it needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 each parameter; baseline would be 3. The description adds purpose beyond the schema by framing projection_preset, data_fields, and item_fields as payload-reduction controls, which tells the agent why to use them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with explicit scope: 'paginated list of top-level comments on a video.' It also explicitly distinguishes itself from the replies endpoint, so an agent can tell it apart from tiktok_get_comment_replies 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directs the agent to 'the replies endpoint to fetch threaded replies,' which names the alternative and the condition that selects it. It does not spell out exclusions versus other tiktok_get_* video tools, but for a comments-list tool the routing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_video_download_urlTikTok: Get video download URLARead-onlyIdempotentInspect
Returns a video file URL you can download directly with a plain GET request — no cookies, no auth headers, no special client needed on your end. Not permanent, only valid for a few hours. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional: the `www.tiktok.com` URL from `attachment[].url` in a prior video detail response for this same video. Providing it makes the response faster. | |
| videoId | Yes | TikTok video ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds real behavioral context beyond them: the URL is not permanent and only valid for a few hours, plus the auth-free consumption model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core purpose front-loaded, followed by the durability caveat and the parameter note. No filler, though the parameter sentence is the weakest link.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool whose annotations carry the safety profile and whose description states the return (a URL) and its key limitation, this is nearly complete. It lacks any note on failure modes or how it relates to tiktok_get_video.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters. The description briefly names projection_preset and data_fields and gives a rationale (payload reduction), but omits the useful optional `url` fast-path parameter, so it adds only marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) and resource (a directly downloadable video file URL), which is inherently distinct from metadata siblings like tiktok_get_video. It does not explicitly name the sibling it differs from, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains how to consume the result (plain GET, no cookies/auth), but gives no guidance on when to call this tool versus tiktok_get_video or what conditions would make it fail. Usage is implied rather than stated as when/when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_get_video_transcriptTikTok: Get video transcriptARead-onlyIdempotentInspect
Returns the transcript for a video, in WebVTT format. Defaults to the video’s own auto-generated transcript; pass language for a machine-translated subtitle track. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | TikTok video ID | |
| language | No | BCP47 language code of a machine-translated subtitle track. Defaults to the video’s own auto-generated transcript. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds meaningful behavior beyond that: the exact payload format (WebVTT), the default track selected when `language` is omitted, and that projection_preset/data_fields exist to shrink the payload. Rate limits and error/auth behavior are still unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core capability front-loaded and no filler. The trailing sentence about projection_preset and data_fields is partially redundant with the schema, which is the only slight inefficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully discloses the return format (WebVTT) and the default track selection, which is exactly the kind of information an agent needs. Parameter behavior is fully covered by the schema; only error/empty-transcript handling is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters, including the language enum and the preset list. The description restates the `language` semantics and names projection_preset/data_fields without adding detail the schema lacks, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the transcript for a video') plus the concrete output format (WebVTT), so an agent knows exactly what it gets back. It does not explicitly differentiate itself from siblings like tiktok_get_video or the YouTube transcript tool, relying on the tool name for that, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the default behavior (the video's own auto-generated transcript) and when to use the `language` parameter (for a machine-translated subtitle track), which is genuine usage guidance. However, there is no when-to-use/when-not framing versus alternatives, and no prerequisites or failure conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_search_contentTikTok: Search contentARead-onlyIdempotentInspect
General search that returns mixed results including videos and user profiles. Supports sorting and publish-time filters. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to fetch (maximum: 100, actual results may vary) Default: 50 | |
| order | No | Sort order: relevance (default), most-liked, or date-posted Default: relevance | |
| query | Yes | Search query | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| published | No | Filter by publish time: all-time (default), yesterday, this-week, this-month, last-3-months, or last-6-months | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false), so the bar is lower. The description still adds value by disclosing that results are heterogeneous (videos + user profiles), that sorting and publish-time filtering are supported, and that payload-reduction parameters exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the result composition and scoping, then capability summary. No filler, though the third sentence naming three enum-valued parameters borders on repeating schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, no-output-schema tool where the schema is fully annotated, the description covers what the tool returns and which knobs matter. The missing piece is guidance on choosing this over the two sibling search tools, and no mention of pagination via cursor, which is documented but operationally relevant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 8 parameters are documented in the schema itself, which sets the baseline at 3. The description only gestures at the projection/data_fields/item_fields trio by naming them and stating their shared purpose (payload reduction), adding little beyond what the enum descriptions already convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('General search') and characterizes the result set ('mixed results including videos and user profiles'), which distinguishes it in spirit from the narrower tiktok_search_videos and tiktok_search_users. However, it never names those siblings, so an agent must infer the boundary rather than read it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'General' implies this is the catch-all search when no entity type is targeted, but there is no explicit when-to-use statement and no mention of the two obvious alternatives (tiktok_search_videos, tiktok_search_users). Usage 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.
tiktok_search_usersTikTok: Search usersARead-onlyIdempotentInspect
Searches TikTok for user profiles matching a query. Fixed page size of 10 (platform limit). Returns profile details including follower counts and verification status. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Page size (fixed at 10 by the platform) Default: 10 | |
| query | Yes | Search query | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 value beyond them: the fixed page size of 10 imposed by the platform and the payload-reduction knobs (projection_preset, data_fields, item_fields).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and result, then the platform constraint, then the payload options. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully previews the return (profile details, follower counts, verification status) and covers the query/limit/field-selection surface. It omits mention of cursor-based paging, which an agent must infer from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the rationale for the projection parameters ('for payload reduction') that the schema merely enumerates, and flags the fixed page-size constraint. Cursor semantics remain undocumented outside the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Searches TikTok for user profiles matching a query'), which cleanly separates it from tiktok_search_videos, tiktok_search_content, and tiktok_get_user. It does not explicitly name a sibling it is not, so it stops short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance, nor any alternative to prefer when the username is already known (e.g., tiktok_get_user). Pagination via the cursor parameter is only discoverable from the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok_search_videosTikTok: Search videosARead-onlyIdempotentInspect
Searches TikTok for videos matching a query. Supports filtering by publish time and sorting by relevance, likes, or date. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to fetch (maximum: 100, actual results may vary) Default: 50 | |
| order | No | Sort order: relevance (default), most-liked, or date-posted Default: relevance | |
| query | Yes | Search query | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| published | No | Filter by publish time: all-time (default), yesterday, this-week, this-month, last-3-months, or last-6-months | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds the useful behavioral note that projection_preset/data_fields/item_fields exist for 'payload reduction', but says nothing about rate limits, pagination, or result variance beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with the core purpose first and supporting capabilities after. No filler, though the final sentence about projection params is slightly list-like rather than value-adding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with 8 fully-described params and no output schema, the description covers the capability, filtering, sorting, and payload control adequately. Pagination via cursor is left to the schema, which is acceptable given its self-explanatory description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 every parameter including enum meanings. The description's mention of publish-time filtering, sort orders, and the projection params largely restates schema content, adding little new syntax or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Searches TikTok for videos matching a query.' An agent can tell it retrieves search results rather than a user's videos. However, it does not distinguish itself from the sibling tiktok_search_content, leaving overlap ambiguity unresolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (searching videos with time and sort filters) but offers no explicit when-to-use or when-not-to-use guidance and never names an alternative such as tiktok_search_content or tiktok_search_users. Usage must be inferred from the query-based purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_get_communityX: Get communityBRead-onlyIdempotentInspect
Returns public metadata for an X community, including description, member count, topic, creator, and banner image. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| communityId | Yes | X community ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, open world), so the bar is lower. The description adds genuine context by scoping the data to 'public' metadata and by explaining that projection_preset/data_fields exist for payload reduction, but it says nothing about pagination, rate limits, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and its returned fields, with no filler. The second sentence is mildly redundant with the schema's own parameter descriptions, keeping it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only 3 parameters, full schema coverage, and annotations carrying the safety profile, the description is nearly sufficient; listing the returned fields compensates for the absent output schema. The remaining gap is that it never tells the agent how this differs from its community siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum values and the 'defaults to minimal' behavior are already documented in the schema, so the baseline of 3 applies. The description's note that data_fields adds keys 'on top of' the preset only echoes what the schema already states, adding no new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('public metadata for an X community') and enumerates what the payload contains (description, member count, topic, creator, banner image). It is distinguishable from media/post siblings in intent, but never names x_get_community_media or x_get_community_posts explicitly, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no conditions, and no mention of the sibling tools that also target a community. An agent must guess whether this is the right call versus x_get_community_posts or x_get_community_media based solely on the word 'metadata'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_get_community_mediaX: Get community mediaARead-onlyIdempotentInspect
Returns public posts from an X community's Media tab. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Maximum number of media posts to return from the community media timeline (maximum: 100) Default: 40 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| communityId | Yes | X community ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, covering the safety profile. The description adds that posts are public and that projection parameters reduce payload size, which is useful context. It does not disclose return format, pagination behavior, or rate limits, so the added behavioral value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The primary purpose and scope are front-loaded, followed immediately by the optional payload-reduction parameters. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and schema covering all parameters, the description is nearly complete for a read-only list tool. It states what is returned and why the projection parameters exist. Without an output schema, it could say more about response shape or pagination, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 still adds meaning by grouping projection_preset, data_fields, and item_fields together as payload reduction mechanisms, clarifying their shared output-shaping purpose beyond individual schema entries. It does not add detail for cursor, count, or communityId, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 public posts from an X community's Media tab.' It clearly distinguishes the tool from siblings like x_get_community_posts and x_get_community by scoping it to the Media tab. An agent can identify its purpose 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying that it returns posts from a community's Media tab. However, it does not explicitly say when to use this tool versus x_get_community_posts or other siblings, nor does it mention exclusions or prerequisites. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_get_community_postsX: Get community postsBRead-onlyIdempotentInspect
Returns public posts from an X community timeline. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Maximum number of posts to return from the community timeline (maximum: 100) Default: 40 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| communityId | Yes | X community ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety and idempotency profile is fully covered. The description adds that only 'public' posts are returned, which is useful scope context, but says nothing about pagination, rate limits, or ordering beyond that. With annotations doing the heavy lifting, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, zero wasted words. It is efficiently sized for a read-only fetch tool, though the terseness contributes to the missing usage guidance rather than being purely optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter read tool with no output schema, the description covers purpose and the existence of projection controls but omits pagination behavior (cursor) and any indication of what the returned post payload contains. Annotations carry the safety profile, so the gap is moderate rather than severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, setting a baseline of 3. The description names projection_preset, data_fields, and item_fields and frames them as 'payload reduction', which adds a purpose hint beyond the schema, but it does not clarify the difference between data_fields (top-level) and item_fields (item-level) or the preset choices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns public posts from an X community timeline.' This clearly separates it from x_get_community (community metadata) and x_get_community_media (media). However, it never explicitly names which sibling to use instead for media-only or community-detail needs, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance. It does not explain that x_get_community_media should be used for media items or x_get_community for metadata. The only usage-adjacent content is a mention of payload-reduction parameters, which is not the same as routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_get_postX: Get postARead-onlyIdempotentInspect
Returns a public X post including text, author, engagement counts, and media attachments. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | X post ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds what is actually returned and that output can be trimmed for payload size, but says nothing about auth requirements, rate limits, or behavior on a deleted/protected post.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded and waste-free: the first states the resource and return contents, the second states the optional payload-control parameters. Nothing is redundant with the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does name the main returned fields. It is adequate for a single-item read, though it omits auth/permission expectations for private or deleted posts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 stating the intent of the two optional parameters ('for payload reduction'), which the schema text does not explain. It does not clarify precedence between projection_preset and data_fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Returns a public X post') plus the payload contents (text, author, engagement counts, media attachments). It is clearly separable from x_get_user, x_get_user_posts, and x_get_community_posts by resource scope, though it never explicitly names a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus x_get_user_posts, x_get_community_posts, or the other platform 'get_post' variants. The only usage-adjacent sentence concerns payload reduction via projection_preset/data_fields, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_get_userX: Get user profileARead-onlyIdempotentInspect
Returns profile information for a public X account including bio, follower counts, verification flags, and profile images. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | X username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 externally. The description adds the scope constraint that only public accounts are retrievable and that preset/fields exist for payload reduction, which is real added context, but says nothing about rate limits, auth needs, or failure modes on protected accounts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core behavior and followed by the payload-control capability. No filler, no restatement of the tool name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the main returned fields (bio, follower counts, verification flags, profile images), which is enough for a simple read tool. Minor gaps remain around error behavior for protected/suspended accounts and any rate limiting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 rationale the schema does not state, explaining that projection_preset and data_fields are intended 'for payload reduction', which tells the agent why and when to tune them rather than treating them as arbitrary switches.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns profile information for a public X account') and enumerates the payload contents (bio, follower counts, verification flags, profile images), so the agent knows exactly what this fetches. It never names a sibling (e.g. x_get_user_posts or x_get_user_highlights) to draw the boundary, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'public X account' qualifier implies this tool is for non-protected accounts, and the projection note hints at a payload-tuning use case. But there is no explicit when-to-use guidance, no exclusions, and no routing to sibling tools like x_get_user_posts for a user's timeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_get_user_highlightsX: Get user highlightsARead-onlyIdempotentInspect
Returns the public selection on a user's Highlights tab. This feed is not guaranteed to be chronological. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of highlighted posts to return per page (maximum: 100) Default: 40 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | X username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and open-world traits. The description adds valuable behavioral context beyond annotations: the feed's ordering is not guaranteed chronological, pages may overlap because a pinned post repeats on every page, and deduplication by id is required. It also notes projection parameters for payload reduction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences front-load the purpose, then cover paging quirks and parameter options without wasted words. The structure lets an agent grasp the tool in one pass.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given rich annotations, full schema coverage, and no output schema, the description is complete enough: it states the return concept, critical pagination behavior, and payload-reduction options. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds meaning beyond the schema by stating that projection_preset, data_fields, and item_fields exist for payload reduction, which is not explicit in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the public selection on a user's Highlights tab'), making the scope clear. It does not explicitly name or differentiate from sibling tools like x_get_user_posts, so it falls short of the top mark for sibling routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the resource, but gives no explicit when-to-use or when-not-to-use guidance relative to alternatives such as x_get_user_posts. Pagination and payload-reduction notes are operational rather than usage-routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_get_user_postsX: Get user postsARead-onlyIdempotentInspect
Returns public posts from a user's profile. This feed is not guaranteed to be chronological and is often a ranked public selection. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| username | Yes | X username (with or without @ symbol) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, open-world, but the description adds genuinely non-obvious behavior: the feed is not chronological, is often a ranked selection, and pages overlap because a pinned post repeats on every page. That dedupe-by-id instruction is exactly the kind of trait annotations cannot express. It stops short of rate limits, auth requirements, or page-size behavior, so not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, purpose first, then the two behavioral warnings, then the payload-reduction note. No filler and no repetition of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still conveys the shape of the return (public posts, paged, possibly non-chronological, dedupe required) and all five parameters are documented in the schema. It omits pagination termination and any auth/paywall caveats, but the core calling information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 one piece of meaning the schema lacks — that projection_preset, data_fields, and item_fields exist for payload reduction — but says nothing about cursor semantics or default preset behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns public posts from a user's profile. That is unambiguous against x_get_post (single post), but it never names or contrasts with the closest siblings such as x_get_user_highlights or x_get_community_posts, so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance relative to the many sibling post-listing tools (x_get_user_highlights, x_get_community_posts, x_get_post). The paging/dedupe advice is operational guidance for using the result, not guidance on tool selection, which is what this dimension measures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_channelYoutube: Get channelBRead-onlyIdempotentInspect
Returns a public YouTube channel: name, handle, description, avatar, banner, subscriber and video counts, links, and RSS feed. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | Channel handle, with or without the `@`: the name in a channel URL. If you pass `channelId`, this is ignored and any placeholder works. | |
| channelId | No | Look up the channel by its `UC…` ID instead of its handle. If you already have the ID (e.g. from a video's `attributedTo` in another response), passing it here returns the channel faster than a handle lookup. When set, it overrides the handle in the URL. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 useful context that projection_preset and data_fields exist to reduce the returned payload, but says nothing about rate limits, auth requirements, or what happens for a private/nonexistent channel. With annotations carrying the safety burden, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and return contents, followed by the payload-reduction note. No filler sentences, though the field enumeration is somewhat long and partially duplicative of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description properly compensates by listing the returned fields (name, handle, description, avatar, banner, subscriber/video counts, links, RSS). It is complete enough for an agent to call correctly, with minor gaps around error/private-channel behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains the channel/channelId override behavior and the enum values. The description adds only the framing that the two optional params exist for payload reduction, which is marginal added value over the schema. Baseline 3 applies 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns a public YouTube channel') and enumerates the returned fields, which tells an agent this is the profile-metadata lookup rather than channel_videos or channel_playlists. It does not explicitly distinguish itself from the sibling youtube_get_channel_about, which is the closest overlap, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. The agent must infer from the name and field list that this is the base channel lookup, and nothing tells it whether to prefer this over youtube_get_channel_about or the per-section channel tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_channel_aboutYoutube: Get channel about pageARead-onlyIdempotentInspect
Returns a public YouTube channel's About panel: full description, lifetime view count, creation date, and country. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | Channel handle, with or without the `@`: the name in a channel URL. If you pass `channelId`, this is ignored and any placeholder works. | |
| channelId | No | Look up the channel by its `UC…` ID instead of its handle. If you already have the ID (e.g. from a video's `attributedTo` in another response), passing it here returns the channel faster than a handle lookup. When set, it overrides the handle in the URL. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, openWorld=true, destructive=false, so the safety profile is fully covered. The description adds that the data is publicly available (implying no auth needed) and that projection_preset/data_fields exist for payload reduction, but says nothing about rate limits, freshness, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core purpose and return contents are front-loaded, and the payload-reduction note is appropriately secondary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only 4-parameter tool with full schema coverage and annotations covering the safety profile, the definition is nearly complete: it names the returned fields (standing in for the absent output schema) and mentions the projection controls. The remaining gap is the unresolved relationship to youtube_get_channel.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 channel, channelId, data_fields, and projection_preset including their defaults and override behavior. The description only adds the intent behind the two projection parameters ('for payload reduction'), which is modest value over the structured fields. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a public YouTube channel's About panel') and enumerates exactly what the panel contains: full description, lifetime view count, creation date, country. This is clear, but it never contrasts with the sibling youtube_get_channel, which plausibly also returns channel metadata, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the returned fields (reach for this when you want the About panel specifically), but there is no explicit when-to-use, when-not-to-use, or named alternative such as youtube_get_channel. Nothing misleads, but nothing routes the agent either.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_channel_playlistsYoutube: Get channel playlistsARead-onlyIdempotentInspect
Returns a public YouTube channel's Playlists tab, in the order YouTube displays them. Returns an empty list when the channel has no playlists. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| channel | Yes | Channel handle, with or without the `@`: the name in a channel URL. If you pass `channelId`, this is ignored and any placeholder works. | |
| channelId | No | Look up the channel by its `UC…` ID instead of its handle. If you already have the ID (e.g. from a video's `attributedTo` in another response), passing it here returns the channel faster than a handle lookup. When set, it overrides the handle in the URL. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world and non-destructive behavior. The description adds real behavioral context beyond them: result ordering follows YouTube's display order, an empty list is returned for channels with no playlists, and the projection params exist to reduce payload size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero waste. The primary purpose leads, edge-case behavior and payload controls follow. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only paginated list tool with full schema coverage and annotations, the description covers purpose, ordering, and the empty-result case. Pagination is only handled by the schema's cursor field, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 slightly beyond by grouping projection_preset, data_fields and item_fields and stating their shared rationale (payload reduction), which the per-field schema text does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns a public channel's Playlists tab, distinct from the sibling channel_videos/shorts/streams tools. It does not explicitly name a sibling to contrast against, but the resource is unambiguous enough for an agent to select it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (use this to list a channel's playlists), but there is no explicit when-to-use or when-not guidance, e.g. versus youtube_get_playlist for a single playlist or youtube_get_channel. The agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_channel_postsYoutube: Get channel postsARead-onlyIdempotentInspect
Returns a public YouTube channel's posts, most recent first. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| channel | Yes | Channel handle, with or without the `@`: the name in a channel URL. If you pass `channelId`, this is ignored and any placeholder works. | |
| channelId | No | Look up the channel by its `UC…` ID instead of its handle. If you already have the ID (e.g. from a video's `attributedTo` in another response), passing it here returns the channel faster than a handle lookup. When set, it overrides the handle in the URL. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds real context beyond them: only public channels are supported, results are ordered most-recent-first, and the three projection parameters exist to reduce payload size. It stops short of describing pagination or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core behavior and free of filler. The second sentence is slightly redundant in listing three parameter names the schema already defines, but it earns its place by explaining why they exist.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-required-parameter listing tool with full schema coverage and no output schema, the description covers what the agent needs to call it. The item_fields and data_fields enums already expose the returned payload shape (content, likeCount, replyCount, image, attachment), so omission of return-format prose is acceptable; pagination behavior is only implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, including the cursor pagination contract and the channelId-vs-handle override. The description only names projection_preset, data_fields and item_fields and gives their shared rationale (payload reduction), adding little beyond the existing 'Add top-level data keys on top of the selected projection_preset' text. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a public YouTube channel's posts') plus ordering ('most recent first'), which distinguishes it from youtube_get_channel_videos and youtube_get_post. It never names those siblings explicitly, so an agent must infer the posts-vs-videos distinction from the resource word alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisites, and no named alternative despite many close siblings (youtube_get_channel_videos, youtube_get_channel_shorts, youtube_get_post). The word 'posts' implicitly scopes the tool, but nothing tells the agent when to prefer it over the other channel-content tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_channel_shortsYoutube: Get channel shortsARead-onlyIdempotentInspect
Returns a public YouTube channel's Shorts, most recent first. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Sort order for the listing | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| channel | Yes | Channel handle, with or without the `@`: the name in a channel URL. If you pass `channelId`, this is ignored and any placeholder works. | |
| channelId | No | Look up the channel by its `UC…` ID instead of its handle. If you already have the ID (e.g. from a video's `attributedTo` in another response), passing it here returns the channel faster than a handle lookup. When set, it overrides the handle in the URL. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 fully covered by structured data. The description adds the newest-first default ordering and notes that the three projection parameters exist for payload reduction, but does not describe pagination behavior (the cursor contract) or how the channelId/handle override resolves. Useful but not rich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core purpose before the payload-reduction note. The second sentence overlaps somewhat with schema content but is short enough to earn its place as an orienting hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with 100% schema coverage and safety annotations, the description covers purpose, ordering, and the projection controls, and no output schema means return values needn't be explained. The only real gap is pagination/empty-result behavior, which is a minor omission given the cursor parameter is already documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters (including the handle vs UC-id override, cursor semantics, and enum values) are already documented in the schema. The description only name-checks projection_preset, data_fields, and item_fields without adding meaning, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a public YouTube channel's Shorts') plus an ordering guarantee, which clearly separates it from the adjacent youtube_get_channel_videos and youtube_get_channel_streams siblings by resource name. It stops short of explicitly naming those alternatives, so differentiation is inferred from the resource label rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource ('Shorts' for a channel) but the description never says when to pick this over youtube_get_channel_videos, nor any precondition beyond the channel being public. No exclusions or alternatives are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_channel_streamsYoutube: Get channel streamsARead-onlyIdempotentInspect
Returns a public YouTube channel's streams, past broadcasts and any live now, most recent first. Returns an empty list when the channel has never streamed. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| channel | Yes | Channel handle, with or without the `@`: the name in a channel URL. If you pass `channelId`, this is ignored and any placeholder works. | |
| channelId | No | Look up the channel by its `UC…` ID instead of its handle. If you already have the ID (e.g. from a video's `attributedTo` in another response), passing it here returns the channel faster than a handle lookup. When set, it overrides the handle in the URL. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context beyond that: ordering ('most recent first') and the edge case of an empty list when the channel has never streamed. It stops short of describing pagination/nextCursor behavior, which keeps it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler; the core behavior (what is returned, in what order) is front-loaded, the edge case follows, and the payload-shaping parameters close it out. Every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries return-shape burden and does note the ordering and the empty-list case, which is what an agent most needs. Pagination behavior is left entirely to the schema's cursor/nextCursor fields, which is acceptable given 100% schema coverage, but a brief note on the cursor loop would have made it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains cursor, channel, channelId, and each field-selection parameter in detail. The description only adds a brief rationale ('for payload reduction') for projection_preset, data_fields, and item_fields, which is marginal value on top of what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and a precisely scoped resource: a public channel's streams, past broadcasts, and any currently live. That scope cleanly separates it from siblings like youtube_get_channel_videos, youtube_get_channel_shorts, and youtube_get_channel_posts without the agent needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (fetch a channel's stream content) but gives no explicit when-to-use vs. when-not guidance and never names an alternative sibling tool. There is no instruction about choosing channelId over channel, nor about paging through with cursor, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_channel_videosYoutube: Get channel videosBRead-onlyIdempotentInspect
Returns a public YouTube channel's uploaded videos, most recent first. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Sort order for the listing | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| channel | Yes | Channel handle, with or without the `@`: the name in a channel URL. If you pass `channelId`, this is ignored and any placeholder works. | |
| channelId | No | Look up the channel by its `UC…` ID instead of its handle. If you already have the ID (e.g. from a video's `attributedTo` in another response), passing it here returns the channel faster than a handle lookup. When set, it overrides the handle in the URL. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds that the channel is public and that projection_preset/data_fields/item_fields enable payload reduction, which is genuinely useful context, but says nothing about pagination behavior or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core behavior front-loaded and no filler. The second sentence is a bare enumeration of three parameter names, which is efficient but only marginally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations and 100% schema coverage the basics are covered, but for a paginated list tool with no output schema the description says nothing about the return shape or the cursor-based pagination, leaving the agent to reconstruct that from parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 names projection_preset, data_fields and item_fields and gives their purpose ('payload reduction'), adding a small rationale the schema lacks, but it contributes no syntax or format detail beyond the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a public YouTube channel's uploaded videos') plus the default ordering, so the agent knows exactly what it retrieves. However, it never distinguishes itself from close siblings like youtube_get_channel_shorts, youtube_get_channel_streams, or youtube_get_channel_playlists, so the agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of the alternatives in the sibling set (shorts, streams, playlists, posts). Nothing tells the agent when this tool is the right pick over youtube_get_channel or youtube_get_channel_shorts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_comment_repliesYoutube: Get comment repliesBRead-onlyIdempotentInspect
Returns a YouTube comment's replies, addressed by the video and comment ids. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of replies to fetch (maximum: 100). A page can hold a few fewer. Default: 25 | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| videoId | Yes | YouTube video ID (the `v=` value from a watch URL) | |
| commentId | Yes | YouTube comment ID | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 adds the useful note that the projection parameters exist to reduce payload size, but says nothing about pagination behavior, rate limits, or whether nested replies are flattened.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core behavior and no filler. The second sentence is somewhat of a parameter roll-call, but it does attach the 'payload reduction' rationale, so it earns most of its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full schema coverage, complete annotations, and no output schema, the description covers what an agent needs to call it correctly. Only pagination/return-shape context is absent, which is a minor gap here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 names projection_preset, data_fields and item_fields and frames their shared purpose ('payload reduction'), which adds a little meaning beyond the schema, but it gives no detail on what each preset returns or how the two field filters interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a YouTube comment's replies') and pins the addressing scheme to videoId + commentId, which separates it from the top-level youtube_get_video_comments. It never names that sibling explicitly, so differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool does but never says when to reach for it instead of youtube_get_video_comments or the analogous reddit/tiktok reply tools. No prerequisites, exclusions, or alternatives are offered; usage must be inferred entirely from the name and parameter set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_playlistYoutube: Get playlist videosARead-onlyIdempotentInspect
Returns a public YouTube playlist's videos, in playlist order. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| playlistId | Yes | YouTube playlist ID (the `list=` value from a playlist URL) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 still adds genuine behavioral detail beyond that: results are limited to PUBLIC playlists, items are returned in playlist order, and the field-projection options exist to reduce payload size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the resource and its ordering guarantee come first, followed by the payload-reduction options. Nothing is repeated or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter read tool with one required param and no output schema, the description covers scope, ordering and projection capability, and pagination is documented in the schema. It stops short of explaining return shape or how the projection presets differ, but nothing critical for a correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including cursor, playlistId and the three projection options is already documented in the schema. The description's mention of projection_preset/data_fields/item_fields only restates them as a group ('for payload reduction') rather than adding format or interaction semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a public YouTube playlist's videos') plus a scope qualifier ('in playlist order'), which clearly separates it from youtube_get_channel_playlists (playlists of a channel) and youtube_search. It does not explicitly name the sibling it differs from, so it lands just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to reach for this tool versus alternatives such as youtube_search or youtube_get_channel_playlists, nor does it state prerequisites beyond the implicit need for a playlist ID. Useful usage context is left entirely to inference 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.
youtube_get_postYoutube: Get community postBRead-onlyIdempotentInspect
Returns a single YouTube community post. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | YouTube community post ID (the `/post/` value from a post URL) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so safety is covered. The description adds one genuine behavioral trait beyond that: projection_preset and data_fields reduce the returned payload. It says nothing about return shape, auth, or rate limits, so a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and followed by the one differentiating capability. Nothing extraneous, though it is nearly too terse to be maximally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only get tool with full parameter documentation and complete annotations, the essentials are covered. With no output schema, however, the description offers no sense of what a returned post actually contains, leaving a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents postId, data_fields, and the projection_preset enum. The description only names the two optional parameters and adds the phrase 'for payload reduction', which is marginal value over the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a single YouTube community post'), which cleanly distinguishes it from the sibling listing tool youtube_get_channel_posts. It does not, however, explicitly contrast itself with any sibling, so it stops short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. that the postId comes from a post URL, only implied via the schema), and no named alternative for listing posts vs fetching one. Usage is only inferable from the word 'single'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_search_typeaheadYoutube: Get search suggestionsARead-onlyIdempotentInspect
Returns YouTube's search-box autocomplete suggestions for a partial query. Not paginated. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Partial query to complete, as typed into the search box | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower, and the description still adds two useful behavioral facts: the result is not paginated, and payload size can be reduced via projection_preset/data_fields. It does not describe rate limits or result shape beyond 'suggestions', which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero filler; the core purpose is front-loaded and the non-pagination and payload-reduction notes follow as supporting detail. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, single-required-parameter read tool with full schema coverage and no output schema, the description covers purpose, pagination behavior, and the payload-shaping options. Nothing an agent needs in order 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.
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 purpose-level meaning by explaining that projection_preset and data_fields exist for payload reduction. It does not explain what the presets actually contain, leaving that to the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns YouTube's search-box autocomplete suggestions for a partial query'), which is clearly distinct from the full-search sibling youtube_search. It stops short of naming any alternative explicitly, so it is clear but not sibling-differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'partial query' phrasing suggests a typeahead/completion scenario, but there is no explicit when-to-use statement, no exclusion, and no pointer to youtube_search for full searches. An agent can infer the context but must supply its own routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_tag_videosYoutube: Get videos with tagARead-onlyIdempotentInspect
Returns videos tagged with a YouTube hashtag. Not paginated — YouTube returns a single page of results for a hashtag. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | Tag name, with or without a leading "#" | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 genuinely new behavioral context: results are not paginated because YouTube returns a single page per hashtag, which tells the agent not to attempt pagination loops.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place, with the core behavior front-loaded and the pagination caveat immediately after. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description reasonably notes the shape of the response (a single page of results) and the payload-reduction options. For a simple one-required-param read tool this is close to complete, missing only an explicit sibling comparison.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so tag, data_fields and projection_preset are all documented at the schema level, making 3 the baseline. The description's note that projection_preset and data_fields exist for payload reduction adds only marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns videos tagged with a YouTube hashtag. The scope is unambiguous, but it never differentiates itself from the sibling youtube_search, which could plausibly return the same content by keyword.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tag-scoped purpose but there is no explicit when-to-use guidance and no alternative named (e.g. youtube_search for keyword queries). The tag parameter requirement is left to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_videoYoutube: Get videoARead-onlyIdempotentInspect
Returns a public YouTube video: title, description, counts, publish date, channel, thumbnails, keywords, and available caption languages. For the transcript text, use the transcript endpoint. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | YouTube video ID (the `v=` value from a watch URL) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, open-world and non-destructive semantics, so the bar is lower. The description adds value beyond them by disclosing what the call actually returns (title, counts, channel, thumbnails, keywords, caption languages) and that the payload can be reduced, which is real behavioral context for a no-output-schema tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the resource and its returned content, followed by the sibling routing and the payload options. No filler; each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-required-param read tool with no output schema, the description covers what is returned, the public-only scope, and the sibling alternative. It is silent on failure behavior for private/removed videos and on what the presets expand to, which are minor but real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds the purpose of projection_preset/data_fields ('for payload reduction'), which the schema describes only mechanically, but it does not explain what the presets themselves mean or which to pick, leaving that to the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) and resource (a public YouTube video) and enumerates the payload fields an agent can expect. It also explicitly distinguishes itself from the transcript sibling, so an agent can route between youtube_get_video and youtube_get_video_transcript before 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing for the most likely confusion: 'For the transcript text, use the transcript endpoint.' It also scopes usage to 'public' videos. It stops short of addressing other neighbors such as youtube_get_video_download_url or youtube_search, but the key exclusion is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_video_commentsYoutube: Get video commentsARead-onlyIdempotentInspect
Returns a public YouTube video's top-level comments, roughly 20 per page. On the first page, totalItems is the video's exact comment count, replies included; later pages return null. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| videoId | Yes | YouTube video ID (the `v=` value from a watch URL) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/openWorldHint/idempotentHint false-destructive, so safety is covered. The description adds genuine behavioral context beyond that: ~20 items per page and the fact that totalItems is exact on page 1 (replies included) but null on later pages, with no output schema to state this elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with zero waste: return shape and pagination first, projection support last. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so for pagination and totalItems semantics. It is slightly incomplete in not explaining what the preset values mean, but annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all five parameters. The description names projection_preset/data_fields/item_fields and gives a purpose ("payload reduction"), but adds little syntax or meaning beyond the schema, matching the baseline-3 expectation for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: "Returns a public YouTube video's top-level comments." The word "top-level" implicitly separates it from the sibling youtube_get_comment_replies, but that sibling is never named, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "top-level comments" scoping implies replies belong to youtube_get_comment_replies, but there is no explicit when-to-use/when-not statement or named alternative. Usage is only weakly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_video_download_urlYoutube: Get video download URLsARead-onlyIdempotentInspect
Returns every rendition YouTube serves for this video, each with a direct file URL you can download with a plain GET request: no cookies, auth headers, or special HTTP client needed. Above 360p, video and audio are separate renditions to combine. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | YouTube video ID (the `v=` value from a watch URL) | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the safety profile is covered. The description adds genuinely useful context beyond that: no cookies/auth headers/special HTTP client are needed, and renditions above 360p split video and audio into separate streams that must be combined. It stops short of noting URL expiry despite the expiresAt data field, so not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler, front-loading the return shape and the no-auth guarantee before the stream-splitting caveat. Every sentence carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on responsibility for the return shape and does so well (renditions plus direct URLs, split above 360p). It omits that URLs are time-limited (hinted at by the expiresAt field in the schema) and gives no guidance on merging separate audio/video streams, leaving minor gaps for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so videoId, projection_preset, and data_fields are already fully documented in the schema with enum values. The description only name-drops projection_preset and data_fields as 'payload reduction' options without adding syntax or selection guidance beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('every rendition YouTube serves for this video'), and immediately clarifies the payoff: direct file URLs for a plain GET request. An agent can tell this apart from the metadata-oriented youtube_get_video sibling from the first clause alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (you use this when you want actual downloadable files rather than metadata), but it never explicitly names when to prefer this over youtube_get_video or youtube_get_video_transcript. No prerequisites or exclusions are stated, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_video_transcriptYoutube: Get video transcriptBRead-onlyIdempotentInspect
Returns the transcript for a public video, in WebVTT format. Supports projection_preset and data_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | YouTube video ID (the `v=` value from a watch URL) | |
| language | No | Language code of the caption track to return, as listed in the video-detail endpoint's `captions[].languageCode`. Defaults to the channel's default track, or the first available one if none is set. | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
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 the WebVTT return format and the 'public video' access constraint, which is useful since there is no output schema, but it omits error behavior, caption-availability failure modes, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the core behavior (return transcript, format) is front-loaded before the optional payload-reduction note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully discloses the return format (WebVTT) and public-video scope. Remaining gaps (caption availability, size limits) are minor for a simple read-only retrieval tool whose schema is fully documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description mentions projection_preset and data_fields only to note they reduce payload size, adding slight rationale but no details beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the transcript for a public video') plus the output format ('WebVTT'). It is clearly distinguishable from youtube_get_video or youtube_get_video_download_url, though it doesn't explicitly contrast with sibling transcript tools like tiktok_get_video_transcript.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no routing to alternatives (e.g., video-detail for caption track discovery). The only constraint offered is that the target video must be public, which is a limitation rather than usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_searchYoutube: Search videosARead-onlyIdempotentInspect
Searches public YouTube videos. YouTube has no public trending chart; sorting by view count within an upload window (order, published) is the closest equivalent, for a query rather than platform-wide. Supports projection_preset, data_fields, and item_fields for payload reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Sort order: relevance (default), rating, newest, or views | |
| query | Yes | Search query | |
| cursor | No | nextCursor from the previous page. Omit for the first page | |
| published | No | Restrict results to videos uploaded within this window | |
| data_fields | No | Optional. Add top-level data keys on top of the selected projection_preset. | |
| item_fields | No | Optional. Add item keys from data.orderedItems[] on top of the selected projection_preset. | |
| projection_preset | No | Optional. Defaults to "minimal". Use one of: full, minimal, identity, engagement, or content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description still adds real behavioral context: results are query-scoped rather than platform-wide, and the view-count + upload-window combination is only an approximation of trending. It omits rate-limit and pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action before the trending nuance and payload-reduction note. Each sentence contributes, though the final sentence is the weakest and slightly tacked-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter read-only search with no output schema, the description plus fully documented schema and annotations cover what an agent needs to invoke it, including pagination via the documented cursor. It stops short of describing result volume or ordering defaults beyond 'relevance (default)' in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining the semantic interplay of `order` and `published` (trending equivalence) and the purpose of projection_preset/data_fields/item_fields (payload reduction), adding meaning the schema's per-field descriptions do not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource: 'Searches public YouTube videos', and clarifies the scope is query-based rather than platform-wide. It does not explicitly differentiate itself from nearby siblings like youtube_get_tag_videos or youtube_get_search_typeahead, which would have pushed this to a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers an implied usage pattern: emulate a trending chart via `order`=views combined with `published`. However, it never states when to prefer this tool over the tag-search or typeahead siblings, nor any prerequisites (auth, quota). Usage is inferable but not spelled out.
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.
89 tool updates
- Changed
instagram_get_audio_reels2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
instagram_get_highlight_stories1 field changed- changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "url", - "entityId", - "published", - "summary", - "isSponsored", - "image", - "attachment", - "duration", - "attributedTo" -]New value: +[ + "type", + "url", + "entityId", + "published", + "summary", + "isSponsored", + "image", + "attachment", + "duration", + "attributedTo", + "tag" +]
- Changed
instagram_get_location_posts3 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Page size (fixed at 21 by the platform) Default: 21"New value: +"Accepted for compatibility; the platform decides the page size Default: 21" - changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
instagram_get_post1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "@context", + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
instagram_get_post_comments2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "entityId", - "content", - "published", - "likeCount", - "replyCount", - "attributedTo", - "inReplyTo" -]New value: +[ + "attachment", + "type", + "id", + "entityId", + "content", + "published", + "likeCount", + "replyCount", + "attributedTo", + "inReplyTo" +]
- Changed
instagram_get_trending_reels2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
instagram_get_user_highlights1 field changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page"
- Changed
instagram_get_user_posts2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
instagram_get_user_reels3 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Number of reels to fetch (2-8 — Instagram enforces both bounds server-side) Default: 8"New value: +"Number of reels to fetch (2-8) Default: 8" - changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
instagram_get_user_tagged2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
instagram_search_media2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
instagram_search_popular2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "commentCount", - "attributedTo", - "location", - "tag", - "language", - "isEdited", - "isSponsored", - "viewCount", - "duration", - "contentFormat", - "attachment", - "image", - "audio", - "name", - "totalItems", - "items" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "commentCount", + "attributedTo", + "location", + "tag", + "language", + "isEdited", + "isSponsored", + "pinnedBy", + "viewCount", + "viewCountBy", + "duration", + "contentFormat", + "attachment", + "icon", + "image", + "audio", + "name", + "totalItems", + "items" +]
- Changed
linkedin_get_company_posts1 field changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page"
- Changed
linkedin_get_post2 fields changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "replyCount", - "attributedTo", - "image", - "attachment", - "replies" -]New value: +[ + "@context", + "isAdult", + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "replyCount", + "attributedTo", + "image", + "attachment", + "replies" +] - changed
Input schema / properties / postId / descriptionPrevious value: -"LinkedIn post activity ID: the full slug (from linkedin.com/posts/{id}), a bare `urn:li:activity:{id}` (from linkedin.com/feed/update/{urn}/), or a bare numeric activity ID (e.g. `7476310414297968640`)"New value: +"LinkedIn post activity ID: the full slug (from linkedin.com/posts/{id}), a bare `urn:li:activity:{id}` (from linkedin.com/feed/update/{urn}/), or a bare numeric activity ID (e.g. `7517390588447621121`)"
- Changed
linkedin_get_post_transcript1 field changed- changed
Input schema / properties / postId / descriptionPrevious value: -"LinkedIn post activity ID: the full slug (from linkedin.com/posts/{id}), a bare `urn:li:activity:{id}` (from linkedin.com/feed/update/{urn}/), or a bare numeric activity ID (e.g. `7476310414297968640`)"New value: +"LinkedIn post activity ID: the full slug (from linkedin.com/posts/{id}), a bare `urn:li:activity:{id}` (from linkedin.com/feed/update/{urn}/), or a bare numeric activity ID (e.g. `7517390588447621121`)"
- Changed
linkedin_get_user1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "name", - "preferredUsername", - "summary", - "location", - "address", - "followerCount", - "icon", - "role", - "affiliation", - "education", - "language" -]New value: +[ + "@context", + "type", + "id", + "url", + "name", + "preferredUsername", + "summary", + "location", + "address", + "followerCount", + "icon", + "headline", + "role", + "affiliation", + "education", + "worksFor", + "award", + "knowsLanguage", + "alumniOf", + "language" +]
- Changed
linkedin_get_user_articles1 field changed- changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "url", - "name", - "image", - "likeCount", - "attributedTo" -]New value: +[ + "type", + "url", + "name", + "image", + "published", + "likeCount", + "attributedTo" +]
- Changed
reddit_get_comment3 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"Reddit comment ID (e.g. `onflihe` or `t1_onflihe`)"New value: +"Reddit comment ID (e.g. `hxcf648` or `t1_hxcf648`)" - changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "content", - "published", - "isPinned", - "isSponsored", - "hasReplies", - "likeCount", - "voteCount", - "attributedTo", - "inReplyTo", - "image", - "attachment" -]New value: +[ + "@context", + "type", + "id", + "url", + "entityId", + "content", + "published", + "isPinned", + "isSponsored", + "hasReplies", + "likeCount", + "score", + "voteCount", + "isControversial", + "attributedTo", + "inReplyTo", + "context", + "image", + "attachment" +] - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"New value: +"Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`)"
- Changed
reddit_get_comment_replies4 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"Reddit comment ID (e.g. `onflihe` or `t1_onflihe`)"New value: +"Reddit comment ID (e.g. `hxcf648` or `t1_hxcf648`)" - changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "isPinned", - "isSponsored", - "hasReplies", - "likeCount", - "voteCount", - "attributedTo", - "inReplyTo", - "image", - "attachment" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "isPinned", + "isSponsored", + "hasReplies", + "likeCount", + "score", + "voteCount", + "isControversial", + "attributedTo", + "inReplyTo", + "context", + "image", + "attachment" +] - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"New value: +"Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`)"
- Changed
reddit_get_comments_batch1 field changed- changed
Input schema / properties / entityIds / descriptionPrevious value: -"Example: okpklb6, ojb40kw"New value: +"Up to 100 ids, with or without the `t1_` prefix. Example: hxcf648, hxc8s0c"
- Changed
reddit_get_feed4 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +] - added
Input schema / properties / publishedAdded value: +{ + "description": "Time window for top or controversial feeds: hour, day, week, month, year, or all", + "enum": [ + "hour", + "day", + "week", + "month", + "year", + "all" + ], + "type": "string" +} - removed
Input schema / properties / timeRemoved value: -{ - "description": "Time window for top or controversial feeds: hour, day, week, month, year, or all", - "enum": [ - "hour", - "day", - "week", - "month", - "year", - "all" - ], - "type": "string" -}
- Changed
reddit_get_post2 fields changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "@context", + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +] - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"New value: +"Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`)"
- Changed
reddit_get_post_comments5 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "isPinned", - "isSponsored", - "hasReplies", - "likeCount", - "voteCount", - "attributedTo", - "inReplyTo", - "image", - "attachment" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "isPinned", + "isSponsored", + "hasReplies", + "likeCount", + "score", + "voteCount", + "isControversial", + "attributedTo", + "inReplyTo", + "context", + "image", + "attachment" +] - changed
Input schema / properties / order / descriptionPrevious value: -"Sort order: best (default), top, new, controversial, or old Default: best"New value: +"Sort order: best (default), top, new, controversial, old, or qa (Reddit's Q&A sort, used in AMAs) Default: best" - changed
Input schema / properties / order / enumPrevious value: -[ - "best", - "top", - "new", - "controversial", - "old" -]New value: +[ + "best", + "top", + "new", + "controversial", + "old", + "qa" +] - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"New value: +"Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`)"
- Changed
reddit_get_post_duplicates3 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +] - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"New value: +"Reddit post ID (e.g. `suvhyq` or `t3_suvhyq`)"
- Changed
reddit_get_posts_batch1 field changed- changed
Input schema / properties / entityIds / descriptionPrevious value: -"Example: 1tlh5aj, 1t4mguu, 1t6ddw2"New value: +"Up to 100 ids, with or without the `t3_` prefix. Example: suvhyq, 1u7hraf, 1vgbkge"
- Changed
reddit_get_subreddit1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "slug", - "name", - "summary", - "description", - "guidelines", - "published", - "isAdult", - "isSearchable", - "category", - "memberCount", - "icon", - "image" -]New value: +[ + "@context", + "type", + "id", + "url", + "entityId", + "slug", + "name", + "summary", + "description", + "guidelines", + "published", + "isAdult", + "isSearchable", + "category", + "language", + "isArchived", + "isQuarantined", + "hasWiki", + "access", + "allowedPosts", + "allowedComments", + "memberCount", + "icon", + "image" +]
- Changed
reddit_get_subreddit_comments4 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "isPinned", - "isSponsored", - "hasReplies", - "likeCount", - "voteCount", - "attributedTo", - "inReplyTo", - "image", - "attachment" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "isPinned", + "isSponsored", + "hasReplies", + "likeCount", + "score", + "voteCount", + "isControversial", + "attributedTo", + "inReplyTo", + "context", + "image", + "attachment" +] - added
Input schema / properties / publishedAdded value: +{ + "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", + "enum": [ + "hour", + "day", + "week", + "month", + "year", + "all" + ], + "type": "string" +} - removed
Input schema / properties / timeRemoved value: -{ - "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", - "enum": [ - "hour", - "day", - "week", - "month", - "year", - "all" - ], - "type": "string" -}
- Changed
reddit_get_subreddit_posts4 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +] - added
Input schema / properties / publishedAdded value: +{ + "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", + "enum": [ + "hour", + "day", + "week", + "month", + "year", + "all" + ], + "type": "string" +} - removed
Input schema / properties / timeRemoved value: -{ - "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", - "enum": [ - "hour", - "day", - "week", - "month", - "year", - "all" - ], - "type": "string" -}
- Changed
reddit_get_subreddit_sticky1 field changed- changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +]
- Added
reddit_get_subreddit_wiki_page - Added
reddit_get_subreddit_wiki_pages - Changed
reddit_get_subreddits_batch1 field changed- changed
Input schema / properties / entityIds / descriptionPrevious value: -"Example: 2qh3l, 2qh0u"New value: +"Up to 100 ids, with or without the `t5_` prefix. Example: 5s5qbl, 2qh1i"
- Changed
reddit_get_user1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "preferredUsername", - "name", - "icon", - "role", - "summary", - "published", - "isVerified", - "isEmployee", - "isMod", - "isPremium", - "isSearchable", - "isFollowable", - "isAdult", - "score", - "postScore", - "commentScore", - "awarderScore", - "awardeeScore", - "status", - "image" -]New value: +[ + "@context", + "type", + "id", + "url", + "entityId", + "preferredUsername", + "name", + "icon", + "role", + "tag", + "summary", + "published", + "isVerified", + "isEmployee", + "isMod", + "isPremium", + "isSearchable", + "isFollowable", + "isAdult", + "score", + "postScore", + "commentScore", + "awarderScore", + "awardeeScore", + "status", + "followerCount", + "image" +]
- Added
reddit_get_user_achievements - Changed
reddit_get_user_comments4 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "isPinned", - "isSponsored", - "hasReplies", - "likeCount", - "voteCount", - "attributedTo", - "inReplyTo", - "image", - "attachment" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "isPinned", + "isSponsored", + "hasReplies", + "likeCount", + "score", + "voteCount", + "isControversial", + "attributedTo", + "inReplyTo", + "context", + "image", + "attachment" +] - added
Input schema / properties / publishedAdded value: +{ + "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", + "enum": [ + "hour", + "day", + "week", + "month", + "year", + "all" + ], + "type": "string" +} - removed
Input schema / properties / timeRemoved value: -{ - "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", - "enum": [ - "hour", - "day", - "week", - "month", - "year", - "all" - ], - "type": "string" -}
- Changed
reddit_get_user_overview4 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +] - added
Input schema / properties / publishedAdded value: +{ + "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", + "enum": [ + "hour", + "day", + "week", + "month", + "year", + "all" + ], + "type": "string" +} - removed
Input schema / properties / timeRemoved value: -{ - "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", - "enum": [ - "hour", - "day", - "week", - "month", - "year", - "all" - ], - "type": "string" -}
- Changed
reddit_get_user_posts4 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +] - added
Input schema / properties / publishedAdded value: +{ + "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", + "enum": [ + "hour", + "day", + "week", + "month", + "year", + "all" + ], + "type": "string" +} - removed
Input schema / properties / timeRemoved value: -{ - "description": "Time window for top or controversial ordering: hour, day, week, month, year, or all (default)", - "enum": [ - "hour", - "day", - "week", - "month", - "year", - "all" - ], - "type": "string" -}
- Added
reddit_get_user_trophies - Added
reddit_search_comments - Changed
reddit_search_posts6 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - added
Input schema / properties / formatsAdded value: +{ + "description": "Comma-separated content formats to include: image, video, gallery, gif, text, link", + "type": "string" +} - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +] - added
Input schema / properties / publishedAdded value: +{ + "description": "Optional time window for search results: hour, day, week, month, year, or all", + "enum": [ + "hour", + "day", + "week", + "month", + "year", + "all" + ], + "type": "string" +} - changed
Input schema / properties / query / descriptionPrevious value: -"Search query"New value: +"Search query. Supports `author:name`, `subreddit:name`, `\"phrase\"` and `-word` to exclude" - removed
Input schema / properties / timeRemoved value: -{ - "description": "Optional time window for search results: hour, day, week, month, year, or all", - "enum": [ - "hour", - "day", - "week", - "month", - "year", - "all" - ], - "type": "string" -}
- Added
reddit_search_subreddit_comments - Changed
reddit_search_subreddit_posts6 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - added
Input schema / properties / formatsAdded value: +{ + "description": "Comma-separated content formats to include: image, video, gallery, gif, text, link", + "type": "string" +} - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "content", - "published", - "isEdited", - "isLocked", - "isOriginal", - "isPinned", - "isSponsored", - "isAdult", - "isSpoiler", - "isSearchable", - "likeCount", - "voteCount", - "commentCount", - "shareCount", - "attributedTo", - "icon", - "image", - "attachment", - "tag", - "quote" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "content", + "published", + "isEdited", + "isLocked", + "isOriginal", + "isPinned", + "isSponsored", + "isAdult", + "isSpoiler", + "isSearchable", + "isControversial", + "removedBy", + "likeCount", + "score", + "voteCount", + "upvoteRatio", + "commentCount", + "shareCount", + "duplicateCount", + "contentFormat", + "repostOf", + "attributedTo", + "icon", + "image", + "attachment", + "tag", + "quote" +] - added
Input schema / properties / publishedAdded value: +{ + "description": "Optional time window for search results: hour, day, week, month, year, or all", + "enum": [ + "hour", + "day", + "week", + "month", + "year", + "all" + ], + "type": "string" +} - changed
Input schema / properties / query / descriptionPrevious value: -"Search query"New value: +"Search query. Supports `author:name`, `\"phrase\"` and `-word` to exclude" - removed
Input schema / properties / timeRemoved value: -{ - "description": "Optional time window for search results: hour, day, week, month, year, or all", - "enum": [ - "hour", - "day", - "week", - "month", - "year", - "all" - ], - "type": "string" -}
- Changed
reddit_search_subreddits2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "slug", - "name", - "summary", - "description", - "guidelines", - "published", - "isAdult", - "isSearchable", - "category", - "memberCount", - "icon", - "image" -]New value: +[ + "type", + "id", + "url", + "entityId", + "slug", + "name", + "summary", + "description", + "guidelines", + "published", + "isAdult", + "isSearchable", + "category", + "language", + "isArchived", + "isQuarantined", + "hasWiki", + "access", + "allowedPosts", + "allowedComments", + "memberCount", + "icon", + "image" +]
- Changed
reddit_search_users2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "preferredUsername", - "name", - "icon", - "role", - "summary", - "published", - "isVerified", - "isEmployee", - "isMod", - "isPremium", - "isSearchable", - "isFollowable", - "isAdult", - "score", - "postScore", - "commentScore", - "awarderScore", - "awardeeScore", - "status", - "image" -]New value: +[ + "type", + "id", + "url", + "entityId", + "preferredUsername", + "name", + "icon", + "role", + "tag", + "summary", + "published", + "isVerified", + "isEmployee", + "isMod", + "isPremium", + "isSearchable", + "isFollowable", + "isAdult", + "score", + "postScore", + "commentScore", + "awarderScore", + "awardeeScore", + "status", + "followerCount", + "image" +]
- Changed
tiktok_get_audio1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "name", - "duration", - "mediaType", - "attributedTo", - "icon", - "image", - "entityId", - "album", - "isOriginal", - "isCopyrighted", - "videoCount" -]New value: +[ + "@context", + "type", + "id", + "url", + "name", + "duration", + "mediaType", + "attributedTo", + "icon", + "image", + "entityId", + "album", + "isOriginal", + "isCopyrighted", + "videoCount", + "attachment" +]
- Changed
tiktok_get_audio_videos2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +]
- Changed
tiktok_get_collection_videos2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +]
- Changed
tiktok_get_comment_replies2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "language", - "published", - "likeCount", - "replyCount", - "status", - "isPinned", - "isLiked", - "attributedTo", - "inReplyTo" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "language", + "published", + "likeCount", + "replyCount", + "status", + "isPinned", + "isLiked", + "isPurchaseIntent", + "attributedTo", + "tag", + "attachment", + "inReplyTo" +]
- Changed
tiktok_get_tag_videos5 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +] - added
Input schema / properties / tagAdded value: +{ + "description": "Tag name", + "type": "string" +} - removed
Input schema / properties / tagNameRemoved value: -{ - "description": "Tag name", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "tagName" -]New value: +[ + "tag" +]
- Changed
tiktok_get_trending_videos2 fields changed- changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +] - changed
Input schema / properties / region / descriptionPrevious value: -"Where the request is routed from (2-letter ISO country code). This doesn't mean you'll only see content from this region — TikTok serves whatever content isn't restricted in that region. Default: US"New value: +"Region to get results for (2-letter ISO country code). Results aren't limited to content from that region: they include anything available there. Default: US"
- Changed
tiktok_get_user1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "name", - "preferredUsername", - "summary", - "attachment", - "published", - "isPrivate", - "isVerified", - "isLive", - "hasLikes", - "hasPlaylists", - "followerCount", - "followingCount", - "language", - "likeCount", - "likedCount", - "mediaCount", - "icon", - "image" -]New value: +[ + "@context", + "type", + "id", + "url", + "entityId", + "name", + "preferredUsername", + "summary", + "attachment", + "published", + "isPrivate", + "isVerified", + "isLive", + "hasLikes", + "hasPlaylists", + "followerCount", + "followingCount", + "language", + "likeCount", + "likedCount", + "mediaCount", + "icon", + "image", + "permission" +]
- Changed
tiktok_get_user_collections1 field changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page"
- Changed
tiktok_get_user_followers2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "preferredUsername", - "summary", - "attachment", - "published", - "isPrivate", - "isVerified", - "isLive", - "hasLikes", - "hasPlaylists", - "followerCount", - "followingCount", - "language", - "likeCount", - "likedCount", - "mediaCount", - "icon", - "image" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "preferredUsername", + "summary", + "attachment", + "published", + "isPrivate", + "isVerified", + "isLive", + "hasLikes", + "hasPlaylists", + "followerCount", + "followingCount", + "language", + "likeCount", + "likedCount", + "mediaCount", + "permission", + "icon", + "image" +]
- Changed
tiktok_get_user_following2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "preferredUsername", - "summary", - "attachment", - "published", - "isPrivate", - "isVerified", - "isLive", - "hasLikes", - "hasPlaylists", - "followerCount", - "followingCount", - "language", - "likeCount", - "likedCount", - "mediaCount", - "icon", - "image" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "preferredUsername", + "summary", + "attachment", + "published", + "isPrivate", + "isVerified", + "isLive", + "hasLikes", + "hasPlaylists", + "followerCount", + "followingCount", + "language", + "likeCount", + "likedCount", + "mediaCount", + "permission", + "icon", + "image" +]
- Changed
tiktok_get_user_likes2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +]
- Changed
tiktok_get_user_reposts2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +]
- Changed
tiktok_get_user_stories1 field changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page"
- Changed
tiktok_get_user_videos2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +]
- Changed
tiktok_get_video1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "@context", + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +]
- Changed
tiktok_get_video_comments2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "language", - "published", - "likeCount", - "replyCount", - "status", - "isPinned", - "isLiked", - "attributedTo", - "inReplyTo" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "language", + "published", + "likeCount", + "replyCount", + "status", + "isPinned", + "isLiked", + "isPurchaseIntent", + "attributedTo", + "tag", + "attachment", + "inReplyTo" +]
- Changed
tiktok_get_video_download_url1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"Optional: an `aweme/v1/play/` URL copied from a prior video detail response for this same video. Providing it lets this endpoint skip re-fetching the video detail internally."New value: +"Optional: the `www.tiktok.com` URL from `attachment[].url` in a prior video detail response for this same video. Providing it makes the response faster."
- Changed
tiktok_get_video_transcript2 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"BCP47 language code, or `original`"New value: +"BCP47 language code of a machine-translated subtitle track. Defaults to the video’s own auto-generated transcript." - changed
Input schema / requiredPrevious value: -[ - "videoId", - "language" -]New value: +[ + "videoId" +]
- Changed
tiktok_search_content3 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +] - changed
Input schema / properties / published / descriptionPrevious value: -"Filter by publish time: all-time (default), yesterday, this-week, this-month, last-3-months, or last-6-months Default: all-time"New value: +"Filter by publish time: all-time (default), yesterday, this-week, this-month, last-3-months, or last-6-months"
- Changed
tiktok_search_users2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "name", - "preferredUsername", - "summary", - "attachment", - "published", - "isPrivate", - "isVerified", - "isLive", - "hasLikes", - "hasPlaylists", - "followerCount", - "followingCount", - "language", - "likeCount", - "likedCount", - "mediaCount", - "icon", - "image" -]New value: +[ + "type", + "id", + "url", + "entityId", + "name", + "preferredUsername", + "summary", + "attachment", + "published", + "isPrivate", + "isVerified", + "isLive", + "hasLikes", + "hasPlaylists", + "followerCount", + "followingCount", + "language", + "likeCount", + "likedCount", + "mediaCount", + "permission", + "icon", + "image" +]
- Changed
tiktok_search_videos3 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor Default: 0"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "duration", - "viewCount", - "likeCount", - "commentCount", - "repostCount", - "shareCount", - "saveCount", - "language", - "isSponsored", - "location", - "tag", - "attributedTo", - "attachment", - "image", - "preview", - "audio" -]New value: +[ + "type", + "id", + "url", + "entityId", + "content", + "published", + "duration", + "viewCount", + "likeCount", + "commentCount", + "repostCount", + "shareCount", + "saveCount", + "language", + "isSponsored", + "isAiGenerated", + "isMuted", + "warning", + "location", + "tag", + "attributedTo", + "attachment", + "isPinned", + "icon", + "image", + "preview", + "audio", + "permission", + "overlay", + "effect", + "context", + "loudness", + "peak" +] - changed
Input schema / properties / published / descriptionPrevious value: -"Filter by publish time: all-time (default), yesterday, this-week, this-month, last-3-months, or last-6-months Default: all-time"New value: +"Filter by publish time: all-time (default), yesterday, this-week, this-month, last-3-months, or last-6-months"
- Changed
x_get_community1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "name", - "summary", - "published", - "memberCount", - "category", - "tag", - "rule", - "attributedTo", - "image" -]New value: +[ + "@context", + "type", + "id", + "url", + "entityId", + "name", + "summary", + "published", + "access", + "isAdult", + "memberCount", + "category", + "tag", + "rule", + "attributedTo", + "image" +]
- Changed
x_get_community_media2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "replyCount", - "viewCount", - "repostCount", - "quoteCount", - "saveCount", - "contentFormat", - "isEdited", - "attributedTo", - "inReplyTo", - "quote", - "image", - "attachment", - "tag" -]New value: +[ + "permission", + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "replyCount", + "viewCount", + "repostCount", + "quoteCount", + "saveCount", + "contentFormat", + "language", + "isAdult", + "isEdited", + "attributedTo", + "inReplyTo", + "context", + "audience", + "quote", + "image", + "attachment", + "tag", + "generator" +]
- Changed
x_get_community_posts2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "replyCount", - "viewCount", - "repostCount", - "quoteCount", - "saveCount", - "contentFormat", - "isEdited", - "attributedTo", - "inReplyTo", - "quote", - "image", - "attachment", - "tag" -]New value: +[ + "permission", + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "replyCount", + "viewCount", + "repostCount", + "quoteCount", + "saveCount", + "contentFormat", + "language", + "isAdult", + "isEdited", + "attributedTo", + "inReplyTo", + "context", + "audience", + "quote", + "image", + "attachment", + "tag", + "generator" +]
- Changed
x_get_post1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "replyCount", - "viewCount", - "repostCount", - "quoteCount", - "saveCount", - "contentFormat", - "isEdited", - "attributedTo", - "inReplyTo", - "quote", - "image", - "attachment", - "tag" -]New value: +[ + "@context", + "permission", + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "replyCount", + "viewCount", + "repostCount", + "quoteCount", + "saveCount", + "contentFormat", + "language", + "isAdult", + "isEdited", + "attributedTo", + "inReplyTo", + "context", + "audience", + "quote", + "image", + "attachment", + "tag", + "generator" +]
- Changed
x_get_user1 field changed- changed
Input schema / properties / data_fields / items / enumPrevious value: -[ - "@context", - "type", - "id", - "url", - "entityId", - "name", - "preferredUsername", - "summary", - "attachment", - "published", - "isPrivate", - "isVerified", - "isPaidVerified", - "followerCount", - "followingCount", - "likeCount", - "postCount", - "mediaCount", - "listedCount", - "location", - "icon", - "image" -]New value: +[ + "@context", + "affiliation", + "withheldIn", + "type", + "id", + "url", + "entityId", + "name", + "preferredUsername", + "summary", + "attachment", + "published", + "isPrivate", + "isVerified", + "isPaidVerified", + "verifiedSince", + "followerCount", + "followingCount", + "likeCount", + "postCount", + "mediaCount", + "memberCount", + "listedCount", + "language", + "category", + "pinned", + "tag", + "location", + "icon", + "image" +]
- Changed
x_get_user_highlights2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "replyCount", - "viewCount", - "repostCount", - "quoteCount", - "saveCount", - "contentFormat", - "isEdited", - "attributedTo", - "inReplyTo", - "quote", - "image", - "attachment", - "tag" -]New value: +[ + "permission", + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "replyCount", + "viewCount", + "repostCount", + "quoteCount", + "saveCount", + "contentFormat", + "language", + "isAdult", + "isEdited", + "attributedTo", + "inReplyTo", + "context", + "audience", + "quote", + "image", + "attachment", + "tag", + "generator" +]
- Changed
x_get_user_posts2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor"New value: +"nextCursor from the previous page. Omit for the first page" - changed
Input schema / properties / item_fields / items / enumPrevious value: -[ - "type", - "id", - "url", - "entityId", - "content", - "published", - "likeCount", - "replyCount", - "viewCount", - "repostCount", - "quoteCount", - "saveCount", - "contentFormat", - "isEdited", - "attributedTo", - "inReplyTo", - "quote", - "image", - "attachment", - "tag" -]New value: +[ + "permission", + "type", + "id", + "url", + "entityId", + "content", + "published", + "likeCount", + "replyCount", + "viewCount", + "repostCount", + "quoteCount", + "saveCount", + "contentFormat", + "language", + "isAdult", + "isEdited", + "attributedTo", + "inReplyTo", + "context", + "audience", + "quote", + "image", + "attachment", + "tag", + "generator" +]
- Added
youtube_get_channel - Added
youtube_get_channel_about - Added
youtube_get_channel_playlists - Added
youtube_get_channel_posts - Added
youtube_get_channel_shorts - Added
youtube_get_channel_streams - Added
youtube_get_channel_videos - Added
youtube_get_comment_replies - Added
youtube_get_playlist - Added
youtube_get_post - Added
youtube_get_search_typeahead - Added
youtube_get_tag_videos - Added
youtube_get_video - Added
youtube_get_video_comments - Added
youtube_get_video_download_url - Added
youtube_get_video_transcript - Added
youtube_search
4 tool updates
- Changed
reddit_search_posts3 fields changed- removed
Input schema / properties / qRemoved value: -{ - "description": "Deprecated alias for `query`", - "type": "string" -} - changed
Input schema / properties / query / descriptionPrevious value: -"Search query. Required, unless the deprecated `q` is given"New value: +"Search query" - added
Input schema / requiredAdded value: +[ + "query" +]
- Changed
reddit_search_subreddit_posts3 fields changed- removed
Input schema / properties / qRemoved value: -{ - "description": "Deprecated alias for `query`", - "type": "string" -} - changed
Input schema / properties / query / descriptionPrevious value: -"Search query. Required, unless the deprecated `q` is given"New value: +"Search query" - changed
Input schema / requiredPrevious value: -[ - "subreddit" -]New value: +[ + "subreddit", + "query" +]
- Changed
reddit_search_subreddits3 fields changed- removed
Input schema / properties / qRemoved value: -{ - "description": "Deprecated alias for `query`", - "type": "string" -} - changed
Input schema / properties / query / descriptionPrevious value: -"Search query. Required, unless the deprecated `q` is given"New value: +"Search query" - added
Input schema / requiredAdded value: +[ + "query" +]
- Changed
reddit_search_users3 fields changed- removed
Input schema / properties / qRemoved value: -{ - "description": "Deprecated alias for `query`", - "type": "string" -} - changed
Input schema / properties / query / descriptionPrevious value: -"Search query. Required, unless the deprecated `q` is given"New value: +"Search query" - added
Input schema / requiredAdded value: +[ + "query" +]
25 tool updates
- Added
instagram_get_audio_reels - Added
instagram_get_trending_reels - Changed
instagram_get_user1 field changed- added
Input schema / properties / userIdAdded value: +{ + "description": "Look up the account by its numeric Instagram user ID instead of its username. If you already have the ID (e.g. from a post or comment's attributedTo field in another response), passing it here returns the profile faster than a username lookup. When set, it overrides the username in the URL — any placeholder there works.", + "type": "string" +}
- Changed
instagram_get_user_reels1 field changed- changed
Input schema / properties / count / descriptionPrevious value: -"Number of reels to fetch (maximum: 12) Default: 12"New value: +"Number of reels to fetch (2-8 — Instagram enforces both bounds server-side) Default: 8"
- Added
instagram_search_popular - Added
linkedin_get_company - Added
linkedin_get_company_posts - Added
linkedin_get_post - Added
linkedin_get_post_transcript - Added
linkedin_get_user - Added
linkedin_get_user_articles - Added
linkedin_get_user_posts - Changed
reddit_get_comments_batch1 field changed- changed
Input schema / properties / entityIds / items / patternPrevious value: -"^(t1_)?[a-z0-9]+$"New value: +"^(t1_)?[a-zA-Z0-9]+$"
- Changed
reddit_get_posts_batch1 field changed- changed
Input schema / properties / entityIds / items / patternPrevious value: -"^(t3_)?[a-z0-9]+$"New value: +"^(t3_)?[a-zA-Z0-9]+$"
- Changed
reddit_get_subreddits_batch1 field changed- changed
Input schema / properties / entityIds / items / patternPrevious value: -"^(t5_)?[a-z0-9]+$"New value: +"^(t5_)?[a-zA-Z0-9]+$"
- Changed
reddit_search_posts3 fields changed- changed
Input schema / properties / q / descriptionPrevious value: -"Search query"New value: +"Deprecated alias for `query`" - added
Input schema / properties / queryAdded value: +{ + "description": "Search query. Required, unless the deprecated `q` is given", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "q" -]
- Changed
reddit_search_subreddit_posts3 fields changed- changed
Input schema / properties / q / descriptionPrevious value: -"Search query"New value: +"Deprecated alias for `query`" - added
Input schema / properties / queryAdded value: +{ + "description": "Search query. Required, unless the deprecated `q` is given", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "subreddit", - "q" -]New value: +[ + "subreddit" +]
- Changed
reddit_search_subreddits3 fields changed- changed
Input schema / properties / q / descriptionPrevious value: -"Search query"New value: +"Deprecated alias for `query`" - added
Input schema / properties / queryAdded value: +{ + "description": "Search query. Required, unless the deprecated `q` is given", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "q" -]
- Changed
reddit_search_users3 fields changed- changed
Input schema / properties / q / descriptionPrevious value: -"Search query"New value: +"Deprecated alias for `query`" - added
Input schema / properties / queryAdded value: +{ + "description": "Search query. Required, unless the deprecated `q` is given", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "q" -]
- Added
tiktok_get_trending_videos - Added
x_get_community - Added
x_get_community_media - Added
x_get_community_posts - Changed
x_get_user_highlights2 fields changed- changed
Input schema / properties / count / descriptionPrevious value: -"Maximum number of highlighted posts to return from the public profile selection (maximum: 100) Default: 40"New value: +"Number of highlighted posts to return per page (maximum: 100) Default: 40" - added
Input schema / properties / cursorAdded value: +{ + "description": "Pagination cursor", + "type": "string" +}
- Changed
x_get_user_posts2 fields changed- removed
Input schema / properties / countRemoved value: -{ - "description": "Maximum number of posts to return from the public profile selection (maximum: 100) Default: 20", - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" -} - added
Input schema / properties / cursorAdded value: +{ + "description": "Pagination cursor", + "type": "string" +}
1 tool update
- Added
tiktok_get_video_download_url
6 tool updates
- Changed
reddit_get_comment2 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"Reddit comment ID (e.g. `okpklb6` or `t1_okpklb6`)"New value: +"Reddit comment ID (e.g. `onflihe` or `t1_onflihe`)" - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"New value: +"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"
- Changed
reddit_get_comment_replies2 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"Reddit comment ID (e.g. `okpklb6` or `t1_okpklb6`)"New value: +"Reddit comment ID (e.g. `onflihe` or `t1_onflihe`)" - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"New value: +"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"
- Changed
reddit_get_post1 field changed- changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"New value: +"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"
- Changed
reddit_get_post_comments1 field changed- changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"New value: +"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"
- Changed
reddit_get_post_duplicates1 field changed- changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"New value: +"Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`)"
- Changed
reddit_get_posts_batch1 field changed- changed
Input schema / properties / entityIds / descriptionPrevious value: -"Example: 1tgywrw, 1t4mguu, 1t6ddw2"New value: +"Example: 1tlh5aj, 1t4mguu, 1t6ddw2"
3 tool updates
- Changed
reddit_get_comments_batch1 field changed- added
Input schema / properties / entityIds / items / patternAdded value: +"^(t1_)?[a-z0-9]+$"
- Changed
reddit_get_posts_batch1 field changed- added
Input schema / properties / entityIds / items / patternAdded value: +"^(t3_)?[a-z0-9]+$"
- Changed
reddit_get_subreddits_batch1 field changed- added
Input schema / properties / entityIds / items / patternAdded value: +"^(t5_)?[a-z0-9]+$"
3 tool updates
- Changed
reddit_get_comments_batch2 fields changed- added
Input schema / properties / entityIdsAdded value: +{ + "description": "Example: okpklb6, ojb40kw", + "items": { + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" +} - added
Input schema / requiredAdded value: +[ + "entityIds" +]
- Changed
reddit_get_posts_batch2 fields changed- added
Input schema / properties / entityIdsAdded value: +{ + "description": "Example: 1tgywrw, 1t4mguu, 1t6ddw2", + "items": { + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" +} - added
Input schema / requiredAdded value: +[ + "entityIds" +]
- Changed
reddit_get_subreddits_batch2 fields changed- added
Input schema / properties / entityIdsAdded value: +{ + "description": "Example: 2qh3l, 2qh0u", + "items": { + "type": "string" + }, + "maxItems": 100, + "minItems": 1, + "type": "array" +} - added
Input schema / requiredAdded value: +[ + "entityIds" +]
8 tool updates
- Changed
reddit_get_comment2 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"Reddit comment ID"New value: +"Reddit comment ID (e.g. `okpklb6` or `t1_okpklb6`)" - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID"New value: +"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"
- Changed
reddit_get_comment_replies2 fields changed- changed
Input schema / properties / commentId / descriptionPrevious value: -"Reddit comment ID"New value: +"Reddit comment ID (e.g. `okpklb6` or `t1_okpklb6`)" - changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID"New value: +"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"
- Added
reddit_get_comments_batch - Changed
reddit_get_post1 field changed- changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID"New value: +"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"
- Changed
reddit_get_post_comments1 field changed- changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID"New value: +"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"
- Changed
reddit_get_post_duplicates1 field changed- changed
Input schema / properties / postId / descriptionPrevious value: -"Reddit post ID"New value: +"Reddit post ID (e.g. `1tgywrw` or `t3_1tgywrw`)"
- Added
reddit_get_posts_batch - Added
reddit_get_subreddits_batch
24 tool updates
- Added
reddit_get_comment - Added
reddit_get_comment_replies - Added
reddit_get_feed - Added
reddit_get_post - Added
reddit_get_post_comments - Added
reddit_get_post_duplicates - Added
reddit_get_subreddit - Added
reddit_get_subreddit_comments - Added
reddit_get_subreddit_posts - Added
reddit_get_subreddit_rules - Added
reddit_get_subreddit_sticky - Added
reddit_get_user - Added
reddit_get_user_comments - Added
reddit_get_user_overview - Added
reddit_get_user_posts - Added
reddit_search_posts - Added
reddit_search_subreddit_posts - Added
reddit_search_subreddits - Added
reddit_search_users - Removed
tiktok_mobile_get_user_videos - Added
x_get_post - Added
x_get_user - Added
x_get_user_highlights - Added
x_get_user_posts
1 tool update
- Added
tiktok_mobile_get_user_videos
1 tool update
- Changed
tiktok_get_video_transcript2 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"BCP47 language code"New value: +"BCP47 language code, or `original`" - changed
Input schema / properties / language / enumPrevious value: -[ - "ar-SA", - "az-AZ", - "ca-ES", - "ceb-PH", - "cs-CZ", - "da-DK", - "de-DE", - "en-US", - "es-ES", - "et-EE", - "fi-FI", - "fil-PH", - "fr-FR", - "ga-IE", - "he-IL", - "hr-HR", - "id-ID", - "it-IT", - "ja-JP", - "ko-KR", - "lv-LV", - "lt-LT", - "ms-MY", - "nb-NO", - "nl-NL", - "pl-PL", - "pt-PT", - "ru-RU", - "sw-SW", - "sv-SE", - "th-TH", - "uk-UA", - "vi-VN", - "zh-Hans-CN", - "zh-Hant-CN" -]New value: +[ + "original", + "ar-SA", + "az-AZ", + "ca-ES", + "ceb-PH", + "cs-CZ", + "da-DK", + "de-DE", + "en-US", + "es-ES", + "et-EE", + "fi-FI", + "fil-PH", + "fr-FR", + "ga-IE", + "he-IL", + "hr-HR", + "id-ID", + "it-IT", + "ja-JP", + "ko-KR", + "lv-LV", + "lt-LT", + "ms-MY", + "nb-NO", + "nl-NL", + "pl-PL", + "pt-PT", + "ru-RU", + "sw-SW", + "sv-SE", + "th-TH", + "uk-UA", + "vi-VN", + "zh-Hans-CN", + "zh-Hant-CN" +]
30 tool updates
- First observed
instagram_get_highlight_stories - First observed
instagram_get_location_posts - First observed
instagram_get_post - First observed
instagram_get_post_comments - First observed
instagram_get_user - First observed
instagram_get_user_highlights - First observed
instagram_get_user_posts - First observed
instagram_get_user_reels - First observed
instagram_get_user_tagged - First observed
instagram_search_media - First observed
tiktok_get_audio - First observed
tiktok_get_audio_videos - First observed
tiktok_get_collection_videos - First observed
tiktok_get_comment_replies - First observed
tiktok_get_tag_videos - First observed
tiktok_get_user - First observed
tiktok_get_user_collections - First observed
tiktok_get_user_followers - First observed
tiktok_get_user_following - First observed
tiktok_get_user_likes - First observed
tiktok_get_user_live - First observed
tiktok_get_user_reposts - First observed
tiktok_get_user_stories - First observed
tiktok_get_user_videos - First observed
tiktok_get_video - First observed
tiktok_get_video_comments - First observed
tiktok_get_video_transcript - First observed
tiktok_search_content - First observed
tiktok_search_users - First observed
tiktok_search_videos
Related MCP Connectors
Public Instagram and TikTok data: profiles, posts, reels, stories, comments, hashtags and places.
Live public Instagram and TikTok data for AI assistants: profiles, posts, stories, followers.
Public data from TikTok, Instagram, YouTube, X, Facebook and 28 more platforms. Pay per call.
Instagram, TikTok, YouTube and Threads profiles, posts, comments and transcripts. Runs on Apify.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables MCP clients to retrieve read-only public Instagram data through 27 tools covering profiles, posts, reels, stories, highlights, comments, likers, followers, hashtags, places, audio and keyword search. No login is required, and every response reports remaining API credits.271MIT

insightsocialofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, describe and call 239 social data endpoints across Instagram, TikTok, LinkedIn, Facebook, YouTube, X, Reddit, Threads and Pinterest through a single API key, covering profiles, posts, comments, followers, hashtags, ads and transcripts with one unified schema. Full responses are saved server-side and can be re-sliced for free with jq, fields or size outlines, so agents pull only the data they need into context.236 npmMIT- FlicenseNot gradedqualityDmaintenanceProvides unified access to social media data across nine networks (Instagram, TikTok, YouTube, etc.) through a set of MCP tools for profiles, posts, search, and comments, backed by the SocialBridge API.-

SocialCrawlofficial
AlicenseAqualityDmaintenanceSocialCrawl provides the "best" quality public web data on the internet. Access 65+ real-time social media, e-commerce and public web data from a single API with a single schema.5147 npm28MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.