Skip to main content
Glama

packagecloud MCP by usefulapi

Server Details

Read packagecloud repos, packages, versions and download stats; create repos, promote and delete.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target a distinct resource+action (get vs list vs create for repos, readmes, gpg keys), and stats tools are clearly separated by downloads vs installs. The main overlap is list_packages vs search_packages (search with an empty q returns all packages), and the three package-listing tools sit close together, though descriptions clarify which URL feeds which.

Naming Consistency5/5

Every tool follows the same packagecloud_<verb>_<noun> snake_case pattern (get_, list_, create_, delete_, promote_, search_). The convention is uniform across all 18 tools with no deviation.

Tool Count4/5

18 tools is slightly heavy but each maps to a real endpoint (repos, packages, readmes, gpg keys, stats, distributions) and the domain genuinely warrants this breadth. No obviously redundant tools pad the set.

Completeness4/5

Strong read/query coverage plus readme and package lifecycle (create/append readme, promote/delete package), but there is no repository update/delete, no gpg-key creation, and package upload is absent. These are minor gaps an agent can work around given the query-focused design.

Available Tools

18 tools
packagecloud_append_readmeAppend to repository READMEAInspect

WRITE: append Markdown to the existing README of a repository (existing text is kept). Not idempotent: calling it twice appends twice. PATCH /repos/{user}/{repo}/readme.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesMarkdown to append to the README.
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and idempotentHint=false, but the description goes beyond the bare booleans by spelling out the consequence: existing text is preserved and two calls append twice. That is genuinely useful, behavior-defining context the structured fields do not convey, though it says nothing about auth or response 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?

Two tight sentences with the operation class, semantics, and non-idempotency constraint front-loaded, plus the concrete endpoint at the end. Every clause earns its place 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 two-parameter mutation with full schema coverage and annotations covering the safety profile, the description is nearly complete: it covers preservation semantics and retry hazard. The only omission is what the call returns (no output schema exists), which is a minor gap given the operation's simplicity.

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 `repository` and `body` are already fully documented with format and length constraints. The description adds no additional parameter-level detail, which is the expected baseline when the schema carries the load.

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

Purpose5/5

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

States a specific verb (append), resource (repository README), and scope (existing text is kept), which cleanly separates it from siblings like packagecloud_get_readme and packagecloud_create_readme without opening either schema. The leading 'WRITE:' token additionally signals the mutation class immediately.

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

Usage Guidelines4/5

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

It gives clear context for use — appending to an existing README while preserving current content — and the non-idempotency warning steers the agent away from blind retries. It stops short of explicitly naming an alternative (e.g., use create_readme to replace rather than append), so the routing is implied rather than stated.

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

packagecloud_create_readmeCreate repository READMEAInspect

WRITE: create the Markdown README of a repository. Use append_readme to add to an existing one. POST /repos/{user}/{repo}/readme.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe README, as Markdown.
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the safety profile is covered; the description's 'WRITE:' only reinforces that. It adds the POST endpoint, but omits the behaviorally important case of a pre-existing README for a non-idempotent create.

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, front-loaded clauses: the operation, the alternative routing, and the endpoint. No filler, and the write semantics come first.

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 create with no output schema and full annotation coverage, the description is nearly complete. The only missing piece is the pre-existing-README behavior, which matters given idempotentHint=false.

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, including the 'user/repo' format and Markdown body. The description adds no syntax, format, or constraint detail beyond that, so the baseline of 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('create the Markdown README of a repository') and prefixes it with 'WRITE:' to make the mutation nature unmistakable. It explicitly names the sibling append_readme as the tool it is not, so an agent can differentiate the two without opening either schema.

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

Usage Guidelines4/5

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

Gives an explicit routing rule: use append_readme for existing READMEs, implying this tool is for initial creation. However, it does not say what happens when a README already exists (error vs overwrite), which is the key ambiguity for a non-idempotent create.

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

packagecloud_create_repositoryCreate repositoryAInspect

WRITE: create a new, empty package repository in this account (the plan limits how many private ones). Returns the URL of the new repository. POST /repos.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe new repository name.
privateNoCreate a private repository (default true) or a public one.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description adds real value beyond them: the plan quota constraint on private repositories, the fact that it returns the new repository URL, and the underlying POST /repos endpoint.

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

Conciseness5/5

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

Two tight sentences plus the endpoint hint, front-loaded with the WRITE marker and scope. Every clause earns its place; nothing 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 simple 2-parameter mutation with no output schema, the description covers purpose, quota caveat, and return value (the new URL), which is enough to invoke correctly. Only the absence of any alternative-tool routing keeps it from being 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%, so both parameters (name, private with default true) are already fully documented in the schema. The description adds no syntax or format detail beyond that, which is the correct 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.

Purpose5/5

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

States a specific verb and resource ('create a new, empty package repository in this account') and marks it WRITE upfront. It is clearly distinguishable from siblings like get_repository and list_repositories at a glance.

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 when to use it (creating a fresh, empty repository) but never names alternatives such as get_repository or list_repositories, nor states prerequisites beyond the plan-limit aside. Adequate but no explicit when-not guidance.

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

packagecloud_delete_packageDelete (yank) packageA
DestructiveIdempotent
Inspect

WRITE, DESTRUCTIVE AND IRREVERSIBLE: delete one package file from its repository (a gem is yanked). Clients that depend on it will break. Pass the destroy_url of the package object and repeat its file name (the last path segment, for example jake-1.0-2.el6.x86_64.rpm) as confirm_filename. DELETE {destroy_url}.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoOnly for a scoped Node.js package: the scope including the @, for example @example.
destroy_urlYesThe destroy_url of a package object, exactly as returned by the API (a /api/v1/repos/... path).
confirm_filenameYesThe package file name, exactly as in the last segment of destroy_url (the 'filename' field of the package).

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, but the description goes well beyond them by asserting irreversibility, warning that dependent clients will break, disclosing the confirmation-by-repeating-the-filename safeguard, and revealing the underlying call shape 'DELETE {destroy_url}'.

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 severity warning is front-loaded in capitals, followed by the effect, the confirmation contract, and the HTTP shape -- four dense sentences with no filler or repetition.

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

Completeness5/5

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

With no output schema, nothing more is needed: for a destructive, irreversible operation the description covers consequences, the required confirmation parameter, and the request format, which is everything an agent needs to invoke it correctly.

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

Parameters4/5

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

Schema description coverage is 100%, so a baseline of 3 applies, and the description adds genuine meaning: it explains why confirm_filename must repeat the last path segment (a deliberate guard) and gives a concrete example filename, rather than merely restating the schema.

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

Purpose5/5

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

The description states a specific verb and resource ('delete one package file from its repository') and immediately disambiguates with the domain gloss '(a gem is yanked)', which cleanly separates it from siblings like promote_package or get_package.

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

Usage Guidelines4/5

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

It establishes the context in which this tool applies (removing a package file whose dependents will break) and gives an explicit calling instruction -- pass destroy_url and repeat the file name as confirm_filename. It does not name an alternative tool to use instead when the goal is only to move or archive a package, so it stops short of full 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.

packagecloud_get_gpg_keyGet GPG keyA
Read-only
Inspect

One GPG key of a repository by its key name (as returned by list_gpg_keys, for example user-repo-85D7FBF915DFCBC6.pub.gpg). GET /repos/{user}/{repo}/gpg_keys/{keyname}.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_nameYesThe GPG key name.
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description reinforces this by exposing the GET endpoint and the key naming convention, but adds no auth, rate-limit, or failure behavior beyond what annotations provide.

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

Conciseness4/5

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

Extremely concise and front-loaded, with the resource and look-up key stated first. The trailing REST path is mildly redundant but serves as useful endpoint context, keeping the description tight overall.

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 100% schema coverage and read-only annotations, the definition is adequate for invocation, but there is no output schema and the description does not indicate what a returned GPG key contains, leaving a minor gap for a fetch tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real value beyond the schema: a concrete key_name example ('user-repo-85D7FBF915DFCBC6.pub.gpg') and the source of the repository fqname. This clarifies the expected string format that the schema alone does not.

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

Purpose5/5

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

States a specific verb+resource: fetches one GPG key of a repository, scoped by key name. The phrase 'One GPG key ... by its key name' clearly distinguishes it from list_gpg_keys without the agent needing to open either schema.

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

Usage Guidelines3/5

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

The parenthetical 'as returned by list_gpg_keys' implies the workflow (list first, then fetch one), but usage is only implied rather than stated with explicit when/when-not conditions. No exclusions or alternative-selection guidance is given.

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

packagecloud_get_packageGet packageA
Read-only
Inspect

Details of one package file (size, checksums, dependencies, licenses, download counts and its other URLs). Pass the package_url of an item from list_packages, search_packages or list_package_versions. GET {package_url}.

ParametersJSON Schema
NameRequiredDescriptionDefault
package_urlYesThe package_url of a package object, exactly as returned by the API (a /api/v1/repos/... path).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the concrete payload contents (size, checksums, dependencies, licenses, download counts, other URLs) and the underlying GET endpoint, which is meaningful since no output schema exists; it omits auth/rate-limit behavior.

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

Conciseness5/5

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

Three compact sentences, each earning its place: what is returned, where the argument comes from, and the endpoint. The highest-value content (the returned field list) is front-loaded.

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 one parameter fully described in the schema, annotations covering the safety profile, and no output schema, the description fills the main gap by enumerating return fields and the input source. It is complete enough to invoke correctly, though pagination or error behavior is unaddressed.

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

Parameters4/5

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

Schema coverage is 100% and the schema already documents package_url format and length bounds, so the baseline is 3. The description raises this by naming the three upstream tools whose items supply the URL, adding provenance the schema does not capture.

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 (details of one package file) and enumerates the returned fields, which clearly separates it from list_packages and search_packages. It does not explicitly disambiguate from the near-sibling get_package_downloads, so sibling differentiation is partial rather than complete.

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

Usage Guidelines4/5

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

Gives concrete provenance guidance: pass the package_url of an item from list_packages, search_packages or list_package_versions. This tells the agent the correct context and input source, but it offers no when-not-to-use conditions or explicit alternative selection versus get_package_downloads or get_repository.

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

packagecloud_get_package_downloadsGet package download statsA
Read-only
Inspect

Download statistics of one package version: a count, a time series, or (repository owners only) the detail of each download. Default range is the last 7 days; pass start_date=19700101Z for all time. Pass the package_url of the package; Java and generic files have no download stats. GET {package_url minus .json}/stats/downloads/{count|detail|series/}.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNocount = total, series = per interval, detail = one record per download (owners only).count
pageNoPage number, from 1 (default 1). Pass the previous reply's next_page.
sourceNoOnly downloads from the "web" or the "cli".
end_dateNoAn ISO 8601 date, for example 20260101Z or 2026-01-01.
intervalNoSeries interval, "daily" (default) or "weekly".daily
per_pageNoResults per page (default 30; the server caps it at its own Max-Per-Page).
start_dateNoAn ISO 8601 date, for example 20260101Z or 2026-01-01.
user_agentNoOnly downloads whose user agent equals this.
package_urlYesThe package_url of a package object, exactly as returned by the API (a /api/v1/repos/... path).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare read-only/non-destructive, so safety is covered. The description adds meaningful behavioral context beyond that: the default time window, the all-time escape hatch, the owners-only gate on detail, and the Java/generic no-stats limitation. These are real call-shaping details not present 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.

Conciseness4/5

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

Front-loads the purpose, then defaults, then constraints, then the endpoint shape. Dense but every clause carries information; the raw endpoint template at the end is slightly clunky but useful for constructing 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?

Given 9 parameters documented fully in-schema, no output schema, and read-only annotations, the description covers the remaining gaps: time-window defaults, access tier, and unsupported file types. An agent has what it needs to call correctly, though pagination interaction across pages is left entirely to schema text.

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 kind, page, source, end_date, interval, per_page, start_date, user_agent, and package_url. The description reinforces the default range and mentions the URL/kind mechanics but adds little the schema does not. Baseline 3 per rules for high coverage.

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

Purpose5/5

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

States a specific verb+resource (download statistics of one package version) and enumerates the three output kinds. Clear enough to separate from sibling packagecloud_get_package (metadata) and packagecloud_get_repository_installs (repo-level installs).

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

Usage Guidelines4/5

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

Provides concrete usage context: default 7-day range, start_date=19700101Z for all-time, pass package_url. States an important exclusion (Java and generic files have no download stats) and an access restriction (detail is owners-only). No sibling tool is named as an alternative, so not a 5.

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

packagecloud_get_readmeGet repository READMEB
Read-only
Inspect

The Markdown README of a repository. GET /repos/{user}/{repo}/readme.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true). The description adds the concrete API endpoint (GET /repos/{user}/{repo}/readme.json) and the Markdown return format, which is genuinely useful since there is no output schema, but it discloses nothing about errors (e.g. missing README) or auth.

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 fragments, front-loaded with what is returned. The endpoint clause is borderline redundant but does convey the exact call shape, so there is little 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 one-parameter read with no output schema, the description supplies the essential missing piece (return type is Markdown) and the endpoint. It is nearly complete, with only error/auth behavior 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% and the single 'repository' parameter is fully documented in the schema ('user/repo', fqname from list_repositories). The description adds no parameter detail beyond that, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description names the resource (repository README) and its return format (Markdown), and the tool name/title establish the read verb. It does not explicitly distinguish itself from the append/create README siblings, though those are obviously mutations, so it lands at clear-but-no-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?

There is no when-to-use guidance and no mention of the append_readme/create_readme alternatives in the sibling set. An agent must infer from the name alone that this is the read counterpart.

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

packagecloud_get_repositoryGet repositoryA
Read-only
Inspect

One repository: name, fqname, url, privacy, package count and last push. GET /repos/{user}/{repo}.

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

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, openWorldHint=true and destructiveHint=false, so safety is covered. The description adds real value by disclosing the GET /repos/{user}/{repo} route and the exact field set returned, which matters because there is no output schema.

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

Conciseness5/5

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

Two compact sentences, front-loaded with what you get, followed by the route. No filler, no repetition of annotation-declared safety traits.

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 one fully documented parameter, no output schema, and annotations carrying the safety profile, the description covers what an agent needs — the field list stands in for a return schema. It omits auth/permission expectations and error behavior, but those are minor for a simple read.

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% — the schema itself explains the 'user/repo' fqname format and points at packagecloud_list_repositories as the source. The description adds no syntax or format detail beyond that, so the baseline 3 is appropriate.

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 resource ('One repository') and enumerates the fields returned (name, fqname, url, privacy, package count, last push), plus the underlying REST route. This makes it clearly distinct from the plural packagecloud_list_repositories sibling, though it never names that sibling directly.

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 singular 'One repository' versus the sibling list tool suggests when to pick this one, but there is no explicit when-to-use statement, no prerequisite (e.g., you must already know the fqname), and no named alternative.

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

packagecloud_get_repository_installsGet repository install statsA
Read-only
Inspect

How often a repository was installed (set up on a machine): a count, a time series, or (owners only) the detail of each install, optionally for one distro or distro+version. Default range is the last 7 days; pass start_date=19700101Z for all time. GET /repos/{user}/{repo}/stats/installs[/{distro}[/{version}]]/{count|detail|series/}.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNocount = total, series = per interval, detail = one record per install (owners only; includes host names and IP addresses).count
pageNoPage number, from 1 (default 1). Pass the previous reply's next_page.
distroNoOnly installs on this distribution, for example ubuntu.
versionNoOnly installs on this distribution version, for example jammy (needs distro).
end_dateNoAn ISO 8601 date, for example 20260101Z or 2026-01-01.
intervalNoSeries interval, "daily" (default) or "weekly".daily
per_pageNoResults per page (default 30; the server caps it at its own Max-Per-Page).
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).
start_dateNoAn ISO 8601 date, for example 20260101Z or 2026-01-01.
user_agentNoOnly downloads whose user agent equals this.

TDQS

A4.3/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 safety is covered. The description adds genuinely non-obvious behavior: detail is owners-only and exposes host names and IP addresses, the default window is 7 days, and start_date=19700101Z unlocks all time — none of which the annotations convey.

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

Conciseness4/5

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

Front-loaded with the purpose and the mode enumeration, then defaults and scoping. The trailing raw URL template is dense but does encode the kind/distro/version/interval combinations compactly; nothing is wasted, though it reads as documentation-heavy.

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 10-parameter, read-only stats tool with no output schema, the definition covers modes, scoping, defaults, and the owners-only privacy caveat. Pagination behavior and the shape of the series output are left to the schema/agent inference, which is a minor gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: how 'kind' maps onto the URL suffix, that version requires distro, and the trick for querying all time. These cross-parameter relationships raise it above baseline.

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

Purpose5/5

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

States a specific verb+resource ('how often a repository was installed') and enumerates the three output modes (count, series, detail), immediately distinguishing it from the sibling download-statistics tool. An agent can tell what it gets without opening the schema.

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

Usage Guidelines4/5

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

Explains when each mode applies ('count/series/detail', detail owners only) and the scoping conditions for distro/version plus the default and all-time date ranges. It does not name a competing sibling tool explicitly, but the selection guidance among modes is clear.

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

packagecloud_list_distributionsList distributionsA
Read-only
Inspect

The Linux distributions and versions packagecloud supports for deb, dsc and rpm packages, with their index_name (for example ubuntu / jammy) and numeric version ids. GET /distributions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuine context by clarifying this is the fixed set of supported distributions rather than the caller's own data, but says nothing about result size, pagination, or caching of this catalog.

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

Conciseness4/5

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

A single dense sentence, front-loaded with the resource and then the return fields, plus a bare endpoint reference. Nothing is redundant, though the trailing 'GET /distributions' is close to filler for an agent.

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 parameterless, read-only catalog call with no output schema, the description supplies the key thing an agent needs: what comes back and in what form (index_name, numeric version ids). It is nearly complete, with only return-shape/pagination detail missing, which is a minor gap for this simple resource.

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

Parameters4/5

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

The tool takes zero parameters, so the schema has nothing to explain and the description carries no parameter burden. Baseline 4 applies; there is no parameter semantics gap to compensate for.

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

Purpose5/5

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

States a specific verb+resource ('The Linux distributions and versions packagecloud supports') and even names the returned fields (index_name, numeric version ids) and the package formats covered (deb, dsc, rpm). An agent can immediately tell this is static reference data, distinct from siblings like packagecloud_list_repositories or packagecloud_list_packages.

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: revealing that results carry an index_name such as 'ubuntu / jammy' hints this is the lookup used to obtain identifiers for other package/repository operations. There is no explicit when-to-use, no note that it takes no filters, 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.

packagecloud_list_gpg_keysList GPG keysA
Read-only
Inspect

The GPG keys of a repository (repository signing keys and package signing keys): name, fingerprint, type and the public key download URL. GET /repos/{user}/{repo}/gpg_keys.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

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, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that both repository signing keys and package signing keys are included and names the REST endpoint, but says nothing about pagination, auth requirements, or result size.

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?

A single front-loaded sentence that names the resource, enumerates the payload fields, and cites the endpoint path, with zero 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?

With no output schema, the description usefully lists the returned fields so an agent knows what comes back, and annotations cover the read-only nature of the call. Minor gaps (pagination, ordering, auth) remain but nothing critical for correct invocation is missing.

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

Parameters3/5

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

Schema coverage is 100% and the single repository parameter is fully documented in the schema, including the 'user/repo' format and its link to packagecloud_list_repositories. The description adds no further 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+resource ('The GPG keys of a repository') and even enumerates the returned fields (name, fingerprint, type, download URL), which makes the intent unambiguous. It does not explicitly differentiate itself from the sibling packagecloud_get_gpg_key, so a 4 rather than 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 repository parameter and the API endpoint, but the description never says when to list keys versus fetching a single key via packagecloud_get_gpg_key, nor any prerequisite such as repository access. No explicit when/when-not guidance is present.

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

packagecloud_list_package_groupsList package names by typeA
Read-only
Inspect

List the packages of one type, grouped by name with a versions_count and a versions_url (pass that to packagecloud_list_package_versions). Narrow by distro, then version, then arch (each needs the previous one; '*' matches any). Examples: type rpm; type deb + distro ubuntu + version jammy + arch amd64; type gem. GET /repos/{user}/{repo}/packages/{type}[/{distro}[/{version}[/{arch}]]].json.

ParametersJSON Schema
NameRequiredDescriptionDefault
archNoArchitecture, for example amd64 or x86_64.
pageNoPage number, from 1 (default 1). Pass the previous reply's next_page.
typeYesPackage type: deb, rpm, gem, python, node, java, helm, alpine ...
distroNoDistribution name, for example ubuntu or el.
versionNoDistribution version name, for example jammy or 7.
per_pageNoResults per page (default 30; the server caps it at its own Max-Per-Page).
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/destructive/openWorld, so the safety profile is covered. The description adds genuinely new behavior: the grouped output shape (versions_count, versions_url) and the sequential dependency constraint on the narrowing parameters, neither of which appears in the annotations. Pagination behavior is left 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.

Conciseness4/5

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

Front-loaded with the purpose and output shape before the narrowing rules and examples. Dense but every clause carries information; the raw endpoint template and triple example add slight bulk but also real invocation guidance.

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 the work of explaining what comes back (grouped names plus versions_count and versions_url), and it covers the filtering model. Page/per_page semantics live in the schema, so nothing critical is missing for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3 and the schema already documents every parameter. The description goes further by disclosing the distro→version→arch dependency chain and the '*' wildcard semantics, which the schema descriptions do not state.

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

Purpose5/5

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

States a specific verb and resource ('List the packages of one type, grouped by name') and names the distinguishing output fields (versions_count, versions_url). It also routes the agent to the sibling that consumes that output, so it is clearly separable from packagecloud_list_package_versions and packagecloud_list_packages.

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?

Explains the filter hierarchy explicitly ('narrow by distro, then version, then arch; each needs the previous one') and provides three concrete invocation examples plus a next-step handoff to packagecloud_list_package_versions. It stops short of saying when to prefer this over packagecloud_list_packages, so it is clear context without full exclusion guidance.

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

packagecloud_list_packagesList all packagesA
Read-only
Inspect

List every package file in a repository (not grouped), newest data first as the server orders it. Each item carries ready-made URLs: package_url, versions_url, downloads_*_url, promote_url, destroy_url and download_url; pass those to the other package tools. Paged. GET /repos/{user}/{repo}/packages.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, from 1 (default 1). Pass the previous reply's next_page.
per_pageNoResults per page (default 30; the server caps it at its own Max-Per-Page).
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint). The description adds substantive behavior beyond that: server-side ordering (newest data first) and pagination. The absence of an output schema makes the enumeration of returned URL fields genuinely useful disclosure rather than repetition.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the core purpose and scope constraint. The trailing 'GET /repos/{user}/{repo}/packages.json' is mildly redundant with the schema but harmless; nothing else 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 no output schema, the description compensates by naming the returned URL fields (package_url, versions_url, downloads_*_url, promote_url, destroy_url, download_url) an agent needs to chain calls, plus ordering and paging. It is complete for a list tool, though it doesn't explain default page sizes or limits (deferred 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 all three parameters (page, per_page, repository) are already documented in the schema. The description only restates 'Paged' without adding format or constraint detail beyond what the schema provides, which is the expected baseline of 3.

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

Purpose5/5

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

Specific verb+resource: 'List every package file in a repository (not grouped), newest data first.' The parenthetical 'not grouped' explicitly distinguishes it from packagecloud_list_package_groups and packagecloud_list_package_versions without naming schemas.

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?

The description tells the agent how to chain: the returned URLs 'pass those to the other package tools,' and the 'not grouped' framing implies when to prefer this over a grouped listing. It stops short of explicitly naming the alternatives (search_packages, list_package_groups) or stating when NOT to use it.

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

packagecloud_list_package_versionsList package versionsA
Read-only
Inspect

All versions of one package name (for deb/rpm: per distro, version and architecture). Pass the versions_url of an item from list_package_groups, or derive it from a package object. Paged. GET {versions_url}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, from 1 (default 1). Pass the previous reply's next_page.
per_pageNoResults per page (default 30; the server caps it at its own Max-Per-Page).
versions_urlYesThe versions_url of a package object, exactly as returned by the API (a /api/v1/repos/... path).

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds 'Paged. GET {versions_url}', but the pagination mechanics are largely duplicated by the schema's page/per_page descriptions, so net new behavioral context is modest.

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

Conciseness5/5

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

Three short, front-loaded sentences; the return scope comes first, sourcing guidance second, and the pagination/endpoint note last. 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 read-only, three-parameter listing tool with full schema coverage and no output schema, the description covers scope, input sourcing, and pagination adequately. Slight room remains: it does not describe ordering or how versions are grouped in the response, but nothing critical is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds meaning by explaining the origin of versions_url (an item from list_package_groups or a package object's field), which helps the agent construct a valid value beyond the schema's terse 'as returned by the API' wording.

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

Purpose5/5

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

States a specific verb and resource ('All versions of one package name') and adds scope nuance for deb/rpm (per distro, version, architecture), which cleanly separates it from list_packages and list_package_groups. An agent can distinguish it from every sibling without opening the schema.

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

Usage Guidelines4/5

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

It explicitly tells the agent where to obtain the required input: 'Pass the versions_url of an item from list_package_groups, or derive it from a package object.' That is clear routing guidance, though it stops short of stating when this tool should not be used versus other listing tools.

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

packagecloud_list_repositoriesList repositoriesA
Read-only
Inspect

List the package repositories of this account: name, fqname (user/repo, used by every other tool), privacy, package count and last push. include_collaborations adds repositories you collaborate on. GET /repos.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, from 1 (default 1). Pass the previous reply's next_page.
per_pageNoResults per page (default 30; the server caps it at its own Max-Per-Page).
include_collaborationsNoAlso list repositories that belong to other accounts but that you collaborate on.

TDQS

A3.9/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 safety is covered; the description adds real value by naming the exact payload fields returned and noting that fqname is the identifier every other tool expects. It does not discuss pagination limits or result-size behavior beyond what the schema states.

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

Conciseness4/5

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

Two tight sentences: the resource and its fields come first, the collaboration flag second, the underlying endpoint last. Dense but every clause carries information; only the trailing 'GET /repos' is arguably 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?

With no output schema, the description compensates by listing the return fields, and pagination defaults live in the schema. An agent has what it needs to call and interpret the result, though result-size/pagination caveats could have been noted.

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 in the schema, including defaults and caps. The description restates include_collaborations without adding syntax or format detail beyond it, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('List the package repositories of this account') and immediately enumerates the returned fields, which pins down scope against siblings like get_repository or search_packages. The mention of fqname being 'used by every other tool' usefully orients the agent within the toolset.

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 include_collaborations sentence clarifies one usage variation, but there is no explicit guidance on when to call this versus get_repository, list_packages, or search_packages. Usage is implied rather than stated.

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

packagecloud_promote_packagePromote (move) packageA
Destructive
Inspect

WRITE, DESTRUCTIVE: MOVE a package file to another repository (for example staging -> production). It no longer exists in the source repository afterwards, and its download statistics are cleared. Pass the promote_url of the package object and the destination as user/repo. POST {promote_url}.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoOnly for a scoped Node.js package: the scope including the @, for example @example.
destinationYesThe destination repository as "user/repo" (it must already exist).
promote_urlYesThe promote_url of a package object, exactly as returned by the API (a /api/v1/repos/... path).

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and non-idempotent, but the description adds real specifics: the package no longer exists in the source repository and its download statistics are cleared. It also discloses the underlying call (POST {promote_url}), which is behavior beyond what annotations convey.

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

Conciseness5/5

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

Two compact sentences with zero filler; the destructive framing and effect are front-loaded before the endpoint detail. Every clause carries information.

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

Completeness5/5

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

No output schema exists, and the description covers the mutation's consequence, the required inputs, and the call shape. For a 3-parameter write tool with full schema coverage and complete annotations, nothing needed to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both required parameters are already documented, including the 'user/repo' format and that destination must exist. The description largely restates that schema content rather than adding new semantics, so it earns the baseline 3.

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

Purpose5/5

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

States a specific verb and resource ('MOVE a package file to another repository') with an explicit scope example (staging -> production). An agent can distinguish it from siblings like delete_package or get_package without opening any schema.

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

Usage Guidelines4/5

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

Gives a clear usage scenario (promoting staging to production) that tells the agent when this applies. It never names an alternative tool or states when not to use it, so it stops short of full routing guidance.

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

packagecloud_search_packagesSearch packagesA
Read-only
Inspect

Search a repository by package file name. An empty q returns every package. filter limits by type (rpms, debs, dscs, gem, python, node); dist (for example ubuntu or el/6) overrides filter; arch applies to Alpine/RPM/Debian only. Items carry the same ready-made URLs as list_packages. Paged. GET /repos/{user}/{repo}/search.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoPart of the package file name; empty returns all packages.
archNoArchitecture, for example x86_64, arm64 or amd64.
distNoDistribution, for example ubuntu or el/6.
pageNoPage number, from 1 (default 1). Pass the previous reply's next_page.
filterNoPackage type: rpms, debs, dscs, gem, python or node. Ignored when dist is given.
per_pageNoResults per page (default 30; the server caps it at its own Max-Per-Page).
repositoryYesThe repository as "user/repo" (the fqname returned by packagecloud_list_repositories).

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and non-destructive, so the safety profile is covered. The description adds what annotations cannot: that results are paged and that an empty query returns the entire repository (a potentially large response the agent should anticipate).

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

Conciseness5/5

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

Four dense sentences, each carrying distinct information (query semantics, filter/dist/arch interplay, return format, endpoint). No filler and the core behavior is front-loaded.

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 compensates by noting the shape of returned items and pagination. It stops short of describing default page size behavior or error conditions, but an agent has enough to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description earns a fourth point by stating a cross-parameter rule not present in the schema: 'arch applies to Alpine/RPM/Debian only', plus the dist-overrides-filter precedence.

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 a repository by package file name') and names the sibling whose output format it mirrors ('Items carry the same ready-made URLs as list_packages'). It doesn't explain why an agent would pick this over list_packages, but the purpose is unambiguous.

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

Usage Guidelines3/5

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

Gives an operational hint that an empty q returns every package, which implies the tool doubles as a bulk-list, but never says when to use it versus list_packages or get_package. Usage is implied rather than stated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 18 tool updates
    • First observedpackagecloud_append_readme
    • First observedpackagecloud_create_readme
    • First observedpackagecloud_create_repository
    • First observedpackagecloud_delete_package
    • First observedpackagecloud_get_gpg_key
    • First observedpackagecloud_get_package
    • First observedpackagecloud_get_package_downloads
    • First observedpackagecloud_get_readme
    • First observedpackagecloud_get_repository
    • First observedpackagecloud_get_repository_installs
    • First observedpackagecloud_list_distributions
    • First observedpackagecloud_list_gpg_keys
    • First observedpackagecloud_list_package_groups
    • First observedpackagecloud_list_package_versions
    • First observedpackagecloud_list_packages
    • First observedpackagecloud_list_repositories
    • First observedpackagecloud_promote_package
    • First observedpackagecloud_search_packages

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.