Skip to main content
Glama
VoltaHQ

atpar-mcp-server

Official
by VoltaHQ
README.md
# atpar-mcp-server

MCP server for the [At Par](https://volta.co) Trading API — trade crypto, manage portfolios, and access market data from any MCP-compatible AI agent.

## Quick start

```bash
npx atpar-mcp-server
```

Requires `VT_API_KEY` and `VT_API_SECRET` environment variables.

## Configuration

### Claude Code (`.mcp.json`)

```json
{
  "mcpServers": {
    "atpar": {
      "command": "npx",
      "args": ["-y", "atpar-mcp-server"],
      "env": {
        "VT_API_KEY": "vtk_...",
        "VT_API_SECRET": "..."
      }
    }
  }
}
```

### Claude Desktop

Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "atpar": {
      "command": "npx",
      "args": ["-y", "atpar-mcp-server"],
      "env": {
        "VT_API_KEY": "vtk_...",
        "VT_API_SECRET": "..."
      }
    }
  }
}
```

## Environment variables

| Variable | Required | Description |
|----------|----------|-------------|
| `VT_API_KEY` | Yes | API key (e.g. `vtk_...`) |
| `VT_API_SECRET` | Yes | Base64-encoded API secret |
| `VT_API_URL` | No | Base URL (defaults to `https://api.solidusx.io`). Use `https://api.demo.solidusx.io` for demo. |

## Tools (16)

### Portfolio

| Tool | Description |
|------|-------------|
| `get_portfolios` | List all portfolios for the authenticated user |
| `get_portfolio_assets` | Get asset balances for a portfolio |
| `get_deposit_address` | Get the deposit address for a portfolio |
| `get_deposits` | List deposits for a portfolio |
| `get_portfolio_ledger` | Get ledger entries for a portfolio |

### Trading

| Tool | Description |
|------|-------------|
| `place_order` | Place a new order (market, limit, or swap) |
| `get_order` | Get details of a specific order |
| `list_orders` | List orders for a portfolio |
| `cancel_order` | Cancel an open order |
| `get_order_fills` | Get fills (executions) for an order |

### Market Data

| Tool | Description |
|------|-------------|
| `get_instruments` | List all available trading instruments |
| `get_prices` | Get current prices for all instruments |
| `get_candles` | Get OHLCV candlestick data for an instrument |
| `get_swap_liquidity` | Get available swap liquidity and pricing |

### Notifications

| Tool | Description |
|------|-------------|
| `get_notifications` | Get notifications for the authenticated user |
| `get_unread_count` | Get the count of unread notifications |

## Resources (2)

| URI | Description |
|-----|-------------|
| `atpar://instruments` | Full list of trading instruments with tick sizes, min order sizes, and status |
| `atpar://assets` | List of supported assets (currencies) on the platform |

## Development

```bash
npm install
npm run build
npm test
```

## License

MIT

TDQS

A3.6/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct resource (portfolios, ledger, assets, orders, instruments, notifications, etc.), with clear boundaries. The only potential overlap is get_notifications vs. get_unread_count, but they are distinctly a list vs. a count, so there is no real ambiguity.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (get_*, place_order, cancel_order, list_orders). The few non-get_ prefixes are still action-based and consistent with the overall style, with no mixing of camelCase or other conventions.

Tool Count4/5

The 16 tools are at the upper edge of a well-scoped set, but each one serves a distinct purpose and contributes to the trading/portfolio domain. The count is slightly high but not excessive, and no tools feel redundant or trivial.

Completeness4/5

The tool surface covers the core trading workflow well: portfolio management, order lifecycle, market data, and notifications. However, there are notable gaps such as order modification and withdrawal functionality, which are common in trading platforms and would be expected for full lifecycle coverage.

Maintenance

ActivityInactive
ResponsivenessNo issues