MCP server for Shelby Protocol — decentralized storage for AI agents
shelby-mcp has 5 tools with clear verb-noun naming (shelby_upload, shelby_download, shelby_list, shelby_delete, shelby_account). All tools have descriptions (avg ~120 chars, within baseline 34-392). Input schemas are present and use Zod with type definitions. However, critical gaps: (1) No output schemas documented, LLMs cannot predict response structure; (2) Parameter descriptions lack format/constraint details (e.g., blob_name has no length/pattern guidance); (3) No error handling guidance, failures return raw CLI stderr; (4) shelby_list has a fallback catch block that silently swallows errors and returns account balance instead, violating error-classification pattern; (5) No pagination support despite list tool; (6) shelby_upload/delete lack confirmation/dry-run for destructive ops. Naming is solid but schema and error handling are weak.
Show current Shelby account info: name, address, balance, and active network context.
Delete a blob from Shelby storage.
Download a blob from Shelby storage and return its content as text.
List all blobs stored in Shelby under the current account, optionally filtered by prefix.
Upload a file to Shelby decentralized storage. Provide file content as text, a destination blob name, and expiration.
No output schemas documented. LLMs cannot predict response structure or plan downstream tool calls. All 5 tools return text content only; structured fields (blob_name, size, timestamp, balance) are buried in unstructured text.
shelby_list silently catches errors and returns account balance instead of the requested list. This violates error-classification pattern, LLM cannot distinguish between 'no blobs found' and 'API error'. Fallback behavior masks real failures.
Parameter descriptions lack format constraints. blob_name has no length limits, character restrictions, or path traversal guidance. expiration accepts 'natural language' but no examples of valid formats (ISO 8601, relative, absolute). LLMs will hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Destructive operations (shelby_upload, shelby_delete) lack confirmation or dry-run support. Agents can accidentally overwrite or delete blobs without verification. No idempotent-operation or confirmation-request pattern implemented.
shelby_list does not support pagination (no limit, offset, or cursor params). Large blob stores will return all results, exhausting context window. Baseline pattern requires pagination for list tools.