Skip to main content
Glama

kotas-mcp

MIT Bun ≥ 1.3 TypeScript strict CI

CLI e servidor MCP para as suas assinaturas compartilhadas no Kotas: grupos, o que você paga em cada um, faturas, créditos, cauções, repasses recebidos como administrador, saldo, economia acumulada e o histórico completo — inclusive das assinaturas que você já encerrou. Tudo em um cache local, para que uma pergunta como "quanto já gastei no Kotas?" seja respondida sem abrir o site.

O Kotas não tem API pública de cliente. Este projeto conversa com a mesma API que o app app.kotas.com.br usa, com a sua própria sessão, somente leitura: nenhuma tool cancela assinatura, saca, paga ou muda um valor.

Sumário

Related MCP server: mcp-upbank

Instalação

Tudo de uma vez (Claude Code)

bun run setup

Compila o binário, instala em ~/.local/bin/kotas, registra o servidor MCP no escopo de usuário do ~/.claude.json e instala a Skill em ~/.claude/skills/kotas-mcp/.

npm

npm install -g @maxwellmezadre/kotas-mcp

Binário único

Baixe o executável do seu sistema na página de releases e ponha no PATH. Não precisa de runtime instalado.

Login

Três caminhos, todos gravando o mesmo session.enc cifrado:

kotas login                              # e-mail e senha (pergunta, ou KOTAS_EMAIL/KOTAS_SENHA)
kotas login --from-browser chrome        # importa a sessão de um navegador já logado (macOS)
kotas login --paste                      # cola os três valores do localStorage

O login do Kotas não tem captcha, então o caminho por senha é HTTP puro e não precisa de navegador. A senha é usada uma vez e nunca é gravada: só ficam os dois tokens e o identificador do dispositivo.

Se a conta tiver verificação em duas etapas, passe o código:

kotas login --pin 123456

Se o Kotas pedir liberação de dispositivo (HTTP 412), ele manda um e-mail, SMS ou mensagem no Telegram. Confirme e rode kotas login de novo — o identificador já foi salvo, então não troque de máquina no meio do processo.

Uso — CLI

kotas sync                    # baixa o histórico para o cache (repete os blocos sozinho)
kotas subscriptions           # as assinaturas que você tem hoje
kotas history                 # tudo que você já assinou, inclusive o que encerrou
kotas spending --by month     # quanto por mês
kotas payouts                 # o que você recebe como administrador
kotas balance                 # saldo e economia acumulada
kotas invoices --status pago --from 2026-01-01
kotas subscription 397075     # plano, rateio, vagas e participantes
kotas export history --format csv

Todo comando aceita --json, que imprime o mesmo objeto que a tool MCP devolve.

Uso — MCP

claude mcp add -s user kotas -- /Users/você/.local/bin/kotas mcp

Ou à mão, no ~/.claude.json:

{
  "mcpServers": {
    "kotas": {
      "type": "stdio",
      "command": "/Users/você/.local/bin/kotas",
      "args": ["mcp"]
    }
  }
}

Use o caminho absoluto: clientes MCP não herdam o PATH do seu shell. Depois é só perguntar: "quanto já gastei no Kotas?", "quais assinaturas eu tenho e quanto pago em cada uma?", "quanto vou receber como administrador este mês?"

Variáveis de ambiente

Variável

Default

Para quê

KOTAS_CONFIG_DIR

~/.config/kotas-mcp

Onde ficam sessão, chave e cache

KOTAS_SESSION_KEY

Chave AES em base64 de 32 bytes; sem ela, uma é gerada em session.key

KOTAS_EXPORT_DIR

~/Downloads/kotas-export

O único diretório onde export escreve

KOTAS_READ_ONLY

0

Não registra login, sync e export

KOTAS_COMPACT

0

Respostas mínimas por padrão, para economizar contexto

KOTAS_EMAIL / KOTAS_SENHA

Só para o bootstrap do login; nunca são gravadas

KOTAS_IMPORT_BROWSER

arc | chrome | chromium | brave | edge

KOTAS_APP_VERSION

1.127.0.0

Header versao; se a API responder 426, atualize

KOTAS_API_TOKEN

(chave do front)

Chave estática da API, igual para todo mundo

KOTAS_MIN_INTERVAL_MS

300

Intervalo mínimo entre requisições

KOTAS_JITTER_MS

200

Variação aleatória somada ao intervalo

KOTAS_HTTP_TIMEOUT_MS

30000

Timeout de cada requisição

KOTAS_LOG_FILE

Espelha o log (que sai no stderr) em um arquivo

KOTAS_BASE_URL

https://api-front.kotas.com.br

Só para testes

Tools

Tool

Comando

Rede

auth_status

kotas status [--verify]

0 (1 com --verify)

login

kotas login

1–2

doctor

kotas doctor

≈ 6 (3 com --shallow)

sync

kotas sync [--full|--reparse]

em blocos

list_subscriptions

kotas subscriptions

0

get_subscription

kotas subscription <id>

0 (1 se não estiver no cache)

list_invoices

kotas invoices

0

get_invoice

kotas invoice <id>

0 (1 se faltarem os itens)

list_credits

kotas credits

0

balance

kotas balance

2

list_payouts

kotas payouts

0

purchase_history

kotas history

0

spending_summary

kotas spending --by …

0

search_services

kotas search <termo>

1

export

kotas export <escopo>

0

raw_get

kotas raw <rota>

1

Referência completa dos parâmetros em docs/TOOLS.md, gerada a partir do registry.

Como funciona

  1. Sessão. Dois tokens JWT (acesso e renovação) mais o identificador do dispositivo, cifrados com AES-256-GCM em ~/.config/kotas-mcp/session.enc, modo 0600. O token de acesso dura 15 minutos e é renovado sozinho.

  2. Um funil só. Toda requisição passa por src/core/http.ts, que serializa as chamadas, respeita um intervalo mínimo com jitter, faz backoff em 429/5xx e cuida da renovação do token.

  3. Faturas como raiz. Um grupo cancelado some da API, então o histórico é reconstruído a partir da descrição das faturas (Fatura grupo <produto> #<id>). É por isso que purchase_history enxerga assinaturas que o site já não mostra.

  4. Cache local. SQLite em ~/.config/kotas-mcp/cache.db, com o payload cru guardado ao lado do dado interpretado — assim sync --reparse reprocessa todo o histórico sem gastar uma requisição.

Troubleshooting

Sintoma

O que fazer

Nenhuma sessão do Kotas salva

kotas login ou kotas login --from-browser chrome

O Kotas pediu a liberação do dispositivo (412)

Confirme o e-mail/SMS/Telegram e rode kotas login de novo

A conta tem verificação em duas etapas

kotas login --pin 123456

sync devolve done: false

É esperado: chame de novo até done: true (o CLI já faz isso)

Listas vazias

O cache está vazio: rode kotas sync

HTTP 426

A versão do front mudou: ajuste KOTAS_APP_VERSION

HTTP 400 em um grupo

O grupo foi encerrado e não existe mais na API; use kotas history

Algo quebrou de um jeito estranho

kotas doctor diz qual camada

Documentação

Arquivo

Conteúdo

docs/ARCHITECTURE.md

Camadas, regras duras e por que cada uma existe

docs/CONFIGURATION.md

Variáveis, arquivos em disco e registro no Claude Code

docs/USAGE.md

Do zero à primeira pergunta

docs/CLI.md

Referência dos comandos

docs/TOOLS.md

Referência das tools (gerada)

docs/LOGIN.md

Os três caminhos de login e o que fica gravado

docs/DATA-MODEL.md

Modelo de domínio e schema do cache

docs/INTERNAL-API.md

A API do Kotas e as armadilhas confirmadas

docs/REDISCOVERY.md

O que fazer quando o Kotas mudar

docs/adr/

Uma decisão por arquivo

test/fixtures/README.md

O que as fixtures são e o que a anonimização faz

Licença

MIT. Veja LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying personal finance data including accounts, transactions, spending, holdings, net worth, and budgets from your self-hosted OpenCoffer instance. Supports natural language queries through any MCP-compatible client.
    16
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying Up Bank account transactions and spending habits through natural language, using the Up Bank API in read-only mode.
    9
    8
    Do What The F*ck You Want To Public
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables querying personal finance reports (merchant spending, largest expenses) and performing currency conversion via a local SQLite database.
    24
    -
  • F
    license
    B
    quality
    B
    maintenance
    Enables read-only SQL queries and transaction classification tools for local expense tracking, including listing, filtering, and bulk account assignment with dry-run mode.
    8
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/maxwellmezadre/kotas-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server