Limitless MCP

Servidor MCP para los mercados de predicción de Limitless Exchange en Base. 34 herramientas para acceso al mercado, trading con órdenes limitadas, gestión de billetera y seguimiento de posiciones.

Documentación

Limitless MCP Server

Trading de Mercados de Predicción en Base vía Limitless Exchange

Construye agentes de trading impulsados por IA para los mercados de predicción de Limitless usando el Protocolo de Contexto del Modelo (MCP)

License: PolyForm Noncommercial Node.js Base Chain


⚠️ Aviso: Quantish está cerrando. La plataforma Quantish (quantish.live) está cerrando. Este servidor MCP es autoalojado y seguirá funcionando de forma independiente, pero el equipo de Quantish ya no mantendrá ni actualizará este proyecto. Si estás construyendo en el espacio de mercados de predicción y necesitas infraestructura de datos en tiempo real, consulta polynode.dev.


Características

  • Gestión Segura de Wallets

    • Genera nuevas wallets de Base con almacenamiento cifrado de claves privadas
    • Trae Tu Propia Wallet (BYOW) - Importa wallets existentes con cifrado del lado del cliente
    • Las claves privadas se cifran con AES-256-GCM antes de almacenarse
  • Acceso Completo a los Mercados de Limitless

    • Descubrimiento de mercados en tiempo real vía API de Limitless Exchange
    • Acceso a todos los mercados de predicción: Política, Deportes, Cripto y más
    • Datos de orderbook en vivo e historial de precios
    • Búsqueda semántica para descubrimiento de mercados
  • Operaciones de Trading

    • Coloca órdenes límite con autenticación firmada EIP-712
    • Cancela órdenes (individuales, por lote o todas)
    • Verifica y establece aprobaciones de tokens (USDC, CTF)
    • Seguimiento de posiciones con cálculos de P&L
  • Integración con Agentes de IA

    • Soporte completo de MCP (Protocolo de Contexto del Modelo)
    • Funciona con Claude, Cursor IDE y otras herramientas de IA compatibles con MCP
    • 34 herramientas de trading preconstruidas organizadas por categoría
  • Seguridad Empresarial

    • Cifrado AES-256-GCM para todos los datos sensibles
    • Autenticación de claves API con hash SHA-256
    • Sistema de socios de plataforma para integraciones B2B
    • Límites de tasa y registro de solicitudes

Inicio Rápido

1. Configura MCP (Cursor IDE)

Añade a ~/.cursor/mcp.json:

{
  "mcpServers": {
    "limitless": {
      "url": "https://limitless-mcp-server-production.up.railway.app/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}

2. Obtén Tu Clave API

Vía herramienta MCP:

{
  "tool": "limitless_signup",
  "args": {
    "externalId": "your-unique-id"
  }
}

3. Comienza a Operar

"Search for bitcoin prediction markets"
"Buy 10 YES shares at $0.60 on the BTC market"
"Show my current positions"
"Cancel my open orders"

Herramientas MCP Disponibles (34 en Total)

Nota: Todos los nombres de herramientas llevan el prefijo limitless_ para evitar colisiones con otros MCP.

Autenticación y Configuración (6 herramientas)

HerramientaDescripción
limitless_signupCrea una nueva cuenta con una wallet Base nueva
limitless_request_api_keyObtén una nueva clave API (requiere firma HMAC)
limitless_setup_walletGenera una nueva wallet Base
limitless_import_walletImporta una wallet existente (cifrada)
limitless_get_wallet_import_instructionsInstrucciones para exportación segura de wallet
limitless_import_private_keyImportación directa de clave privada

Información de Wallet (4 herramientas)

HerramientaDescripción
limitless_get_wallet_infoObtén la dirección y el tipo de wallet
limitless_get_wallet_statusEstado completo de la wallet con saldos
limitless_get_balancesVerifica saldos de ETH y USDC
limitless_get_deposit_addressObtén la dirección para financiar

Descubrimiento de Mercados (6 herramientas)

HerramientaDescripción
limitless_get_marketsLista mercados activos con paginación
limitless_search_marketsBúsqueda semántica de mercados
limitless_get_marketObtén detalles del mercado incluyendo el venue
limitless_get_orderbookObtén el orderbook con ofertas/demandas
limitless_get_price_historyDatos históricos de precios
limitless_get_categoriesLista categorías de mercados

Trading (8 herramientas)

HerramientaDescripción
limitless_place_orderColoca una orden límite
limitless_cancel_orderCancela una orden individual
limitless_cancel_all_ordersCancela todas las órdenes en un mercado
limitless_get_ordersLista tus órdenes
limitless_check_approvalsVerifica aprobaciones de tokens
limitless_set_approvalsEstablece aprobaciones de tokens
limitless_get_locked_balanceObtén USDC bloqueado en órdenes
limitless_get_quoteEstima el precio de ejecución

Posiciones (4 herramientas)

HerramientaDescripción
limitless_get_positionsObtén posiciones activas con P&L
limitless_get_tradesObtén historial de operaciones
limitless_get_portfolio_historyHistorial completo del portafolio
limitless_sync_positionsSincroniza posiciones desde la API

Transferencias (3 herramientas)

HerramientaDescripción
limitless_send_ethEnvía ETH a otra dirección
limitless_send_usdcEnvía USDC a otra dirección
limitless_export_private_keyExporta la clave privada de la wallet

Gestión de Claves API (3 herramientas)

HerramientaDescripción
limitless_list_api_keysLista tus claves API
limitless_create_api_keyCrea una nueva clave API
limitless_revoke_api_keyRevoca una clave API

Autoalojamiento

Requisitos previos

  • Node.js 20+
  • PostgreSQL 15+
  • Acceso RPC de Base (mainnet.base.org)

Instalación

# Clone the repository
git clone https://github.com/joinQuantish/limitless-mcp.git
cd limitless-mcp

# Install dependencies
npm install

# Copy environment template
cp .env.example .env

# Edit .env with your values (see Environment Variables below)

# Generate Prisma client
npx prisma generate

# Push database schema
npx prisma db push

# Build and start
npm run build
npm start

Variables de Entorno

Crea un archivo .env con:

# Database (PostgreSQL)
DATABASE_URL="postgresql://user:password@host:5432/limitless_mcp?schema=public"

# Encryption (generate with: openssl rand -hex 32)
ENCRYPTION_KEY="your-64-character-hex-encryption-key-here"

# Blockchain - Base L2
BASE_RPC_URL="https://mainnet.base.org"

# Limitless Exchange API
LIMITLESS_API_URL="https://api.limitless.exchange"

# Server
PORT=3003
NODE_ENV=production

# Admin API Key (generate with: openssl rand -hex 32)
ADMIN_API_KEY="your-admin-api-key-here"

# Optional: Bot signing secret for returning user verification
BOT_SIGNING_SECRET=""

Despliegue con Docker

# Build the image
docker build -t limitless-mcp .

# Run the container
docker run -d \
  -p 3003:3003 \
  -e DATABASE_URL="postgresql://..." \
  -e ENCRYPTION_KEY="..." \
  -e ADMIN_API_KEY="..." \
  -e BASE_RPC_URL="https://mainnet.base.org" \
  -e LIMITLESS_API_URL="https://api.limitless.exchange" \
  -e NODE_ENV=production \
  limitless-mcp

Despliegue en Railway

# Install Railway CLI
npm install -g @railway/cli

# Login and initialize
railway login
railway init

# Add PostgreSQL via Railway dashboard

# Set environment variables
railway variables set DATABASE_URL="postgresql://..."
railway variables set ENCRYPTION_KEY="$(openssl rand -hex 32)"
railway variables set ADMIN_API_KEY="$(openssl rand -hex 32)"
railway variables set BASE_RPC_URL="https://mainnet.base.org"
railway variables set LIMITLESS_API_URL="https://api.limitless.exchange"
railway variables set NODE_ENV="production"

# Deploy
railway up

Referencia de API

Verificación de Salud

curl https://your-server/health

Respuesta:

{
  "status": "healthy",
  "timestamp": "2026-01-17T12:00:00.000Z",
  "version": "1.0.0",
  "service": "limitless-mcp",
  "database": "connected",
  "environment": "production"
}

Endpoint MCP

# List available tools
curl -X POST https://your-server/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

# Call a tool (authenticated)
curl -X POST https://your-server/mcp \
  -H "Content-Type: application/json" \
  -H "x-api-key: pk_limitless_..." \
  -d '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"tools/call",
    "params":{
      "name":"limitless_get_balances",
      "arguments":{}
    }
  }'

API de Datos de Mercado

# Get active markets
curl "https://your-server/api/markets?limit=10&page=1"

# Search markets
curl "https://your-server/api/markets/search?query=bitcoin&limit=5"

# Get market details
curl "https://your-server/api/markets/your-market-slug"

# Get orderbook
curl "https://your-server/api/markets/your-market-slug/orderbook"

Arquitectura de Seguridad

Haz clic para expandir los detalles de seguridad

Cifrado en Reposo

Todos los datos sensibles se cifran usando AES-256-GCM:

  • Claves privadas cifradas antes del almacenamiento en base de datos
  • Tokens de sesión cifrados con IV únicos
  • Secretos de API cifrados (solo se almacena el hash SHA-256 para búsqueda)

Seguridad de Claves API

API Key Format: pk_limitless_<32 base64url chars>
API Secret Format: sk_limitless_<43 base64url chars>
  • Las claves se procesan con hash SHA-256 antes del almacenamiento (nunca se almacenan en texto plano)
  • Los secretos se cifran con AES-256-GCM
  • Comparación segura contra timing usando crypto.timingSafeEqual

Aislamiento de Plataforma (B2B)

Para socios de plataforma:

  • Claves de administrador de plataforma: plt_limitless_* / psk_limitless_*
  • Todas las consultas se limitan por platformId a nivel de base de datos
  • Registro de actividad para pista de auditoría
  • Límites de usuario aplicados por plataforma

Límites de Tasa

  • 60 solicitudes/minuto por clave API (general)
  • 30 solicitudes/minuto para listado de usuarios (admin de plataforma)
  • 5 solicitudes/hora para registro de plataforma

Importación Segura de Wallet (BYOW)

Importa tu wallet existente de MetaMask/hardware de forma segura:

Paso 1: Exporta Tu Clave Privada

En MetaMask: Configuración > Seguridad > Exportar Clave Privada

Paso 2: Cifra Localmente

const crypto = require('crypto');

const privateKey = 'YOUR_PRIVATE_KEY_WITHOUT_0x_PREFIX';
const password = 'YourSecurePassword123!'; // min 12 chars

const salt = crypto.randomBytes(32);
const iv = crypto.randomBytes(16);
const derivedKey = crypto.scryptSync(password, salt, 32, { N: 16384, r: 8, p: 1 });

const cipher = crypto.createCipheriv('aes-256-gcm', derivedKey, iv);
let encrypted = cipher.update(privateKey, 'utf8', 'hex');
encrypted += cipher.final('hex');
const authTag = cipher.getAuthTag().toString('hex');

console.log({
  encryptedKey: `${encrypted}:${authTag}`,
  salt: salt.toString('hex'),
  iv: iv.toString('hex'),
  publicKey: 'YOUR_WALLET_ADDRESS'
});

Paso 3: Importa al SDK

{
  "tool": "limitless_import_wallet",
  "args": {
    "encryptedKey": "...",
    "salt": "...",
    "iv": "...",
    "publicKey": "0x...",
    "password": "YourSecurePassword123!"
  }
}

Nota de Seguridad: Tu clave privada sin procesar NUNCA sale de tu máquina. Solo el paquete cifrado se envía a nuestros servidores, y no podemos descifrarlo sin tu contraseña.


Recursos Relacionados

RecursoURL
Limitless Exchangehttps://limitless.exchange
Documentación de API de Limitlesshttps://api.limitless.exchange/api-v1
Explorador de Base Chainhttps://basescan.org
Contrato USDC de Base0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Licencia

PolyForm Noncommercial 1.0.0 © Quantish


Soporte


Construido con precisión por Quantish