fin-app-mcp 2.3.2 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.mjs +51 -7
- package/package.json +1 -1
package/index.mjs
CHANGED
|
@@ -872,7 +872,8 @@ CAMPOS:
|
|
|
872
872
|
- name: string — nome da conta (obrigatório, ex: "Nubank", "Inter", "Carteira").
|
|
873
873
|
- institution: string — nome da instituição financeira.
|
|
874
874
|
- type: string — 'cash' (corrente/carteira/poupança) ou 'credit' (cartão de crédito) (obrigatório).
|
|
875
|
-
-
|
|
875
|
+
- currency: string — 'BRL' ou 'USD' (default: BRL). Apenas contas cash podem ser USD. Use USD para carteira em dólar, Wise, conta americana, etc. Cartão de crédito DEVE ser BRL.
|
|
876
|
+
- initial_balance_cents: number — saldo inicial em centavos **da moeda da conta** (default: 0). Para conta USD, é em centavos de dólar (ex: $370 = 37000). Para cartão credit, é o valor de uma fatura preexistente (use com initial_invoice_date).
|
|
876
877
|
- initial_invoice_date: string YYYY-MM-DD — data da fatura inicial (cutoff histórico). OMITIR é o comportamento recomendado para cartões novos — significa "sem cutoff", ou seja, transações com qualquer tx_date (inclusive anteriores à criação) contam no total da fatura.
|
|
877
878
|
- initial_invoice_amount_cents: number — alias de initial_balance_cents quando se refere a fatura inicial de cartão. Use junto com initial_invoice_date.
|
|
878
879
|
- closing_day: number — dia de fechamento da fatura, 1-28 (obrigatório para type 'credit').
|
|
@@ -882,21 +883,27 @@ CAMPOS:
|
|
|
882
883
|
REGRAS DE NEGÓCIO:
|
|
883
884
|
- Cartão de crédito (type 'credit') EXIGE closing_day e due_day.
|
|
884
885
|
- closing_day e due_day devem estar entre 1 e 28.
|
|
885
|
-
-
|
|
886
|
-
-
|
|
886
|
+
- **currency: 'USD' só é permitido para cash.** Tentar criar credit + USD retorna erro de validação.
|
|
887
|
+
- Valores em centavos da moeda da conta (cents de BRL ou cents de USD, conforme currency).
|
|
888
|
+
- **Para cartão de crédito**: por padrão (quando initial_invoice_date é omitido), o cartão é criado SEM cutoff histórico. Transações com qualquer tx_date contam no total da fatura.
|
|
887
889
|
|
|
888
|
-
EXEMPLO — cartão novo (sem fatura preexistente):
|
|
890
|
+
EXEMPLO — cartão novo BRL (sem fatura preexistente):
|
|
889
891
|
{ "name": "Nubank", "type": "credit", "closing_day": 19, "due_day": 26, "credit_limit_cents": 500000 }
|
|
890
892
|
|
|
891
893
|
EXEMPLO — cartão migrado com fatura já aberta:
|
|
892
|
-
{ "name": "Itaú", "type": "credit", "closing_day": 1, "due_day": 9, "initial_invoice_date": "2026-03-15", "initial_invoice_amount_cents": 350000 }
|
|
894
|
+
{ "name": "Itaú", "type": "credit", "closing_day": 1, "due_day": 9, "initial_invoice_date": "2026-03-15", "initial_invoice_amount_cents": 350000 }
|
|
895
|
+
|
|
896
|
+
EXEMPLO — conta USD (Wise, carteira em dólar):
|
|
897
|
+
{ "name": "Wise USD", "institution": "Wise", "type": "cash", "currency": "USD", "initial_balance_cents": 20000 }
|
|
898
|
+
// cria conta USD com saldo $200`,
|
|
893
899
|
inputSchema: {
|
|
894
900
|
type: "object",
|
|
895
901
|
properties: {
|
|
896
902
|
name: { type: "string", description: "Nome da conta (ex: Nubank, Inter)" },
|
|
897
903
|
institution: { type: "string", description: "Nome da instituição financeira" },
|
|
898
904
|
type: { type: "string", description: "'cash' ou 'credit'" },
|
|
899
|
-
|
|
905
|
+
currency: { type: "string", description: "'BRL' (default) ou 'USD'. USD só para cash." },
|
|
906
|
+
initial_balance_cents: { type: "number", description: "Saldo inicial em centavos da moeda da conta (default: 0)" },
|
|
900
907
|
initial_invoice_date: { type: ["string", "null"], description: "YYYY-MM-DD — data da fatura inicial. Omitir ou passar null para cartão sem cutoff histórico (recomendado)." },
|
|
901
908
|
initial_invoice_amount_cents: { type: "number", description: "Valor da fatura inicial em centavos. Use com initial_invoice_date." },
|
|
902
909
|
closing_day: { type: "number", description: "Dia de fechamento da fatura (1-28, obrigatório para credit)" },
|
|
@@ -948,6 +955,40 @@ EXEMPLO — remover cutoff de um cartão criado errado:
|
|
|
948
955
|
required: ["account_id"],
|
|
949
956
|
},
|
|
950
957
|
},
|
|
958
|
+
{
|
|
959
|
+
name: "fin_deletar_conta",
|
|
960
|
+
description: `Deleta uma conta bancária. Bloqueia a deleção se a conta tem transações vinculadas — não cascata.
|
|
961
|
+
|
|
962
|
+
QUANDO USAR:
|
|
963
|
+
- Remover uma conta criada por engano (nome errado, moeda errada, tipo errado).
|
|
964
|
+
- Limpar contas duplicadas antes de importar histórico.
|
|
965
|
+
|
|
966
|
+
NÃO USAR QUANDO:
|
|
967
|
+
- A conta tem transações importantes. Se precisa remover uma conta em uso, delete as transações primeiro OU renomeie a conta via fin_editar_conta (soft-archive via renomear para "[ARQUIVADO] Nome").
|
|
968
|
+
|
|
969
|
+
CAMPOS:
|
|
970
|
+
- account_id: string UUID — ID da conta (obrigatório).
|
|
971
|
+
|
|
972
|
+
REGRAS DE NEGÓCIO:
|
|
973
|
+
- Se a conta tem qualquer transação vinculada (como account_from ou account_to), retorna erro 409 com a contagem de transações — a conta NÃO é deletada.
|
|
974
|
+
- Sem cascata silenciosa: destruir histórico é pior que um erro claro.
|
|
975
|
+
- Se precisar de hard-delete com histórico, delete as transações primeiro.
|
|
976
|
+
|
|
977
|
+
EXEMPLO — deletar conta sem transações:
|
|
978
|
+
{ "account_id": "uuid-da-conta" }
|
|
979
|
+
→ retorna { ok: true, deleted: true }
|
|
980
|
+
|
|
981
|
+
EXEMPLO — tentativa bloqueada:
|
|
982
|
+
{ "account_id": "uuid-da-conta-com-transacoes" }
|
|
983
|
+
→ retorna 409 { ok: false, error: "Conta X tem N transação(ões) vinculada(s)...", transactions_count: N }`,
|
|
984
|
+
inputSchema: {
|
|
985
|
+
type: "object",
|
|
986
|
+
properties: {
|
|
987
|
+
account_id: { type: "string", description: "UUID da conta" },
|
|
988
|
+
},
|
|
989
|
+
required: ["account_id"],
|
|
990
|
+
},
|
|
991
|
+
},
|
|
951
992
|
{
|
|
952
993
|
name: "fin_criar_categoria",
|
|
953
994
|
description: `Cria uma nova categoria de transação.
|
|
@@ -1200,6 +1241,9 @@ async function handleTool(name, args) {
|
|
|
1200
1241
|
}
|
|
1201
1242
|
return ok(await api("PATCH", `/api/genius/accounts/${account_id}`, body));
|
|
1202
1243
|
}
|
|
1244
|
+
case "fin_deletar_conta": {
|
|
1245
|
+
return ok(await api("DELETE", `/api/genius/accounts/${args.account_id}`));
|
|
1246
|
+
}
|
|
1203
1247
|
case "fin_listar_categorias": {
|
|
1204
1248
|
return ok(await api("GET", `/api/genius/categories`));
|
|
1205
1249
|
}
|
|
@@ -1225,7 +1269,7 @@ async function handleTool(name, args) {
|
|
|
1225
1269
|
// ── Server ──────────────────────────────────────────────────────────
|
|
1226
1270
|
|
|
1227
1271
|
const server = new Server(
|
|
1228
|
-
{ name: "fin-app", version: "2.3.
|
|
1272
|
+
{ name: "fin-app", version: "2.3.3" },
|
|
1229
1273
|
{ capabilities: { tools: {}, resources: {} } }
|
|
1230
1274
|
);
|
|
1231
1275
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fin-app-mcp",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.3",
|
|
4
4
|
"description": "MCP server para o FIN App — finanças pessoais. Expõe tools para agents LLM operarem contas, despesas, faturas de cartão, bills recorrentes e mais.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.mjs",
|