Skip to main content
Glama
blofin

blofin-mcp

Official
by blofin
README.md
# BloFin MCP Server

A Model Context Protocol (MCP) server for the [BloFin](https://blofin.com/) cryptocurrency exchange API. Provides tools for market data, account management, and trading operations.

## Features

### Public Data (no authentication required)
- `get_instruments` - Get available trading instruments and contract specs
- `get_tickers` - Get latest prices, bid/ask, 24h volume
- `get_orderbook` - Get order book depth
- `get_trades` - Get recent trades
- `get_mark_price` - Get mark/index prices
- `get_candlesticks` - Get OHLCV candlestick data
- `get_funding_rate` - Get current funding rates
- `get_funding_rate_history` - Get historical funding rates

### Account (authentication required)
- `get_balance` - Get futures account balance
- `get_positions` - Get open positions
- `get_leverage_info` - Get leverage info for an instrument
- `set_leverage` - Set leverage for an instrument
- `get_margin_mode` - Get current margin mode for an instrument
- `set_margin_mode` - Set margin mode for an instrument
- `get_position_mode` - Get current position mode
- `set_position_mode` - Set position mode
- `get_account_config` - Get account configuration

### Trading (authentication required)
- `place_order` - Place a new order (market, limit, post_only, fok, ioc)
- `cancel_order` - Cancel an order
- `batch_orders` - Place multiple orders at once
- `cancel_batch_orders` - Cancel multiple orders at once
- `close_position` - Close a position
- `get_open_orders` - Get pending orders
- `get_order_history` - Get order history
- `get_order_detail` - Get specific order details
- `get_fills_history` - Get trade fill history
- `place_tpsl` - Place take-profit/stop-loss order
- `cancel_tpsl` - Cancel a take-profit/stop-loss order
- `get_pending_tpsl` - Get pending TP/SL orders
- `get_tpsl_history` - Get TP/SL order history
- `place_algo_order` - Place an algo order (trigger/conditional)
- `cancel_algo_order` - Cancel algo orders
- `get_pending_algo_orders` - Get pending algo orders
- `get_algo_order_history` - Get algo order history

### Asset Management (authentication required)
- `get_asset_balances` - Get balances across account types
- `fund_transfer` - Transfer funds between accounts
- `get_fund_transfer_history` - Get transfer history
- `get_deposit_history` - Get deposit history
- `get_withdrawal_history` - Get withdrawal history
- `get_apikey_info` - Get API key information

## Important Risk Notice

- Trading tools can place and cancel real orders.
- Use demo environment first, then switch to production only when ready.
- Create API keys with least privilege and restrict by IP whenever possible.
- Never share your API key, secret, or passphrase.

## Tool Coverage

Current implementation registers **40 tools** in total:

- Public Market Data: 8 tools
- Account: 9 tools
- Trading: 17 tools
- Asset Management: 6 tools

## Getting Your API Key

1. Go to [blofin.com](https://blofin.com/) and log in (or create an account)
2. Navigate to **APIs** page
3. Click **Create API Key** and select **BloFin MCP** as the API type
4. Set your permissions (read-only for market data, or enable trading as needed)
5. Save your **API Key**, **Secret Key**, and **Passphrase** — you'll need them for configuration below

## Environment Variables

| Variable | Required | Description |
|---|---|---|
| `BLOFIN_API_KEY` | Yes | Your BloFin API key |
| `BLOFIN_API_SECRET` | Yes | Your BloFin API secret |
| `BLOFIN_PASSPHRASE` | Yes | Your BloFin API passphrase |
| `BLOFIN_BASE_URL` | No | API base URL (defaults to demo trading) |

### Base URLs

- Demo Trading: `https://demo-trading-openapi.blofin.com` (default)
- Production: `https://openapi.blofin.com`

## Install and Build

```bash
npm install
npm run typecheck
npm run build
```

## Installation

### Claude Desktop (Extension)

Download the latest `blofin-mcp.mcpb` from [GitHub Releases](https://github.com/blofin/blofin-mcp/releases) and double-click to install. Claude Desktop will prompt you to enter your API Key, API Secret, and Passphrase.

### Claude Desktop (Manual)

Add to your Claude Desktop config (`Settings → Developer → Edit Config`):

```json
{
  "mcpServers": {
    "blofin": {
      "command": "npx",
      "args": ["-y", "blofin-mcp"],
      "env": {
        "BLOFIN_API_KEY": "your-api-key",
        "BLOFIN_API_SECRET": "your-api-secret",
        "BLOFIN_PASSPHRASE": "your-passphrase",
        "BLOFIN_BASE_URL": "https://openapi.blofin.com"
      }
    }
  }
}
```

### Claude Code

```bash
claude mcp add blofin -- npx -y blofin-mcp
```

Then set environment variables in your shell profile or `.env` file:

```bash
export BLOFIN_API_KEY="your-api-key"
export BLOFIN_API_SECRET="your-api-secret"
export BLOFIN_PASSPHRASE="your-passphrase"
export BLOFIN_BASE_URL="https://openapi.blofin.com"
```

### Cursor

Add to `.cursor/mcp.json` in your project root (or global config at `~/.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "blofin": {
      "command": "npx",
      "args": ["-y", "blofin-mcp"],
      "env": {
        "BLOFIN_API_KEY": "your-api-key",
        "BLOFIN_API_SECRET": "your-api-secret",
        "BLOFIN_PASSPHRASE": "your-passphrase",
        "BLOFIN_BASE_URL": "https://openapi.blofin.com"
      }
    }
  }
}
```

### Windsurf

Add to your Windsurf MCP config (`~/.codeium/windsurf/mcp_config.json`):

```json
{
  "mcpServers": {
    "blofin": {
      "command": "npx",
      "args": ["-y", "blofin-mcp"],
      "env": {
        "BLOFIN_API_KEY": "your-api-key",
        "BLOFIN_API_SECRET": "your-api-secret",
        "BLOFIN_PASSPHRASE": "your-passphrase",
        "BLOFIN_BASE_URL": "https://openapi.blofin.com"
      }
    }
  }
}
```

### Cline (VS Code)

Open Cline MCP settings (`Cline → MCP Servers → Configure`) and add:

```json
{
  "mcpServers": {
    "blofin": {
      "command": "npx",
      "args": ["-y", "blofin-mcp"],
      "env": {
        "BLOFIN_API_KEY": "your-api-key",
        "BLOFIN_API_SECRET": "your-api-secret",
        "BLOFIN_PASSPHRASE": "your-passphrase",
        "BLOFIN_BASE_URL": "https://openapi.blofin.com"
      }
    }
  }
}
```

### OpenClaw

Add `"mcpServers"` to your `~/.openclaw/openclaw.json` (top-level field, alongside `identity`, `agent`, etc.):

```json5
{
  "identity": { "name": "Clawd", "emoji": "🦞" },
  "agent": { "workspace": "~/.openclaw/workspace" },

  // Add this section ↓
  "mcpServers": {
    "blofin": {
      "command": "npx",
      "args": ["-y", "blofin-mcp"],
      "env": {
        "BLOFIN_API_KEY": "your-api-key",
        "BLOFIN_API_SECRET": "your-api-secret",
        "BLOFIN_PASSPHRASE": "your-passphrase",
        "BLOFIN_BASE_URL": "https://openapi.blofin.com"
      }
    }
  }
}
```

If your `openclaw.json` already has a `"mcpServers"` section with other servers, just add `"blofin": { ... }` inside it.

Restart OpenClaw after saving. The agent will automatically discover the 40 BloFin tools.


## Open Source Project Files

- License: `LICENSE`
- Contributing guide: `CONTRIBUTING.md`
- Security policy: `SECURITY.md`
- Community behavior policy: `CODE_OF_CONDUCT.md`
- Change history: `CHANGELOG.md`

## Reporting and Support

- Bug reports and feature requests: GitHub Issues
- Security issues: follow `SECURITY.md`
- API reference: [BloFin API Docs](https://docs.blofin.com/index.html)

TDQS

B3.3/5.0

Scored across 40 tools

Disambiguation5/5

Each tool targets a distinct resource or action, with clear separation between data retrieval (get_*), order placement (place_*), cancellation (cancel_*), and configuration (set_*). Even within similar categories like cancellations, the tool descriptions specify different order types or modes, avoiding ambiguity.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern with underscores (e.g., get_balance, place_order). Minor deviations like 'batch_orders' (noun phrase as command) and 'fund_transfer' (two nouns) are present, but the overall pattern is predictable and readable.

Tool Count4/5

With 40 tools, the set is comprehensive for a crypto exchange API covering orders, positions, account, market data, and transfers. While it is on the higher end, each tool serves a distinct purpose and is justified by the complexity of the domain.

Completeness5/5

The tool surface covers full lifecycle operations for orders (place, cancel, query), positions (close, leverage, margin mode), account configuration, market data (orderbook, candlesticks, tickers), transfers, and history. No obvious gaps are present for a typical futures trading workflow.

Maintenance

ActivityInactive
ResponsivenessNo issues