Skip to main content
Glama

shelby-mcp

MCP server for Shelby Protocol — connect AI agents to decentralized storage.

Works with Claude Desktop, Cursor, Claude Code, Codex, and any MCP-compatible client.

What it does

AI agents can read, write, and manage files on Shelby's decentralized storage network (Aptos) through 5 tools:

Tool

Description

shelby_upload

Upload text content to Shelby storage

shelby_download

Download a blob and return its content

shelby_list

List blobs under current account

shelby_delete

Delete a blob

shelby_account

Show account info, balance, network

Related MCP server: filesystem-mcp

Prerequisites

  • Node.js v18+

  • Shelby CLI installed and configured (npm install -g @shelby-protocol/cli)

  • A funded Shelby account (shelby faucet)

Install

git clone https://github.com/Jasekeee/shelby-mcp.git
cd shelby-mcp
npm install
npm run build

Use with Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "shelby": {
      "command": "node",
      "args": ["/absolute/path/to/shelby-mcp/build/index.js"]
    }
  }
}

Restart Claude Desktop. You can now say:

"Upload this report to Shelby as reports/q1-2026.txt"

"Download my config from Shelby"

"What's my Shelby account balance?"

Use with Cursor

Add to .cursor/mcp.json in your project:

{
  "mcpServers": {
    "shelby": {
      "command": "node",
      "args": ["/absolute/path/to/shelby-mcp/build/index.js"]
    }
  }
}

Use with Claude Code

claude mcp add shelby node /absolute/path/to/shelby-mcp/build/index.js

Architecture

AI Agent (Claude/Cursor/Codex)
    ↕ MCP Protocol (stdio)
shelby-mcp server
    ↕ CLI wrapper
shelby CLI → Aptos blockchain → Shelby storage network

The server wraps the shelby CLI rather than using the SDK directly. This ensures compatibility across CLI versions and avoids SDK breaking changes.

Configuration

shelby-mcp reads from your existing ~/.shelby/config.yaml. No additional configuration needed — if shelby upload works in your terminal, it works through MCP.

Contributing

PRs welcome. Please open an issue first for major changes.

License

MIT

Available Tools

5 tools
shelby_accountShelby account infoA

Show current Shelby account info: name, address, balance, and active network context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description must communicate behavioral traits. While 'show' suggests a read-only, non-destructive operation, it does not explicitly state safety, authentication requirements, or potential side effects. The description is adequate but lacks explicit behavioral disclosure beyond the verb.

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 of 14 words efficiently conveys the tool's purpose. Every word contributes meaning without redundancy or unnecessary elaboration.

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 the low complexity (zero parameters, no output schema), the description is largely complete. It lists the key fields returned, which is helpful. However, it could note that the output is a single object or clarify the nature of 'network context' for full completeness.

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 has zero parameters, so the description does not need to add parameter meaning. According to guidelines, a baseline of 4 is appropriate when no parameters exist, as the description correctly omits any parameter details.

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 clearly states the action ('show') and the resource ('current Shelby account info'), listing specific fields (name, address, balance, network context). It distinguishes from sibling tools like 'shelby_delete' or 'shelby_upload' which perform different actions.

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 this tool is for viewing account details but doesn't provide explicit guidance on when to use it over alternatives like 'shelby_list'. No when-not-to-use or context for selection among siblings is given, leaving the agent to infer based on tool name alone.

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

shelby_deleteDelete from ShelbyA

Delete a blob from Shelby storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
blob_nameYesBlob name to delete

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full responsibility for behavior. 'Delete a blob from Shelby storage' correctly implies destructive action, but lacks detail on permanence, confirmation, or error handling (e.g., if blob doesn't exist). It is adequate for a simple deletion but could be more transparent.

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 description is a single, concise sentence that immediately conveys the tool's purpose. It is front-loaded with no extraneous information, making it highly efficient for an AI agent to process.

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?

Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is minimally complete. However, it omits details like deletion behavior (e.g., is it permanent?), error conditions, or return value, which would enhance completeness for an agent without external knowledge.

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?

The schema covers 100% of parameters with a description for 'blob_name'. The tool description adds no additional meaning beyond the schema's 'Blob name to delete'. For a single required parameter with full schema coverage, baseline 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?

The description clearly specifies the action (Delete) and the resource (a blob from Shelby storage), directly corresponding to the tool's name and title. It distinctively defines the tool's function, setting it apart from sibling tools like shelby_upload or shelby_list.

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 provides no guidance on when to use this tool versus alternatives, such as when to delete versus list or account-related actions. No explicit context, prerequisites, or exclusion criteria are mentioned, leaving the agent to infer usage solely from the tool's name and description.

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

shelby_downloadDownload from ShelbyB

Download a blob from Shelby storage and return its content as text.

ParametersJSON Schema
NameRequiredDescriptionDefault
blob_nameYesBlob name to download

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It mentions returning content as text but omits key behaviors: whether binary blobs are supported, size limits, authentication needs, or error handling. The description is insufficient for safe invocations.

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?

The description is a single sentence, which is concise but lacks structure (e.g., no sections, no front-loading of critical info). While not verbose, it could benefit from more detail within the same length.

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

Completeness2/5

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

Given the simplicity (1 param, no output schema, no annotations), the minimum viable description should explain return format, potential errors, and prerequisites. The current description only covers the basic purpose, leaving significant gaps.

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% (single parameter with description 'Blob name to download'). The description adds no additional semantic value beyond the schema, so 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?

The description clearly states the action (download), resource (blob from Shelby storage), and output (return content as text). It distinguishes from siblings like shelby_upload and shelby_delete.

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 does not provide explicit guidance on when to use this tool versus alternatives. It implies usage for downloading blobs but lacks context like prerequisites (e.g., existing blob names) or when not to use.

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

shelby_listList Shelby blobsB

List all blobs stored in Shelby under the current account, optionally filtered by prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNoOptional prefix to filter blobs, e.g. "reports/"

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose any behavioral traits (e.g., read-only, pagination, permissions, rate limits). Only states the basic function.

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, no wasted words. Clearly front-loaded with the core purpose.

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?

Adequate for a basic list tool with one optional parameter. Lacks mention of return format or pagination, but no output schema exists. Could be more 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% (prefix parameter described). The description adds no additional meaning beyond the schema, so 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?

Clearly states the action (list), resource (blobs stored in Shelby), scope (under the current account), and optional filtering by prefix. Distinguishes from siblings like delete, download, upload.

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 explicit guidance on when to use this tool versus alternatives (e.g., when to filter vs list all). The description lacks context for decision-making beyond obvious naming.

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

shelby_uploadUpload to ShelbyB

Upload a file to Shelby decentralized storage. Provide file content as text, a destination blob name, and expiration.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesFile content to upload (text)
blob_nameYesDestination blob name, e.g. "reports/q1.txt"
expirationNoExpiration in natural language, e.g. "in 7 days", "tomorrow", "2025-12-31"in 30 days

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It fails to disclose behavioral traits like size limits, overwrite behavior, cost, or idempotency, which are important for a mutation tool.

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 description is a single sentence of 13 words with no redundancy. It is front-loaded and efficient.

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

Completeness2/5

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

Given no output schema and no annotations, the description should provide more context about return values, errors, or post-upload behavior. It is insufficient for a mutation tool.

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%, baseline is 3. The description restates the parameters but adds minimal new meaning beyond 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 clearly states the verb 'upload', the resource 'Shelby decentralized storage', and the required inputs (content, blob name, expiration). It distinguishes from sibling tools like shelby_delete or shelby_list.

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 does not explicitly state when to use this tool versus alternatives or when not to use it. While it implies usage for uploading, there is no mention of conditions or exclusions.

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. 5 tool updatesv1.0.0
    • First observedshelby_account
    • First observedshelby_delete
    • First observedshelby_download
    • First observedshelby_list
    • First observedshelby_upload

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: account info, delete, download, list, and upload. No two tools overlap in functionality, making selection unambiguous.

Naming Consistency4/5

All tools use the 'shelby_' prefix followed by a verb, except 'shelby_account' which uses a noun but is still clear. The pattern is mostly consistent except for this minor deviation.

Tool Count5/5

With five tools covering the core operations of a decentralized storage service (account, list, upload, download, delete), the count is well-scoped and manageable.

Completeness4/5

The tool set covers the main CRUD operations but lacks a metadata retrieval tool (e.g., blob size or creation time). This is a minor gap that agents can work around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers