Odel
cryptocapi mcp

cryptocapi mcp

Local
@jegoba90TypeScriptUpdated 3 days ago

Análisis de riesgo cripto: cada insight PRO trae el SHA-256 de sus inputs para que lo recalcules.

@cryptocapi/mcp

Servidor MCP de CryptoCapi: análisis de mercado cripto con sello verificable, expuesto como herramientas nativas para agentes.

Cuatro herramientas, cuatro motores

HerramientaMotorQué devuelveQué requiere
get_insightRadarAnálisis de un activo. La vista alpha trae el sellopulse libre · alpha requiere pase Radar Alpha
get_insight con engine="quant_plus"Quant PlusEl mismo activo firmado por el motor determinista, con sello reproduciblePase Quant Plus
batch_signalsQuant PlusSeñales de varios activos en una llamadaPase Quant Plus
get_signalQuant ProSeñal cuantitativa de un par de tradingPase Quant Pro
scan_marketMarket ScanRanking del mercado según una estrategiaPase Market Scan

Son cinco filas para cuatro herramientas porque get_insight es la puerta de dos motores, y cada uno pide su propio pase. Tener Radar Alpha no abre Quant Plus por ese mismo tool: cambia el parámetro engine y cambia el pase que se exige.

Hasta el 2026-08-30 había tres herramientas más (get_market_summary, get_prices, get_macro) que devolvían dato de terceros: capitalización y miedo y codicia, precios de CoinGecko y series macro de FRED. Se retiraron porque CryptoCapi no es un agregador: sus motores firman inteligencia derivada y el dato ajeno es insumo interno. Un agente que preguntaba «¿cómo está el mercado?» agarraba el resumen y se iba con dato de terceros sin tocar un motor. Esos endpoints siguen existiendo en la API REST; lo que se retiró es que el agente los vea como herramientas.

Cada motor se compra por separado, así que tener uno no habilita los otros. Las descripciones nombran el motor que hace falta, no un «PRO» genérico, para que el agente no gaste intentos en herramientas que su clave no abre. Cuando igual las intenta, el error le dice qué pase falta y cuál sí tiene, en vez de un 403 pelado.

Ojo con un detalle de formato que hace fallar a los agentes: get_signal toma un par de trading (BTCUSDT) y batch_signals toma identificadores de moneda (bitcoin). Es el mismo motor con dos formatos, y cada campo lo aclara en su esquema.

Probarlo sin registrarte

La configuración por defecto usa la key pública de demostración. No hace falta cuenta.

{
  "mcpServers": {
    "cryptocapi": {
      "command": "npx",
      "args": ["-y", "@cryptocapi/mcp"],
      "env": { "CRYPTOCAPI_API_KEY": "demo_btc_eth_public" }
    }
  }
}

La env es opcional: sin ninguna variable el paquete cae solo en la key pública de demostración, así que alcanza con command y args.

Qué alcanza con la demo key, medido el 2026-08-30 contra la versión publicada:

MotorHerramientaCon la demo key
Radarget_insightsolo bitcoin y ethereum, pulse y alpha con sello
Quant Plusget_insight?engine=quant_plussolo bitcoin y ethereum, sello reproducible con input_vector
Quant Plusbatch_signalssolo bitcoin y ethereum, mismo alcance que get_insight
Quant Proget_signal❌ cerrado, para cualquier par
Market Scanscan_market❌ cerrado, para cualquier estrategia

Las tres cerradas no fallan por la moneda, fallan siempre: get_signal con BTCUSDT, que es el par de Bitcoin, también devuelve 403. La restricción a bitcoin y ethereum aplica a get_insight y nada más.

O sea que en la primera sesión responde una de las cuatro herramientas, y es la que muestra el producto: el análisis firmado, sobre Bitcoin, con los dos motores que lo firman.

Para probar los cuatro motores sin límite de moneda hace falta el trial de 14 días, gratis, en https://cryptocapi.com. Esa key abre todo mientras dura.

Qué lo diferencia

La respuesta de los motores viaja con un audit_trail que incluye un protocol_hash: un sello del cálculo determinista que produjo el análisis. Este paquete reenvía esos valores tal como llegaron de la API, sin volver a serializarlos, porque reformatear un solo número bastaría para que el hash dejara de verificar.

No hace falta creernos: pedile a tu agente el análisis con get_insight(coin_id="bitcoin", view="alpha") y compará el protocol_hash de esa salida con el de la misma consulta hecha directo contra la API.

curl -H "x-api-key: demo_btc_eth_public" \
  "https://api.cryptocapi.com/v1/market/insights/bitcoin?view=alpha"

Tienen que ser idénticos. Si algún día no lo son, es un fallo de este paquete y merece un issue.

El límite, dicho también: el sello prueba que el cálculo es reproducible y que no lo escribió un modelo de lenguaje. No prueba que el análisis acierte, y hoy es un checksum sin firma criptográfica, así que acredita integridad, no origen.

Y el paquete también se verifica

El sello cubre los datos. Que el tarball que te bajás sea el que salió de este código lo cubre otra cosa: se publica desde CI con procedencia de npm, así que cada versión queda ligada al commit y al workflow que la construyeron.

npm audit signatures

En la página del paquete en npm aparece además el enlace al commit exacto. Es el mismo principio que el protocol_hash, aplicado a la cadena de suministro en vez de a los datos: no hace falta creernos, se comprueba.

Configuración

VariablePara quéPor defecto
CRYPTOCAPI_API_KEYTu API keydemo_btc_eth_public
CRYPTOCAPI_API_BASEBase de la API, para desarrollohttps://api.cryptocapi.com/v1
CRYPTOCAPI_TIMEOUT_MSPresupuesto por request15000

Conseguir una key con prueba de 14 días: cryptocapi.com

Desarrollo

npm install
npm run check   # tipos + tests + auditoría de dependencias

Los tests corren con el runner nativo de Node y no tienen una sola dependencia de test ni tocan la red: la API se levanta falsa con node:http. Prueban el paquete, no el servicio, que es lo que los hace rápidos y estables.

Eso deja afuera a propósito una mitad: si el paquete publicado se porta bien contra la API real y dentro de un agente. Para eso está PRUEBAS.md, catorce comprobaciones manuales que se corren después de cada release.

Publicar

Se dispara con un tag y publica desde CI con procedencia:

npm version <patch|minor|major>   # y commitear
git tag -a vX.Y.Z -m "vX.Y.Z" && git push origin vX.Y.Z

El workflow comprueba primero que el tag coincida con la versión del package.json, porque en npm una versión no se puede reusar y ese error no se deshace. La autenticación es trusted publishing por OIDC, sin token: está atada al nombre de release.yml, así que renombrar ese archivo rompe la publicación.

npm version es la única fuente de la versión: el servidor lee el package.json publicado para declarar su serverInfo.version, y un test del handshake falla si los dos números se separan. No hay ningún literal que actualizar a mano.

Licencia

MIT