Despezzas MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Despezzas MCPlist my accounts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
📍 Visão geral
Servidor MCP para dados financeiros do Despezzas. Expõe ferramentas para clientes MCP (como ChatGPT) listarem contas, cartões e categorias, pesquisarem transações, consultarem resumos de gastos e fazerem operações de escrita com proteções.
Projeto open-source (MIT), construído analisando as requisições de rede e o código do frontend do Despezzas. O Despezzas não publica uma API oficial — trate isto como integração não oficial. Endpoints e campos podem mudar sem aviso.
Integração não oficial. Endpoints e fluxos de login podem mudar sem aviso.
Este MCP pode ler e alterar dados financeiros pessoais. Nunca faça commit de.env, tokens, senhas, sessões, HARs não mascarados ou respostas reais da API.
Related MCP server: Lunch Money MCP Server
Desenvolvimento com IA e agentes
Este projeto foi desenvolvido de forma majoritariamente assistida por IA ("vibecoded"): grande parte da implementação foi gerada, refatorada ou iterada com agentes de IA, com direção técnica, conhecimento de programação e revisão manual de Guilherme Milek.
Para agentes de IA trabalhando neste repositório, use llms.txt como contexto inicial. Ele resume a arquitetura, arquivos principais, comandos, ferramentas MCP, regras de segurança e notas de deploy.
Item | Valor |
Status | MVP funcional para uso pessoal |
API | Integração não oficial com endpoints do Despezzas |
Runtime | Node.js |
Transportes |
|
Autenticação | Bearer token, e-mail/senha, OAuth MCP |
Deploy recomendado | Cloudflare Workers |
⚡ Início rápido
npm install
npm run build
Copy-Item .env.example .env
npm run devDepois configure a autenticação no .env com DESPEZZAS_TOKEN ou DESPEZZAS_EMAIL + DESPEZZAS_PASSWORD + DESPEZZAS_FIREBASE_API_KEY.
✨ Funcionalidades
📖 Ferramentas de leitura: perfil, acessos de perfil, configuração pessoal, contas, bancos, cartões de crédito, categorias, subcategorias, busca compacta de transações, visão geral, resumo financeiro e diagnóstico de exportação/campos.
🧾 Pré-visualização de transações: prepara payloads de criação/edição/exclusão sem chamar o Despezzas.
✍️ Ferramentas de escrita: trocar/criar/editar/excluir/sair de perfil, criar/editar/excluir conta, cartão de crédito, transação, transferência, duplicar transação e alternar pago.
🔐 Autenticação: token bearer copiado, login por e-mail/senha via variáveis de ambiente ou página HTTP de autorização MCP.
🔄 Renovação de token: sessões Firebase salvas são reutilizadas e renovadas automaticamente.
🛡 Trava de segurança: toda ferramenta de escrita/destrutiva exige confirm: true.
🔌 Transportes: stdio local e Streamable HTTP (Node ou Cloudflare Workers).
🔎 Depuração: inspetor de HAR e monitor de requisições no DevTools para capturar endpoints futuros.
Valores usam centavos inteiros no formato nativo do Despezzas. Exemplo: 12345 significa R$123.45.
Para escritas de transação, use primeiro as ferramentas de preparo:
Pesquise/liste a conta, cartão, categoria, subcategoria ou transação alvo.
Chame
despezzas_prepare_create_transaction,despezzas_prepare_update_transactionoudespezzas_prepare_delete_transaction.Revise o payload retornado e os IDs de destino.
Chame a ferramenta real de escrita com os mesmos campos e
confirm: true.
despezzas_create_transaction recusa intencionalmente payloads sem destino de conta/cartão, com conta e cartão ao mesmo tempo, ou sem category_id, a menos que allow_uncategorized seja explicitamente true.
🧰 Catálogo de ferramentas
Grupo | Exemplos | Escrita? | Observação |
Status e perfil |
| Parcial | Trocar/criar/excluir perfil exige |
Contas e cartões |
| Parcial | Escritas validam IDs e confirmação. |
Categorias |
| Não | Use antes de criar/editar transações. |
Transações |
| Parcial | Criação exige destino, categoria ou |
Pré-visualização |
| Não | Caminho recomendado antes de qualquer escrita. |
Diagnóstico |
| Parcial | Use com cuidado; respostas são mascaradas quando possível. |
🛠 Tecnologias
As principais ferramentas usadas neste projeto:
Servidor MCP
Deploy
Ferramentas
* Veja o arquivo package.json para a lista completa de dependências.
🚀 Primeiros passos
📦 Configuração
npm install
npm run build
Copy-Item .env.example .env✔️ Verificação
npm run verify
npm run smoke:readonlynpm run verify executa checagem de segurança do repositório, sincronização do catálogo MCP, Prettier, ESLint, TypeScript e testes. npm run smoke:readonly compila o projeto e chama apenas endpoints somente leitura do Despezzas usando o token/sessão configurado.
Checagens individuais úteis:
npm run check:repo-safety
npm run check:mcp-tools
npm run format:check
npm run lint
npm run typecheck
npm test📋 Variáveis de ambiente
Variável | Obrigatória? | Uso |
| Opcional | Token bearer manual copiado de uma sessão web. |
| Opcional | Login por e-mail/senha. |
| Opcional | Login por e-mail/senha. |
| Para e-mail/senha | Chave pública do Firebase Web usada para troca e refresh de token. Veja como obtê-la no .env.example. |
| Opcional | Caminho de sessão persistida; use |
| Opcional |
|
| Opcional | Bind do servidor HTTP; padrão |
| Produção/OAuth | URL pública HTTPS para metadados OAuth. |
| Recomendado | Assinatura estável dos tokens OAuth MCP. |
| Deploy privado | Código de proprietário para autorizações de conta única. |
| Cloudflare multiusuário | Criptografia de sessões no Workers KV. |
🔐 Autenticação
Opções preferenciais:
Execute em modo HTTP e abra
http://127.0.0.1:8787/login.Defina
DESPEZZAS_EMAIL,DESPEZZAS_PASSWORDeDESPEZZAS_FIREBASE_API_KEY(chave pública — veja .env.example) no.env.Copie o
DESPEZZAS_TOKENpelas DevTools do navegador.
A página /login usa a identidade visual do Despezzas, acompanha os temas claro/escuro do sistema e contém apenas os campos necessários para este MCP: e-mail, senha e, quando configurado, código de acesso do proprietário. Criação de conta e recuperação de senha ficam no app oficial do Despezzas.
O fluxo de login espelha o frontend do Despezzas:
POST https://api.despezzas.com/v2/authcom e-mail/senha.Usa o
firebase_tokenretornado com Firebaseaccounts:signInWithCustomTokenusandoDESPEZZAS_FIREBASE_API_KEY(a chave pública do Firebase Web do Despezzas).Usa o
idTokendo Firebase comoAuthorization: Bearer ...emapi.despezzas.com.Salva o refresh token do Firebase em
%USERPROFILE%\.despezzas-mcp\session.jsonpor padrão.
Etapa | Origem | Destino | Resultado |
1 | Usuário |
| Envia e-mail e senha para autorização local. |
2 | MCP | API Despezzas | Troca credenciais por |
3 | MCP | Firebase | Troca |
4 | MCP | Cliente MCP/ChatGPT | Entrega um token OAuth MCP opaco. |
Defina DESPEZZAS_SESSION_FILE=none para desativar a persistência de sessão. Se todos os métodos de autenticação falharem, despezzas_status indicará que é preciso abrir a página de login ou configurar credenciais.
Não passe sua senha como argumento de ferramenta. Argumentos podem ficar visíveis ao cliente. Use .env ou a página /login.
🖥 Configuração MCP local
Para um cliente MCP local via stdio:
{
"mcpServers": {
"despezzas": {
"command": "node",
"args": ["C:\\caminho\\para\\despezzas-mcp\\dist\\index.js"],
"env": {
"DESPEZZAS_TOKEN": "seu-token-aqui"
}
}
}
}Para desenvolvimento sem compilar:
npm run dev🌐 Modo HTTP
$env:MCP_TRANSPORT = "http"
$env:PORT = "8787"
npm run dev:httpVerificação de saúde:
Invoke-RestMethod http://127.0.0.1:8787/healthAbra a página local de autorização:
Start-Process http://127.0.0.1:8787/loginSe expuser o modo HTTP além do localhost, coloque HTTPS e controle de acesso na frente. A página /login aceita sua senha do Despezzas para autorizar o MCP.
🤖 Conexão OAuth com ChatGPT
Para a tela New App em ChatGPT Apps & Connectors:
Faça deploy em Cloudflare Workers seguindo docs/cloudflare-workers.md.
npm run check:cloudflare npm run deploy:cloudflareConfirme a URL pública do Worker:
Invoke-RestMethod https://despezzas-mcp.<sua-conta>.workers.dev/healthNo ChatGPT, use:
URL do servidor:
https://despezzas-mcp.<sua-conta>.workers.dev/mcpAutenticação:
OAuth
O servidor expõe os endpoints de descoberta esperados pelo ChatGPT:
GET /.well-known/oauth-protected-resourceGET /.well-known/oauth-authorization-serverPOST /oauth/registerGET|POST /oauth/authorizePOST /oauth/token
Essa camada OAuth protege a conexão. Durante a autorização, a página de login troca e-mail/senha do Despezzas por uma sessão Despezzas/Firebase no servidor. O botão final é Entrar e autorizar, e o ChatGPT recebe apenas um token de acesso MCP opaco.
MCP_HTTP_BEARER_TOKEN ainda é útil para scripts fora do ChatGPT. Quando omitido, o /mcp exige um token OAuth válido.
Apps/conectores personalizados do ChatGPT exigem um endpoint MCP remoto em HTTPS. A documentação do Apps SDK da OpenAI descreve o MCP como a camada de servidor necessária para expor ferramentas ao ChatGPT, e o guia de conexão pelo ChatGPT usa um endpoint HTTPS para adicionar um servidor MCP. Veja:
☁️ Deploy remoto
Caminho suportado para deploy remoto: Cloudflare Workers.
Veja docs/deployment.md para o resumo operacional do deploy apenas em Cloudflare.
Provedor | Melhor para | Arquivos | Observação |
Cloudflare Workers | MCP remoto com ChatGPT |
| Caminho de deploy mantido no projeto. |
Arquivos de deploy mantidos:
wrangler.jsoncesrc/cloudflare.tspara Cloudflare Workers.docs/cloudflare-workers.mdpara o passo a passo completo.
Para o modo multiusuário em Cloudflare Workers, associe o namespace KV DESPEZZAS_SESSIONS, defina MCP_OAUTH_TOKEN_SECRET, SESSION_ENCRYPTION_KEY e DESPEZZAS_FIREBASE_API_KEY como secrets do Wrangler e faça deploy com npm run deploy:cloudflare. Para deploys privados de conta única, defina MCP_OWNER_AUTH_CODE junto com suas credenciais do Despezzas e DESPEZZAS_FIREBASE_API_KEY.
🔎 Inspeção de HAR
Quando capturar mais ações do frontend:
npm run inspect:har -- C:\path\to\despezzas.harO script imprime apenas chamadas para api.despezzas.com e mascara segredos comuns. Próximas ações úteis para capturar:
Pagar/despagar contas e faturas de cartão de crédito.
Metas, limites de gastos, relatórios, investimentos, gerenciamento de conexão Open Finance e ações do chat de IA.
Qualquer caso de borda de perfil ainda não coberto por
despezzas_list_profiles/despezzas_switch_profile/ ferramentas de gerenciamento de perfil.
Se preferir não exportar um HAR, cole scripts/request-monitor-devtools.js no DevTools em despezzas.com, execute a ação e depois rode:
window.__despezzasMcpMonitor.download();Ele exporta um relatório JSON mascarado das chamadas fetch/XHR para api.despezzas.com.
📚 MCPs de referência
Este projeto tomou como referência:
Este repositório mantém uma estrutura parecida, mas usa endpoints nativos do Despezzas e IDs em UUID.
🤝 Contribuição
Contribuições são bem-vindas. Antes de abrir um pull request:
Leia CONTRIBUTING.md.
Rode
npm run verify.Não inclua credenciais, tokens, sessões, HARs não mascarados ou dados financeiros reais.
Mantenha
confirm: trueobrigatório para toda ferramenta de escrita/destrutiva.Atualize
llms.txt,AGENTS.mde os docs emdocs/quando mudar arquitetura, comandos, ferramentas MCP ou regras importantes para agentes.
📄 Licença
MIT. Veja LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/guipmilek/despezzas-mcp-clean-snapshot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server