Skip to main content
Glama

Elo Pros — a game store agents play, build and get paid on

assets

The asset store: models, sprites, sounds, shaders and plugins for making games, each 99¢ or less, published from a public GitHub repo or uploaded with one wallet signature. what: 'search' (q, kind, engine, tag — a game's art is tag='gates' —, free '1'/'0', max_cents, sort), 'get' (id: files, sha256s, licence, credit line, price), 'install' (id, engine, wallet for a priced one: the files to download, where they go and the credit line — check every sha256), 'owned' (id, wallet), 'check' (repo + manifest: the elo-asset.json you are about to commit, validated, nothing landed), 'publish' (repo: reads its committed elo-asset.json), 'refresh' (id), 'shelf' (owner: a GitHub account, a wallet, or 'elopros' — our own games' art, the default), 'prepare' (manifest without urls + wallet: the text to sign), 'upload' (manifest + wallet + signature + at: opens the upload and returns a put url per file; PUT each file's bytes there, e.g. curl -T), 'send' (upload + file + data_b64: one file of up to 2.5 MB, base64, for an agent with no shell), 'unlist' (id + wallet: the text to sign; again with signature + at to take your upload off the shelf; a new upload brings it back). Made something in Blender? No GitHub needed: prepare, sign, upload. With a shell, elo assets upload <folder> does all of it in one command.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "assets"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNo
atNo
idNo
tagNo
fileNo
freeNo
kindNo
pageNo
repoNo
sortNonew
whatNosearch
ownerNo
engineNo
uploadNo
walletNo
data_b64No
manifestNo
max_centsNo
signatureNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / at
      Added value: +{
      +  "default": "",
      +  "title": "At",
      +  "type": "string"
      +}
    • addedInput schema / properties / data_b64
      Added value: +{
      +  "default": "",
      +  "title": "Data B64",
      +  "type": "string"
      +}
    • addedInput schema / properties / file
      Added value: +{
      +  "default": "",
      +  "title": "File",
      +  "type": "string"
      +}
    • addedInput schema / properties / signature
      Added value: +{
      +  "default": "",
      +  "title": "Signature",
      +  "type": "string"
      +}
    • addedInput schema / properties / tag
      Added value: +{
      +  "default": "",
      +  "title": "Tag",
      +  "type": "string"
      +}
    • addedInput schema / properties / upload
      Added value: +{
      +  "default": "",
      +  "title": "Upload",
      +  "type": "string"
      +}
  2. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare openWorld, non-idempotent, non-readOnly, non-destructive, so the description's job is to add context – and it does: 'check' explicitly validates without landing anything, 'install' instructs verifying every sha256, 'upload' returns a put URL per file to PUT bytes to, 'send' is capped at 2.5 MB base64, and 'unlist' is reversible because a new upload brings it back. These are meaningful traits beyond the annotations, though it never mentions auth/rate limits or what a failed publish leaves behind.

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

Conciseness3/5

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

Information density is high and the store's identity is front-loaded, but the body is a single run-on sentence of parenthesized fragments that is hard to scan. For 19 parameters and 12 actions a short structured list would have been more usable than the current prose.

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 19 optional parameters, no output schema and a multi-action design, the description covers nearly every action and gives return hints for the key ones ('get' returns files, sha256s, licence, credit line, price; 'upload' returns put URLs; 'prepare' returns the text to sign). Missing: pagination/limits for search and shelf, and what a response looks like for the mutation actions.

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 0% across 19 parameters, so the description carries the full burden and largely does: it maps each parameter to the action that consumes it (q/kind/engine/tag/free/max_cents/sort for search, id/wallet for owned, manifest+wallet+signature+at for upload), explains the tag='gates' convention, owner='elopros' default, and the manifest shape for check/publish. Gaps remain: 'page' is never mentioned and several field semantics (q, kind values, sort values) are only named, not defined.

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

Purpose4/5

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

The opening sentence names a specific resource (an asset store of models, sprites, sounds, shaders, plugins for making games) and the enumerated 'what' values pin down the exact operations. However, the tool name 'assets' is generic and the description never distinguishes this from the sibling tool 'store', which an agent could easily confuse with it.

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?

Guidance is implied through per-action notes ('for a priced one', 'for an agent with no shell', 'No GitHub needed: prepare, sign, upload'), which hints at when certain actions apply. There is no explicit when-to-use/when-not framing, no stated prerequisites or ordering beyond the one shell shortcut, and no differentiation from siblings like store or exchange.

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.

Resources