# ๐ Calculadora de Propostas T2C - Resumo do Projeto
## ๐ฏ O Que Foi Criado
Um **MCP App completo** seguindo todas as boas prรกticas do guia oficial, transformando a calculadora HTML em uma aplicaรงรฃo MCP integrada ao Claude Desktop.
---
## ๐ Arquitetura
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLAUDE DESKTOP โ
โ "Crie uma cotaรงรฃo para projeto X com Y horas" โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP PROTOCOL (stdio) โ
โ Tool: create_quotation, list_quotations, etc. โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ NODE.JS MCP SERVER (server.ts) โ
โ โข Valida com Zod โ
โ โข Processa cรกlculos โ
โ โข Persiste em JSON โ
โ โข Retorna UI Resource โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโบ data/quotations.json (persistรชncia)
โ
โโโโบ UI Resource (mcp-app.html)
โโโบ Interface Interativa
โข Adicionar projetos
โข Calcular valores
โข Ver histรณrico
โข Copiar/Imprimir
```
---
## ๐ ๏ธ Tecnologias Utilizadas
| Tecnologia | Versรฃo | Propรณsito |
|------------|--------|-----------|
| **TypeScript** | 5.9.3 | Tipagem estรกtica |
| **Node.js** | 18+ | Runtime do servidor |
| **MCP SDK** | 1.24.0 | Protocol implementation |
| **MCP Apps** | 1.0.0 | UI framework |
| **Vite** | 6.0.0 | Build & bundling |
| **Zod** | 4.1.13 | Schema validation |
| **Express** | 5.1.0 | HTTP server (dev) |
---
## ๐ฆ Estrutura de Arquivos
```
calculadora-proposta-mcp/
โ
โโโ ๐ Configuraรงรฃo
โ โโโ package.json # Deps + scripts
โ โโโ tsconfig.json # TS config (UI)
โ โโโ tsconfig.server.json # TS config (Server)
โ โโโ vite.config.ts # Vite bundler
โ โโโ .gitignore # Git ignore
โ
โโโ ๐ง Servidor MCP
โ โโโ server.ts # 4 tools MCP
โ โโโ main.ts # Entry point
โ โโโ dist/
โ โโโ index.js # Entry (executรกvel)
โ โโโ main.js # Compiled server
โ โโโ server.js # Compiled logic
โ
โโโ ๐จ Interface do Usuรกrio
โ โโโ mcp-app.html # Template HTML
โ โโโ src/
โ โ โโโ mcp-app.ts # Lรณgica + MCP SDK
โ โ โโโ mcp-app.css # Estilos completos
โ โ โโโ types.ts # TypeScript types
โ โโโ dist/
โ โโโ mcp-app.html # UI bundled (411 KB)
โ
โโโ ๐พ Dados
โ โโโ data/
โ โโโ quotations.json # Histรณrico (JSON)
โ
โโโ ๐ Documentaรงรฃo
โโโ README.md # Doc completa
โโโ QUICK_START.md # Inรญcio rรกpido
โโโ PROJECT_SUMMARY.md # Este arquivo
โโโ claude_desktop_config.example.json
```
---
## ๐จ 4 Tools MCP Implementados
### 1. `create_quotation`
**Cria uma nova cotaรงรฃo**
```typescript
Input: {
budgetName: string,
observations?: string,
calculationType: "62.25" | "49.11",
calculationTypeLabel: "Projetos" | "Sustentaรงรฃo",
projects: Project[],
totalHours: number,
totalCost: number,
totalClient: number
}
Output: Quotation (com ID e timestamp)
```
### 2. `list_quotations`
**Lista cotaรงรตes salvas**
```typescript
Input: {
limit?: number // padrรฃo: 10
}
Output: {
quotations: Quotation[],
total: number
}
```
### 3. `get_quotation`
**Obtรฉm cotaรงรฃo especรญfica**
```typescript
Input: {
id: number
}
Output: Quotation (completa)
```
### 4. `delete_quotation`
**Remove cotaรงรฃo**
```typescript
Input: {
id: number
}
Output: {
success: boolean,
message: string
}
```
---
## ๐ฐ Lรณgica de Cรกlculo
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Custo/Hora Base โ
โ โข Projetos: R$ 62,25 โ
โ โข Sustentaรงรฃo: R$ 49,11 โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ + Imposto (22% fixo) โ
โ = R$ 76,15 (Projetos) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ + Load (35% fixo) โ
โ = R$ 102,80 (Custo/Hora Total) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ + Margem (configurรกvel, ex: 50%) โ
โ = R$ 154,20 โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ + Comissรฃo (configurรกvel, ex: 5%) โ
โ = R$ 161,91 (Valor/Hora Final) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ร Horas Previstas (ex: 160h) โ
โ = R$ 25.905,60 (Valor Total Projeto) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
---
## ๐จ Recursos da Interface
### Funcionalidades Principais
- โ
Seleรงรฃo de tipo (Projetos/Sustentaรงรฃo)
- โ
Mรบltiplos projetos por cotaรงรฃo
- โ
Campos editรกveis: margem, comissรฃo, horas
- โ
Cรกlculos automรกticos em tempo real
- โ
Resumo geral (horas, custos, valores)
### Aรงรตes Disponรญveis
- ๐พ **Salvar** โ Persiste no histรณrico JSON
- ๐ **Histรณrico** โ Listar/Carregar/Deletar cotaรงรตes
- ๐ **Copiar** โ Clipboard formatado
- ๐จ๏ธ **Imprimir** โ PDF/Impressora
- ๐๏ธ **Limpar** โ Reset completo
### Temas
- ๐ Light mode (padrรฃo)
- ๐ Dark mode (automรกtico via host)
---
## ๐ Exemplo de Dados Salvos
```json
{
"id": 1738782123456,
"date": "05/02/2026, 16:45",
"budgetName": "Acme Corp - Portal E-commerce",
"observations": "Projeto complexo, requer infraestrutura cloud",
"calculationType": "62.25",
"calculationTypeLabel": "Projetos",
"projects": [
{
"name": "Backend API REST",
"costPerHour": 62.25,
"tax": 22,
"load": 35,
"margin": 60,
"commission": 5,
"hours": 240,
"totalCostPerHour": 102.80,
"finalHourlyRate": 172.69,
"projectTotal": 41445.60
},
{
"name": "Frontend React",
"costPerHour": 62.25,
"tax": 22,
"load": 35,
"margin": 55,
"commission": 0,
"hours": 180,
"totalCostPerHour": 102.80,
"finalHourlyRate": 159.34,
"projectTotal": 28681.20
}
],
"totalHours": 420,
"totalCost": 26145.00,
"totalClient": 70126.80
}
```
---
## ๐ Como Usar
### 1. No Desenvolvimento (HTTP)
```bash
cd "c:\Users\silva\OneDrive\Documentos\Python\MCP Apps\calculadora-proposta-mcp"
npm run dev
# Acesse: http://localhost:3001/mcp
```
### 2. No Claude Desktop (Produรงรฃo)
**a) Configure o arquivo:**
```
C:\Users\silva\AppData\Roaming\Claude\claude_desktop_config.json
```
**b) Adicione:**
```json
{
"mcpServers": {
"calculadora-proposta": {
"command": "node",
"args": [
"C:/Users/silva/OneDrive/Documentos/Python/MCP Apps/calculadora-proposta-mcp/dist/index.js",
"--stdio"
]
}
}
}
```
**c) Reinicie Claude Desktop**
**d) Teste:**
```
Crie uma cotaรงรฃo para cliente "Tech Solutions" com:
- Desenvolvimento Backend: 200 horas
- Testes: 80 horas
- Tipo: Projetos
```
---
## โ
Checklist de Qualidade
### Boas Prรกticas Implementadas
- [x] Estrutura modular (server/UI separados)
- [x] TypeScript com strict mode
- [x] Validaรงรฃo com Zod
- [x] Error handling robusto
- [x] Persistรชncia em JSON
- [x] UI responsiva
- [x] Suporte a temas
- [x] Build otimizado (Vite)
- [x] Documentaรงรฃo completa
- [x] Exemplo de configuraรงรฃo
### Seguindo o Guia MCP
- [x] Tool registration correto
- [x] Resource registration
- [x] UI com MCP App SDK
- [x] structuredContent retornado
- [x] Schema validation (Zod)
- [x] HTTP e stdio support
- [x] Stateless server mode
---
## ๐ Mรฉtricas
| Mรฉtrica | Valor |
|---------|-------|
| **Linhas de Cรณdigo** | ~1.500 |
| **Arquivos Criados** | 17 |
| **Dependรชncias** | 160 packages |
| **Tamanho UI Bundle** | 411 KB (99 KB gzip) |
| **Build Time** | ~7 segundos |
| **Tools MCP** | 4 |
| **Tipo de Transport** | stdio + HTTP |
---
## ๐ Fluxo de Trabalho
```
1. DESENVOLVIMENTO
โโ Editar cรณdigo (server.ts, mcp-app.ts)
โโ npm run dev (watch mode)
โโ Testar em http://localhost:3001/mcp
2. BUILD
โโ npm run build
โโ Valida TypeScript
โโ Bundle UI com Vite
โโ Compila servidor
3. IMPLANTAรรO
โโ Configurar claude_desktop_config.json
โโ Reiniciar Claude Desktop
โโ Testar tools no Claude
4. USO DIรRIO
โโ "Crie uma cotaรงรฃo..."
โโ Claude chama create_quotation
โโ Servidor processa e salva
โโ UI renderiza resultado
โโ Dados persistem em JSON
```
---
## ๐ Aprendizados do Projeto
### O que foi implementado do Guia
1. โ
Estrutura completa de projeto MCP
2. โ
Configuraรงรฃo correta de TypeScript (2 configs)
3. โ
Build com Vite (single file bundle)
4. โ
Servidor com 4 tools
5. โ
UI integrada com MCP SDK
6. โ
Persistรชncia em JSON
7. โ
Validaรงรฃo Zod
8. โ
Suporte HTTP e stdio
9. โ
Documentaรงรฃo completa
10. โ
Exemplo de configuraรงรฃo
### Diferenciais desta implementaรงรฃo
- ๐ฏ Adaptado do HTML original fornecido
- ๐ผ Caso de uso real (calculadora comercial)
- ๐ Mรบltiplos projetos por cotaรงรฃo
- ๐ข Cรกlculos complexos automatizados
- ๐จ Interface profissional T2C branded
- ๐พ Histรณrico persistente (50 รบltimas)
- ๐ Exportaรงรฃo para clipboard
- ๐จ๏ธ Funรงรฃo de impressรฃo
- ๐ฑ Responsivo (mobile-ready)
---
## ๐ Status Final
```
โ
PROJETO COMPLETO E FUNCIONAL
๐ฏ 100% Seguindo boas prรกticas do guia
๐ฆ Build sem erros
๐งช Testado com sucesso (HTTP)
๐ Documentaรงรฃo completa
๐ Pronto para Claude Desktop
```
---
## ๐ Suporte
**Problemas?** Consulte:
1. `README.md` - Documentaรงรฃo detalhada
2. `QUICK_START.md` - Guia de inรญcio rรกpido
3. `MCP_APPS_DEVELOPMENT_GUIDE.md` - Guia oficial
4. Logs do Claude Desktop
5. Console do navegador (F12)
---
**Desenvolvido para T2C Group**
*Calculadora de Propostas Comerciais por Custo/Hora*
**Data:** 05/02/2026
**Versรฃo:** 1.0.0