loading…
Search for a command to run...
loading…
Premium low cost execution layer for AI trading agents, with access to perpetual futures trading across 500+ pairs and $10B+ in aggregated liquidity.
Premium low cost execution layer for AI trading agents, with access to perpetual futures trading across 500+ pairs and $10B+ in aggregated liquidity.
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
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.
| Eterna (managed) | Self-hosted MCP servers | Direct API wrappers | |
|---|---|---|---|
| Setup time | 30 seconds | 15-30 min | Hours |
| API key management | Auto-provisioned | You create & rotate | You create & rotate |
| Agent isolation | Dedicated sub-account per agent | Shared account | Shared account |
| Risk management | Built-in (leverage caps, position limits) | None | Build your own |
| Key security | Argon2-hashed, never exposed | Plaintext env vars | Plaintext env vars |
| Transport | HTTP (works remotely) | stdio (local only) | HTTP |
| Maintenance | Zero -- we handle updates | You manage | You manage |
| Multi-agent | Native | Manual config per agent | Manual |
| Futures fees | 0.014% maker / 0.035% taker | 0.02% / 0.055% (default) | 0.02% / 0.055% (default) |
| Spot fees | 0.065% maker / 0.0775% taker | 0.1% / 0.1% (default) | 0.1% / 0.1% (default) |
No pre-existing API key needed. Your agent connects, registers itself, and starts trading.
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
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
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
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/
| Category | Tool | Description |
|---|---|---|
| Registration | register_agent |
Create a new agent account and receive an API key |
| Market Data | get_tickers |
Current price, 24h change, volume, and funding rate |
get_instruments |
Contract specifications, tick size, lot size, leverage limits | |
get_orderbook |
Live order book with bids and asks | |
| Account | get_balance |
USDT equity, available balance, and margin usage |
get_positions |
Open positions with entry price, PnL, and leverage | |
get_orders |
Active and recent order history | |
| Trading | place_order |
Place market or limit orders with TP/SL |
close_position |
Close an entire position at market price | |
| Funding | get_deposit_address |
Get deposit address for a coin and chain |
get_deposit_records |
View deposit history | |
transfer_to_trading |
Move funds from Funding wallet to Trading wallet |
See docs/tools-reference.md for full parameter and return value documentation.
MCP Resources:
| Resource URI | Description |
|---|---|
eterna://risk-rules |
JSON document with all risk constraints (max leverage, max positions, minimum balance) |
eterna://api-reference |
Complete tool reference with parameters, types, and return schemas |
Built-in Prompts:
| Prompt | Description |
|---|---|
trading_guide |
Risk management, position sizing, deposits, and order lifecycle |
momentum_scalping_strategy |
Step-by-step momentum scalping with entry/exit rules |
place_trade |
Interactive prompt that walks through placing a trade safely |
See benchmarks/ for detailed methodology and data.
| Metric | Eterna MCP | Self-hosted Bybit MCP | Direct Bybit API |
|---|---|---|---|
| Order placement | ~180ms | ~150ms + your infra | ~120ms |
| Market data | ~80ms | ~60ms + your infra | ~40ms |
| Setup time | 30 seconds | 15-30 min | 2-4 hours |
| Monthly infra cost | $0 | $5-50/mo (VPS) | $5-50/mo (VPS) |
| Futures fees | 0.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.
See ROADMAP.md for the full roadmap.
Coming soon:
.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/mcp.json:
{
"mcpServers": {
"eterna-trading": {
"type": "streamable-http",
"url": "https://mcp.eterna.exchange/mcp",
"headers": {
"Authorization": "Bearer eterna_mcp_your_key_here"
}
}
}
}
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"
}
}
}
}
Claude Code skills for trading knowledge:
Copy into your project's .claude/skills/ directory.
| Repository | Description |
|---|---|
| eterna-exchange/bybit-mcp-server | Bybit-focused managed MCP server |
| eterna-exchange/mcp-trading-agent | IDE configs and trading strategies for Claude Code, Cursor, Claude Desktop |
| eterna-exchange/awesome-mcp-trading | Curated list of MCP trading servers and resources |
Questions, partnerships, or support: [email protected]
MIT -- Copyright 2025 Eterna Exchange
Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"eterna-mcp": {
"command": "npx",
"args": []
}
}
}