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 entorno | Predeterminado | Propósito |
|---|---|---|
SHUMI_TOKEN | — | Clave de API (shumi_sk_*). Requerida. |
SHUMI_API_URL | endpoint de producción coinrotator-ai | Anula 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:
| campo | valor |
|---|---|
| URL | https://mcp.shumi.ai/mcp |
| Nombre del encabezado | Authorization |
| Valor del encabezado | Bearer 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— sininitialize, sinMcp-Session-Id. Una solicitud lleva su propio enrutamiento en encabezados (Mcp-Method, másMcp-Nameentools/call) y su envoltorio de protocolo enparams._meta, por lo que un intermediario puede enrutar y medir una llamada sin analizar el cuerpo.2025-11-25y anteriores — aún se sirven. Los clientes antiguos conservan su protocolo de enlaceinitialize, 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.