Skip to main content
Glama
README.md
# shelby-mcp

MCP server for [Shelby Protocol](https://shelby.xyz) — 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 |

## Prerequisites

- [Node.js](https://nodejs.org) v18+
- [Shelby CLI](https://docs.shelby.xyz) installed and configured (`npm install -g @shelby-protocol/cli`)
- A funded Shelby account (`shelby faucet`)

## Install

```bash
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`:

```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:

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

## Use with Claude Code

```bash
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

## Links

- [Shelby Protocol](https://shelby.xyz)
- [Shelby Docs](https://docs.shelby.xyz)
- [Shelby GitHub](https://github.com/shelby)
- [MCP Specification](https://modelcontextprotocol.io)
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)

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