Skip to main content
Glama

Server Details

Unified API for every social media data. Get data from 100+ endpoints, with consistent schema and affordable rate

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

B3.2/5.0

Scored across 86 tools

Disambiguation4/5

Most tools are cleanly scoped by platform prefix and by get/list/search plus entity, so an agent can usually pick correctly. The main overlaps are generic search_all tools versus platform-specific search_* variants, especially on LinkedIn and Reddit, but descriptions make the distinction workable.

Naming Consistency4/5

The dominant convention is platform_verb_noun (e.g., github_search_code, reddit_get_post, tiktok_get_user_posts), applied consistently across most platforms. Instagram breaks the pattern with bare nouns like instagram_user and instagram_post, which is a minor but noticeable inconsistency.

Tool Count2/5

Eighty-six tools is very large for a single MCP server and far beyond the typical well-scoped range. Although the count is partly explained by seven platforms with many endpoints, the set is still cumbersome for an agent to navigate and many near-parallel search/listing tools could be consolidated.

Completeness3/5

The surface is broad for read-only public-data retrieval across most platforms, with solid profile, post, comment, follower, and search coverage. However, YouTube has only a single get-video tool, and gaps such as YouTube channel/search/comment endpoints and some Instagram discovery endpoints leave notable holes.

Available Tools

86 tools
billing_get_infoGet Bridgly credit balanceA
Read-onlyIdempotent
Inspect

Get the current credit balance and billing settings of the connected Bridgly account. Read-only and free: it uses no credits.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

The read-only statement is consistent with, but largely repeats, readOnlyHint=true and destructiveHint=false. The description adds materially useful behavior beyond the annotations by disclosing that invocation is free and consumes no credits, while also clarifying that it reads the connected account's current state.

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

Conciseness5/5

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

Two short sentences front-load the operation and resource, then state the safety and cost characteristics. There is no filler, redundant setup, or unnecessary structural overhead.

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

Completeness4/5

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

For a zero-parameter read, the description provides enough information to select and invoke the tool correctly, including account scope and credit cost. Because there is no output schema, briefly identifying the included billing settings or noting whether values such as currency and plan are returned would make it more complete.

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

Parameters4/5

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

The tool has no parameters, so the baseline is 4 and there are no argument meanings or formats left to explain. The description still supplies useful implicit scope by specifying the connected Bridgly account rather than an arbitrary account identifier.

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

Purpose5/5

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

The description uses a specific verb and identifies both returned resources: the current credit balance and billing settings of the connected Bridgly account. Its Bridgly billing scope clearly distinguishes it from all supplied siblings, which concern social-platform data.

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

Usage Guidelines4/5

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

An agent can infer that this is the tool for checking the connected account's present balance or billing configuration, and the zero-credit cost encourages its use for that purpose. It does not provide explicit when-not guidance or alternatives, but none of the listed siblings appears to overlap.

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

github_get_contributionsFetch a GitHub user's contribution calendar and totalsB
Read-onlyIdempotent
Inspect

Fetch a GitHub user's contribution calendar and totals. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
toNoISO-8601 end of the contribution window (inclusive), e.g. "2025-12-31T00:00:00Z". Defaults to now.
fromNoISO-8601 start of the contribution window (inclusive), e.g. "2025-01-01T00:00:00Z". Defaults to one year ago. Must be within one year of `to`.
usernameYesGitHub username (login), or the profile link, e.g. "torvalds" or "https://github.com/torvalds".

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the sentence 'Read-only: returns public data and changes nothing' largely restates structured data. The one genuinely additive fact is 'Costs 1 credit per request', which is useful budget context not available elsewhere. With no output schema, it still says nothing about the shape of the returned calendar/totals, so it does not go far beyond 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.

Conciseness4/5

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

Three short sentences, front-loaded with purpose, then safety, then cost — easy to scan with no filler. Slight deduction because the read-only sentence duplicates annotation content and could have been spent on return-value detail instead.

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

Completeness3/5

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

For a simple three-parameter read tool with fully documented parameters, the description covers purpose, safety, and cost adequately. Because there is no output schema, the definition leaves the return shape (per-day calendar vs. aggregated totals, fields returned) entirely unexplained, which is the main remaining gap.

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

Parameters3/5

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

Schema description coverage is 100%, with from/to format, inclusivity, defaults, and the one-year window constraint all documented in the schema. The description adds no parameter meaning at all, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb (Fetch) and a specific resource (a GitHub user's contribution calendar and totals), which is meaningfully narrower than the sibling github_get_profile. An agent can tell what this returns without opening the schema, though it never explicitly contrasts itself with github_get_profile.

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

Usage Guidelines3/5

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

Usage is only implied by the purpose statement — there is no explicit when-to-use, when-not-to-use, or named alternative among the many github_* siblings. The read-only note mildly signals it is a lookup rather than a search, but the agent must infer that a profile lookup belongs to github_get_profile instead.

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

github_get_profileFetch a GitHub user's profile and pinned repositoriesA
Read-onlyIdempotent
Inspect

Fetch a GitHub user's profile and pinned repositories. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
usernameYesGitHub username (login), or the profile link, e.g. "torvalds" or "https://github.com/torvalds".

TDQS

A3.6/5.0
Behavior4/5

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

The read-only/no-side-effects sentence largely duplicates the supplied readOnlyHint and destructiveHint annotations, so it earns little on its own. However, "Costs 1 credit per request" is genuine operational context absent from the annotations — a quota constraint the agent cannot see in structured fields. No return-format detail, but that is a minor omission for a single-entity fetch.

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

Conciseness5/5

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

Three compact sentences: what it does, safety profile, cost. The most decision-relevant fact (the operation and cost) is front-loaded with zero filler or marketing language.

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

Completeness4/5

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

For a one-parameter, read-only fetch with full annotation coverage and a fully documented schema, the description covers purpose, safety, and cost — enough to invoke correctly. The remaining gap is that no output schema exists and the description does not indicate what the profile payload contains or how many pinned repositories come back.

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

Parameters3/5

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

With one parameter at 100% schema description coverage, the schema already documents the username field and even its URL-form acceptance. The description adds no format, casing, or encoding guidance beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

"Fetch a GitHub user's profile and pinned repositories" gives a specific verb (fetch) and a precisely scoped resource, including the distinguishing detail of pinned repositories. It is clearly a single-user lookup rather than a search or listing, though it never names the nearest alternatives like github_search_users or github_list_repositories.

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

Usage Guidelines2/5

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

The description says nothing about when to reach for this tool instead of github_search_users (to resolve a handle) or github_list_repositories (for repo lists). The only implicit cue is the word "pinned," which hints that full repository listing belongs elsewhere, but that inference is left entirely to the agent.

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

github_list_projectsList a GitHub user's public projectsA
Read-onlyIdempotent
Inspect

List a GitHub user's public projects. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesGitHub username (login), or the profile link, e.g. "torvalds" or "https://github.com/torvalds".

TDQS

A3.7/5.0
Behavior4/5

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

The read-only and non-mutating claims are consistent with the annotations but largely repeat them. The description adds useful operational context by emphasizing that only public data is returned and disclosing a cost of 1 credit per request.

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

Conciseness4/5

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

The description front-loads the operation and scope, then concisely covers safety and cost. It is easy to scan, although "Read-only" and "changes nothing" are mildly redundant with each other and with the annotations.

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

Completeness4/5

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

Combined with the complete input schema and safety annotations, the description is sufficient to invoke this simple paginated listing operation correctly. Its main remaining gaps are the implicit distinction from github_list_repositories and, with no output schema, the absence of any indication of what project information is returned.

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

Parameters3/5

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

All three parameters are fully documented in the schema, including accepted username forms, count limits and default, and cursor-based pagination. The description adds no parameter meaning beyond that complete coverage, so the high-coverage baseline applies.

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

Purpose4/5

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

The description uses a specific verb and resource—"List a GitHub user's public projects"—and clearly states the public-data scope. It does not explicitly distinguish projects from repositories or starred items, leaving sibling differentiation incomplete.

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

Usage Guidelines3/5

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

The wording implies use when an agent needs a particular user's public project list, but it provides no explicit selection criteria. It also does not direct agents to github_list_repositories or another sibling when a different GitHub resource is needed.

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

github_list_repositoriesList a GitHub user's public repositoriesA
Read-onlyIdempotent
Inspect

List a GitHub user's public repositories. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
orderYesSort order for the repositories. Defaults to "pushed".pushed
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesGitHub username (login), or the profile link, e.g. "torvalds" or "https://github.com/torvalds".

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description still adds a genuinely new trait not present in structured fields: a concrete cost of 1 credit per request, which matters for agent budgeting. It does not discuss pagination limits or result-size behaviour, but the cursor parameter covers paging 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.

Conciseness5/5

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

Three short clauses, front-loaded with the core action, followed by the safety statement and the cost. No filler and nothing redundant beyond a brief restatement of read-only for emphasis.

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

Completeness4/5

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

For a four-parameter read-only list tool with full schema coverage and no output schema, the description plus schema is sufficient to call it correctly. The remaining gap is routing context against similarly named GitHub listing and search siblings, which the description never addresses.

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

Parameters3/5

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

Schema description coverage is 100%, with count bounds, the order enum, cursor semantics and the username format all documented inline. The description adds no additional meaning about these parameters, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ("List a GitHub user's public repositories") and makes the public-only scope explicit, so the agent knows exactly what is fetched. It does not differentiate from close siblings like github_search_repositories or github_list_starred, which is the only thing keeping it from a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this over github_search_repositories, github_list_starred, or github_list_projects. The only implied condition is that you need a named user's repos, which the agent must infer from the title alone.

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

github_list_starredList the repositories a GitHub user has starredA
Read-onlyIdempotent
Inspect

List the repositories a GitHub user has starred. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesGitHub username (login), or the profile link, e.g. "torvalds" or "https://github.com/torvalds".

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description still adds two things not in the annotations: the scope of returned data ('public data') and a credit cost of 1 per request. It does not mention the 10-result cap or pagination behavior, which are left entirely to 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.

Conciseness5/5

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

Three short sentences, each carrying distinct information: purpose, safety/scope, and cost. Purpose is front-loaded and there is no filler or restatement of the title alone.

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

Completeness4/5

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

For a three-parameter read tool with full schema coverage and no output schema, the description covers purpose, read-only nature, data scope and credit cost. The remaining gap is return-shape expectation (a list of repos with a nextCursor), which the cursor parameter implicitly signals in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains count (1-10, default 10), cursor (previous response's nextCursor) and username (login or profile URL). The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List the repositories a GitHub user has starred'), which is precise enough to separate it from github_search_repositories and github_list_repositories. It stops short of explicitly contrasting with the sibling list of a user's own repositories, so an agent must infer the distinction from the word 'starred'.

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

Usage Guidelines3/5

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

Usage is implied by the narrow scope: fetch the repos a user has starred, given a username. There is no explicit statement about when to prefer github_list_repositories or github_search_repositories instead, and no prerequisites mentioned. An agent can figure it out from the name, but the description does no routing work.

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

github_search_codeSearch code across public GitHub repositoriesA
Read-onlyIdempotent
Inspect

Search code across public GitHub repositories. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
forkYesWhether to include forks. Defaults to excluding them.exclude
pathNoPath prefix within the repo, e.g. "src/app". Maps to `path:`.
sortYesSort field. Defaults to relevance ("best-match").best-match
countYesNumber of results to return (1–10). Defaults to 10.
orderYesSort direction. Defaults to "desc".desc
queryNoFree-text search terms, matched against the default fields for this search type, e.g. "web framework".
reposNoLimit to these "owner/name" repositories. Maps to `repo:`.
startNoNumber of results to skip (0–999). Defaults to 0. Only the first 1,000 results of a search can be paged through.
ownersNoLimit to these owners (users or orgs). Maps to `user:`.
filenameNoExact file name, e.g. "package.json". Maps to `filename:`.
languageNoProgramming language, e.g. "Go". Maps to `language:`.
extensionNoFile extension without the dot, e.g. "ts". Maps to `extension:`.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the safety profile is covered and "returns public data and changes nothing" largely restates it. The genuinely additive disclosure is "Costs 1 credit per request", a budgeting constraint not present in any structured field, plus the implicit guarantee that only public (non-private) repositories are reachable.

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

Conciseness5/5

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

Three short sentences, zero filler, with the purpose front-loaded and the safety/cost facts trailing. Nothing is repeated or wasted.

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

Completeness3/5

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

For a 12-parameter search tool with no output schema, the description says nothing about result shape, paging behavior, or the 1,000-result ceiling that matters when chaining calls (the schema only hints at it via start's max). Annotations plus a fully documented schema keep it adequate, but the routing gap versus sibling search tools leaves it incomplete.

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

Parameters3/5

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

Schema description coverage is 100% and every one of the 12 parameters carries its own description, including GitHub query-syntax mappings (path:, repo:, user:, filename:). The description adds no parameter meaning of its own, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource ("Search code across public GitHub repositories") and pins the scope to public repos, which separates it from write-oriented GitHub tools. It does not explicitly distinguish itself from the nearest sibling, github_search_repositories, so an agent must infer that this one matches file contents rather than repository metadata.

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

Usage Guidelines3/5

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

Usage is only implied by the phrase "search code"; there is no explicit when-to-use or when-not-to-use guidance and no named alternative such as github_search_repositories or github_search_commits. The scope word "code" is the only routing signal the agent gets.

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

github_search_commitsSearch commits across public GitHub repositoriesA
Read-onlyIdempotent
Inspect

Search commits across public GitHub repositories. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
hashNoCommits with this SHA (or prefix). Maps to `hash:`.
sortYesSort field. Defaults to relevance ("best-match").best-match
countYesNumber of results to return (1–10). Defaults to 10.
mergeNoOnly merge commits (true) or exclude them (false). Maps to `merge:`.
orderYesSort direction. Defaults to "desc".desc
queryNoFree-text search terms, matched against the default fields for this search type, e.g. "web framework".
reposNoLimit to these "owner/name" repositories. Maps to `repo:`.
startNoNumber of results to skip (0–999). Defaults to 0. Only the first 1,000 results of a search can be paged through.
authorNoCommits authored by this GitHub user. Maps to `author:`.
ownersNoLimit to these owners (users or orgs). Maps to `user:`.
committerNoCommits committed by this GitHub user. Maps to `committer:`.
authoredDateNoFilter by author date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
committedDateNoFilter by commit date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.

TDQS

A3.5/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, destructiveHint=false, idempotentHint, and openWorldHint, so the safety profile is covered. The description still earns credit for two things annotations cannot express: that only public data is touched and that each request costs 1 credit, which matters for call budgeting. It omits the 1,000-result pagination ceiling, though the schema's start parameter covers that.

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

Conciseness5/5

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

Three short sentences, each doing distinct work: purpose, safety/scope, and cost. The purpose statement is front-loaded and nothing is padded or repeated from the structured fields.

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

Completeness3/5

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

With 13 parameters, nested date filters, and no output schema, the definition is arguably under-specified about what a returned commit record contains and whether the credit cost scales with pagination. The description is adequate for correct invocation because the schema is exhaustive, but an agent has no picture of the response shape.

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

Parameters3/5

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

Schema description coverage is 100%, with every parameter documented inline including the hash/author/committer/repo qualifier mappings and the date-range nested objects. The description adds no syntax or interpretation guidance 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.

Purpose4/5

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

The description names a specific verb and resource ("Search commits") and constrains scope to public GitHub repositories, which cleanly separates it from github_search_code, github_search_issues, and github_search_pull_requests. It stops short of explicitly naming those siblings or the conditions that would pick one over the other.

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

Usage Guidelines2/5

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 beyond the implied scope of "public repositories." The agent must infer on its own whether to reach for commit search versus code search, issue search, or a repository listing when investigating a project.

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

github_search_discussionsSearch GitHub discussionsB
Read-onlyIdempotent
Inspect

Search GitHub discussions. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
orderYesSort direction. Defaults to "desc".desc
queryNoFree-text search terms, matched against the default fields for this search type, e.g. "web framework".
reposNoLimit to these "owner/name" repositories. Maps to `repo:`.
authorNoOpened by this user. Maps to `author:`.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
ownersNoLimit to these owners (users or orgs). Maps to `user:`.
createdNoFilter by creation date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
updatedNoFilter by last update date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
answeredNoWhether the discussion is answered. Maps to `is:answered`.
commentsNoFilter by comment count. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint and destructiveHint=false, so 'read-only: returns public data and changes nothing' largely restates structured data. The one genuinely additive fact is 'Costs 1 credit per request', a real budget constraint absent from annotations, but nothing is said about result caps, pagination behavior, or what a discussion record contains.

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

Conciseness4/5

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

Three short sentences with the purpose front-loaded and no filler. The second sentence is close to redundant with the readOnly annotation, but the text is otherwise tight and scannable.

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

Completeness3/5

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

With 11 parameters, nested date/comment range objects, and no output schema, the description is thin: it never explains that results are paginated via nextCursor, that count is capped at 10, or what fields a discussion returns. Annotations and full schema coverage carry most of the burden, making this adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 100% and all 11 parameters are documented in-schema, including the GitHub-qualifier mappings (repo:, author:, is:answered) and cursor pagination. The description adds no parameter meaning 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.

Purpose4/5

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

The description states a specific verb and resource ('Search GitHub discussions'), so an agent knows exactly what it queries. However, it never distinguishes this from the many sibling search tools (github_search_issues, github_search_pull_requests, github_search_code), leaving the agent to infer that discussions are a distinct content type rather than issues or PRs.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no named alternative. The description does not say to prefer this over github_search_issues when looking for Q&A-style threads, nor does it state any precondition (auth, scope, rate budget) beyond the credit cost.

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

github_search_issuesSearch GitHub issuesB
Read-onlyIdempotent
Inspect

Search GitHub issues. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortYesSort field. Defaults to relevance ("best-match").best-match
countYesNumber of results to return (1–10). Defaults to 10.
orderYesSort direction. Defaults to "desc".desc
queryNoFree-text search terms, matched against the default fields for this search type, e.g. "web framework".
reposNoLimit to these "owner/name" repositories. Maps to `repo:`.
stateNoIssue/PR state. Maps to `state:`.
authorNoOpened by this user. Maps to `author:`.
closedNoFilter by closed date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
labelsNoRequire each of these labels. Maps to `label:`.
ownersNoLimit to these owners (users or orgs). Maps to `user:`.
reasonNoState reason for closed issues. Maps to `reason:`.
createdNoFilter by creation date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
updatedNoFilter by last update date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
assigneeNoAssigned to this user. Maps to `assignee:`.
commentsNoFilter by comment count. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.
languageNoLanguage of the containing repo. Maps to `language:`.
mentionsNoMentioning this user. Maps to `mentions:`.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the description's read-only claim is partly redundant. However, it adds two genuinely useful facts not in the annotations: results are public data only, and each request costs 1 credit. It omits pagination behavior and result-shape details, keeping it below 5.

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

Conciseness4/5

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

Three short, front-loaded sentences with no filler; the purpose comes first and the cost note last. The read-only sentence largely restates the annotations, which is minor redundancy rather than bloat.

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

Completeness3/5

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

This is a complex 18-parameter tool with nested date-range objects and no output schema, yet the description never describes what a result contains or how pagination works beyond the schema's cursor field. It covers safety and cost adequately but leaves the agent guessing about return shape for a search-heavy tool.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter documents its GitHub search qualifier mapping (repo:, state:, author:, etc.), date ranges, and defaults. The description adds nothing beyond the schema for any of the 18 parameters, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ("Search GitHub issues"), which is enough for an agent to separate it from sibling search tools such as github_search_pull_requests or github_search_code by name. It does not explicitly name those siblings or clarify whether PRs are included, 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.

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over github_search_pull_requests, github_search_discussions, or github_list_repositories, and no exclusions or prerequisite conditions are stated. The only implied usage cue is the word "issues" combined with the filtering parameters in the schema.

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

github_search_pull_requestsSearch GitHub pull requestsB
Read-onlyIdempotent
Inspect

Search GitHub pull requests. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortYesSort field. Defaults to relevance ("best-match").best-match
countYesNumber of results to return (1–10). Defaults to 10.
draftNoFilter by draft state. Maps to `draft:`.
orderYesSort direction. Defaults to "desc".desc
queryNoFree-text search terms, matched against the default fields for this search type, e.g. "web framework".
reposNoLimit to these "owner/name" repositories. Maps to `repo:`.
stateNoIssue/PR state. Maps to `state:`.
authorNoOpened by this user. Maps to `author:`.
closedNoFilter by closed date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
labelsNoRequire each of these labels. Maps to `label:`.
mergedNoFilter by merge date (only merged PRs). Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
ownersNoLimit to these owners (users or orgs). Maps to `user:`.
reviewNoReview status. Maps to `review:`.
createdNoFilter by creation date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
updatedNoFilter by last update date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
assigneeNoAssigned to this user. Maps to `assignee:`.
commentsNoFilter by comment count. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.
languageNoLanguage of the containing repo. Maps to `language:`.
mentionsNoMentioning this user. Maps to `mentions:`.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds one genuinely new piece of context — 'Costs 1 credit per request' — which affects call budgeting, but it otherwise restates the read-only trait and says nothing about rate limits, result caps, or 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.

Conciseness4/5

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

Three short sentences, front-loaded with purpose, with no filler or throat-clearing. The middle sentence partially duplicates the readOnlyHint annotation, which is mild redundancy rather than wasted space.

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

Completeness3/5

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

For a 20-parameter search tool with nested objects and no output schema, the description covers purpose, safety, and cost but leaves the agent guessing about the response shape, result limits (count caps at 10), and pagination workflow. The rich schema compensates for the parameter side, but the return side is entirely undocumented.

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

Parameters3/5

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

Schema description coverage is 100%, with every one of the 20 parameters documented in the schema itself, including enum meanings and the gt/gte/lt/lte date-range pattern. The description adds no meaning beyond the schema, which is the expected baseline 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.

Purpose4/5

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

The description states a specific verb and resource ('Search GitHub pull requests'), so an agent knows exactly what the tool retrieves. It does not, however, distinguish itself from the many adjacent siblings such as github_search_issues, github_search_commits, or github_search_discussions, so the agent must infer the boundary from 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.

Usage Guidelines2/5

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 github_search_issues or github_search_repositories, and no mention of prerequisites or exclusions. The only contextual hint is the implicit 'pull requests' in the name; the description itself says nothing about alternatives.

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

github_search_repositoriesSearch public GitHub repositoriesB
Read-onlyIdempotent
Inspect

Search public GitHub repositories. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
forkYesWhether to include forks: "exclude" (default), "include" (`fork:true`), or "only" (`fork:only`).exclude
sizeNoFilter by repository size in KB. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.
sortYesSort field. Defaults to relevance ("best-match").best-match
countYesNumber of results to return (1–10). Defaults to 10.
forksNoFilter by fork count. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.
orderYesSort direction. Defaults to "desc".desc
queryNoFree-text search terms, matched against the default fields for this search type, e.g. "web framework".
reposNoLimit to these "owner/name" repositories. Maps to `repo:`.
starsNoFilter by star count. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
ownersNoLimit to these owners (users or orgs). Maps to `user:`.
pushedNoFilter by date of last push. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
topicsNoRequire each of these topics. Maps to `topic:`.
createdNoFilter by creation date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
licenseNoSPDX license key, e.g. "mit". Maps to `license:`.
archivedNoFilter by archived state. Maps to `archived:`.
languageNoPrimary language, e.g. "TypeScript". Maps to `language:`.
visibilityNoRepository visibility. Maps to `is:public` / `is:private`.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, and the sentence 'Read-only: returns public data and changes nothing' largely repeats them. The one genuinely additive fact is 'Costs 1 credit per request', which gives budget-relevant context not present in annotations, but nothing is said about result caps or paging behaviour beyond what the schema already encodes.

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

Conciseness4/5

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

Three short sentences with the purpose front-loaded and the cost signal last. One sentence is partly redundant with the annotations, but nothing is verbose or buried.

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

Completeness3/5

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

For an 18-parameter, nested-filter search tool with no output schema, the description is thin: it says nothing about how filters combine, whether query is optional, or that results are paginated via cursor. The rich schema compensates for the per-parameter gaps, but behavioural completeness for a tool this complex is only adequate.

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

Parameters3/5

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

Schema description coverage is 100% and every one of the 18 parameters is documented inline, including range semantics, enum meanings and GitHub qualifier mappings. The description adds no parameter meaning on top of that, so the baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb + resource ("Search public GitHub repositories"), which cleanly separates it from siblings like github_search_code, github_search_issues and github_search_users. The word 'public' also signals it is not the same as github_list_repositories, though 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.

Usage Guidelines2/5

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

There is no guidance on when to choose this over github_list_repositories (list your own repos) or github_search_code / github_search_topics when a query spans code or topic entities. The agent must infer the selection rule from the tool name alone.

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

github_search_topicsSearch GitHub topicsB
Read-onlyIdempotent
Inspect

Search GitHub topics. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
queryNoFree-text search terms, matched against the default fields for this search type, e.g. "web framework".
startNoNumber of results to skip (0–999). Defaults to 0. Only the first 1,000 results of a search can be paged through.
createdNoFilter by topic creation date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
curatedNoOnly curated topics. Maps to `is:curated`.
featuredNoOnly featured topics. Maps to `is:featured`.
repositoriesNoFilter by number of repositories using the topic. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the sentence 'Read-only: returns public data and changes nothing' largely restates structured data. The one genuinely new behavioral fact is the cost ('1 credit per request'), which is not captured in annotations and is useful for planning; nothing is said about result caps, rate limits, or page size.

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

Conciseness4/5

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

Three short sentences, front-loaded with the action, with no filler. The cost sentence earns its place because it is not derivable from structured fields, though the read-only sentence is largely redundant with annotations.

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

Completeness3/5

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

For a 7-parameter search tool with nested objects and no output schema, the description is complete on identity and safety but silent on result shape, the 10-per-page and 1,000-result paging ceilings (only implicit in the schema), and how topics are matched. It is minimally adequate rather than thorough.

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

Parameters3/5

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

Schema description coverage is 100% across all 7 parameters, including nested date-range and repository-count bound objects, so the schema fully carries parameter meaning. The description adds no filtering syntax, default behavior, or interpretation beyond what the schema already states; baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Search GitHub topics') that is unambiguous and distinguishes it from sibling searches like github_search_repositories or github_search_code by resource type. It does not explicitly contrast with those siblings, but the named resource is distinct enough for an agent to select correctly.

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

Usage Guidelines2/5

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 rather than github_search_repositories, github_search_code, or any other sibling search tool. The only implicit signal is the word 'topics'; no exclusions, prerequisites, or alternative routing are offered.

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

github_search_usersSearch GitHub users and organizationsB
Read-onlyIdempotent
Inspect

Search GitHub users and organizations. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortYesSort field. Defaults to relevance ("best-match").best-match
typeNoRestrict to users or organizations. Maps to `type:`.
countYesNumber of results to return (1–10). Defaults to 10.
orderYesSort direction. Defaults to "desc".desc
queryNoFree-text search terms, matched against the default fields for this search type, e.g. "web framework".
reposNoFilter by public repository count. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
createdNoFilter by account creation date. Provide any of gt / gte / lt / lte as YYYY-MM-DD dates; combine a lower and upper bound for a range.
fullNameNoMatch a display name, e.g. "Grace Hopper". Maps to `fullname:`.
languageNoUsers who code in this language. Maps to `language:`.
locationNoProfile location, e.g. "San Francisco". Maps to `location:`.
followersNoFilter by follower count. Provide any of gt / gte / lt / lte; combine a lower and upper bound for a range.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true and openWorldHint=true, so 'read-only: returns public data and changes nothing' largely restates what is already structured. The one genuinely additive fact is the cost signal, 'Costs 1 credit per request', which is behavior an agent cannot get from the schema or annotations. Return shape and result-set limits are left unexplained, though the schema's count cap of 10 partly covers that.

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

Conciseness4/5

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

Three short clauses, front-loaded with the resource identification, with no filler or preamble. The read-only sentence partly duplicates the annotations, which is minor waste but not enough to undermine the efficient framing.

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

Completeness3/5

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

With 12 parameters, three required fields, nested range filters, and no output schema, the definition is thinner than the tool's complexity warrants. The agent is not told what a result record looks like or that paging is handled through the cursor field, forcing it to reconstruct that from the schema alone.

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

Parameters3/5

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

Schema description coverage is 100% and every parameter, including the nested gt/gte/lt/lte range objects and the cursor, carries its own documentation, so the schema does the heavy lifting. The description adds no semantic detail beyond it and does not mention the required sort/order/count triplet or pagination via cursor, so the baseline 3 applies.

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

Purpose4/5

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

The description uses a specific verb ('Search') plus a precise resource ('GitHub users and organizations'), which cleanly separates it from siblings like github_search_repositories, github_search_code, and github_search_issues. It stops short of naming the closest lookup alternative, github_get_profile, so an agent must still infer which one applies to a known handle.

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

Usage Guidelines2/5

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 named alternative. The description never says to prefer github_get_profile when a specific username is known, nor how this differs from x_search_users or reddit_search_users among the siblings.

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

instagram_followersInstagram: Get paginated user followersA
Read-onlyIdempotent
Inspect

Instagram: Get paginated user followers. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesInstagram username, or the profile link, e.g. "instagram" or "https://www.instagram.com/instagram/"

TDQS

A3.5/5.0
Behavior4/5

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 the cost model (1 credit per result, minimum 1 credit per request), which is billing context absent from annotations. It stops short of saying how failures or empty/private results are handled.

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

Conciseness4/5

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

Three short, front-loaded sentences with no padding; the safety and cost facts come before any detail. The opening clause duplicates the title verbatim, which is the only wasted text.

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

Completeness4/5

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

For a three-parameter read-only list tool with full schema coverage and no output schema, the description covers scope, safety and cost adequately. Remaining gaps (return shape, rate limits, behavior on private or nonexistent accounts) are minor but real.

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

Parameters3/5

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

Schema coverage is 100%, so username, count and cursor are already fully explained in the schema. The description's credit-per-result line adds costing meaning to `count` but says nothing beyond the schema about cursor semantics or result ordering.

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

Purpose4/5

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

States a specific verb and resource ('Get paginated user followers'), which cleanly separates it from the sibling instagram_following. It does not name the sibling explicitly, but the direction of the relationship is unambiguous from the name and verb.

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

Usage Guidelines2/5

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

No guidance on when to use this versus instagram_following or instagram_user, and no stated prerequisites (e.g., private accounts, missing profiles). Pagination behavior is only inferable from the word 'paginated' and the schema's cursor field.

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

instagram_followingInstagram: Get paginated users followed by the userB
Read-onlyIdempotent
Inspect

Instagram: Get paginated users followed by the user. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesInstagram username, or the profile link, e.g. "instagram" or "https://www.instagram.com/instagram/"

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds genuinely new context not in structured fields: a per-result credit cost with a 1-credit minimum per request, which matters for invocation decisions. It is slightly redundant in restating read-only, and says nothing about failure modes for private or non-existent accounts.

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

Conciseness4/5

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

Three short sentences with the resource named first and the cost caveat placed after the safety note. Little waste, though "returns public data and changes nothing" partially restates the readOnly annotation.

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

Completeness3/5

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

For a simple paginated list tool with a fully documented schema, the definition covers scope, safety, and cost adequately. However, there is no output schema and the description never indicates what a returned user record contains or that the response carries a nextCursor, leaving the caller to discover the result shape empirically.

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

Parameters3/5

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

With 100% schema description coverage, all three parameters (including cursor semantics and the 1–10 count bound) are already fully documented in the schema. The description adds no meaning beyond the word "paginated", so baseline 3 applies.

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

Purpose4/5

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

Names a specific verb and resource ("Get paginated users followed by the user") scoped to Instagram, which is unambiguous versus instagram_followers. It stops short of explicitly contrasting with that sibling, so an agent must infer the following/followers distinction from the wording alone.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative-tool guidance is given; nothing tells the agent to prefer instagram_followers for the inverse direction or instagram_user for profile data. Pagination is only named in the title, leaving the agent to discover the cursor workflow from the schema.

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

instagram_postInstagram: Get post details by shortcodeB
Read-onlyIdempotent
Inspect

Instagram: Get post details by shortcode. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
shortcodeYesPost shortcode, or the post or Reel link, e.g. "DA1b2C3d4E5" or "https://www.instagram.com/p/DA1b2C3d4E5/"

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so "Read-only: returns public data and changes nothing" largely restates structured data. It does add two useful pieces of context beyond annotations: that only public data is reachable (implying private accounts will not resolve) and the cost of 1 credit per request. It says nothing about error behavior or whether failed lookups still consume a credit.

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

Conciseness5/5

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

Three short sentences, front-loaded with the verb+resource, followed by safety and cost. No filler, no repetition of the title beyond the identifying clause, and the most decision-relevant constraint (cost) is near the front.

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

Completeness3/5

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

For a single-parameter read tool with full schema coverage and complete annotations, this is close to adequate, but with no output schema the description gives no hint about what "post details" includes (caption, media, metrics, timestamp) or how private/deleted posts surface. The credit-cost claim also raises an unresolved question about charging on failure.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema itself already explains that the parameter accepts a bare shortcode or a full post/Reel URL with examples. The description's "by shortcode" adds no format, URL-parsing, or validation detail beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ("Get post details by shortcode"), which is unambiguous about what is returned. It does not explicitly differentiate itself from nearby siblings like instagram_user_posts or instagram_post_comments, but the shortcode-keyed lookup is distinguishable from those by name alone.

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

Usage Guidelines2/5

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 such as instagram_user_posts (listing a user's posts) or instagram_post_comments. No prerequisites, no guidance on what to do if the shortcode is private or invalid, and no mention of whether other tools accept the same shortcode.

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

instagram_post_commentsInstagram: Get comments on a postB
Read-onlyIdempotent
Inspect

Instagram: Get comments on a post. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
shortcodeYesPost shortcode, or the post or Reel link, e.g. "DA1b2C3d4E5" or "https://www.instagram.com/p/DA1b2C3d4E5/"

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the description's 'read-only ... changes nothing' is largely redundant. It does add genuinely new behavioral context by disclosing the billing model ('1 credit per result, minimum 1 credit per request'), which annotations cannot express, but it says nothing about result ordering or pagination 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.

Conciseness4/5

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

Two short sentences, front-loaded with purpose and safely padded with the safety and cost facts. Nothing is wasted, though the title is repeated verbatim in the first clause.

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

Completeness3/5

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

For a simple three-parameter read tool with a fully described schema and explicit annotations, the description covers purpose, safety and cost. It is still thin on result shape (no output schema exists) and on any guidance about iterating pages, which an agent must derive from the cursor field.

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

Parameters3/5

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

Schema description coverage is 100%, so shortcode, count and cursor are all fully documented in the schema, including the range limit and pagination semantics. The description adds no parameter-level meaning, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('Get comments on a post') scoped to Instagram, so an agent can tell it fetches comments rather than the post itself. It does not distinguish itself from near siblings such as instagram_post or tiktok_get_video_comments, leaving the platform/scope difference to the tool name.

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

Usage Guidelines2/5

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; nothing says whether to use this rather than instagram_post or the TikTok equivalent, and no prerequisites (e.g., that the post must be public) are stated. The agent must infer usage from the tool name alone.

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

instagram_search_usersInstagram: Search usersC
Read-onlyIdempotent
Inspect

Instagram: Search users. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
queryYes

TDQS

C2.8/5.0
Behavior3/5

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

The read-only phrasing largely repeats what readOnlyHint, destructiveHint, and openWorldHint already declare, so it earns little credit. The one genuine addition beyond the annotations is the cost disclosure ('1 credit per request'), which is useful for planning, but return format and result limits are unstated.

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

Conciseness4/5

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

Three short sentences, front-loaded with the purpose and with no filler. The only waste is the opening restatement of the tool title, which duplicates the name field.

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

Completeness3/5

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

For a one-parameter search tool with no output schema this is minimally adequate, but search tools live or die on matching semantics and result shape, both of which are absent. The cost note is a nice touch but does not fill the semantic gap.

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

Parameters2/5

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

Schema description coverage is 0% for the single 'query' parameter, and the description does nothing to compensate. It never explains whether query is a username fragment, exact handle, or free-text display-name match, which is the key ambiguity an agent needs resolved before calling.

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

Purpose3/5

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

The description states the verb and resource ('Search users') on Instagram, but it is essentially the title restated with a platform prefix. It gives no detail on what is being matched (username vs. display name vs. bio) or what a result record contains, so it barely distinguishes this from the sibling instagram_user lookup.

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

Usage Guidelines2/5

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 instead of instagram_user, instagram_followers, or instagram_following. The agent must infer that search is for partial-name discovery rather than fetching a known account, with no explicit exclusions or alternatives named.

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

instagram_userInstagram: Get user profile by usernameB
Read-onlyIdempotent
Inspect

Instagram: Get user profile by username. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
usernameYesInstagram username, or the profile link, e.g. "instagram" or "https://www.instagram.com/instagram/"

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so 'changes nothing' largely restates them. The description does add genuinely new context — that only public data is returned and that each request costs 1 credit — but it is silent on what happens for private or nonexistent accounts and whether credits are still charged.

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

Conciseness5/5

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

Three short sentences, zero waste, with the core action front-loaded and constraints following. Nothing is padded or repeated for its own sake.

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

Completeness4/5

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

For a single-parameter read-only lookup this covers the essentials: what it fetches, that it is safe, and its cost. The main residual gap is that with no output schema, the description does not hint at what profile fields come back.

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

Parameters3/5

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

Schema description coverage is 100% and the single username parameter is already documented with an example covering both a bare handle and a full profile URL. The description adds no additional meaning about input format or normalization, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ('Get user profile by username'), so an agent immediately knows the operation. It does not explicitly differentiate itself from nearby siblings such as instagram_search_users or instagram_user_posts, leaving that distinction to be inferred from names.

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

Usage Guidelines2/5

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 agent must infer that instagram_search_users should be used for discovery and this tool for a known handle, which is inferable but never stated.

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

instagram_user_postsInstagram: Get paginated user postsB
Read-onlyIdempotent
Inspect

Instagram: Get paginated user posts. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesInstagram username, or the profile link, e.g. "instagram" or "https://www.instagram.com/instagram/"

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered and the 'Read-only: returns public data and changes nothing' sentence largely restates it. The genuinely additive element is the billing behavior (1 credit per result, minimum 1 per request), which is real context an agent cannot get from annotations or schema.

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

Conciseness4/5

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

Three short sentences, front-loaded with purpose, then safety, then cost — an efficient order with no filler. The read-only sentence is partially redundant with the annotations, which is the only wasted wording.

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

Completeness4/5

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

For a simple three-parameter read tool with no output schema and full schema coverage, the definition covers purpose, safety, and cost. The one gap is that return shape beyond the nextCursor hint and any rate-limit behavior are unstated, though the schema largely compensates.

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

Parameters3/5

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

Schema description coverage is 100%: username format, the 1-10 count bound, and the cursor/nextCursor paging contract are all documented in the schema. The description adds no syntax, format, or constraint detail beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Get paginated user posts') for a named platform, so an agent can distinguish it from instagram_user (profile) and instagram_post (single post) by resource scope. It stops short of explicitly naming those siblings, which keeps it from a 5.

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

Usage Guidelines2/5

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: nothing says to prefer instagram_post for a single post or instagram_user for profile data, and no prerequisites (public account, rate limits) are mentioned. The only implied usage cue is 'paginated', which the cursor parameter already conveys.

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

linkedin_get_activity_commentsFetch the comment thread on a LinkedIn postA
Read-onlyIdempotent
Inspect

Fetch the comment thread on a LinkedIn post. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
sortOrderNoComment ordering: "relevance" for LinkedIn's "Most relevant" ranking (default), "recent" for newest first.
activityUrnYesThe activity to fetch comments for — a `urn:li:activity:<id>` or the post link, e.g. "urn:li:activity:7300000000000000000" or "https://www.linkedin.com/feed/update/urn:li:activity:7300000000000000000/".

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description redundantly restates read-only but adds two genuinely new facts: results are public data, and there is a stated cost model of 1 credit per result with a 1-credit minimum per request. It does not cover authentication needs or how pagination interacts with billing on large pulls.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action and resource, then the safety profile, then the cost. Every sentence carries information; there is no filler.

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

Completeness4/5

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

For a four-parameter read tool with rich annotations and full schema coverage, the description supplies the one thing the structured fields cannot: the credit cost. Minor gap in not clarifying whether replies are included or how credits scale with the start offset on deep pagination.

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

Parameters3/5

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

Schema description coverage is 100%, with count ranges, start offset, sortOrder enum meanings, and accepted activityUrn formats all documented in the schema itself. The description adds nothing beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource: 'Fetch the comment thread on a LinkedIn post.' That is enough to distinguish it from linkedin_get_post_reactions and linkedin_get_profile_comments, which operate on different object types, though 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.

Usage Guidelines2/5

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 and names no alternative. It does not say, for example, to use linkedin_get_post_detail for the post body or linkedin_get_profile_comments for a person's comments, so the agent has to infer the boundary from the tool name and schema alone.

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

linkedin_get_company_from_urlFetch a LinkedIn company by company slugA
Read-onlyIdempotent
Inspect

Fetch a LinkedIn company by company slug. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
universalNameYesThe company's LinkedIn universal name — the slug in linkedin.com/company/<universalName> — or the company, school or showcase page link itself, e.g. "openai" or "https://www.linkedin.com/company/openai".

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so "read-only: returns public data and changes nothing" largely repeats structured data. The one genuinely new fact is the cost (1 credit per request), which annotations do not cover and is useful for budgeting, but return shape and failure modes (invalid slug, private page) go unstated.

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

Conciseness4/5

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

Three short sentences with the core action front-loaded and no filler. The middle sentence is partly redundant with the read-only annotation, which is the only minor waste.

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

Completeness4/5

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

For a single-parameter, non-destructive lookup with no output schema, the definition covers purpose, safety and cost adequately. A note on what company fields are returned or what happens for an unknown slug would make it fully complete.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already explains that universalName accepts either a bare slug or a full linkedin.com/company/ URL with examples. The description's "by company slug" adds nothing beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

"Fetch a LinkedIn company by company slug" gives a specific verb and resource, and the slug-based addressing implicitly separates it from linkedin_search_companies. It does not explicitly name the search sibling or explain how it relates to linkedin_get_posts_from_company, so differentiation is only implied.

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

Usage Guidelines3/5

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 phrase "by company slug" hints that this is for direct lookup rather than discovery, but the agent must infer that linkedin_search_companies is the path when it only has a company name.

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

linkedin_get_jobFetch a LinkedIn job posting by URLA
Read-onlyIdempotent
Inspect

Fetch a LinkedIn job posting by URL. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
jobUrlYesThe LinkedIn job posting URL, or its numeric job id, e.g. "https://www.linkedin.com/jobs/view/4417164255/" or "4417164255". A jobs search link with a job open (`?currentJobId=<id>`) works too.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower, yet the description adds a genuinely new behavioral fact: a cost of 1 credit per request. It also confirms the response is limited to public data, which is useful context. It says nothing about failure modes for invalid or private URLs.

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

Conciseness5/5

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

Three short sentences with the purpose front-loaded, followed by the safety profile and the cost. Every sentence carries distinct information and nothing is redundant.

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

Completeness4/5

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

For a single-parameter read tool with a fully documented schema, the description covers purpose, safety, and billing cost, which is close to sufficient. With no output schema, a brief note on what fields the posting payload contains would close the remaining gap.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema itself spells out accepted formats (full URL, numeric id, search link with currentJobId). The description adds no parameter detail beyond "by URL", so the baseline 3 applies.

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

Purpose4/5

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

"Fetch a LinkedIn job posting by URL" gives a specific verb and resource and the "by URL" scope implicitly separates it from linkedin_search_jobs, which discovers jobs rather than retrieving a known one. It stops short of naming that sibling explicitly, 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.

Usage Guidelines3/5

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

Usage is only implied: the agent must infer that this is the tool for a job whose URL/id is already known, and that linkedin_search_jobs is the discovery path. No when-not-to-use or alternative routing is written out.

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

linkedin_get_post_detailFetch a single LinkedIn post by URNA
Read-onlyIdempotent
Inspect

Fetch a single LinkedIn post by URN. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
activityUrnYesThe post/update to fetch — a `urn:li:activity:<id>` or the post link, e.g. "urn:li:activity:7300000000000000000".

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so "Read-only: returns public data and changes nothing" largely restates what the structured fields say. The credit cost ("Costs 1 credit per request") and the public-data-only scope are genuinely new behavioral facts the annotations do not carry. Missing is anything about failure modes for private/deleted posts or rate limiting.

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

Conciseness5/5

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

Three short sentences, zero filler, with the action and keying constraint front-loaded and the cost disclosure last. Nothing could be cut without losing information.

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

Completeness4/5

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

For a one-parameter read tool with full annotation coverage, the definition covers action, input key, safety profile, and cost. The one gap is that with no output schema, nothing tells the agent what a fetched post contains (author, text, metrics), leaving it to discover the return shape.

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

Parameters3/5

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

The single parameter is fully documented at 100% schema coverage, including the accepted urn:li:activity:<id> form and post-link alternative. The description adds only the notion of being keyed by URN, which the schema already states in more detail, so the baseline 3 applies.

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

Purpose4/5

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

"Fetch a single LinkedIn post by URN" gives a specific verb (fetch), a specific resource (a single post), and a keying constraint (by URN). This implicitly separates it from linkedin_search_posts and the list-style siblings, but the description never names those alternatives, 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.

Usage Guidelines3/5

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

The phrase "by URN" implies the tool is for when the caller already holds an activity URN or post link, which is useful selection context. However, there is no explicit statement of when to prefer this over linkedin_search_posts or linkedin_get_posts_from_profile, and no mention of what data is unavailable (e.g., comments, reactions) that would route the agent to linkedin_get_activity_comments or linkedin_get_post_reactions.

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

linkedin_get_post_reactionsList the members who reacted to a LinkedIn postA
Read-onlyIdempotent
Inspect

List the members who reacted to a LinkedIn post. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
activityUrnYesThe post/update to fetch reactions for — a `urn:li:activity:<id>` or the post link, e.g. "urn:li:activity:7300000000000000000".

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the 'read-only... changes nothing' sentence largely restates structured data. However, the credit-cost model ('1 credit per result returned, minimum 1 per request') is genuinely new behavioral context an agent needs before choosing a large `count` value, which is real added value.

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

Conciseness5/5

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

Three short sentences: purpose first, safety second, cost third. Nothing is padded or repeated, and each sentence carries distinct information.

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

Completeness3/5

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

With no output schema, the description must convey what comes back, and it only says 'returns public data' and 'members who reacted' without indicating the fields or whether reaction type is included. Cost and read-only behavior are covered, but the return shape and pagination limits remain unspecified.

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

Parameters3/5

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

Schema description coverage is 100%, so activityUrn, count and start are already fully documented with formats and ranges, making 3 the baseline. The description adds only an indirect cost implication for `count`, with no mention of how `start` interacts with the credit charge or of a practical pagination ceiling.

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

Purpose4/5

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

States a specific verb and resource ('List the members who reacted to a LinkedIn post'), which cleanly separates it from linkedin_get_activity_comments and linkedin_get_profile_reactions by resource type. It stops short of naming those siblings explicitly, so the differentiation relies on the tool name rather than the prose.

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

Usage Guidelines3/5

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

The use case is inferable from the name and description, but there is no explicit statement of when to pick this over linkedin_get_profile_reactions or linkedin_get_post_detail, and no prerequisites such as needing a valid activity URN. Usage is implied rather than guided.

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

linkedin_get_posts_from_companyList posts published by a LinkedIn companyA
Read-onlyIdempotent
Inspect

List posts published by a LinkedIn company. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
universalNameYesThe company universal name, or the company, school or showcase page link itself, e.g. "openai" or "https://www.linkedin.com/company/openai".

TDQS

A3.6/5.0
Behavior4/5

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 'Read-only: returns public data and changes nothing' mostly restates them. However, the description adds genuinely new and operationally important behavior not present in the annotations: a cost of 1 credit per result with a minimum of 1 credit per request, which directly affects how an agent should size the count parameter.

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

Conciseness4/5

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

Three short sentences with the purpose front-loaded and cost information placed immediately after, so the agent reads the important constraint before calling. The read-only sentence is partly redundant with the annotations, which is the only wasted text.

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

Completeness3/5

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

With no output schema, the description never indicates what a returned post contains (text, timestamps, engagement counts, pagination cursor behavior), and 'returns public data' is too vague to fill that gap. For an otherwise simple, well-annotated list tool with fully documented parameters, the missing return-value framing is the main shortfall.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents count (1-100, default 10), start (skip offset) and universalName (accepting either a short name or a full LinkedIn URL). The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource: 'List posts published by a LinkedIn company', which is clearly distinct from linkedin_get_posts_from_profile and linkedin_search_posts by entity type. It does not explicitly name those siblings, so it stops short of full differentiation.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the tool for pulling posts from a known company, versus linkedin_get_post_detail for a single post or linkedin_search_posts for discovery. There is no explicit when-to-use or when-not-to-use guidance, nor any stated prerequisite (e.g., needing a company identifier rather than a person).

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

linkedin_get_posts_from_profileList posts published by a LinkedIn profileA
Read-onlyIdempotent
Inspect

List posts published by a LinkedIn profile. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
publicIdYesThe member public identity, or the profile link itself, e.g. "williamhgates" or "https://www.linkedin.com/in/williamhgates".

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the "Read-only... changes nothing" sentence mostly restates them. The genuinely additive piece is the billing trait – 1 credit per result with a minimum of 1 per request – which is cost behavior no annotation conveys.

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

Conciseness5/5

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

Three short sentences, front-loaded with purpose, then safety, then cost – no filler or hedging. Each sentence contributes a distinct piece of information an agent needs before calling.

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

Completeness3/5

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 for describing what comes back, and it only says "returns public data" without indicating the post fields or the presence of nextCursor. The credit and paging mechanics are covered by the schema and billing sentence, but the return payload remains underspecified for a list tool.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented, including the example publicId format and the cursor chaining instruction. The description adds no further meaning about parameter interactions (e.g., cost scaling with count) beyond what the schema and billing sentence imply.

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

Purpose4/5

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

The description gives a specific verb and resource ("List posts published by a LinkedIn profile"), which an agent can immediately separate from linkedin_get_posts_from_company or linkedin_search_posts by the "profile" scope. It stops short of naming those alternatives explicitly, so the 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.

Usage Guidelines3/5

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

Usage is only implied: the agent can infer this is for pulling a known profile's post history, and the cost sentence hints at deliberate scoping. There is no explicit when-not clause, no mention of switching to linkedin_get_post_detail for a single post, and no guidance on choosing count or paging depth.

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

linkedin_get_profile_commentsList comments made by a LinkedIn profileA
Read-onlyIdempotent
Inspect

List comments made by a LinkedIn profile. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
publicIdYesThe member public identity, or the profile link itself, e.g. "williamhgates" or "https://www.linkedin.com/in/williamhgates".

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, destructive, and openWorld, so the safety profile is known. The description adds genuinely new behavioral facts: the operation reads public data only, and it costs 1 credit per result with a 1-credit minimum per request — a cost model an agent cannot find anywhere in the structured fields.

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

Conciseness5/5

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

Three short sentences: purpose first, then the read-only guarantee, then the pricing constraint. Nothing is redundant or buried, and each sentence contributes a distinct fact.

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

Completeness4/5

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

For a three-parameter, read-only list tool with no output schema, the description covers purpose, safety, and billing, while the schema fully documents inputs and pagination. It stops short of describing what a returned comment contains (post context, timestamps, counts), which would help an agent judge result usefulness.

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

Parameters3/5

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

Schema description coverage is 100%, with count, cursor, and publicId all self-documented including range, default, and pagination advice. The description adds no parameter-level meaning 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.

Purpose4/5

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

States a specific verb and resource ('List comments made by a LinkedIn profile'), which lets an agent distinguish it from linkedin_get_post_detail or linkedin_get_posts_from_profile. It does not, however, explicitly separate itself from the closely-named sibling linkedin_get_activity_comments, so the agent must infer the difference.

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

Usage Guidelines2/5

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 agent must infer from the name that this is for comments authored by a user rather than comments on a given post, which is a real ambiguity among the LinkedIn siblings.

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

linkedin_get_profile_from_urlFetch a LinkedIn profile by profile slugA
Read-onlyIdempotent
Inspect

Fetch a LinkedIn profile by profile slug. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
memberIdentityYesThe member's public identity — the slug in linkedin.com/in/<memberIdentity> — or the profile link itself, e.g. "williamhgates" or "https://www.linkedin.com/in/williamhgates".

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so 'read-only: returns public data and changes nothing' largely restates them. The one genuinely additive fact is 'Costs 1 credit per request', an operational cost trait that structured fields do not carry. Return shape and failure modes (e.g. private/invalid slug) remain undisclosed.

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

Conciseness5/5

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

Three short sentences, front-loaded with the purpose, then safety, then cost. Nothing is wasted and there is no redundant phrasing.

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

Completeness4/5

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

For a single-parameter, non-destructive read with full schema coverage, the definition covers purpose, safety posture and cost. The main remaining gap is that no output schema exists and 'public data' is vague about which fields come back, which slightly weakens agent planning.

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

Parameters3/5

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

Schema coverage is 100% and the parameter description already explains that either a bare slug or a full linkedin.com/in/ URL is accepted. The description only echoes 'slug' and adds no format, validation, or encoding guidance beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb (fetch) and resource (LinkedIn profile) and constrains the input to a profile slug, which naturally separates it from the sibling linkedin_get_company_from_url. It does not explicitly call out that sibling, so the differentiation is inferential 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.

Usage Guidelines3/5

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

Usage is implied by the phrase 'by profile slug' — an agent knows this applies when it already has an identity. There is no explicit guidance on when to prefer this over linkedin_search_all or the activity/post siblings, and no exclusions or prerequisites are stated.

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

linkedin_get_profile_reactionsList posts a LinkedIn member reacted toA
Read-onlyIdempotent
Inspect

List posts a LinkedIn member reacted to. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
publicIdYesThe member public identity, or the profile link itself, e.g. "williamhgates" or "https://www.linkedin.com/in/williamhgates".

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description nonetheless adds genuinely new behavioral context: the credit cost model ('1 credit per result, minimum 1 per request') and that only public data is returned, which directly affects how an agent sizes the 'count' parameter.

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

Conciseness5/5

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

Three short sentences, front-loaded with purpose, then safety, then cost. Every sentence carries information the agent needs, and there is no redundant restatement of the title or schema.

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

Completeness3/5

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

With no output schema, the description should convey what a result looks like, but it only says 'returns public data' without indicating that the response is a paginated list of post objects with a nextCursor. The cost and safety context is complete, but the return shape is a gap for a tool with no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, with all three parameters fully documented, including the cursor pagination contract and publicId format examples. The description adds nothing about parameter meaning 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.

Purpose4/5

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

The description states a specific verb and resource: 'List posts a LinkedIn member reacted to.' This is distinguishable from siblings like linkedin_get_posts_from_profile (authored posts) and linkedin_get_profile_comments (comments), though it does not explicitly name those alternatives. An agent can still infer the difference from the wording.

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

Usage Guidelines3/5

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

Usage is implied by the name and description but never stated: there is no explicit 'use this when you need reactions rather than authored posts or comments' guidance, and no mention of prerequisites such as whether the target profile must be public. Adequate for a simple lookup, but the routing logic against sibling tools 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.

linkedin_search_allGlobal LinkedIn searchC
Read-onlyIdempotent
Inspect

Global LinkedIn search. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".

TDQS

C2.8/5.0
Behavior3/5

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

The read-only/idempotent/non-destructive behavior is already fully declared by the annotations, so "Read-only: returns public data and changes nothing" is largely redundant. The credit pricing (1 credit per result, minimum 1 per request) is genuinely new and useful behavioral context not present in the annotations. However, nothing is said about pagination behavior, result caps beyond the schema, or rate limiting.

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

Conciseness4/5

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

Three short sentences with no filler, and the read-only guarantee is front-loaded. It is efficient, though the middle sentence duplicates the annotations rather than spending those words on scope.

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

Completeness2/5

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

For a tool named "search_all" with no output schema, the description must explain what entity types come back, and it does not. The agent is left guessing whether results are profiles, companies, posts or a heterogeneous mix. The pricing note is helpful, but the core scope gap makes the definition incomplete for a 3-parameter cross-entity search.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents keyword, count (1–10, default 10) and start (skip offset). The description adds no meaning beyond that – no guidance on keyword syntax, boolean operators, or how start interacts with the count cap of 10. Baseline 3 applies when the schema carries the load.

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

Purpose3/5

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

"Global LinkedIn search" names a verb and platform but never states what is being searched or returned. With siblings like linkedin_search_companies, linkedin_search_jobs, linkedin_search_posts and linkedin_search_schools, the agent cannot tell whether this returns people, posts, or a mix of everything. The scope word "global" hints at breadth but does not resolve the ambiguity.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no alternative named. Nothing tells the agent whether to prefer this over the many entity-specific LinkedIn search tools, or what query shape suits it. Usage is only implied by the word "search".

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

linkedin_search_companiesSearch LinkedIn companiesB
Read-onlyIdempotent
Inspect

Search LinkedIn companies. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered; the description still adds real value by disclosing the billing model (1 credit per result, minimum 1 credit per request). It does not disclose pagination behavior via `start` or whether results repeat across pages.

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

Conciseness4/5

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

Three short, front-loaded sentences with no filler, and the cost constraint is surfaced early. The opening sentence merely restates the title, which is the only wasted text.

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

Completeness3/5

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

For a simple three-parameter search with full schema coverage and complete annotations, the description covers purpose, safety and cost, which is nearly enough. It stops short on pagination/paging limits and on how results differ from sibling search tools, which an agent would need to sequence calls correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so keyword, count (1–10, default 10) and start are already documented in the schema; baseline is 3. The description adds only the indirect implication that credit cost scales with `count`, and nothing about search syntax or paging semantics beyond the schema.

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

Purpose4/5

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

States a specific verb+resource ("Search LinkedIn companies") that an agent can distinguish from read-oriented siblings like linkedin_get_company_from_url. It does not explicitly name the near-neighbor alternatives (search_all, get_company_from_url), so it falls just 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.

Usage Guidelines2/5

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

The description offers no when-to-use or when-not-to-use guidance: nothing says when to choose this over linkedin_search_all (which likely also returns companies) or over getting a specific company by URL. Usage is only implied by the tool name and the keyword parameter.

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

linkedin_search_coursesSearch LinkedIn coursesA
Read-onlyIdempotent
Inspect

Search LinkedIn courses. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered and restating "read-only" earns little. The description does add genuinely new behavior: a credit cost of 1 per result with a 1-credit minimum per request, which affects how an agent should set the count parameter. It stops short of describing pagination or result contents.

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

Conciseness5/5

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

Three short sentences with zero redundancy: purpose first, then safety, then cost. Each sentence carries distinct information an agent needs before calling the tool.

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

Completeness4/5

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

For a three-parameter read-only search with full schema coverage and rich annotations, the description covers purpose, safety and a cost model that the structured fields do not express. The remaining gap is minor: it does not say what a returned course record looks like or whether the credit cost interacts with the start offset for pagination.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter (keyword, count, start) is documented with type, bounds and an example in the schema itself. The description adds no meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

"Search LinkedIn courses" gives a specific verb plus a specific resource, so the agent can tell it apart from linkedin_search_jobs or linkedin_search_companies by subject matter. It does not explicitly differentiate itself from the broader linkedin_search_all, which is the main ambiguity in a dense sibling namespace.

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

Usage Guidelines2/5

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

The description states no condition for choosing this tool over linkedin_search_all or any other linkedin_search_* sibling, and offers no exclusions or prerequisites. Usage is only implied by the word "courses".

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

linkedin_search_eventsSearch LinkedIn eventsA
Read-onlyIdempotent
Inspect

Search LinkedIn events. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, open-world, and non-destructive behavior, so the description's read-only sentence is largely redundant. What it genuinely adds is the cost model — 1 credit per result with a 1-credit minimum per request — which is operationally important information absent from any structured field.

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

Conciseness5/5

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

Three short sentences, purpose first, then safety, then cost — nothing extraneous and no wasted framing. The read-only sentence duplicates an annotation, but it costs only one short clause and does not bloat the definition.

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

Completeness4/5

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

For a simple three-parameter search with full schema coverage and no output schema, the description covers purpose, safety, and billing, which is most of what an agent needs. It omits any hint about what an event result contains or how pagination via start behaves, leaving a small gap.

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

Parameters3/5

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

Schema description coverage is 100%, so keyword, count (1–10, default 10), and start are already fully documented; the baseline of 3 applies. The description adds no parameter-level meaning beyond noting that credits scale with results returned, which indirectly bears on choosing count.

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

Purpose4/5

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

The description names a specific verb and resource ("Search LinkedIn events"), which is enough to separate it from linkedin_search_posts, linkedin_search_jobs, and linkedin_search_all by resource type. It stops short of explicitly naming a sibling or contrasting scope, so it sits below a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusion of alternatives such as linkedin_search_all or linkedin_search_companies, and no stated prerequisite (e.g., that a keyword is required and results are capped at 10). An agent must infer the routing decision and the keyword-only interface entirely from the schema.

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

linkedin_search_groupsSearch LinkedIn groupsA
Read-onlyIdempotent
Inspect

Search LinkedIn groups. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the 'read-only, changes nothing' sentence largely restates structured data. The genuinely additive part is the billing behavior — 1 credit per result returned with a 1-credit minimum per request — which is a quota trait unavailable in any structured field and directly relevant to choosing a small count.

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

Conciseness5/5

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

Three short sentences with zero filler, and the identity statement is front-loaded ahead of the safety and cost clauses. Nothing repeats and no sentence is wasted.

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

Completeness3/5

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

For a simple read-only search with fully documented parameters and rich annotations, the definition is callable and the cost model is a useful addition. It stops short on return shape (no output schema exists, yet the agent is told nothing about the fields of a group result) and on pagination expectations when start is combined with the count cap of 10.

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

Parameters3/5

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

Schema description coverage is 100%; keyword, count (1–10, default 10) and start are all documented with examples and bounds in the schema itself. The description adds no syntax, format or interaction detail (e.g., how start interacts with count for pagination), so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Search LinkedIn groups'), which cleanly separates it from the many sibling search tools (linkedin_search_companies, linkedin_search_jobs, linkedin_search_posts, etc.) by resource noun. It does not, however, say anything about what a 'group' result contains or how this differs from a broader linkedin_search_all call.

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

Usage Guidelines2/5

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

There is no when-to-use guidance: nothing tells the agent when to pick groups over companies/schools/posts, nor when linkedin_search_all would be preferable. The only conditional information is the credit cost, which is pricing rather than selection guidance.

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

linkedin_search_jobsSearch LinkedIn jobsA
Read-onlyIdempotent
Inspect

Search LinkedIn jobs. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
jobTypeNoRestrict to jobs with this employment type.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
locationNoGeographic location to filter jobs by, e.g. "San Francisco Bay Area", "India", "Remote".
datePostedNoRestrict to posts published within a recent window.
workplaceTypeNoRestrict to jobs with this workplace arrangement.
experienceLevelNoRestrict to jobs at this seniority level.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description still adds genuinely new information the annotations lack: per-result credit cost with a one-credit minimum, which matters for planning request volume and the 'count' value. It adds little about result shape or pagination, but the billing disclosure is a real contribution.

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

Conciseness5/5

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

Two short sentences, front-loaded with the operation and followed immediately by safety and cost. Nothing is padded and no sentence is wasted.

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

Completeness4/5

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

With eight well-described parameters, rich annotations, and no output schema, the definition covers what an agent needs to call it and to anticipate cost. The only gap is that result contents and pagination expectations are not described, though 'start' in the schema partially implies paging.

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

Parameters3/5

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

Schema description coverage is 100% and all eight parameters, including four enums, are documented inline with examples, so the schema does the heavy lifting. The description adds no extra meaning about keyword semantics, filter combination behavior, or how 'count' interacts with 'start' for paging.

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

Purpose4/5

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

The description states a specific verb and resource ('Search LinkedIn jobs'), so an agent knows exactly what operation this performs. It does not, however, distinguish the tool from nearby siblings such as linkedin_get_job (single job lookup) or linkedin_search_all (broad search), which a stronger definition would name explicitly.

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

Usage Guidelines2/5

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 never says to prefer this over linkedin_get_job when a job ID is already known, nor how it relates to linkedin_search_all, leaving the agent to infer routing from the tool name alone.

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

linkedin_search_postsSearch LinkedIn postsA
Read-onlyIdempotent
Inspect

Search LinkedIn posts. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".
sortOrderNoResult ordering: "date_posted" for newest-first, "relevance" for LinkedIn ranking.
datePostedNoRestrict to posts published within a recent window.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the read-only sentence is largely confirmation. The genuinely additive disclosure is the pricing model — 1 credit per result with a 1-credit minimum per request — which is cost information an agent cannot get from any structured field and which affects how it should size the `count` parameter.

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

Conciseness4/5

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

Three short sentences, front-loaded with purpose, then safety, then cost — nothing is buried. The middle sentence restates the readOnlyHint annotation almost verbatim, which is minor redundancy but not wasteful enough to undercut the structure.

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

Completeness4/5

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

With five fully documented parameters, no output schema, and annotations covering the safety profile, the description supplies the one missing operational fact: cost per request. It does not describe what a returned post contains or how pagination via `start` behaves, but there is no output schema to lean on, leaving a small gap.

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

Parameters3/5

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

Schema description coverage is 100%, with every parameter including `count`, `start`, `sortOrder`, `datePosted`, and `keyword` documented inline, including enums and ranges. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description gives a specific verb and resource ("Search LinkedIn posts"), so an agent immediately knows the operation. It does not, however, distinguish this tool from close siblings such as linkedin_search_all, linkedin_get_posts_from_company, or linkedin_get_posts_from_profile, which could also surface posts.

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

Usage Guidelines2/5

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

Usage is only implied by the verb "Search" — there is no explicit statement of when this keyword-based post search is preferred over linkedin_search_all or the profile/company post-listing tools. No exclusions, prerequisites, or alternative names are provided.

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

linkedin_search_productsSearch LinkedIn productsB
Read-onlyIdempotent
Inspect

Search LinkedIn products. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the restatement "returns public data and changes nothing" adds little. However, the credit cost disclosure (1 credit per result, minimum 1 credit per request) is genuinely useful behavioral context not present in any structured field, and it directly affects how an agent should choose count values. That single addition lifts this above baseline.

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

Conciseness5/5

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

Three short sentences, front-loaded with purpose then safety then cost. Nothing is padded; every clause either orients the agent or constrains behavior.

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

Completeness3/5

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

For a simple three-parameter search tool with no output schema, the safety and cost framing is adequate. The gaps are what "products" actually denotes and any hint about result shape or pagination semantics of start; without them the agent knows the price but not the payload.

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

Parameters3/5

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

Schema description coverage is 100%: keyword, count (1–10, default 10), and start are all documented with examples and bounds. The description adds no meaning beyond the schema – notably it never connects its per-result credit cost to the count parameter, which would have been a valuable linkage. Baseline 3 applies.

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

Purpose3/5

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

States a verb and resource ("Search LinkedIn products"), but "products" is ambiguous in a LinkedIn context – it could mean company product pages, LinkedIn's own product catalog, or generic results. It offers no differentiation from close siblings like linkedin_search_companies, linkedin_search_services, or linkedin_search_all, so an agent cannot confidently choose it on purpose alone.

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

Usage Guidelines2/5

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

No when-to-use guidance and no mention of alternatives, despite at least ten linkedin_search_* siblings. The reader must infer from the name alone whether this overlaps with linkedin_search_all or the entity-specific searches.

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

linkedin_search_schoolsSearch LinkedIn schoolsA
Read-onlyIdempotent
Inspect

Search LinkedIn schools. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".

TDQS

A3.6/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral information not in the annotations: it returns public data only and consumes 1 credit per result with a minimum of 1 credit per request, which matters for cost-aware agents. It stops short of describing result shape or pagination interaction with 'start'.

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

Conciseness4/5

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

Three short sentences, front-loaded with the purpose, followed by safety and pricing. Nothing is wasted, though the read-only claim partially restates what the annotations already say.

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

Completeness5/5

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

There is no output schema, so the description cannot be expected to explain return values in depth. Combined with the fully documented three-parameter schema and complete annotations, the credit-cost disclosure fills the main remaining gap an agent would need before calling it.

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

Parameters3/5

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

Schema description coverage is 100% and each of keyword, count and start is documented in the schema itself. The description adds no parameter-level meaning 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.

Purpose4/5

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

The description states a specific verb and resource ('Search LinkedIn schools'), which an agent can distinguish from siblings like linkedin_search_companies or linkedin_search_jobs by the resource noun alone. It is clear but does not explicitly contrast itself with those siblings.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of when not to use it, and no reference to the many adjacent search tools (linkedin_search_all, linkedin_search_companies, linkedin_search_courses). The agent must infer selection purely from the noun 'schools'.

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

linkedin_search_servicesSearch LinkedIn servicesB
Read-onlyIdempotent
Inspect

Search LinkedIn services. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
startNoNumber of results to skip. Defaults to 0.
keywordYesKeyword(s) to search LinkedIn for, e.g. "openai", "software engineer", "fintech".

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new operational context: public-data-only results and a credit cost of 1 per result with a 1-credit minimum per request. It stops short of describing pagination behavior or result shape, but this is solid supplemental disclosure.

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

Conciseness4/5

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

Three short sentences, front-loaded with the purpose and then the behavioral facts. "Returns public data and changes nothing" mildly duplicates readOnlyHint, but nothing is bloated and no sentence is wasted on filler.

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

Completeness3/5

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

The credit-cost disclosure is important for a metered search tool, and annotations cover the safety profile. However, with no output schema the description says nothing about what a result contains, and it omits any differentiation from the many sibling LinkedIn search endpoints. Adequate but with clear gaps for a tool in a crowded family.

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

Parameters3/5

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

Schema description coverage is 100%; keyword, count (1-10, default 10) and start (offset) are fully documented in the schema. The description's "1 credit per result returned" implicitly ties cost to the count parameter, which is a small value add, but it is never explicitly connected to count or to how repeated `start` pages are billed.

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

Purpose3/5

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

The first sentence, "Search LinkedIn services," essentially restates the tool name and title without defining what a LinkedIn "service" is. With siblings like linkedin_search_companies, linkedin_search_products, and linkedin_search_jobs, the agent gets no basis for distinguishing this resource from those. The verb and surface are clear, but the object is vague.

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

Usage Guidelines2/5

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 named, despite nine sibling linkedin_search_* tools that plausibly overlap. The agent must infer selection from the tool name alone. Nothing is misleading, but no routing help is given.

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

reddit_get_commentFetch a single Reddit comment with its threadB
Read-onlyIdempotent
Inspect

Fetch a single Reddit comment with its thread. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoOrdering of the replies. Defaults to the subreddit's suggested sort, usually "best".
permalinkYesPermalink of the Reddit comment to fetch — an absolute URL or a site-relative path, e.g. "/r/programming/comments/1u3a0cd/title/labc123/".

TDQS

B3.2/5.0
Behavior3/5

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 "read-only: returns public data and changes nothing" mostly restates structured data. The credit cost ("Costs 1 credit per request") is genuine added context not present in annotations. What "with its thread" actually returns — parent post, ancestor comments, replies — is never disclosed, and there is no output schema to fill that gap.

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

Conciseness4/5

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

Three short sentences, front-loaded with the action and followed by the two facts an agent most needs (safety and cost). The clause "changes nothing" is redundant with readOnlyHint, but the whole description is tight and wastes little.

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

Completeness3/5

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 explaining what comes back, and "with its thread" is too vague to tell an agent whether it gets the parent post, the ancestor chain, or replies. Cost and read-only semantics are covered, but the shape of the result is not.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains both the permalink formats (absolute URL or site-relative path) and the sort enum plus its default. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

Names a specific verb and resource ("Fetch a single Reddit comment with its thread"), which separates it from list/search siblings like reddit_list_subreddit_comments and reddit_search_comments. It stops short of explicitly distinguishing itself from reddit_get_post, so the boundary between the two 'get' tools is left implicit.

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

Usage Guidelines2/5

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, and no alternatives are named. An agent holding a comment permalink can infer the use case, but nothing tells it whether to reach for reddit_get_comment versus reddit_get_post or reddit_search_comments.

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

reddit_get_postFetch a Reddit post with its commentsB
Read-onlyIdempotent
Inspect

Fetch a Reddit post with its comments. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
urlYesLink to the Reddit post to fetch (with or without query), e.g. "https://www.reddit.com/r/programming/comments/1u3a0cd/title/". A redd.it short link works too.
sortNoComment ordering. Defaults to the subreddit's suggested sort, usually "best".

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the sentence 'Read-only: returns public data and changes nothing' largely restates structured data and earns little credit. The one genuinely new piece of behavioral information is the cost model — 'Costs 1 credit per request' — which no annotation or schema field conveys and which matters for an agent deciding whether to call repeatedly.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core action, with no filler or hedging. The second sentence is largely redundant against the annotations, which is the only thing keeping it from a 5.

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

Completeness3/5

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 is the only place an agent could learn what comes back — yet it says nothing about the shape of the response, such as which post fields are returned, how deeply comments are nested, or whether comment pagination/truncation occurs. For a two-parameter read tool this is an acceptable but noticeable gap.

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

Parameters3/5

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

Schema description coverage is 100%, with both url (including example formats and redd.it short-link support) and sort (enum plus default behavior) fully documented in the schema. The description adds no additional meaning about parameters, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource — 'Fetch a Reddit post with its comments' — which is clearer than the bare tool name and signals that comments come bundled. It does not, however, explicitly distinguish itself from nearby siblings like reddit_get_comment or reddit_list_subreddit_posts, so the agent must infer the boundary from 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.

Usage Guidelines3/5

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

Usage is only implied: the required url parameter combined with 'Fetch a Reddit post' suggests this is the tool for retrieving one specific post when you already have its link. There is no explicit when-to-use versus reddit_get_comment, reddit_search_posts, or reddit_get_subreddit, and no stated preconditions or failure cases (private, deleted, or quarantined 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: Fetch subreddit metadataB
Read-onlyIdempotent
Inspect

Reddit: Fetch subreddit metadata. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
subredditYesSubreddit name, with or without the "r/" prefix, or the subreddit link, e.g. "programming" or "https://www.reddit.com/r/programming/".

TDQS

B3.2/5.0
Behavior3/5

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 'Read-only: returns public data and changes nothing' largely restates structured data. The one genuinely additive fact is the cost model ('Costs 1 credit per request'), which is not encoded anywhere else. Missing: behavior on nonexistent/private/banned subreddits and any rate-limit context.

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

Conciseness4/5

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

Three short sentences with the purpose front-loaded and no filler. The middle sentence duplicates the readOnly/idempotent annotations, which is mild waste given the structured fields already say it.

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

Completeness3/5

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

There is no output schema, yet the description never indicates what 'metadata' includes (subscriber count, description, creation date, NSFW flag, etc.), leaving the agent unable to predict the return shape. The credit cost and read-only nature are covered, so it is adequate but with a clear gap for a lookup tool whose payload is undefined.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter's description already covers the 'r/' prefix and full-URL forms with concrete examples. The tool description adds no meaning 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.

Purpose4/5

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

States a specific verb and resource (fetch subreddit metadata), which is distinguishable from the sibling list/search tools such as reddit_search_communities and reddit_list_subreddit_posts. It does not explicitly name which sibling to use instead when the goal is discovery rather than lookup, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

The description contains no when-to-use or when-not-to-use guidance. It never says to call this after resolving a name via reddit_search_communities, nor does it clarify the boundary with reddit_list_subreddit_posts or reddit_get_post. Usage is only inferable 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_userFetch a Reddit user profileA
Read-onlyIdempotent
Inspect

Fetch a Reddit user profile. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
usernameYesReddit username, with or without the "u/" prefix, or the profile link, e.g. "spez" or "https://www.reddit.com/user/spez/".

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, so the description's 'read-only, changes nothing' mostly restates that. However, it adds genuinely new information not present in structured fields: the request costs 1 credit, and the data returned is public. That credit cost is the key behavioral trait an agent needs for budgeting.

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

Conciseness5/5

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

Two short sentences with zero filler, front-loaded with the operation and followed by the safety and cost facts. Nothing could be removed without losing information.

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

Completeness4/5

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

For a one-parameter, read-only fetch with no output schema and rich annotations, the description covers what matters: the operation, safety profile, data sensitivity, and credit cost. It lacks any note on failure behavior for unknown or suspended users, which is the only meaningful gap.

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

Parameters3/5

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

Schema description coverage is 100% and the single username parameter is already documented with accepted formats (bare name, 'u/' prefix, or full profile URL). The description adds no extra meaning about that parameter, so the baseline 3 applies.

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

Purpose4/5

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

The description opens with a specific verb and resource ('Fetch a Reddit user profile'), so an agent immediately knows the operation. It does not explicitly distinguish itself from siblings like reddit_list_user_posts or reddit_search_users, but the verb-noun combination is specific enough that confusion is unlikely.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (e.g., needing an exact username), and no routing to alternatives such as reddit_search_users for discovering a username. Usage is only implied by the tool name and title.

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

reddit_list_subreddit_commentsReddit: List recent comments in a subredditA
Read-onlyIdempotent
Inspect

Reddit: List recent comments in a subreddit. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
subredditYesSubreddit name, with or without the "r/" prefix, or the subreddit link, e.g. "programming" or "https://www.reddit.com/r/programming/".

TDQS

A3.8/5.0
Behavior4/5

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

The read-only and non-mutating statements largely repeat the annotations. However, the description adds useful operational context beyond them: the results are public data and each request costs 1 credit.

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

Conciseness5/5

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

Three short sentences front-load the purpose and then convey data scope, safety, and cost. The definition is compact and easy to scan without unnecessary parameter recitation.

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

Completeness4/5

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

For a simple three-parameter read-only listing tool, the description, annotations, and fully documented schema provide enough information to invoke it correctly. Explicit sibling routing and some indication of the response shape would improve completeness, particularly because no output schema is supplied.

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

Parameters3/5

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

The schema fully documents all three parameters, including accepted subreddit formats, the count range and default, and cursor-based pagination. The description adds no parameter meaning beyond that coverage, so the baseline score applies.

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

Purpose4/5

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

The opening sentence specifies the action, resource, and scope: listing recent comments within a subreddit. This broadly separates it from post and user-comment tools, but it does not explicitly distinguish it from close alternatives such as reddit_search_comments or reddit_list_user_comments.

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

Usage Guidelines3/5

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

The subreddit and recency scope imply when the tool is useful, but there is no explicit when-to-use or when-not-to-use guidance. The agent must infer when to choose this tool rather than searching comments or listing a user's comments.

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

reddit_list_subreddit_postsReddit: List posts in a subreddit feedB
Read-onlyIdempotent
Inspect

Reddit: List posts in a subreddit feed. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoFeed ordering. Defaults to "hot".
timeNoRestrict results to a recent window. Defaults to "all".
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
subredditYesSubreddit name, with or without the "r/" prefix, or the subreddit link, e.g. "programming" or "https://www.reddit.com/r/programming/".

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, and the sentence "Read-only: returns public data and changes nothing" largely restates them. The genuinely additive piece is "Costs 1 credit per request," which is real behavioral context not captured anywhere in structured fields; nothing is said about rate limits, auth, or 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.

Conciseness3/5

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

Three very short sentences are front-loaded and waste little, but the title is repeated verbatim as the first sentence and the read-only line duplicates annotation data, so roughly two of the three sentences add little that structured fields don't already convey.

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

Completeness3/5

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

With no output schema, the description should hint at what comes back (post objects plus a nextCursor for paging) since the cursor parameter only makes sense in that context. Annotations cover the safety profile and the schema covers inputs, so the tool is usable, but the return-side and cost-per-page implications are left unstated.

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

Parameters3/5

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

Schema description coverage is 100%, so sort, time, count, cursor and subreddit are all documented with enums, defaults and bounds in the schema itself. The description adds no meaning beyond that, making the baseline 3 correct.

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

Purpose4/5

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

"List posts in a subreddit feed" gives a specific verb and resource, and the subreddit-scoped nature distinguishes it in practice from reddit_search_posts and reddit_list_user_posts. It never names those siblings, though, so the differentiation must be inferred from the tool name 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.

Usage Guidelines3/5

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

The scope implies when to reach for this tool (enumerating a community's feed rather than searching or fetching a single post), but there is no explicit when-to-use, when-not-to-use, or pointer to reddit_search_posts / reddit_get_subreddit. The credit-cost note gives a budgeting cue but not behavioral routing guidance.

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

reddit_list_user_commentsList a Reddit user's commentsB
Read-onlyIdempotent
Inspect

List a Reddit user's comments. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoResult ordering. Defaults to "new".
timeNoTime window for the "top" and "controversial" sorts. Defaults to "all".
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesReddit username, with or without the "u/" prefix, or the profile link, e.g. "spez" or "https://www.reddit.com/user/spez/".

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the description does not need to re-establish safety. It does add genuinely useful behavior beyond them: an empty list is returned when the user has no tweets, and pagination is cursor-driven. It omits permission/auth requirements, rate limits, and whether deleted or protected accounts alter results.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core purpose and free of filler. Minor structural weakness: the empty-result and pagination notes are appended as separate fragments rather than consolidated, but nothing is redundant.

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

Completeness2/5

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

The description never says how the 'specific user' is identified, and the schema exposes no visible parameters, so an agent has no documented way to bind the user or the cursor it is told to use. For a list/pagination tool with no output schema, this leaves the calling contract underspecified.

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

Parameters4/5

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

With no documented parameters in the schema, the 4 baseline applies and the description does not need to explain parameter meaning. It actually gives one piece of parameter-adjacent guidance by tying `cursor` to pagination. It adds no clarification of how the target user is identified, which is the one detail an agent would want.

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

Purpose4/5

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

The description gives a specific verb and resource: 'Get tweets posted by a specific user.' That is clearer than the bare name and distinguishes it from reply/media siblings by scoping to posted tweets. It stops short of naming an alternative tool, so it lands at 4 rather than 5.

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

Usage Guidelines2/5

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

The only usage instruction is 'Use `cursor` to paginate through results,' which is mechanical paging advice, not routing guidance. Nothing tells the agent when to prefer this over x_search, x_get_user_replies, or x_get_user_media, and there are no stated prerequisites.

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

reddit_list_user_overviewList a Reddit user's mixed post/comment activityA
Read-onlyIdempotent
Inspect

List a Reddit user's mixed post/comment activity. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoResult ordering. Defaults to "new".
timeNoTime window for the "top" and "controversial" sorts. Defaults to "all".
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesReddit username, with or without the "u/" prefix, or the profile link, e.g. "spez" or "https://www.reddit.com/user/spez/".

TDQS

A3.5/5.0
Behavior3/5

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 sentence 'Read-only: returns public data and changes nothing' largely restates structured data. The one genuinely additive detail is the per-request credit cost. Nothing is said about pagination behavior despite a cursor parameter, or about how posts and comments are interleaved in the result.

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

Conciseness4/5

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

Two short sentences, front-loaded with purpose before the safety and cost notes. Efficient overall, but the read-only clause duplicates the annotation profile and could have been spent on pagination or result-shape information instead.

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

Completeness4/5

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

For a simple five-parameter listing tool with strong annotations and no output schema, the description is nearly complete. The remaining gap is that it never mentions the cursor-based pagination exposed in the schema or what a result item contains, which matters for a paged mixed feed.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters including sort, time, count and cursor are fully documented in the schema with enums and defaults. The description adds no parameter meaning beyond that, which is the expected baseline 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.

Purpose4/5

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

States a specific verb and resource: lists a Reddit user's mixed post/comment activity. The word 'mixed' implicitly distinguishes it from siblings reddit_list_user_posts and reddit_list_user_comments, which each return one content type, though 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.

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the right tool when it needs both posts and comments for a user in one call rather than the type-specific siblings. There is no explicit when-to-use statement, no exclusion, and no mention of how it relates to reddit_get_user or reddit_search_all.

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

reddit_list_user_postsList a Reddit user's postsB
Read-onlyIdempotent
Inspect

List a Reddit user's posts. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoResult ordering. Defaults to "new".
timeNoTime window for the "top" and "controversial" sorts. Defaults to "all".
countYesNumber of results to return (1–10). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
usernameYesReddit username, with or without the "u/" prefix, or the profile link, e.g. "spez" or "https://www.reddit.com/user/spez/".

TDQS

B3.2/5.0
Behavior3/5

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

The read-only/no-mutation claim merely restates readOnlyHint and destructiveHint=false, earning no credit. The genuinely new disclosure is "Costs 1 credit per request," which is real behavioral context absent from the annotations. Nothing is said about pagination limits or rate limiting beyond the per-request cost.

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

Conciseness4/5

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

Three short sentences, front-loaded with purpose, with no filler or hedging. The read-only sentence is largely redundant with the annotations, which is the only waste.

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

Completeness3/5

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

For a simple list tool with full schema coverage and complete annotations, the essentials are present, and the credit cost is a useful addition. However, with no output schema there is no statement of what post fields come back, and pagination behavior via cursor is left entirely to the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (username formats, count bounds, sort/time enums, cursor) is already fully documented in the schema. The description adds no parameter meaning beyond that, which is the expected baseline of 3 when the schema carries the load.

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

Purpose4/5

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

States a specific verb and resource ("List a Reddit user's posts"), which is enough to separate it from reddit_list_user_comments and reddit_get_user by resource semantics. It does not explicitly name or contrast with any sibling, 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.

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative routing is given. An agent must infer on its own whether to pick this versus reddit_list_user_overview, reddit_list_user_comments, or 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_search_allSearch Reddit across posts, communities and usersA
Read-onlyIdempotent
Inspect

Search Reddit across posts, communities and users. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoResult ordering. Defaults to "relevance".
timeNoRestrict results to a recent window. Defaults to "all".
queryYesThe text to search Reddit for, e.g. "openai", "best keyboard".
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
subredditNoRestrict the search to a single subreddit (name with or without the "r/" prefix). Only applies to post search.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the restated "Read-only: returns public data and changes nothing" is largely redundant. The credit-cost disclosure ("1 credit per request") is genuine added context not present in any structured field, which lifts this above the annotation-covered baseline.

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

Conciseness5/5

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

Two short sentences, front-loaded with purpose, then safety, then cost. No filler or repeated phrasing beyond the mild redundancy of restating read-only.

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

Completeness4/5

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

For a five-parameter search with full schema coverage and rich annotations, the description covers purpose, safety and cost adequately. The main omission is the absence of any output schema and no hint at result shape or how the three entity types are returned/paginated, though cursor pagination is documented in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, including enum values, defaults and the note that subreddit only applies to post search, so the schema does all the parameter work. The description adds no parameter meaning of its own; baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ("Search Reddit") and states its scope across posts, communities and users. However, it never distinguishes itself from the closely named siblings reddit_search_posts, reddit_search_comments, reddit_search_communities and reddit_search_users, which an agent must choose between.

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

Usage Guidelines3/5

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

The phrase "across posts, communities and users" implies a broad, cross-entity search versus the narrower sibling searches, but the description never says when to pick this over those alternatives or how results across entity types are combined. Usage guidance is only inferable, not stated.

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

reddit_search_commentsSearch Reddit commentsA
Read-onlyIdempotent
Inspect

Search Reddit comments. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoResult ordering. Defaults to "relevance".
timeNoRestrict results to a recent window. Defaults to "all".
queryYesThe text to search Reddit for, e.g. "openai", "best keyboard".
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
subredditNoRestrict the search to a single subreddit (name with or without the "r/" prefix). Only applies to post search.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint=false, so "Read-only: returns public data and changes nothing" largely restates structured data. The credit-per-request cost note is genuinely useful context not present in annotations, but the description says nothing about pagination behavior or result limits despite exposing a cursor parameter.

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

Conciseness4/5

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

Three short front-loaded sentences with no waste, and the core verb+resource leads. The middle sentence slightly duplicates what the annotations already declare, keeping it from a 5.

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

Completeness3/5

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

Adequate for a simple search tool with full schema coverage and rich annotations, but incomplete for a paging-capable search: nothing explains result volume, cursor semantics, or how comment results differ from post results. The subreddit parameter's own note that it only applies to post search is left unaddressed by the description.

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

Parameters5/5

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

Baseline is 3 given 100% schema coverage, but the description earns above that by flagging the cost per request, which affects how an agent should use the cursor and query broadly. Additionally, the schema itself carries rich enum and default documentation that the description need not repeat.

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

Purpose4/5

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

States a specific verb+resource ("Search Reddit comments") that clearly distinguishes it from reddit_get_comment (single comment fetch) and reddit_list_subreddit_comments (enumeration). However, it does not explicitly name any sibling as an alternative, so differentiation is inferred from names alone.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, no exclusions, and no routing to alternatives such as reddit_search_posts or reddit_search_all. An agent must infer from the tool name that this searches comment bodies rather than post titles.

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

reddit_search_communitiesSearch Reddit communitiesB
Read-onlyIdempotent
Inspect

Search Reddit communities. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoResult ordering. Defaults to "relevance".
timeNoRestrict results to a recent window. Defaults to "all".
queryYesThe text to search Reddit for, e.g. "openai", "best keyboard".
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
subredditNoRestrict the search to a single subreddit (name with or without the "r/" prefix). Only applies to post search.

TDQS

B3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the sentence 'Read-only: returns public data and changes nothing' largely duplicates structured metadata. The one genuinely additive fact is the credit cost ('Costs 1 credit per request'), which is not expressible in annotations, but nothing is said about result limits, ranking, or 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.

Conciseness4/5

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

Three short sentences, front-loaded with purpose and then behavior and cost, with no filler. The opening sentence is redundant with the title rather than wasteful in length.

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

Completeness4/5

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

With a 100%-documented schema and annotations covering the safety profile, the description is complete enough for an agent to call the tool correctly. It lacks any note about the cursor-based pagination flow or what a community result contains, but no output schema exists to lean on, leaving a modest gap.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters, including the sort/time enums and the cursor, are already documented in the schema, which sets the baseline at 3. The description contributes no additional meaning about how query text is matched or how relevance sorting works.

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

Purpose3/5

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

The sentence 'Search Reddit communities' gives a verb and a resource but is effectively a restatement of the title, so it adds little. It never clarifies that 'communities' means subreddits, nor distinguishes itself from reddit_search_all, reddit_search_posts, or reddit_search_users, which sit right beside it in the sibling list.

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

Usage Guidelines2/5

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 named alternative. An agent must infer on its own that reddit_search_all is the broader tool and that reddit_search_posts searches content rather than communities.

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

reddit_search_postsSearch Reddit postsB
Read-onlyIdempotent
Inspect

Search Reddit posts. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoResult ordering. Defaults to "relevance".
timeNoRestrict results to a recent window. Defaults to "all".
queryYesThe text to search Reddit for, e.g. "openai", "best keyboard".
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
subredditNoRestrict the search to a single subreddit (name with or without the "r/" prefix). Only applies to post search.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint and openWorldHint, so "read-only: returns public data and changes nothing" largely restates structured data. The genuinely additive fact is the per-request credit cost, which is real decision-relevant context but is the only piece of it.

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

Conciseness4/5

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

Three short, front-loaded sentences with no filler, and the cost note is placed where it will be read. The read-only sentence is redundant with annotations, slightly reducing the value of the space it occupies.

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

Completeness3/5

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

Given five well-documented parameters and no output schema, the description covers the basics but omits how results are scoped compared with search_all/search_comments and says nothing about result volume or pagination beyond what the cursor field already states. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100% and both enums (sort, time) are documented inline, so the schema carries parameter semantics fully. The description adds no further meaning about query syntax, pagination or filtering behavior.

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

Purpose4/5

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

The description states a specific verb and resource ("Search Reddit posts"), which is unambiguous on its own. However, it never distinguishes itself from close siblings such as reddit_search_all or reddit_list_subreddit_posts, so an agent must infer the boundary from 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.

Usage Guidelines2/5

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 its many siblings, nor any exclusions or prerequisites. The only contextual cues (subreddit filter, sort order) live in 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.

reddit_search_usersSearch Reddit usersB
Read-onlyIdempotent
Inspect

Search Reddit users. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
sortNoResult ordering. Defaults to "relevance".
timeNoRestrict results to a recent window. Defaults to "all".
queryYesThe text to search Reddit for, e.g. "openai", "best keyboard".
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
subredditNoRestrict the search to a single subreddit (name with or without the "r/" prefix). Only applies to post search.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so 'Read-only: returns public data and changes nothing' largely restates structured data. The one genuinely additive fact is 'Costs 1 credit per request', which tells the agent about a budget constraint not present in annotations. Pagination and result-size behavior remain undisclosed.

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

Conciseness4/5

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

Three terse sentences with purpose front-loaded, then safety, then cost. Nothing is padded. The only redundancy is the read-only sentence echoing the annotations, which is minor and arguably serves as reassurance.

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

Completeness3/5

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

For a simple five-parameter read tool with full schema coverage and no output schema, the definition covers purpose and cost but leaves the shape of a returned user record and the meaning of pagination implicit. Adequate to invoke correctly, but not complete enough to set expectations about results.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters including the sort and time enums and the cursor are already documented in the schema; the baseline of 3 applies. The description adds nothing about parameter meaning, and notably does not clarify that the 'subreddit' parameter is marked 'Only applies to post search' in a user-search tool, which is a point an agent would benefit from having resolved.

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

Purpose4/5

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

The description states a specific verb and resource ('Search Reddit users'), which cleanly separates it from reddit_search_posts, reddit_search_comments, reddit_search_communities, and reddit_get_user in the sibling list. It stops short of naming those alternatives explicitly, but the resource noun alone is enough for an agent to route correctly.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this over reddit_get_user (known username), reddit_search_all (cross-entity search), or the parallel search tools for posts and communities. The agent must infer the use case purely from the tool name, and no exclusions or prerequisites are stated.

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

tiktok_get_comment_repliesGet the replies to a TikTok commentA
Read-onlyIdempotent
Inspect

Get the replies to a TikTok comment. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–20). Defaults to 20.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
videoIdYesPost ID, the number at the end of the post URL, or the post URL itself, for example "7698770783367171359" or "https://www.tiktok.com/@tiktok/video/7698770783367171359".
commentIdYesID of the comment whose replies to list.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so 'read-only: returns public data and changes nothing' largely restates structured data. However, the pricing model — 1 credit per result, minimum 1 credit per request — is genuinely new and material information an agent needs before calling, which lifts this above the annotation baseline. It stops short of noting any rate limits or maximum pagination depth.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core purpose followed by safety and cost. Nothing is padded, and the pricing caveat is stated before an agent commits to the call.

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

Completeness4/5

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

For a simple read tool with no output schema and fully documented parameters, the description covers purpose, safety, and cost. The main residual gap is return shape and how replies are paginated in practice, but the cursor parameter description carries the pagination contract.

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

Parameters3/5

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

Schema description coverage is 100%, with count bounds (1–20, default 20), cursor semantics tied to nextCursor, and videoId accepting either a raw ID or a full URL all documented in the schema. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (get) and a precisely scoped resource: replies to a single TikTok comment, keyed by commentId. This is clearly distinguishable from the sibling tiktok_get_video_comments, which lists top-level comments on a video.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention that a commentId must first be obtained from tiktok_get_video_comments, and no alternative routing. The only usage-adjacent information is the credit cost, which tells an agent about expense but not about selection or sequencing.

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

tiktok_get_hashtagFetch a TikTok hashtagB
Read-onlyIdempotent
Inspect

Fetch a TikTok hashtag. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
hashtagYesHashtag name, with or without #, or the hashtag link, for example "cooking" or "https://www.tiktok.com/tag/cooking".

TDQS

B3.4/5.0
Behavior3/5

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 "Read-only: returns public data and changes nothing" largely restates them. The credit cost note ("Costs 1 credit per request") is genuinely new behavioral context not present in any structured field, which prevents a lower score.

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

Conciseness4/5

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

Three short sentences, front-loaded with the operation before the cost and safety notes. The read-only sentence is partly redundant with the annotations, which is the only wasted content.

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

Completeness3/5

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

For a single-parameter, non-destructive lookup with rich annotations and no output schema, the definition is workable but thin. It never indicates what a hashtag record contains (e.g. post/view counts), which an agent needs since there is no output schema to inspect.

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

Parameters3/5

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

Schema description coverage is 100% and the single hashtag parameter already documents accepted forms (name, with or without #, or full URL) with an example. The description adds nothing about the argument, so it earns only the baseline.

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

Purpose4/5

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

The description uses a specific verb plus resource ("Fetch a TikTok hashtag") and the title matches, so the operation is unambiguous. It does not distinguish the tool from the close sibling tiktok_get_hashtag_videos, which retrieves the hashtag's videos rather than the hashtag entity itself, so an agent must infer the split from names alone.

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

Usage Guidelines3/5

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

There is no explicit when-to-use statement and no named alternative, though the hashtag-versus-videos split is implied by the sibling names. Usage is inferable from the name plus the parameter example rather than stated.

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

tiktok_get_hashtag_videosGet the videos for a TikTok hashtagA
Read-onlyIdempotent
Inspect

Get the videos for a TikTok hashtag. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–30). Defaults to 30.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
hashtagYesHashtag name, with or without #, or the hashtag link, for example "cooking" or "https://www.tiktok.com/tag/cooking".

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, and the description redundantly restates 'read-only... changes nothing'. Its real added value is the credit model: 1 credit per result with a 1-credit minimum per request, which is behavioral context an agent cannot get from annotations or schema.

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

Conciseness4/5

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

Three short, front-loaded sentences with the purpose first and the pricing caveat last. Minor waste in the 'read-only... changes nothing' clause, which duplicates the readOnlyHint annotation, but nothing else is filler.

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

Completeness4/5

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

For a three-parameter, non-destructive read with a fully documented schema and no output schema, the description covers purpose, safety and cost. It omits what a result contains and any rate-limit or error behavior, which are modest gaps rather than blockers.

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

Parameters3/5

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

Schema description coverage is 100%, so hashtag formats, the 1–30 count cap, and the cursor paging contract are already documented. The description adds no parameter-level meaning beyond that, so the baseline 3 applies; the cost-per-result sentence only loosely ties to 'count'.

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

Purpose4/5

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

The description states a specific verb and resource: retrieving videos for a TikTok hashtag, which is clearly distinct from tiktok_get_hashtag (hashtag metadata) and tiktok_get_user_posts. It never names those siblings explicitly, so an agent must infer the boundary from 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.

Usage Guidelines3/5

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

Usage is implied rather than stated: there is no sentence telling the agent when to pick this over tiktok_get_hashtag, tiktok_search_videos, or tiktok_get_sound_videos. The cursor note in the schema implies paging, but the description itself gives no when/when-not guidance.

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

tiktok_get_playlist_videosGet the videos in a TikTok playlistA
Read-onlyIdempotent
Inspect

Get the videos in a TikTok playlist. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–20). Defaults to 20.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
playlistIdYesPlaylist ID, as returned by `getUserPlaylists`, or the playlist URL.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the 'read-only, changes nothing' sentence is largely redundant. The genuinely additive disclosure is the billing behavior ('1 credit per result returned, minimum 1 credit per request'), which no structured field provides and which directly affects how an agent should size the count parameter.

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

Conciseness4/5

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

Three short sentences, front-loaded with the purpose and with zero filler. The read-only sentence partially restates the annotations, which is the only slight redundancy in an otherwise tight definition.

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

Completeness3/5

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

For a paginated read tool with no output schema, the description omits what comes back (video objects, a nextCursor for paging) and how credits interact with pagination on multi-page retrieval. The schema covers inputs fully, so the gap is moderate rather than critical.

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

Parameters3/5

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

Schema description coverage is 100%, with count range/default, cursor semantics, and playlistId sourcing all documented in the schema. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Get the videos in a TikTok playlist'), clearly distinguishing it from sibling tiktok_get_user_playlists, which lists playlists rather than their contents. It does not explicitly name the sibling relationship, but the resource is unambiguous.

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

Usage Guidelines3/5

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

Usage is only implied by the name and first sentence; there is no explicit when-to-use or when-not-to-use guidance, and no pointer to tiktok_get_user_playlists as the way to obtain a playlistId (that hint lives only in the schema). An agent can infer the context but is given no routing rules.

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

tiktok_get_soundFetch a TikTok sound by IDA
Read-onlyIdempotent
Inspect

Fetch a TikTok sound by ID. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
soundIdYesSound ID, the number at the end of the sound URL or a post’s `sound.id`. The sound URL itself works too.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds context the annotations do not carry: a concrete cost of 1 credit per request, which matters for an agent budgeting calls. It does not disclose rate limits or failure behavior, keeping it below 5.

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

Conciseness5/5

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

Three terse sentences, zero padding, with the purpose front-loaded and the cost constraint appended. Every sentence contributes something distinct.

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

Completeness4/5

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

For a single-parameter lookup with full schema coverage and rich annotations, the definition covers purpose, cost, and safety sufficiently; the absence of an output schema means return values need not be described. Only the lack of sibling routing and error/edge-case handling keeps it from a 5.

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

Parameters3/5

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

Schema coverage is 100% and the soundId description already explains the accepted formats (trailing number from the URL, a post's sound.id, or the full URL). The description adds no meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ("Fetch a TikTok sound") plus the lookup key ("by ID"), so the agent can tell it apart from tiktok_get_sound_videos or tiktok_get_video. It stops short of explicitly naming the sibling it differs from, so a 4 rather than 5.

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

Usage Guidelines3/5

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

The 'by ID' phrasing implies this is the direct-lookup path and points the agent toward a sound identifier, but there is no explicit when-to-use/when-not guidance and no mention of the sibling tiktok_get_sound_videos. Usage is inferable but not stated.

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

tiktok_get_sound_videosGet the videos that use a TikTok soundA
Read-onlyIdempotent
Inspect

Get the videos that use a TikTok sound. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–30). Defaults to 30.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
soundIdYesSound ID, the number at the end of the sound URL or a post’s `sound.id`. The sound URL itself works too.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, so the safety profile is known; the description still adds real value by stating that results are public data and, importantly, by disclosing the credit cost model (1 credit per result, minimum 1 per request). That pricing detail is planning-relevant information an agent cannot get from any structured field. Pagination and return shape are left to the schema, which is acceptable given annotation coverage.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core action, with zero filler. The read-only sentence partially echoes the readOnlyHint annotation, which is a minor redundancy but not wasteful given the cost sentence that follows it.

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

Completeness4/5

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

With no output schema, the description does not describe the returned video fields, but for a paginated getter the cursor parameter in the schema and the cost disclosure cover the essentials an agent needs to call it correctly. A note on what a returned video record contains would be the only meaningful addition.

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

Parameters3/5

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

Schema description coverage is 100%, so soundId, count, and cursor are all documented in the schema, including URL formats and page-token semantics. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ('Get the videos that use a TikTok sound'), which cleanly separates it from sibling tools like tiktok_get_hashtag_videos or tiktok_get_user_posts. It does not, however, explicitly contrast itself with those siblings, leaving the agent to infer that the 'sound' resource is the differentiator.

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

Usage Guidelines2/5

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

There is no guidance on when to pick this tool over tiktok_get_related_videos, tiktok_get_hashtag_videos, or tiktok_get_video, and no prerequisites or exclusions are stated. The only context offered is a billing note, which describes cost rather than selection criteria.

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

tiktok_get_userFetch a TikTok user by usernameA
Read-onlyIdempotent
Inspect

Fetch a TikTok user by username. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
uniqueIdYesTikTok username, with or without @, or the profile link, for example "tiktok" or "https://www.tiktok.com/@tiktok".

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the "read-only ... changes nothing" sentence largely restates structured data. The credit cost ("Costs 1 credit per request") is genuine information not present in annotations and is the kind of budget constraint an agent needs, which raises it above baseline.

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

Conciseness5/5

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

Three short sentences with the action front-loaded, followed by safety and cost. Nothing is padded or buried, and the cost note is placed last where it does not obscure the primary purpose.

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

Completeness4/5

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

For a one-parameter read tool whose safety profile is fully covered by annotations, the description covers purpose, mutability, and cost. The only material gap is what fields the returned user object contains, which matters more here because no output schema exists.

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

Parameters3/5

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

Schema description coverage is 100% and the single uniqueId parameter is already documented with @ and full-URL examples. The description repeats "by username" but adds no syntax or normalization detail beyond what the schema supplies, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ("Fetch a TikTok user by username") that maps one-to-one onto the tool name. It is distinguishable from tiktok_search_users by the "by username" qualifier, but the description never names that sibling or any of the tiktok_get_user_* tools, so differentiation is left implicit.

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

Usage Guidelines3/5

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

Usage is only implied: an agent infers it should call this when it already has a username rather than a search query. There is no explicit "use this instead of tiktok_search_users" routing and no guidance on whether to follow up with tiktok_get_user_posts or tiktok_get_user_followers.

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

tiktok_get_user_followersGet a TikTok user’s followersA
Read-onlyIdempotent
Inspect

Get a TikTok user’s followers. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–30). Defaults to 30.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
uniqueIdYesTikTok username, with or without @, or the profile link, for example "tiktok" or "https://www.tiktok.com/@tiktok".

TDQS

A4/5.0
Behavior4/5

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

The annotations already declare read-only, idempotent, non-destructive, and open-world behavior, and the description adds useful billing context: 1 credit per result with a 1-credit minimum. It does not add pagination or rate-limit behavior beyond the schema, but the cost disclosure is meaningful extra context.

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

Conciseness5/5

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

The description is three short sentences and front-loads the purpose, followed by safety and cost information. There is no unnecessary wording.

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

Completeness4/5

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

For a simple read-only list tool with fully documented parameters and annotations covering safety, the definition is largely complete and includes billing cost. It does not describe the return shape or pagination behavior in prose, leaving a minor gap since there is no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so uniqueId format, count limits, cursor pagination, and defaults are already documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource: "Get a TikTok user’s followers." The resource name distinguishes it from the sibling tiktok_get_user_following, so 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.

Usage Guidelines3/5

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

The intended use is implied by the tool name and first sentence, but there is no explicit guidance on when to choose this over tiktok_get_user_following, tiktok_get_user, or tiktok_search_users. It is adequate for obvious follower-list retrieval but lacks routing 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_followingGet the accounts a TikTok user followsA
Read-onlyIdempotent
Inspect

Get the accounts a TikTok user follows. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–30). Defaults to 30.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
uniqueIdYesTikTok username, with or without @, or the profile link, for example "tiktok" or "https://www.tiktok.com/@tiktok".

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description still adds genuinely new operational context that annotations cannot express: a credit cost of 1 per result with a 1-credit minimum per request, which matters for planning calls. It omits how private or restricted accounts behave and any rate-limit context.

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

Conciseness4/5

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

Three short sentences, front-loaded with the purpose and followed by cost, with no filler. The read-only clause largely restates the annotations, making it the one part that does not fully earn its place.

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

Completeness4/5

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

For a simple three-parameter read tool with full annotation coverage and complete schema descriptions, the definition covers purpose, safety and billing. Pagination is handled by the documented cursor parameter, so the only real gap is behavior on private or unavailable accounts.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters (uniqueId, count, cursor) are already documented with formats and ranges in the schema. The description adds no parameter-level meaning beyond that, 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.

Purpose4/5

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

The description states a specific verb and resource — 'Get the accounts a TikTok user follows' — which is unambiguous and distinguishably different from the sibling tiktok_get_user_followers by the direction of the relationship. It stops short of naming that sibling explicitly, so an agent must infer the contrast rather than being routed to it.

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

Usage Guidelines2/5

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_user or tiktok_get_user_followers. The usage is only implied by the tool name and purpose sentence, leaving the agent to infer selection criteria on its own.

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

tiktok_get_user_liked_videosGet the videos a TikTok user likedA
Read-onlyIdempotent
Inspect

Get the videos a TikTok user liked. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–30). Defaults to 30.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
uniqueIdYesTikTok username, with or without @, or the profile link, for example "tiktok" or "https://www.tiktok.com/@tiktok".

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true, and destructive=false, so the safety profile is covered. The description earns credit for adding information not in annotations: that it returns public data only, and that billing is 1 credit per result with a 1-credit minimum per request — genuinely useful for an agent deciding whether to call it.

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

Conciseness5/5

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

Three short sentences, each carrying distinct information: what it does, its safety/read-only nature, and its cost model. Front-loaded and free of filler.

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

Completeness4/5

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

For a 3-parameter, no-output-schema read tool, this covers purpose, safety, and cost. Pagination behavior isn't mentioned in the description, but the cursor schema already explains it. Nothing essential an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so uniqueId, count, and cursor are fully documented in the schema itself. The description adds no parameter-level detail beyond linking result count to credit cost. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description names a specific verb and resource ('Get the videos a TikTok user liked'), which naturally distinguishes it from siblings like tiktok_get_user_posts and tiktok_get_user_reposts without needing to name them. It stops short of explicitly routing the agent toward those alternatives, but the 'liked' qualifier does real disambiguation work.

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

Usage Guidelines3/5

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 sibling is named as an alternative for other content types. The credit-cost sentence implies a usage consideration (cost scales with results), which is the only practical guidance offered.

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

tiktok_get_user_playlistsGet a TikTok user’s playlistsA
Read-onlyIdempotent
Inspect

Get a TikTok user’s playlists. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–30). Defaults to 30.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
uniqueIdYesTikTok username, with or without @, or the profile link, for example "tiktok" or "https://www.tiktok.com/@tiktok".

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond them: the 1-credit-per-result cost with a 1-credit minimum per request, plus the confirmation that only public data is returned.

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

Conciseness5/5

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

Three short sentences with zero waste: purpose first, then the read-only guarantee, then the cost model. Nothing is repeated from the title and no sentence is filler.

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

Completeness4/5

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

For a 3-parameter read tool with no output schema, the description covers purpose, safety and pricing, while pagination and identifier formats live in the schema. Only the shape of the returned playlist objects is left unaddressed, which is a minor gap given no output schema exists.

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

Parameters3/5

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

Schema description coverage is 100%, with uniqueId formats, the 1–30 count bound and the cursor pagination pattern all documented in the schema. The description adds no parameter-level detail, so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ('Get a TikTok user's playlists'), which is distinguishable from siblings like tiktok_get_playlist_videos (videos inside one playlist) and tiktok_get_user_posts (posts). It does not explicitly contrast itself with those siblings, 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.

Usage Guidelines3/5

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

Usage is only implied by the purpose statement: an agent can infer it should call this when it needs a user's playlist collection. There is no explicit when-to-use/when-not guidance and no mention of alternatives such as tiktok_get_playlist_videos for drilling into a playlist's contents.

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

tiktok_get_user_postsGet a TikTok user’s postsB
Read-onlyIdempotent
Inspect

Get a TikTok user’s posts. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–35). Defaults to 35.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
uniqueIdYesTikTok username, with or without @, or the profile link, for example "tiktok" or "https://www.tiktok.com/@tiktok".

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds genuinely new behavioral context beyond those annotations: the credit cost model ('1 credit per result returned, minimum 1 credit per request'), which is important for call planning. It does not describe return contents or pagination behavior, keeping it below a 5.

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

Conciseness4/5

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

Three short sentences, front-loaded with the purpose and free of padding. The middle sentence partially restates the readOnlyHint annotation, which is mild redundancy but does not harm readability.

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

Completeness3/5

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 fully documented schema, the definition covers purpose and cost but omits what a returned post contains and how pagination is expected to be driven (the cursor exists only in the schema). Sibling differentiation is also absent, leaving moderate gaps for an agent choosing among many tiktok_get_user_* endpoints.

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

Parameters3/5

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

Schema description coverage is 100%, with clear documentation for uniqueId formats, the 1–35 count range, and cursor usage. The description adds no parameter-level meaning, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('Get a TikTok user's posts'), so the agent immediately knows the operation. It does not, however, distinguish this tool from close siblings such as tiktok_get_user_reposts, tiktok_get_user_liked_videos, or tiktok_get_user_playlists, which all retrieve user-scoped content.

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

Usage Guidelines2/5

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 the many sibling endpoints that also return user content. The 'read-only' sentence describes safety rather than selection criteria, and no prerequisites 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.

tiktok_get_user_repostsGet the videos a TikTok user repostedA
Read-onlyIdempotent
Inspect

Get the videos a TikTok user reposted. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–30). Defaults to 30.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
uniqueIdYesTikTok username, with or without @, or the profile link, for example "tiktok" or "https://www.tiktok.com/@tiktok".

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive behavior, and the description adds genuinely new context: 1 credit per result with a 1-credit minimum per request. That pricing/cost disclosure is the kind of detail annotations cannot carry. It stops short of describing pagination behavior or return shape.

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

Conciseness5/5

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

Three short sentences, purpose front-loaded, followed by safety and cost. No filler or redundancy.

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

Completeness4/5

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

For a simple paginated read tool with a fully described schema and complete annotations, the description covers purpose, safety, and cost. Return-value detail is the only gap, and there is no output schema, though the schema's cursor description implies the pagination contract.

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

Parameters3/5

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

Schema description coverage is 100%, so uniqueId, count, and cursor are fully documented in the schema itself. The description adds no additional meaning about parameters, which is appropriate at baseline 3.

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

Purpose4/5

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

States a specific verb and resource ('Get the videos a TikTok user reposted'), and the word 'reposted' distinguishes it from tiktok_get_user_posts and tiktok_get_user_liked_videos. It does not name sibling tools explicitly, 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.

Usage Guidelines3/5

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

The description implies usage (fetch a user's reposted videos) but gives no explicit when-to-use/when-not guidance and no routing to alternatives like tiktok_get_user_posts. Nothing is misleading, but the agent must infer selection from the name alone.

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

tiktok_get_videoFetch a TikTok video by IDA
Read-onlyIdempotent
Inspect

Fetch a TikTok video by ID. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
videoIdYesPost ID, the number at the end of the post URL, or the post URL itself, for example "7698770783367171359" or "https://www.tiktok.com/@tiktok/video/7698770783367171359".

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so 'read-only: returns public data and changes nothing' largely restates structured data. The credit cost (1 per request) is genuinely additive information not present in annotations, but failure modes for private, deleted, or region-blocked videos 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.

Conciseness5/5

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

Three short sentences, front-loaded with the core action, followed by the read-only guarantee and the cost. Nothing is redundant or padded.

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

Completeness3/5

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

For a single-parameter fetch with full schema coverage and rich annotations, the essentials are covered, including cost. However, no output schema exists and the description says nothing about what a returned video contains, nor about behavior on invalid or inaccessible IDs, leaving gaps an agent would want filled.

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

Parameters3/5

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

Schema description coverage is 100% and the videoId description already explains that numeric IDs, URLs, and URL-suffixed IDs are accepted. The description adds no syntax or format guidance 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.

Purpose4/5

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

The description gives a specific verb and resource ('Fetch a TikTok video by ID'), which lets an agent distinguish it from list-oriented siblings such as tiktok_get_user_posts or tiktok_get_hashtag_videos. It does not explicitly name the nearest alternatives (tiktok_search_videos, tiktok_get_related_videos), so differentiation relies on inference.

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

Usage Guidelines3/5

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

The 'by ID' framing implies this tool is for retrieving one known video rather than discovering videos, but the description never states when to use it instead of tiktok_search_videos or tiktok_get_video_comments. Usage is implied by the name rather than explained.

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

tiktok_get_video_commentsGet the comments on a TikTok videoA
Read-onlyIdempotent
Inspect

Get the comments on a TikTok video. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–20). Defaults to 20.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
videoIdYesPost ID, the number at the end of the post URL, or the post URL itself, for example "7698770783367171359" or "https://www.tiktok.com/@tiktok/video/7698770783367171359".

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: that results are public data and that each request costs credits with a stated minimum, which an agent cannot infer from annotations or schema.

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

Conciseness5/5

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

Three short sentences, front-loaded with the purpose, then the safety profile, then the cost. Every sentence carries distinct information with no redundancy.

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

Completeness4/5

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

For a simple read tool with no output schema, the description plus the fully documented schema cover what an agent needs, and the credit-cost disclosure is a useful addition. Pagination is handled by the schema rather than the description, which is acceptable but leaves the description slightly thin on iteration behavior.

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

Parameters3/5

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

Schema description coverage is 100%, with count bounds, cursor usage, and videoId formats all documented in the schema itself. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (get comments on a TikTok video), which is unambiguous. It does not explicitly distinguish itself from the sibling tiktok_get_comment_replies, though the difference in scope is largely self-evident.

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

Usage Guidelines3/5

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

Usage is implied by the resource (comments on a specific video) and the schema documents cursor-based pagination, but the description gives no explicit when-to-use guidance or named alternatives. No exclusions or prerequisite conditions are stated.

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

tiktok_search_usersSearch TikTok accountsA
Read-onlyIdempotent
Inspect

Search TikTok accounts. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–10). Defaults to 10.
queryYesSearch keywords, for example "street food".
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the description's restatement of read-only adds little. What it does add beyond structured data is the billing model – 1 credit per result with a minimum of 1 per request – which is exactly the kind of cost context an agent needs before choosing a count.

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

Conciseness5/5

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

Three short sentences, each earning its place: what it does, safety, and cost. The key scoping statement is front-loaded and there is no filler.

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

Completeness4/5

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

With no output schema, a fully documented three-parameter schema, and annotations covering the safety profile, the description covers cost and side-effect posture adequately. It could say what a result contains (handle, follower count, etc.) to prepare the agent for the response, but nothing essential to correct invocation is missing.

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

Parameters3/5

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

Schema coverage is 100%: query, count (1–10, default 10) and cursor are all documented inline, so the baseline is 3. The description does not elaborate on query syntax, cursor paging, or how count interacts with cost beyond the per-result hint.

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

Purpose4/5

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

States a specific verb and resource ('Search TikTok accounts'), which cleanly separates it from sibling tiktok_search_videos and the tiktok_get_user* family. It stops short of naming an alternative, so it is clear but not fully sibling-differentiated.

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

Usage Guidelines2/5

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

No when-to-use guidance is offered: nothing says to prefer tiktok_get_user when a handle is already known, or to use this when only a keyword is available. The keyword-search framing implies usage, but no exclusions or alternatives are stated.

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

tiktok_search_videosSearch TikTok videosA
Read-onlyIdempotent
Inspect

Search TikTok videos. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–30). Defaults to 30.
queryYesSearch keywords, for example "street food".
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint and destructiveHint=false, and the description's "returns public data and changes nothing" largely restates that. The genuinely additive content is the billing model — 1 credit per result with a 1-credit minimum — which the annotations do not convey and which materially affects how an agent should size its requests.

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

Conciseness5/5

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

Three short sentences with zero waste: purpose first, safety second, cost third. Each sentence carries distinct information and nothing is repeated unnecessarily.

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

Completeness4/5

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

For a simple three-parameter read-only search with full schema coverage and no output schema, the definition covers purpose, safety, and cost adequately. The remaining gap is routing — it never explains when a caller should prefer hashtag, sound, or user video listings over this keyword search, which matters given roughly a dozen adjacent TikTok tools.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already documents query, count (1–30, default 30), and cursor with nextCursor paging semantics, so the baseline is 3. The credit-per-result statement implicitly ties cost to the count parameter, which is useful added context, but no direct clarification of the parameters themselves is offered.

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

Purpose4/5

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

The description states a specific verb and resource ("Search TikTok videos"), which cleanly separates it from tiktok_search_users and the various tiktok_get_* retrieval tools by resource type. It stops short of explicitly contrasting itself with the closest siblings such as tiktok_get_hashtag_videos or tiktok_get_sound_videos, which also surface videos.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: nothing says to pick this for keyword discovery over hashtag-, sound-, or user-scoped video listing. The agent must infer from the tool name that this is the free-text search entry point, and there are no stated preconditions or exclusions.

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

x_get_followersList an X user's followersB
Read-onlyIdempotent
Inspect

List an X user's followers. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
userIdYesNumeric user ID (rest_id) whose tweets to list, e.g. "44196397". Look it up from a handle with get-user.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the 'Read-only ... changes nothing' sentence is largely redundant. However, the pricing disclosure ('1 credit per result, minimum 1 credit per request') is genuinely new behavioral context the annotations cannot express and materially affects how an agent batches calls.

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

Conciseness4/5

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

Three short sentences, front-loaded with the purpose, then safety, then cost. Efficient overall, with minor waste in restating the read-only guarantee that annotations already carry.

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

Completeness3/5

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

With no output schema, an agent gets no sense of what fields a follower record contains or how large pages typically are, which matters for a cursor-paginated, per-result-billed call. Cost and pagination mechanics are covered, but result shape is not.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already explains both userId (rest_id, lookup via get-user) and cursor pagination. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The description opens with a specific verb+resource ('List an X user's followers'), which inherently separates it from the sibling x_get_following and the various x_search_* tools. It is clear without needing the schema, though it never explicitly names the near-miss alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over x_get_user, x_search_users, or x_get_following, and no note on prerequisites beyond what the schema's userId description supplies. Usage is only inferable 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.

x_get_followingList the accounts an X user followsB
Read-onlyIdempotent
Inspect

List the accounts an X user follows. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
userIdYesNumeric user ID (rest_id) whose tweets to list, e.g. "44196397". Look it up from a handle with get-user.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The credit pricing ('1 credit per result, minimum 1 per request') is genuine value that annotations cannot convey. The rest of the sentence ('Read-only: returns public data and changes nothing') largely restates readOnlyHint=true and destructiveHint=false. Nothing is said about page size, result caps, or ordering — the behaviors an agent most needs for a paginated list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose, then safety, then cost — a sensible order with no filler. The read-only clause is mildly redundant against the annotations, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only list tool with full schema coverage and rich annotations, the description covers purpose, safety, and cost — enough to call it correctly. The remaining gap is pagination behavior and any result-count limits, which an agent paging through a following list would want to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (userId, cursor) are already fully explained in the schema, including the get-user lookup hint and cursor semantics. The description adds no parameter-level meaning beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('List the accounts an X user follows'), which makes the direction of the relationship unambiguous. It does not, however, explicitly distinguish itself from the sibling x_get_followers (the inverse edge), leaving the agent to infer the distinction from the names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no mention of x_get_followers or x_get_user as alternatives, even though both are close siblings. The only usage-relevant information is the credit cost, which is billing context rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_get_tweet_detailX (Twitter): Fetch a tweet with its reply threadA
Read-onlyIdempotent
Inspect

X (Twitter): Fetch a tweet with its reply thread. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
tweetIdYesNumeric ID of the focal tweet to expand, or the tweet link, e.g. "1234567890".
sortOrderNoReply ordering: "Relevance" for X's ranking (default), "Recency" for newest first, "Likes" for most liked first.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered; the description adds the notable fact that each request costs 1 credit. It still says nothing about how many replies are returned or whether the thread is truncated/paginated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: identity, safety, cost. The purpose is front-loaded and nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with full annotation coverage, the description gives enough to call it correctly, including cost. The remaining gap is return behavior — thread size limits or paging — which matters more here since no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already explains both tweetId (ID or link) and the sortOrder enum values. The description adds no parameter meaning beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Fetch a tweet with its reply thread"), so an agent knows exactly what comes back. It does not, however, distinguish itself from close siblings like x_get_tweet_replies or x_get_tweet_quotes, which fetch overlapping data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over x_get_tweet_replies, x_get_tweet_quotes, or x_get_user_tweets; the agent must infer from names alone. Only the cost line gives any decision-relevant context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_get_tweet_quotesX (Twitter): List quote tweets of a tweetA
Read-onlyIdempotent
Inspect

X (Twitter): List quote tweets of a tweet. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–20). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
tweetIdYesNumeric ID of the tweet whose quote tweets to list, or the tweet link, e.g. "1234567890".
sortOrderNoResult ordering: "Latest" = chronological newest-first (default), "Top" = X's engagement ranking.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true and openWorldHint=true, so 'read-only: returns public data and changes nothing' largely restates them. The credit-cost disclosure ('1 credit per result returned, minimum 1 credit per request') is genuinely new and material behavioral context that no structured field provides, which earns credit above the baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with the purpose first and cost second; nothing is buried or padded. The middle sentence about being read-only is redundant with the annotations and slightly dilutes the otherwise tight structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter read tool with full schema coverage and no output schema, the description covers purpose, safety, and cost adequately. Pagination via cursor is only in the schema, and there is no note on what a quote-tweet object contains, but the schema carries most of that burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and all four parameters (including count bounds, cursor pagination, and the sortOrder enum) are documented in the schema itself. The description adds no additional parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and precise resource ('quote tweets of a tweet'), which distinguishes it from the closest siblings x_get_tweet_replies and x_get_tweet_retweeters. It does not name those siblings explicitly, so the differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose: an agent knows to call it when it wants quote tweets of a known tweet ID. However, there is no explicit guidance on when to prefer this over x_get_tweet_replies or x_get_tweet_retweeters, and no mention of prerequisites such as the need for a valid tweet ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_get_tweet_repliesX (Twitter): List the replies to a tweetA
Read-onlyIdempotent
Inspect

X (Twitter): List the replies to a tweet. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
tweetIdYesNumeric ID of the tweet whose replies to list, or the tweet link, e.g. "1234567890".
sortOrderNoReply ordering: "Relevance" for X's ranking (default), "Recency" for newest first, "Likes" for most liked first.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered; the description adds genuinely useful context beyond them by disclosing the cost model ('1 credit per result, minimum 1 credit per request'), which materially affects how an agent sizes its request. It stops short of describing pagination behavior or result shape, but the cost disclosure is the key extra behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the identity of the operation and immediately followed by the two facts an agent most needs (safety and cost). No redundant or filler wording; nothing could be removed without losing signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 carries some burden for return shape, but it only says 'returns public data' without indicating what a reply object contains or that results are paged via nextCursor. Combined with a lack of sibling routing, it is adequate but leaves gaps for an agent planning a paginated multi-page retrieval.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each of tweetId, cursor, and sortOrder fully documented in the schema (including enum values and default). The description adds no parameter-level meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the replies to a tweet') with the platform namespace, so it is immediately distinguishable from generic search tools. It does not explicitly differentiate from close siblings like x_get_tweet_detail or x_get_tweet_quotes, which share the same target object and only differ by returned collection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and title, and the credit-cost sentence hints that result volume matters, but there is no explicit when-to-use guidance (e.g., use this vs. x_get_tweet_detail to get replies, or vs. x_get_user_replies to browse a user's replies). No exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_get_tweet_retweetersX (Twitter): List the users who retweeted a tweetB
Read-onlyIdempotent
Inspect

X (Twitter): List the users who retweeted a tweet. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
tweetIdYesNumeric ID of the tweet whose retweeters to list, or the tweet link, e.g. "1234567890".

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context beyond them: the per-result credit cost with a 1-credit minimum per request, which materially affects how an agent sizes the count parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the resource, then the safety profile, then cost. The 'X (Twitter):' prefix duplicates both the title and the first clause, which is the only wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple paginated list tool with no output schema, the definition covers safety and cost but says nothing about what each result contains (user objects) or how pagination via nextCursor behaves in practice. Adequate to invoke correctly, incomplete for setting expectations on the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with count, cursor and tweetId all documented including the accepted tweet-link format. The description adds no parameter-level meaning 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'List the users who retweeted a tweet.' That is unambiguous and distinguishable in principle from related tools. However, it never names the neighboring variants (x_get_tweet_quotes, x_get_tweet_replies, x_get_followers), so the agent must infer the boundary from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 guidance, and no mention of alternatives for obtaining engagement data. The credit-cost note implicitly encourages choosing a modest count, but that is inference rather than guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_get_userFetch an X user profile by handleA
Read-onlyIdempotent
Inspect

Fetch an X user profile by handle. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
handleYesX handle / screen name, with or without the @, or the profile link, e.g. "elonmusk" or "https://x.com/elonmusk".

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the read-only sentence largely restates structured data. What the description genuinely adds is the cost model ("1 credit per request") and the scope of what comes back ("public data"), neither of which appears in annotations or schema — valuable for a metered API.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the resource and lookup key front-loaded, followed by safety and cost. No filler, no restatement of the title, and each clause carries a distinct fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, non-destructive lookup with no output schema, an agent has everything needed to invoke it: what it returns (public profile data), that it is free of side effects, and its credit cost. Only the shape of the returned profile fields is unspecified, which is a minor gap given there is no output schema to consult.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter already documents the flexibility of the input (with or without @, or a full x.com profile URL). The description only echoes "by handle" and adds no format, encoding, or error-case detail 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Fetch an X user profile") plus the lookup key ("by handle"), which separates it from list-style siblings like x_get_followers or x_get_user_tweets. It never names x_search_users, so the boundary between exact-handle lookup and user search is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "by handle" implies the precondition that you already have a handle or profile link, and the sibling set makes the adjacent tools guessable. There is no explicit when-to-use / when-not-to-use statement and no named alternative for fuzzy name lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_get_user_mediaList an X user's media tweetsA
Read-onlyIdempotent
Inspect

List an X user's media tweets. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–100). Defaults to 10.
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
userIdYesNumeric user ID (rest_id) whose tweets to list, e.g. "44196397". Look it up from a handle with get-user.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so "Read-only: returns public data and changes nothing" largely restates structured data. The genuinely additive disclosure is billing behavior — 1 credit per result with a 1-credit minimum per request — which annotations cannot express and which materially affects how an agent sizes the count parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the purpose, then the safety profile, then the cost model. Every clause carries information and nothing is repeated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paginated, fully documented 3-parameter read tool with no output schema, the definition covers purpose, safety, billing and pagination adequately. It stops short of describing the shape of a media tweet or how cost scales with paging, which would have closed the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains count (1–100, default 10), cursor pagination, and that userId is a numeric rest_id lookup-able via get-user. The description adds no parameter meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and scoped resource: "List an X user's media tweets." The word "media" separates it from the sibling x_get_user_tweets (all tweets) and x_get_user_replies, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied only — an agent can infer this is the media-only variant of a user timeline, but there is no explicit when-to-use, when-not-to-use, or named alternative such as x_get_user_tweets or x_search. The requirement for a numeric rest_id is delegated entirely to the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_get_user_repliesList an X user's repliesB
Read-onlyIdempotent
Inspect

List an X user's replies. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
userIdYesNumeric user ID (rest_id) whose tweets to list, e.g. "44196397". Look it up from a handle with get-user.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely new behavioral context that annotations do not carry: the cost model ('1 credit per result returned, with a minimum of 1 credit per request'), which affects how an agent should scope a request. It still omits ordering, result caps, and pagination behavior beyond the cost note.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the purpose, then the safety profile, then the cost. The 'Read-only: returns public data and changes nothing' clause largely restates the annotations, so it is mildly redundant, but overall there is little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter list tool with no output schema, the definition covers purpose, safety, and cost, which is a reasonable core. It does not say what a 'reply' record contains, whether results are ordered or capped, or how many results a page returns, which an agent scoping a paid call would benefit from knowing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented in the schema itself, including the cursor's nextCursor semantics and how to obtain a numeric userId. The description adds no parameter meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('List an X user's replies'), matching the title and making the operation unambiguous. It does not, however, distinguish itself from the close siblings x_get_user_tweets and x_get_tweet_replies, which an agent must disambiguate by name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives such as x_get_user_tweets (a user's own posts) or x_get_tweet_replies (replies to a specific tweet). The only usage signal is the restated purpose, leaving selection among the three reply/tweet siblings to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_get_user_tweetsList an X user's tweets timelineA
Read-onlyIdempotent
Inspect

List an X user's tweets timeline. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
userIdYesNumeric user ID (rest_id) whose tweets to list, e.g. "44196397". Look it up from a handle with get-user.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the "changes nothing" sentence is largely redundant. The genuinely additive information is the cost model — 1 credit per result with a 1-credit minimum — which no structured field conveys and which affects how an agent should size its request.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the purpose, then constraints and cost. Efficient overall, though the read-only sentence partly duplicates what the annotations already state.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with no output schema, the description covers purpose, side-effect profile, and billing impact. It does not describe the shape of returned tweets or defaults for page size, but pagination is handled by the schema's cursor field, so nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema itself documents both userId (with a get-user lookup hint) and cursor pagination thoroughly. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ("List") with a specific resource ("an X user's tweets timeline"), so an agent knows exactly what it retrieves. It does not distinguish itself from close siblings such as x_get_user_replies or x_get_user_media, which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and resource, but there is no explicit statement about when to choose this over x_get_user_replies, x_get_user_media, or x_search. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x_search_usersSearch X usersB
Read-onlyIdempotent
Inspect

Search X users. Read-only: returns public data and changes nothing. Costs 1 credit per result returned, with a minimum of 1 credit per request.

NameRequiredDescriptionDefault
countYesNumber of results to return (1–20). Defaults to 10.
queryYesRaw search query — supports all X advanced-search operators, e.g. "openai lang:en".
cursorNoThe previous response's `nextCursor`, to fetch the next page. Omit it for the first page.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint:false and openWorldHint:true, so "read-only: returns public data and changes nothing" largely restates structured data. The credit pricing (1 credit per result, minimum 1 per request) is genuinely new behavioral information not available in annotations or schema, and it earns credit — but the description says nothing about rate limits, result caps, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler; the read-only guarantee and the cost model are both front-loaded where the agent will read them. Nothing in it is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no output schema, the description is adequate but thin: it never indicates what a returned user record contains or confirms that paging works via nextCursor. The credit-cost disclosure is a valuable addition, but return-shape information is absent and there is no output schema to compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: query operators, the 1–20 count range with a default of 10, and cursor pagination are all documented in the schema. The description adds no syntax, formatting, or operator guidance beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ("Search X users"), which is unambiguous on its face. It does not, however, separate this from near siblings such as x_search (tweet search) or x_get_user (lookup by handle), so an agent must infer the distinction from the names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives — nothing says to prefer x_get_user when the handle is already known, or x_search when the target is posts rather than accounts. The only contextual signal is the tool name itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

youtube_get_videoFetch a video's full details and transcript from its YouTube linkA
Read-onlyIdempotent
Inspect

Fetch a video's full details and transcript from its YouTube link. Read-only: returns public data and changes nothing. Costs 1 credit per request.

NameRequiredDescriptionDefault
urlYesThe video to fetch. Accepts any YouTube video link — watch, youtu.be, Shorts, embed, or live — or a bare 11-character video ID.
includeTranscriptYesWhether to also fetch the timed transcript in the same call. Defaults to true.
transcriptLanguageNoPreferred transcript language as a BCP-47 code, e.g. "en" or "pt-BR". Defaults to the video's own default caption track.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and open-world, so the 'Read-only: returns public data and changes nothing' sentence largely restates them. The genuinely additive detail is 'Costs 1 credit per request,' a metering trait no annotation conveys. Minor gap: no hint about behavior when a transcript is unavailable or captions are disabled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and no wasted clauses. The read-only clause is partly redundant with the annotations, but it's one short phrase and the credit cost earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 should convey what 'full details' actually contains (metadata fields, transcript shape), and it doesn't. Cost, safety and input formats are covered, but an agent cannot preview the response payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains URL formats, the default-true includeTranscript flag, and BCP-47 language codes. The description adds nothing parameter-specific beyond 'from its YouTube link,' so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Fetch') and resource ('a video's full details and transcript') scoped to YouTube links, which separates it from tiktok_get_video and the other platform get_* siblings. It's clear what the tool returns at a high level, though 'full details' stays generic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The implicit when-to-use is clear (you have a YouTube video link or ID and want its details), and no sibling in the list competes for that job. But the description gives no explicit exclusions, no guidance for videos lacking transcripts, and no mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Publisher details

Operator
Bridgly · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
One time payment, credits never expire, start with $2 for 1000 credits. · Publisher source

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    23 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources