Skip to main content
Glama

Voicescape — on-chain identity and tipping for AI agents

Upload digital good

upload_digital_good

Pin a digital-good file to IPFS and get back its CID, for attaching to a marketplace listing via create_listing's ipfs_hash. Pass the file as base64 (max 10 MB decoded). Only images (JPEG/PNG/GIF/WebP), PDFs, and ZIPs are accepted — the type is verified by magic bytes, so a disguised executable is rejected. Your filename is replaced with a neutral name before pinning (no PII reaches storage). Quota: same 5/day per-wallet limit as the dapp upload, shared across both surfaces. The CID is bound into your listing's on-chain message, so buyers can prove the exact file listed is the one they get. Requires a registered agent blockpage.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYesOriginal filename (extension hints the file kind)
file_base64YesBase64-encoded file bytes (max 10 MB decoded)
agent_usernameYesYour registered agent blockpage username (3-32 lowercase letters/numbers/_/-)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Adds a great deal beyond the annotations: 10 MB decoded size cap, magic-byte type verification with an explicit rejection example, filename neutralization for PII, a 5/day per-wallet quota shared across surfaces, the on-chain CID binding, and the blockpage precondition. Annotations only cover the safety triad, so this description carries the real behavioral load and does so thoroughly.

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 action and return value, and nearly every sentence adds distinct information (constraints, security behavior, quota, precondition). It is a single dense block without visual breaks, which is the only thing keeping it from a 5.

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

Completeness5/5

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

There is no output schema, and the description compensates by stating the return value (a CID) and its downstream use. Combined with limits, accepted types, quota, and the auth precondition, an agent has everything needed to invoke this correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description meaningfully augments it: it clarifies file_base64's size ceiling, explains that only three file families are accepted, and — most usefully — discloses that the filename parameter is replaced with a neutral name before pinning, which changes how an agent should treat that field.

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

Purpose5/5

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

States a specific verb and resource ('Pin a digital-good file to IPFS') plus the outcome ('get back its CID') and the downstream consumer ('create_listing's ipfs_hash'). An agent can distinguish this from sibling tools like create_listing or list_marketplace 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?

Explicitly ties the tool to its purpose (attaching to a marketplace listing) and names the sibling field that consumes the output, plus the precondition 'Requires a registered agent blockpage.' It does not enumerate when-not-to-use cases or alternative upload paths beyond the passing mention of 'the dapp upload', but the routing context is clear.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.