orcamento
💬 Orçamento Conversacional — Gestão financeira pessoal por linguagem natural, direto no Telegram
Registre despesas como quem manda mensagem para um amigo — sem formulário, sem planilha. Um agente de IA (Google Gemini, orquestrado pelo Nanobot) interpreta a mensagem, extrai valor, categoria, método de pagamento e data, e grava tudo em um banco PostgreSQL. Quando você quiser, ele te devolve um relatório em PDF com dashboard completo ou gera recomendações financeiras personalizadas para economizar.
Você: Gastei 35 no almoço hoje, no pix
Bot: Registrado: R$ 35,00 em alimentação (almoço, no pix).Índice
Related MCP server: expense-tracker-postgres-mcp
VisĂŁo Geral
Este é um protótipo de pesquisa que investiga a viabilidade de uma interface 100% conversacional para controle financeiro pessoal, com foco em jovens adultos (18–29 anos). A ideia central: em vez de adaptar o usuário à estrutura de um app, o sistema se adapta à forma como a pessoa já fala naturalmente sobre seus gastos.
Todo o pipeline roda em containers Docker — não é preciso instalar Python, Postgres ou o Nanobot na máquina. O modelo de linguagem (Google Gemini) roda na nuvem, então não há download nem execução de modelo local.
Funcionalidades
Funcionalidade | Descrição |
📝 Registro por linguagem natural | Extrai valor, descrição, categoria, método de pagamento e data de uma mensagem comum, sem campos ou comandos estruturados |
🔍 Consultas em linguagem natural | "Quanto gastei em alimentação esse mês?", "Quanto gastei entre 01/08 e 15/08?" |
📊 Resumo por categoria | Total e participação percentual de cada categoria num perĂodo |
📄 Relatório em PDF (dashboard, 3 páginas) | Enviado direto no Telegram: (1) panorama por categoria, (2) panorama por método de pagamento, (3) tabela detalhada de gastos por dia |
đź’ˇ Recomendações financeiras | "Como posso economizar este mĂŞs?", "Onde eu poderia economizar entre 01/08 e 31/08?" — 2 a 4 dicas práticas geradas a partir dos gastos do perĂodo, sĂł texto no chat |
Arquitetura

Camada | Tecnologia | Papel |
Canal | Telegram Bot API | Entrada e saĂda das mensagens |
Orquestração | Conecta canal, modelo e ferramentas | |
Modelo de linguagem | Google Gemini (API) | Interpretação e geração de respostas |
Ferramentas | Protocolo MCP, Python | Regras de negócio (registro, consulta, relatório, recomendações) |
PersistĂŞncia | PostgreSQL | Armazenamento estruturado |
Geração de PDF | ReportLab + Matplotlib | Dashboard do relatório |
Empacotamento | Docker Compose | Orquestra os containers |
O servidor de ferramentas roda dentro do container do Nanobot, via stdio, em um ambiente Python isolado (/opt/mcpvenv) — necessário porque o SDK mcp usado pelas ferramentas conflita em versão com o exigido pelo próprio nanobot-ai. Detalhes em Documentação Técnica.
Requisitos
Docker e Docker Compose (Docker Desktop no Windows/Mac, Docker Engine no Linux) — é a única dependência real
Uma conta no Telegram, para criar o bot
Uma chave de API do Google Gemini (gratuita, sem cartão de crédito — free tier cobre o uso deste projeto)
Não precisa instalar Python, Postgres ou o Nanobot separadamente — tudo roda em container.
Como Executar
# 1. Copie o modelo de variáveis de ambiente
cp .env.example .env
# 2. Edite o .env com seu TELEGRAM_TOKEN e GEMINI_API_KEY
# (veja como conseguir os dois na Documentação Técnica)
# 3. Suba tudo
make up
# equivalente: docker compose up -d --build
# 4. Confira se os dois serviços estão de pé
make ps
# equivalente: docker compose psProcure seu bot no Telegram pelo username criado no BotFather e mande uma mensagem. O passo a passo completo — de onde tirar o token do bot e a chave do Gemini até o troubleshooting de cada erro comum — está na Documentação Técnica.
Comandos
Atalhos definidos no Makefile (opcional — todo comando make tem o docker compose equivalente ao lado, caso você não tenha make instalado, comum no Windows fora do WSL).
| Equivalente Docker Compose | O que faz |
|
| Constrói as imagens (se necessário) e sobe tudo em segundo plano |
|
| Para os containers, mantendo os dados do banco |
|
| Reinicia sĂł o Nanobot (apĂłs mudar |
|
| Acompanha os logs do Nanobot em tempo real ( |
|
| Mostra o status dos containers |
|
| ReconstrĂłi as imagens sem subir os containers |
|
| ⚠️ Para tudo e apaga os volumes (dados do Postgres inclusive) |
|
| Abre um shell |
Casos que nĂŁo tĂŞm atalho no Makefile e usam docker compose direto:
Comando | Quando usar |
| Depois de editar cĂłdigo Python em |
| Depois de editar sĂł |
| Ver logs de todos os containers, nĂŁo sĂł o Nanobot |
Estrutura do Projeto
orcamento-conversacional/
├── docker-compose.yml # Orquestra os containers postgres + nanobot
├── Makefile # Atalhos dos comandos acima
├── requirements.txt # Dependências Python do servidor MCP
├── .env.example # Modelo de variáveis de ambiente
│
├── db/
│ ├── schema.sql # Schema para instalação nova (banco vazio)
│ ├── migration_002_metodo_pagamento.sql # Migração segura para bancos já existentes
│ └── connection.py # Pool de conexão com o Postgres
│
├── mcp_server/ # Ferramentas do agente + geração de relatório PDF e recomendações
│ ├── expense_tools.py # As 5 tools: registrar, listar, resumir, gerar PDF, gerar recomendação
│ ├── dashboard_builder.py # Página 1 do relatório (panorama por categoria)
│ ├── dashboard_pagamento.py # Página 2 do relatório (panorama por método de pagamento)
│ ├── dashboard_gastos_dia.py# Página 3 do relatório (tabela de gastos por dia)
│ ├── dash_style.py # Paleta de cores, nomes e Ăcones (categorias/mĂ©todos)
│ ├── icons.py # Ícones vetoriais desenhados no PDF
│ └── Dockerfile
│
└── nanobot_config/
├── config.docker.json # Config ativa quando roda via Docker
├── config.json # Config para instalação local (sem Docker)
├── SOUL.md # Instruções de comportamento do agente
├── AGENTS.md # Regras gerais complementares
└── DockerfileDetalhamento completo de cada arquivo, da arquitetura interna e do schema do banco: Documentação Técnica.
Documentação Técnica
Este README cobre o essencial para rodar o projeto. Para o passo a passo detalhado — incluindo:
Como conseguir o token do bot no BotFather (com prints do que esperar)
Como conseguir e configurar a chave da API do Gemini
Lista completa de problemas comuns e como resolver cada um
Detalhamento de arquitetura (por que o MCP roda num venv isolado, por que existem dois arquivos de config do Nanobot)
Instalação local sem Docker
ReferĂŞncia de cada ferramenta (tool) do agente
veja DOCUMENTACAO_TECNICA.md.
Licença
DistribuĂdo sob a licença definida em LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Log expenses, receipts and mileage from chat: auto-categorise, split VAT, summarise, export, rebill.
Log expenses, receipts and mileage from chat: auto-categorise, split VAT, summarise, export, rebill.
Log expenses, receipts and mileage from chat: auto-categorise, split VAT, summarise, export, rebill.
141Track expenses from your AI chat: log, categorize, monthly CSV reports. All data is local.
Related MCP Servers
- FlicenseCqualityDmaintenanceEnables AI assistants to manage personal finances by storing, analyzing, and exporting expense data using a persistent PostgreSQL database. Supports adding/editing expenses, generating spending summaries, detecting top categories, and creating monthly reports.12-
- FlicenseNot gradedqualityDmaintenancePersistent expense tracker backed by Neon Postgres with SQL tools for adding, editing, deleting, and analyzing expenses via natural language.-
- FlicenseNot gradedqualityCmaintenanceAI-powered expense tracking MCP server that connects LLM clients to PostgreSQL for natural language expense management.-
- AlicenseNot gradedqualityBmaintenanceEnables users to record and retrieve expenses through natural language, with support for categories, dates, and descriptions, backed by a Postgres database.MIT