CoinStats

Accede a datos del mercado de criptomonedas, seguimiento de carteras y noticias desde la API de CoinStats.

Documentación

Servidor MCP de CoinStats

Servidor Model Context Protocol alojado para la API de CoinStats. Permite que agentes de IA (Claude, Cursor, Codex, ChatGPT — cualquier cosa que hable MCP) lean y actúen sobre los mismos datos cripto que usan las aplicaciones de CoinStats, a través de una única URL HTTPS protegida por OAuth.

No hay clave API que copiar ni variable de entorno que gestionar: cada usuario autoriza al agente contra su propia cuenta de CoinStats en el navegador, y el agente obtiene un token por usuario a partir de entonces.

CoinStats Server MCP server

URL del servidor

https://mcp.coinstats.app/mcp

Instalación

Claude.ai / Claude Desktop

Configuración → Conectores → Añadir conector personalizado. Pega la URL del servidor y haz clic en Añadir:

https://mcp.coinstats.app/mcp

Se abre una ventana del navegador en coinstats.app/openapi/consent. Inicia sesión (o reconoce tu sesión existente), revisa el acceso solicitado y haz clic en Aprobar.

Cursor

Install MCP Server

O añádelo a ~/.cursor/mcp.json manualmente:

{
  "mcpServers": {
    "coinstats": {
      "url": "https://mcp.coinstats.app/mcp"
    }
  }
}

Reinicia Cursor; en la primera llamada abrirá una ventana del navegador para el flujo OAuth.

Claude Code

claude mcp add coinstats --transport http https://mcp.coinstats.app/mcp

Claude Code abre un navegador para autorizar. Verifica con:

claude mcp list

Codex

codex mcp add solo registra la URL; no abre un navegador. Ejecuta codex mcp login por separado:

codex mcp add coinstats --url https://mcp.coinstats.app/mcp
codex mcp login coinstats

Después del paso de inicio de sesión, codex mcp list debería mostrar Auth: OAuth para coinstats.

Otros clientes MCP

Cualquier cliente que hable el transporte Streamable HTTP con autorización OAuth 2.1 funcionará. Apúntalo a https://mcp.coinstats.app/mcp — se admite el Registro Dinámico de Clientes (RFC 7591), por lo que no se necesita ningún client_id precompartido.

Lo que puedes hacer

Después de autorizar, tu agente puede:

  • Consultar precios en tiempo real, gráficos y datos de mercado de más de 100 000 monedas
  • Leer las monedas de tu cartera de CoinStats, P/L y rendimiento a lo largo del tiempo
  • Consultar saldos de carteras y transacciones en más de 120 blockchains
  • Recuperar P/L histórico ajustado por flujo de caja para carteras, exchanges y portafolios en rangos de calendario predefinidos o personalizados
  • Comparar precios de tickers en más de 200 exchanges
  • Obtener noticias cripto (últimas, tendencias, filtradas por fuente o tema)

Catálogo completo de herramientas: https://coinstats.app/api-docs/mcp/tools.

Autenticación

El flujo de descubrimiento + OAuth sigue el patrón estándar de MCP / RFC:

EndpointEspecificaciónPropósito
GET /.well-known/oauth-protected-resourceRFC 9728Apunta al servidor de autorización (https://api.coin-stats.com)
GET /.well-known/oauth-authorization-serverRFC 8414Metadatos del AS (también reflejados en el host MCP para que clientes antiguos puedan encontrarlos sin la indirección)
POST /v1/oauth/register (en AS)RFC 7591Registro Dinámico de Clientes
GET /v1/oauth/authorize → interfaz de consentimientoOAuth 2.1 §4.1El usuario aprueba el acceso
POST /v1/oauth/token (en AS)OAuth 2.1 §4.1Intercambio de código PKCE
POST /v1/oauth/revoke (en AS)RFC 7009Desconexión por cliente

Transporte de tokens: Authorization: Bearer <token>. Un único alcance coinstats hoy; los alcances granulares están en la hoja de ruta.

Autoalojamiento / alternativa stdio (modo desarrollador)

Si quieres ejecutar el servidor MCP tú mismo (sin OAuth por usuario, solo con una clave API de desarrollador), el punto de entrada stdio heredado está publicado en npm:

npx @coinstats/coinstats-mcp

con COINSTATS_API_KEY configurado en el entorno. Conéctalo a un cliente así:

{
  "mcpServers": {
    "coinstats": {
      "command": "npx",
      "args": ["-y", "@coinstats/coinstats-mcp"],
      "env": { "COINSTATS_API_KEY": "<YOUR_API_KEY>" }
    }
  }
}

O mediante Docker:

{
  "mcpServers": {
    "coinstats": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "COINSTATS_API_KEY", "coinstats/coinstats-mcp"],
      "env": { "COINSTATS_API_KEY": "<YOUR_API_KEY>" }
    }
  }
}

Esta vía es la opción correcta para integraciones headless / desatendidas donde no hay un humano que haga clic en "Aprobar". Obtén una clave desde el Panel de la API de CoinStats.

Arquitectura

El servidor alojado es un Cloudflare Worker sin estado (~225 KiB / ~41 KiB comprimido) que:

  1. Expone los endpoints de descubrimiento RFC 9728 + RFC 8414.
  2. Protege POST /mcp con un token Authorization: Bearer ….
  3. Despacha JSON-RPC de MCP (initialize / tools/list / tools/call / ping) sin estado de sesión.
  4. Reenvía cada llamada de herramienta a https://openapiv1.coinstats.app llevando el mismo bearer.

Código fuente: src/worker.ts. Configuración: wrangler.jsonc.

Desarrollo local

El repositorio incluye dos puntos de entrada:

  • src/worker.ts — Cloudflare Worker. Ejecuta con wrangler dev (puerto 8787 por defecto).
  • src/index.ts — servidor stdio. Ejecuta con node dist/index.js después de compilar, o mediante el paquete npm publicado.
# Build the stdio CLI
npm run build

# Run the Worker locally (requires `wrangler login` first)
npm run dev

# Deploy the Worker — needs CLOUDFLARE_ACCOUNT_ID exported in the env
# (the account ID isn't committed to wrangler.jsonc; pull it from the
# Cloudflare dashboard sidebar or the CI deploy job's secrets).
export CLOUDFLARE_ACCOUNT_ID=<your-cf-account-id>
npm run deploy

# Tail production logs
npm run tail

Para el desarrollo local del Worker puedes sobrescribir variables de entorno:

wrangler dev --var OAUTH_ISSUER:http://localhost:1337 \
             --var COINSTATS_API_BASE_URL:http://localhost:9999

Relacionados

Licencia

MIT — consulta LICENSE.