O que é o coletor
O coletor é um servidor MCP pequeno que roda na sua máquina, dentro do editor. Ele lê a contagem de tokens que o Claude Code já grava no seu computador e envia esses números para o seu painel no DashToken. Não existe proxy entre você e a Anthropic, e nenhuma chave de API passa por aqui.
Ele é um arquivo só, dashtokens-mcp.mjs, baixado do próprio DashToken a cada vez que o editor abre. Assim você sempre roda a versão mais nova, sem instalar nada pelo npm.
Requisitos
- Node.js 18 ou mais novo, no
PATHdo editor. - bash e curl: a configuração usa os dois para baixar o coletor. macOS e Linux já vêm com eles. No Windows, rode o editor dentro do WSL.
- Um token de dispositivo (começa com
dtk_). Ele é gerado no último passo do onboarding, uma vez por máquina.
Instalar
O painel monta o bloco com o seu token. Ele tem este formato (o seu vem com o token de verdade no lugar de dtk_SEU_TOKEN_AQUI):
{
"mcpServers": {
"dashtokens": {
"command": "bash",
"args": [
"-lc",
"set -euo pipefail; DIR=\"${XDG_CACHE_HOME:-$HOME/.cache}/dashtokens\"; mkdir -p \"$DIR\"; BIN=\"$DIR/dashtokens-mcp.mjs\"; curl -fsSL \"https://dashtoken.com.br/mcp/dashtokens-mcp.mjs\" -o \"$BIN.tmp\" && mv \"$BIN.tmp\" \"$BIN\" || true; test -f \"$BIN\" || { echo \"dashtokens: coletor indisponivel\" >&2; exit 1; }; exec node \"$BIN\""
],
"env": {
"DASHTOKENS_URL": "https://dashtoken.com.br",
"DASHTOKENS_TOKEN": "dtk_SEU_TOKEN_AQUI"
}
}
}
}Claude Code
Cole o bloco no .mcp.json da raiz do projeto, para valer só nele, ou no ~/.claude.json, para valer em todos. Feche e abra o Claude Code.
Cursor
Cole o bloco no ~/.cursor/mcp.json, para valer em todos os projetos, ou no .cursor/mcp.json do projeto. Depois abra Settings → MCP e confira se o dashtokens aparece ligado.
Claude Desktop
Em Settings → Developer → Edit Config, cole o bloco e reinicie o app.
Se o arquivo já tiver outros servidores dentro de mcpServers, acrescente só a entrada dashtokens na lista que já existe, sem apagar o resto.
Cursor
Claude Code dentro do Cursor: automático
A extensão e o terminal do Claude Code gravam o uso no mesmo lugar, rodando no Cursor ou fora dele. Com o bloco no ~/.cursor/mcp.json, esse uso entra sozinho, como descrito acima.
Agente do próprio Cursor: pelo CSV
O agente do Cursor (Chat, Composer, Agent) não grava a contagem de tokens no seu computador, e o Cursor não tem uma API de uso para o plano individual. O caminho oficial é o CSV que o próprio Cursor exporta:
- Em cursor.com/dashboard, abra a aba Usage, escolha o período e clique em Export CSV.
- Envie o arquivo em Importar uso do Cursor (também em Configurações → Fonte de dados).
O uso importado vai para o mesmo painel e conta para o teto e os alertas. Pode importar de novo quando quiser: o que já entrou não se repete. Como a atualização é manual, os alertas enxergam o uso do Cursor até a última importação.
Como o custo do Cursor é calculado
- Uso cobrado à parte (On-Demand): vale o valor em dólar que o próprio Cursor informa.
- Uso incluído no plano (Included): o Cursor não informa o valor. Para modelos Claude, o DashToken estima pela tabela de preços. Para os outros modelos, aparecem os tokens, com custo zero.
Não usamos a sua sessão do Cursor para buscar esses dados automaticamente. Isso exigiria guardar uma credencial com acesso à sua conta inteira, e os termos do Cursor não permitem extrair dados assim.
Como ele coleta
O Claude Code grava cada resposta em ~/.claude/projects/, com os tokens usados. A cada 5 minutos, enquanto o editor está aberto, o coletor lê o que é novo nesses arquivos e envia. Na primeira vez ele manda até 90 dias de histórico, para o painel já abrir com números.
O ponto em que parou fica em ~/.cache/dashtokens/collector-state.json. Se a rede cair, ele reenvia no ciclo seguinte, e o servidor descarta o que já recebeu.
O custo é calculado no servidor, com a tabela de preço de cada modelo, e aparece em US$ ou em R$ com o câmbio do dia.
O que sai do seu computador
| Enviado | Nunca enviado |
|---|---|
| Contagem de tokens de entrada, saída e cache | Prompts e respostas |
| Modelo usado e horário de cada resposta | Seu código e nomes de arquivo |
Nome da pasta do projeto (ex.: loja-online) | O caminho completo das pastas |
| Qual dispositivo enviou (pelo token) | Chaves de API |
Variáveis de ambiente
Todas ficam no bloco env da configuração. Só as duas primeiras são obrigatórias, e o painel já as preenche.
| Variável | Para que serve |
|---|---|
DASHTOKENS_URL | Endereço do DashToken. |
DASHTOKENS_TOKEN | Token do dispositivo. |
DASHTOKENS_PROJECT | Força o nome do projeto, em vez do nome da pasta. |
DASHTOKENS_AUTO_SYNC | 0 desliga a coleta automática. |
DASHTOKENS_SYNC_INTERVAL_MS | Intervalo entre coletas, em milissegundos. Padrão: 300000 (5 minutos). |
DASHTOKENS_BACKFILL_DAYS | Quantos dias de histórico enviar na primeira vez. Padrão: 90. |
CLAUDE_PROJECTS_DIR | Onde procurar os logs do Claude Code, se não estiverem em ~/.claude/projects. |
Ferramentas MCP
Além da coleta automática, o agente pode chamar duas ferramentas:
get_overview: devolve o consumo dos últimos dias. Serve para perguntar ao próprio agente “quanto gastei esta semana?”.report_usage: envia registros de uso na mão. A coleta automática já cobre o Claude Code; esta ferramenta existe para integrações próprias.
Desligar e revogar
- Pausar numa máquina: tire o bloco
dashtokensda configuração do editor, ou ponhaDASHTOKENS_AUTO_SYNCem0. - Revogar um token: em Configurações → Devices MCP, no painel, clique em Revogar. A partir daí o servidor recusa tudo que chegar com ele.
- Apagar tudo: excluir a conta em Configurações → Zona de perigo apaga o histórico de uso e todos os tokens.
Problemas comuns
O painel continua vazio
Feche e abra o editor depois de colar o bloco, e mande uma mensagem qualquer ao agente. A primeira coleta acontece quando o MCP sobe. Confira se o Node está no PATH do editor, e não só no do terminal.
“dashtokens: coletor indisponivel”
O download do coletor falhou e não havia cópia em cache. Normalmente é falta de rede ou de curl. Com uma cópia em cache, ele segue funcionando offline.
“Token inválido ou revogado”
O token foi revogado ou a conta foi excluída. Gere um novo no passo de conexão e troque no bloco.
