Shumi AI

Investigación de mercado cripto para agentes de IA: tendencia, financiamiento, sentimiento y régimen mediante CLI.

Documentación

@shumi-ai/mcp

Shumi inteligencia de trading cripto como un servidor MCP — la misma inteligencia de mercado que el CLI de shumi proporciona, para cualquier cliente MCP (Claude Desktop, Claude Code, Cursor, agentes).

Es un envoltorio ligero sobre la API de datos de Shumi: precios, tendencias, tasas de financiación, sentimiento, narrativas, régimen de mercado, señales sintetizadas, ideas de pares / delta-neutral, activos del mundo real, seguimiento de tenedores y carteras, y aspectos destacados de transcripciones. Todas las herramientas son de solo lectura.

Inicio rápido

Necesitas una clave de API de Shumi (shumi_sk_…). Crea una en https://shumi.ai.

Claude Desktop / Claude Code

Añade a tu configuración de MCP (claude_desktop_config.json, o claude mcp add para Claude Code):

{
  "mcpServers": {
    "shumi": {
      "command": "npx",
      "args": ["-y", "@shumi-ai/mcp"],
      "env": {
        "SHUMI_TOKEN": "shumi_sk_your_key_here"
      }
    }
  }
}

Reinicia el cliente. Las herramientas shumi (por ejemplo, get_coin_risk, get_market_health, ask_shumi) aparecen automáticamente.

Cursor

~/.cursor/mcp.json usa la misma forma de command / args / env que arriba.

Directorios de plugins

Este repositorio también incluye plugin.json y mcp.json en su raíz, por lo que se instala como un Agent Plugin desde el directorio de Cursor y cualquier otro cliente en ese estándar.

Establece SHUMI_TOKEN en tu entorno antes de iniciar el cliente cuando instales de esta manera. El esquema de Agent Plugins solo acepta valores de entorno literales — no tiene marcador de posición para un secreto — por lo que el manifiesto omite deliberadamente env en lugar de incluir una cadena ${SHUMI_TOKEN} que se pasaría textualmente y fallaría como clave inválida.

Herramientas

Tipadas (deterministas): get_coin_risk, lookup_coin, resolve_coin, get_coin_sentiment, get_coin_historical, get_market_health, get_market_crossing, get_global_market, get_prices, scan_trends, scan_coins, get_market_sentiment, list_narratives, get_narrative, list_categories, get_category, get_funding_momentum, get_funding_alerts, get_regime, get_signal, get_signal_quality, get_pair_suggestions, list_rwa_assets, get_rwa_asset, get_holders, get_wallets, get_futures_signals, get_basket, get_transcripts.

Activos del mundo real (list_rwa_assets, get_rwa_asset) cubren acciones, ETFs, materias primas, índices y trading de FX como perpetuos en los DEX de constructores de Hyperliquid. No son tokens cripto — las herramientas de monedas no los encontrarán.

Forma libre: ask_shumi (preguntas en lenguaje natural — Shumi clasifica, obtiene y sintetiza) y search_web.

Las herramientas que devuelven listas aceptan top (conservar los primeros N elementos) y fields (claves separadas por comas a conservar) para ahorrar tokens.

Recursos: shumi://capabilities (la superficie de datos) y shumi://billing/tier (tu derecho actual).

Configuración

Variable de entornoPredeterminadoPropósito
SHUMI_TOKEN—Clave de API (shumi_sk_*). Requerida.
SHUMI_API_URLendpoint de producción coinrotator-aiAnula la URL base de la API.
SHUMI_WALLET—Dirección de cartera para incluir en el contexto de consultas NLP.

El control de acceso (niveles gratuito / acceso / pro y pago por llamada) se aplica en el servidor, exactamente como para el CLI — las respuestas fuera de cuota llegan como un error estructurado con una pista accionable.

Remoto (HTTP)

Para un despliegue alojado y multiusuario:

PORT=8787 SHUMI_MCP_ALLOWED_ORIGINS=https://yourapp.com npm run start:http

Cada solicitud se autentica con su propio encabezado de clave; ese token se reenvía a la API ascendente por solicitud. Endpoint: POST /mcp, salud: GET /health.

Conexión desde Claude (static_headers)

Claude admite una credencial fija ingresada como encabezado de solicitud, por lo que no se necesita un servidor OAuth. En Añadir conector personalizado → encabezados de solicitud, un administrador de la organización ingresa:

campovalor
URLhttps://mcp.shumi.ai/mcp
Nombre del encabezadoAuthorization
Valor del encabezadoBearer shumi_sk_…

x-api-key: shumi_sk_… también funciona, y también un valor Authorization con el prefijo Bearer omitido — un administrador lo escribe una vez a mano, y un par mal escrito falla de forma cerrada sin error que pueda ver, por lo que se aceptan las tres formas. x-api-key gana si ambos están presentes, con el argumento de que un administrador que lo configuró lo hizo a propósito.

No pongas la clave en la URL. La especificación de autorización de MCP prohíbe tokens de acceso en la cadena de consulta de la URI y Anthropic documenta una credencial en una URL como una vulnerabilidad de seguridad — las URLs terminan en registros de servidor, proxies e historial del navegador. Las formas de consulta ?shumiToken= / ?config= existen solo porque Smithery inyecta la configuración de sesión de esa manera.

Una cosa a saber antes de comprar para un equipo: una credencial static_headers es compartida por la organización, no por usuario. Todos los que se conectan a través de ese conector comparten una cuenta de Shumi, una asignación de nivel gratuito y una cuota. La medición por usuario necesita OAuth — ver docs/oauth-plan.md.

Una llamada no autenticada se responde con 200 y un error AUTH_REQUIRED en banda, no 401. Eso es deliberado: Claude trata un 401 como el inicio de un flujo OAuth, y un servidor sin servidor de autorización detrás enviaría al cliente a un protocolo de enlace que no puede completarse. La ruta 401 existe pero está restringida detrás de SHUMI_MCP_AUTH_SERVER, por lo que se activa solo cuando hay un servidor de autorización al que apuntar.

El servidor no tiene estado. Un solo endpoint sirve ambas revisiones del protocolo:

  • 2026-07-28 — sin initialize, sin Mcp-Session-Id. Una solicitud lleva su propio enrutamiento en encabezados (Mcp-Method, más Mcp-Name en tools/call) y su envoltorio de protocolo en params._meta, por lo que un intermediario puede enrutar y medir una llamada sin analizar el cuerpo.
  • 2025-11-25 y anteriores — aún se sirven. Los clientes antiguos conservan su protocolo de enlace initialize, pero cada intercambio es respondido por su propia instancia en lugar de una sesión.

Debido a que nada sobrevive a una solicitud, GET y DELETE (las operaciones de sesión de 2025) devuelven 405, y los ajustes de sesión que solían vivir aquí — SHUMI_MCP_SESSION_TTL_MS, SHUMI_MCP_MAX_SESSIONS, SHUMI_MCP_SESSION_SWEEP_MS — han desaparecido. Son seguros de eliminar de cualquier despliegue; sin configurar no hacen nada. El recolector de sesiones inactivas que configuraban existía para evitar que las sondas de actividad crecieran el heap, lo cual no puede suceder cuando no se mantiene ninguna sesión.

Desarrollo

npm install
npm test                # unit tests (no network)
npm run inspect         # open the MCP Inspector against the stdio server
SHUMI_TOKEN=… npm start # run the stdio server

Deliberadamente no expuesto

Dos rutas del CLI no tienen herramienta MCP, ambas a propósito:

  • walkforward — la ruta existe, pero dos de sus tres acciones no tienen nada detrás mientras Engine B está en pausa: posiciones está vacío y resultados contiene una sola fila del 2026-05-28. Publicarla entregaría a un llamador un arreglo vacío sin razón adjunta. Se incluirá cuando el motor se reanude.
  • watch — eventos enviados por el servidor, que no encajan en la semántica de herramientas MCP.

Todo lo demás en la superficie tipada del CLI tiene una herramienta.