Eterna MCP

Managed MCP server for Bybit perpetual futures trading. Isolated sub-accounts, built-in risk management, 12 trading tools.

Eterna MCP Gateway

The fastest, cheapest way to give your AI agent real trading capabilities.

No KYC. 0.014% maker fees on futures. <200ms latency. Isolated sub-accounts.

License: MIT MCP Protocol Tools


30-Second Install

Add to your MCP client config and you're trading:

{
  "mcpServers": {
    "eterna-trading": {
      "type": "streamable-http",
      "url": "https://mcp.eterna.exchange/mcp"
    }
  }
}

Ask your AI to call register_agent -- it gets an API key instantly. Reconnect with the key in the Authorization header and start trading. See QUICKSTART.md for a 5-minute walkthrough.


Why Eterna?

Eterna (managed)Self-hosted MCP serversDirect API wrappers
Setup time30 seconds15-30 minHours
API key managementAuto-provisionedYou create & rotateYou create & rotate
Agent isolationDedicated sub-account per agentShared accountShared account
Risk managementBuilt-in (leverage caps, position limits)NoneBuild your own
Key securityArgon2-hashed, never exposedPlaintext env varsPlaintext env vars
TransportHTTP (works remotely)stdio (local only)HTTP
MaintenanceZero -- we handle updatesYou manageYou manage
Multi-agentNativeManual config per agentManual
Futures fees0.014% maker / 0.035% taker0.02% / 0.055% (default)0.02% / 0.055% (default)
Spot fees0.065% maker / 0.0775% taker0.1% / 0.1% (default)0.1% / 0.1% (default)

What you don't have to build

  • Sub-account provisioning and API key rotation
  • Rate limiting and request validation
  • Position sizing guardrails
  • Deposit address management and fund routing
  • Error handling for exchange API changes

Works With Your Stack

No pre-existing API key needed. Your agent connects, registers itself, and starts trading.

LangChain

from langchain_mcp_adapters.client import MultiServerMCPClient

# 1. Connect without auth -- agent calls register_agent to get a key
async with MultiServerMCPClient({
    "trading": {
        "url": "https://mcp.eterna.exchange/mcp",
        "transport": "streamable_http",
    }
}) as client:
    tools = client.get_tools()
    # Agent calls register_agent, receives API key

# 2. Reconnect with the key -- all trading tools available
async with MultiServerMCPClient({
    "trading": {
        "url": "https://mcp.eterna.exchange/mcp",
        "transport": "streamable_http",
        "headers": {"Authorization": f"Bearer {api_key}"},
    }
}) as client:
    tools = client.get_tools()
    # Use tools with any LangChain agent

AutoGen

from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpParams

# 1. Register (no auth needed)
async with McpWorkbench(StreamableHttpParams(url=MCP_URL)) as wb:
    tools = await wb.list_tools()  # includes register_agent

# 2. Trade with the key
async with McpWorkbench(StreamableHttpParams(
    url=MCP_URL,
    headers={"Authorization": f"Bearer {api_key}"},
)) as wb:
    tools = await wb.list_tools()  # all trading tools

CrewAI

from crewai_tools.mcp import MCPServerAdapter

# After registration (see examples/ for full flow)
server = MCPServerAdapter(
    server_url="https://mcp.eterna.exchange/mcp",
    headers={"Authorization": f"Bearer {api_key}"},
)
tools = server.tools
# Assign tools to any CrewAI agent

Raw Python (MCP SDK)

from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

# 1. Register
async with streamablehttp_client(url) as (r, w, _):
    async with ClientSession(r, w) as session:
        await session.initialize()
        result = await session.call_tool("register_agent", {"name": "my-bot"})
        # result contains the API key

# 2. Trade
async with streamablehttp_client(url, headers={"Authorization": f"Bearer {key}"}) as (r, w, _):
    async with ClientSession(r, w) as session:
        await session.initialize()
        await session.call_tool("get_tickers", {"symbol": "BTCUSDT"})

Full working examples with registration flow: examples/


Available Tools

CategoryToolDescription
Registrationregister_agentCreate a new agent account and receive an API key
Market Dataget_tickersCurrent price, 24h change, volume, and funding rate
get_instrumentsContract specifications, tick size, lot size, leverage limits
get_orderbookLive order book with bids and asks
Accountget_balanceUSDT equity, available balance, and margin usage
get_positionsOpen positions with entry price, PnL, and leverage
get_ordersActive and recent order history
Tradingplace_orderPlace market or limit orders with TP/SL
close_positionClose an entire position at market price
Fundingget_deposit_addressGet deposit address for a coin and chain
get_deposit_recordsView deposit history
transfer_to_tradingMove funds from Funding wallet to Trading wallet

See docs/tools-reference.md for full parameter and return value documentation.


Resources & Prompts

MCP Resources:

Resource URIDescription
eterna://risk-rulesJSON document with all risk constraints (max leverage, max positions, minimum balance)
eterna://api-referenceComplete tool reference with parameters, types, and return schemas

Built-in Prompts:

PromptDescription
trading_guideRisk management, position sizing, deposits, and order lifecycle
momentum_scalping_strategyStep-by-step momentum scalping with entry/exit rules
place_tradeInteractive prompt that walks through placing a trade safely

Benchmarks

See benchmarks/ for detailed methodology and data.

MetricEterna MCPSelf-hosted Bybit MCPDirect Bybit API
Order placement~180ms~150ms + your infra~120ms
Market data~80ms~60ms + your infra~40ms
Setup time30 seconds15-30 min2-4 hours
Monthly infra cost$0$5-50/mo (VPS)$5-50/mo (VPS)
Futures fees0.014% / 0.035%0.02% / 0.055% (default)0.02% / 0.055% (default)

Eterna agents trade on institutional-tier fee schedules through Bybit's master/sub-account structure. Self-hosted servers pay retail fees unless you independently negotiate a VIP tier.


Roadmap

See ROADMAP.md for the full roadmap.

Coming soon:

  • 130+ additional Bybit API endpoints (order management, position controls, market data)
  • Code execution sandbox -- submit TypeScript strategies that run in an isolated environment
  • Strategy runtime -- deploy strategies on cron schedules, zero LLM at runtime
  • Backtesting engine with historical data replay

Client Configuration

Claude Code

.mcp.json in your project root:

{
  "mcpServers": {
    "eterna-trading": {
      "type": "streamable-http",
      "url": "https://mcp.eterna.exchange/mcp",
      "headers": {
        "Authorization": "Bearer eterna_mcp_your_key_here"
      }
    }
  }
}

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "eterna-trading": {
      "type": "streamable-http",
      "url": "https://mcp.eterna.exchange/mcp",
      "headers": {
        "Authorization": "Bearer eterna_mcp_your_key_here"
      }
    }
  }
}

Claude Desktop

Add to your Claude Desktop config.json:

{
  "mcpServers": {
    "eterna-trading": {
      "type": "streamable-http",
      "url": "https://mcp.eterna.exchange/mcp",
      "headers": {
        "Authorization": "Bearer eterna_mcp_your_key_here"
      }
    }
  }
}

Skills

Claude Code skills for trading knowledge:

Copy into your project's .claude/skills/ directory.


Documentation


Ecosystem

RepositoryDescription
eterna-exchange/bybit-mcp-serverBybit-focused managed MCP server
eterna-exchange/mcp-trading-agentIDE configs and trading strategies for Claude Code, Cursor, Claude Desktop
eterna-exchange/awesome-mcp-tradingCurated list of MCP trading servers and resources

Contact

Questions, partnerships, or support: [email protected]


License

MIT -- Copyright 2025 Eterna Exchange

Related Servers