Skip to main content
Glama

Uploadcare MCP by usefulapi

Server Details

Manage Uploadcare files, groups and webhooks; upload and store files.

Ownership verified
Status
Healthy
Uptime
87.3% over 75 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct resource and action — file operations (upload, store, delete, get, list, metadata), group reads, project read, and webhook create/list. Even the closest pair (get_file vs get_file_metadata) is clearly differentiated by resource scope and REST endpoint.

Naming Consistency5/5

All 11 tools use the exact same uploadcare_verb_noun convention (get_file, list_files, delete_file, create_webhook, etc.). No mixing of styles or vague verbs.

Tool Count5/5

11 tools is well within the ideal 3-15 range for a file-management API wrapper. Each tool maps to a meaningful operations and none appears redundant.

Completeness3/5

File lifecycle is well covered (upload, store, get, list, delete) and reads exist for groups/project/webhooks, but several lifecycle gaps remain: webhooks support only create/list (no update or delete), metadata is read-only despite being exposed, and groups cannot be created or deleted. Agents can work around some of these via direct REST but hit real dead ends.

Available Tools

11 tools
uploadcare_create_webhookCreate webhookC
Destructive
Inspect

Creates a webhook subscription (additive). The project will POST to target_url when the chosen event fires. REST API: POST /webhooks/.

NameRequiredDescriptionDefault
eventNoEvent to subscribe to. Default "file.uploaded".
is_activeNoWhether the webhook is active. Default true.
target_urlYesURL the webhook will POST to.

TDQS

C2.9/5.0
Behavior2/5

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

The description labels the operation "(additive)", while the annotation declares destructiveHint=true — the MCP vocabulary explicitly defines additive as the opposite of destructive, so these signals conflict. The description does add genuinely useful behavior (an outbound POST to target_url fires on the chosen event, mapped to POST /webhooks/), so it is not a total void, but the contradiction undercuts the safety profile.

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 clauses with no filler: the action, the runtime behavior, and the REST mapping. The endpoint mapping earns its place, though the parenthetical "(additive)" is the weakest element given it conflicts with the 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 mutation-type tool with no output schema and no annotation beyond destructiveHint, the description covers the core effect but omits what is returned (e.g., webhook ID for later management), any auth/scope requirements, and the interaction with existing subscriptions. Adequate to invoke, 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%, so all three parameters (target_url, event with default "file.uploaded", is_active with default true) are already documented in the schema. The description only restates that target_url receives a POST and that the "chosen event" triggers it, adding no syntax, format, or default information 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?

"Creates a webhook subscription" is a specific verb+resource, and the description goes further by naming the REST endpoint (POST /webhooks/) and clarifying that the operation is additive. It is clearly distinct from the sibling list_webhooks, but it never explicitly references that counterpart, so 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 Guidelines2/5

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

The description explains the mechanics (the project POSTs to target_url when the chosen event fires) but gives no guidance on when to use this tool versus alternatives, no prerequisites, and no warning that repeated calls accumulate subscriptions. Usage is only implied by the tool name.

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

uploadcare_delete_fileDelete fileA
Destructive
Inspect

Permanently deletes a file from the project. Destructive. REST API: DELETE /files/{uuid}/.

NameRequiredDescriptionDefault
uuidYesFile UUID to delete.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, but the description adds genuinely useful context beyond that: the word 'Permanently' conveys irreversibility and the raw REST endpoint (DELETE /files/{uuid}/) is disclosed. It still omits permissions/auth requirements and what happens if the file is already deleted.

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, with the operation and its destructive nature front-loaded before the implementation detail. Every clause earns its place and nothing is padded.

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 destructive tool with no output schema, the description covers the essentials: what is deleted, that it is permanent, and the underlying API call. Minor gaps remain around auth/permissions and idempotency on repeated deletes, but nothing critical 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% with a single required uuid parameter that is already documented in the schema ('File UUID to delete.'). The description adds no format, source, or constraint detail beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

The description names a specific verb (deletes) and resource (a file from the project) and qualifies it with 'Permanently', making the operation unambiguous and clearly distinct from siblings like uploadcare_get_file and uploadcare_store_file.

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: 'Permanently deletes' plus 'Destructive' signals caution, but there is no explicit when-to-use guidance, no mention of the alternative uploadcare_store_file, and no note on prerequisites or recovery.

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

uploadcare_get_fileGet fileA
Read-only
Inspect

Get full info for a single file: uuid, url, original_filename, size, mime_type, is_image, is_ready, timestamps, variations, content_info, metadata, tags. REST API: GET /files/{uuid}/.

NameRequiredDescriptionDefault
uuidYesFile UUID.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered; the description reinforces this by naming the corresponding read endpoint (GET /files/{uuid}/). It adds no further behavioral context such as error cases for unknown UUIDs or whether the call is cacheable.

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 compact sentences, front-loaded with the action and scoped to 'a single file'. The 12-item field enumeration is long but justified because no output schema exists; only minor tightening is possible.

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 no output schema, the description supplies the missing return-value information by listing the fields, which is exactly what the agent needs. Auth requirements and error behavior remain unstated but are minor here.

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

Parameters3/5

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

Only one parameter (uuid) exists and schema description coverage is 100%, so the schema already documents it. The description only echoes 'uuid' as part of the returned field list, adding no format or sourcing detail beyond the schema — 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 ('Get full info for a single file') and enumerates the returned fields, which clearly separates it from sibling list tools and from uploadcare_get_file_metadata. An agent can select it without opening the schema.

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

Usage Guidelines3/5

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

The scope ('a single file') implies when to use it versus uploadcare_list_files, but there is no explicit when/when-not guidance and the overlapping sibling uploadcare_get_file_metadata is never mentioned. Usage is inferable rather than stated.

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

uploadcare_get_file_metadataGet file metadataA
Read-only
Inspect

Get all custom metadata key/value pairs for a file. REST API: GET /files/{uuid}/metadata/.

NameRequiredDescriptionDefault
uuidYesFile UUID.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the safe-read profile is established. The description adds that it returns custom metadata key/value pairs, but doesn't mention permissions, whether metadata can be empty, 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?

Single sentence stating purpose plus REST endpoint, front-loaded and waste-free.

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?

Basic retrieval tool with no output schema. The description covers what it gets but lacks detail on return structure (key/value map) or edge cases; adequate but not rich.

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?

One parameter (uuid) with 100% schema description coverage; the schema fully documents it. The description correctly implies the uuid identifies the file but adds no syntax detail beyond schema, capping at 4.

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

Purpose5/5

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

States a specific verb (Get) and resource (custom metadata key/value pairs for a file), clearly distinguishing it from siblings like uploadcare_get_file (file info) and uploadcare_list_files (file listing).

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 vs uploadcare_get_file or other retrieval tools. The REST endpoint is provided but no context about when metadata retrieval is appropriate.

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

uploadcare_get_groupGet groupB
Read-only
Inspect

Get info for a single file group by its id. REST API: GET /groups/{uuid}/.

NameRequiredDescriptionDefault
uuidYesGroup id in the form "<uuid>~<count>", e.g. "badfc9f7-...~2".

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint=true annotation already establishes this is a safe, non-mutating read, so the description is not carrying the safety burden. It adds only the REST mapping (GET /groups/{uuid}/), with nothing about error behavior for malformed ids or what a group payload 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?

Two short, front-loaded sentences with no filler. The REST endpoint line is of marginal value to an agent but costs only a few words.

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?

A simple single-parameter read tool with read-only annotations, so little is strictly required. Still, with no output schema, the description could say what 'info' comprises (files, counts, metadata), and it omits this entirely.

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 uuid parameter is fully documented in the schema with its '<uuid>~<count>' format and an example. The description's 'by its id' adds no syntax or format detail 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+resource ('Get info for a single file group') and the lookup key ('by its id'), which separates it from list_groups. It does not explicitly name sibling tools or contrast itself with get_file, but the singular-scoped 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?

Usage is implied: call it when you hold a group id and need that group's details. There is no statement of when not to use it, no prerequisite/auth note, and no pointer to list_groups as the alternative for enumeration.

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

uploadcare_get_projectGet projectA
Read-only
Inspect

Get project details: name, public key, collaborators, and whether autostore is enabled. REST API: GET /project/.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

readOnlyHint=true already covers the safety profile, so the bar is lower; the description still adds value by naming the fields the response carries (public key, collaborators, autostore flag), which matters because there is no output schema. It does not discuss auth requirements, but for a zero-parameter read that is minor.

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

Conciseness5/5

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

Two tight sentences: the purpose and returned fields come first, the REST endpoint second. Nothing is padded or repeated from the title.

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 parameters and no output schema, the description's field enumeration is what tells the agent what to expect back, so it carries the needed load. It stops short of fully describing the response shape (e.g. collaborator structure), which is acceptable for a simple singleton read.

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 no parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify beyond the empty schema.

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

Purpose5/5

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

States a specific verb and resource ('Get project details') and enumerates the concrete fields returned (name, public key, collaborators, autostore status). It is unambiguously distinct from the file/group/webhook siblings, which operate on different resources.

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 empty parameter list and singleton 'project' resource make it obvious this returns the current account's project, with no alternatives to choose between. There is no explicit statement of when to call it or any prerequisites, but the lack of overlap with siblings limits the risk.

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

uploadcare_list_filesList filesA
Read-only
Inspect

List files in the project (paginated envelope: next, previous, total, per_page, results). REST API: GET /files/.

NameRequiredDescriptionDefault
fromNoPagination cursor taken from a previous response's `next` URL.
limitNoFiles per page (max 1000). Default 100.
storedNoFilter by stored status (true = stored, false = not stored).
removedNoFilter by removed status (true = removed, false = present).
orderingNoSort order, e.g. datetime_uploaded or -datetime_uploaded (descending).

TDQS

A3.6/5.0
Behavior4/5

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

readOnlyHint=true already establishes this as a safe read, so the bar is lower. The description goes beyond annotations by naming the paginated response envelope (next, previous, total, per_page, results), which is the only place the return shape is documented since no output schema exists. It omits pagination mechanics and auth specifics, keeping it out of 5 territory.

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

Conciseness4/5

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

Two tightly packed clauses with the purpose front-loaded and no wasted prose. The trailing 'REST API: GET /files/' is the weakest element, mildly redundant for an agent that only needs the tool contract.

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

Completeness5/5

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

For a zero-required-parameter list tool with readOnlyHint and fully documented inputs, the description covers purpose and return envelope, which is everything an agent needs to call it correctly. Filtering and sorting semantics live in the schema, so nothing critical 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 all five parameters (from, limit, stored, removed, ordering) are already documented in the schema. The description adds only the implied notion of pagination, which the 'from'/'limit' descriptions already cover, 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 files in the project'), which clearly separates it from sibling list tools like uploadcare_list_groups and uploadcare_list_webhooks. It does not explicitly name alternatives or echo what search/filter tools it competes with, so it stops short of a 5.

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

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, and no exclusion telling the agent when to prefer get_file or a filtered query. Usage is only implied by 'list files', matching the calibration case that scored 2 for absent guidance.

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

uploadcare_list_groupsList groupsA
Read-only
Inspect

List file groups in the project (paginated envelope: next, previous, total, per_page, results). REST API: GET /groups/.

NameRequiredDescriptionDefault
limitNoGroups per page (max 1000). Default 100.
orderingNoSort order, e.g. datetime_created or -datetime_created (descending).

TDQS

A4/5.0
Behavior4/5

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

readOnlyHint=true already covers the safety profile, so the bar is lower, yet the description adds the pagination envelope fields (next, previous, total, per_page, results) that the agent would otherwise not know since there is no output schema. It does not mention rate limits, auth, or default page size 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?

A single front-loaded sentence states the operation, its pagination shape, and the underlying REST endpoint. Nothing is padded or buried.

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 envelope keys the response returns, and the endpoint mapping helps an agent reason about behavior. Minor gaps remain around ordering defaults and page-size interaction, but nothing essential to a correct call 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% (limit and ordering are both documented inline with ranges and examples), so the schema carries parameter meaning entirely. The description adds nothing about limit or ordering syntax, making the baseline 3 correct.

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 file groups in the project'), which cleanly separates it from the single-resource sibling uploadcare_get_group and from uploadcare_list_files. 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?

Usage is only implied by the verb 'List' and the paginated framing; the description never says when to choose this over get_group (single group) or list_files (individual files), nor any prerequisite. Adequate but leaves routing to inference.

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

uploadcare_list_webhooksList webhooksA
Read-only
Inspect

List all webhook subscriptions configured for the project. REST API: GET /webhooks/.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

readOnlyHint=true in the annotations already establishes this is a safe, non-mutating read, so the bar is lower. The description adds only the underlying REST endpoint (GET /webhooks/), and says nothing about pagination, result volume, or auth scoping beyond 'for the project'.

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 the purpose front-loaded and the API reference trailing as supporting detail. 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 zero-parameter, read-only list tool with no output schema, the description covers what an agent needs to select and call it. The only minor gap is not indicating whether the list is paginated or truncated.

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 baseline of 4 applies. There are no parameters that need semantic elaboration in the description.

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 ('List') and resource ('webhook subscriptions') with explicit scope ('configured for the project'). It is clear what the tool does, though it never references its write counterpart uploadcare_create_webhook, so sibling 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?

Usage is only implied by the read-only listing nature of the tool; there is no statement of when to use it versus uploadcare_create_webhook, nor any prerequisites or exclusion conditions. Adequate but leaves the agent to infer context.

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

uploadcare_store_fileStore fileB
Destructive
Inspect

Marks a file as permanently stored (otherwise unstored files are deleted after 24h). Additive. REST API: PUT /files/{uuid}/storage/.

NameRequiredDescriptionDefault
uuidYesFile UUID to store.

TDQS

B3.3/5.0
Behavior1/5

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

Annotations declare destructiveHint=true, yet the description asserts 'Additive.' MCP defines destructiveHint=false as the additive case, so these directly conflict. A caller deciding whether this is safe gets contradictory signals with no resolution.

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 essential behavior first and the endpoint last. However, the one-word fragment 'Additive.' does not earn its place since it is the source of the annotation conflict.

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 tool with no output schema the description covers purpose, lifetime consequence, and the API mapping. It does not say what the call returns, 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% and the single 'uuid' parameter is documented in the schema as 'File UUID to store.', so the description adds nothing beyond it. Baseline 3 applies for a well-covered schema.

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

Purpose5/5

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

States a specific verb+resource ('Marks a file as permanently stored') and immediately explains the consequence of not doing so (unstored files deleted after 24h), which cleanly separates it from siblings like delete_file and get_file. Even names the underlying REST endpoint.

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 24h deletion note implies when this tool matters (whenever a file must outlive the temporary window), but there is no explicit when-to-use/when-not guidance and no named alternative. Usage must be inferred from the consequence sentence.

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

uploadcare_upload_from_urlUpload file from URLA
Destructive
Inspect

Uploads a file into the project from a public URL (additive). Uses the Upload API host with the public key. Returns { type: "token", token } for async ingestion (poll separately) or the file info. Upload API: POST /from_url/.

NameRequiredDescriptionDefault
storeNoStore the file: "1" = store, "0" = don't store, "auto" = project default. Default "auto".
filenameNoOverride the stored filename.
source_urlYesPublic URL of the file to ingest.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only carry destructiveHint=true, so the description is doing real work: it discloses the API host, the required public key, the exact endpoint POST /from_url/, and the two possible return shapes. It partially counter-signals the destructiveHint with '(additive)' without reconciling them, which is the one 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 that front-load the action and scope before the return-shape detail. The endpoint string 'POST /from_url/' is mildly expendable but the whole block is compact with 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, the description correctly compensates by describing both possible return values and the async polling requirement. It omits error behavior and any size/URL restrictions, but for a simple 3-parameter ingestion tool it is nearly 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 store, filename and source_url are already fully documented in the schema. The description adds no syntax, format or constraint detail beyond what the structured fields provide, 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: 'Uploads a file into the project from a public URL', which is unambiguous and distinguishable from the read/delete/list siblings. It adds the '(additive)' qualifier and the exact endpoint, but never explicitly contrasts itself with the closest sibling, uploadcare_store_file.

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?

It implies the workflow ('Returns { type: "token", token } for async ingestion (poll separately)'), which tells the agent the call may not complete synchronously. It gives no explicit when-to-use guidance versus alternatives such as store_file, and states no preconditions beyond 'public URL'.

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Upload any file from the local filesystem and get a shareable, expiring link — with tools to check file status, list recent uploads, and delete files on demand.
    4
    21
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides tools to interact with the Upvote.club Public API, including creating tasks, checking task status, listing platforms, and more.
    37
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.