CoinStats

Acesse dados do mercado de criptomoedas, acompanhamento de portfólio e notícias da API do CoinStats.

Documentação

Servidor MCP CoinStats

Servidor Model Context Protocol hospedado para a API CoinStats. Permite que agentes de IA (Claude, Cursor, Codex, ChatGPT — qualquer coisa que fale MCP) leiam e ajam sobre os mesmos dados de criptomoedas que os aplicativos CoinStats usam, por meio de uma única URL HTTPS protegida por OAuth.

Não há chave de API para copiar nem variável de ambiente para gerenciar: cada usuário autoriza o agente em sua própria conta CoinStats no navegador, e o agente recebe um token por usuário a partir de então.

CoinStats Server MCP server

URL do servidor

https://mcp.coinstats.app/mcp

Instalação

Claude.ai / Claude Desktop

Configurações → ConectoresAdicionar conector personalizado. Cole a URL do servidor e clique em Adicionar:

https://mcp.coinstats.app/mcp

Uma janela do navegador abre em coinstats.app/openapi/consent. Faça login (ou reconheça sua sessão existente), revise o acesso solicitado e clique em Aprovar.

Cursor

Install MCP Server

Ou adicione a ~/.cursor/mcp.json manualmente:

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

Reinicie o Cursor; na primeira chamada, ele abre uma janela do navegador para o fluxo OAuth.

Claude Code

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

O Claude Code abre um navegador para autorizar. Verifique com:

claude mcp list

Codex

codex mcp add apenas registra a URL; ele não abre um navegador. Execute codex mcp login separadamente:

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

Após a etapa de login, codex mcp list deve mostrar Auth: OAuth para coinstats.

Outros clientes MCP

Qualquer cliente que fale o transporte Streamable HTTP com autorização OAuth 2.1 funcionará. Aponte-o para https://mcp.coinstats.app/mcp — o Registro Dinâmico de Cliente (RFC 7591) é suportado, portanto não é necessário um client_id pré-compartilhado.

O que você pode fazer

Após autorizar, seu agente pode:

  • Consultar preços em tempo real, gráficos e dados de mercado para mais de 100.000 moedas
  • Ler suas moedas de portfólio CoinStats, P/L e desempenho ao longo do tempo
  • Consultar saldos e transações de carteiras em mais de 120 blockchains
  • Comparar preços de tickers em mais de 200 exchanges
  • Obter notícias de criptomoedas (mais recentes, em alta, filtradas por fonte ou tópico)

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

Autenticação

O fluxo de descoberta + OAuth segue o padrão MCP / RFC:

EndpointEspecificaçãoFinalidade
GET /.well-known/oauth-protected-resourceRFC 9728Aponta para o servidor de autorização (https://api.coin-stats.com)
GET /.well-known/oauth-authorization-serverRFC 8414Metadados do AS (também espelhados no host MCP para que clientes mais antigos possam encontrá-los sem a indireção)
POST /v1/oauth/register (on AS)RFC 7591Registro Dinâmico de Cliente
GET /v1/oauth/authorize → consent UIOAuth 2.1 §4.1Usuário aprova o acesso
POST /v1/oauth/token (on AS)OAuth 2.1 §4.1Troca de código PKCE
POST /v1/oauth/revoke (on AS)RFC 7009Desconexão por cliente

Transporte de token: Authorization: Bearer <token>. Escopo único coinstats hoje; escopos granulares estão no roadmap.

Auto-hospedagem / fallback stdio (modo desenvolvedor)

Se você quiser executar o servidor MCP você mesmo (sem OAuth por usuário, apenas uma chave de API de desenvolvedor), o ponto de entrada stdio legado é publicado no npm:

npx @coinstats/coinstats-mcp

com COINSTATS_API_KEY definido no ambiente. Conecte a um cliente assim:

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

Ou via Docker:

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

Esse caminho é a escolha certa para integrações headless / não supervisionadas, onde não há humano para clicar em "Aprovar". Obtenha uma chave no CoinStats API Dashboard.

Arquitetura

O servidor hospedado é um Cloudflare Worker sem estado (~225 KiB / ~41 KiB gzipado) que:

  1. Expõe os endpoints de descoberta RFC 9728 + RFC 8414.
  2. Protege POST /mcp com um token Authorization: Bearer ….
  3. Despacha MCP JSON-RPC (initialize / tools/list / tools/call / ping) sem estado de sessão.
  4. Encaminha cada chamada de ferramenta para https://openapiv1.coinstats.app carregando o mesmo bearer.

Fonte: src/worker.ts. Configuração: wrangler.jsonc.

Desenvolvimento local

O repositório fornece dois pontos de entrada:

  • src/worker.ts — Cloudflare Worker. Execute com wrangler dev (porta 8787 por padrão).
  • src/index.ts — servidor stdio. Execute com node dist/index.js após a compilação, ou via pacote 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 desenvolvimento local do Worker, você pode sobrescrever variáveis de ambiente:

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

Relacionados

Licença

MIT — veja LICENSE.