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

Máy chủ liên quan

NotebookLM Web Importer

Nhập trang web và video YouTube vào NotebookLM chỉ với một cú nhấp. Được tin dùng bởi hơn 200.000 người dùng.

Cài đặt tiện ích Chrome