MCP Tools
O servidor MCP da Pierre Finance oferece as seguintes ferramentas para acessar dados financeiros.
getAccounts
Obtém todas as contas (banco, cartão, investimentos, empréstimos). Útil para descobrir accountId e detalhes antes de usar outras ferramentas.
Retorna
{
"success": true,
"data": [
{
"accountId": "acc_123456789",
"providerCode": "NUBANK",
"accountName": "Conta Corrente",
"accountType": "BANK",
"accountSubtype": "CHECKING_ACCOUNT",
"accountBalance": 1500.50,
"accountCurrencyCode": "BRL",
"accountMarketingName": "Nubank Conta"
}
],
"count": 1,
"timestamp": "2024-01-15T10:30:00Z"
}
Exemplos de Uso
"Liste minhas contas financeiras"
"Quais cartões de crédito eu tenho conectados?"
getApiKeyInfo
Obtém informações sobre como gerar e usar chaves de API para Pierre Finance, incluindo lista de todas as ferramentas disponíveis.
Parâmetros
Nenhum
Retorna
{
"message": "To use Pierre Finance API tools, you need to generate an API key.",
"steps": [
"1. Visit https://pierre.finance/api-key",
"2. Sign in to your account",
"3. Create a new API key or use the default one",
"4. Copy the API key (starts with \"sk-\")",
"5. Use this API key in your requests to other tools"
],
"example": {
"tool": "get-accounts",
"endpoint": "GET /tools/api/get-accounts",
"headers": {
"Authorization": "Bearer sk-your-api-key-here",
"Content-Type": "application/json"
}
},
"note": "API keys are required for all financial data access. Keep your API key secure and never share it publicly.",
"availableTools": [
{
"name": "get-accounts",
"endpoint": "/tools/api/get-accounts",
"method": "GET",
"description": "Get all financial accounts for the user",
"requiresAuth": true,
"category": "Accounts"
}
]
}
Exemplos de Uso
"Como gero uma API key para usar as ferramentas da Pierre?"
"Quais ferramentas estão disponíveis na API?"
"Preciso de ajuda para configurar minha chave de API"
getBalance
Saldo consolidado de contas bancárias do usuário.
Retorna
{
"success": true,
"data": {
"total_balance": 2500.75,
"accounts": [
{
"name": "Conta Corrente",
"balance": 1500.50,
"account_type": "BANK",
"account_subtype": "CHECKING_ACCOUNT"
},
{
"name": "Conta Poupança",
"balance": 1000.25,
"account_type": "BANK",
"account_subtype": "SAVINGS_ACCOUNT"
}
]
},
"timestamp": "2024-01-15T10:30:00Z"
}
Exemplos de Uso
"Qual é o meu saldo total em contas bancárias?"
getBalanceByAccount
Saldo e detalhes de uma conta bancária específica por accountId.
Parâmetros
accountId (string, obrigatório)
Retorna
{
"success": true,
"data": {
"name": "Conta Corrente",
"balance": 1500.50,
"account_type": "BANK",
"account_subtype": "CHECKING_ACCOUNT"
},
"timestamp": "2024-01-15T10:30:00Z"
}
Exemplos de Uso
"Qual é o saldo da minha conta corrente?"
getTransactions
Transações financeiras com filtros por período, categoria e tipo de conta. Suporta dois formatos de resposta: ‘raw’ (padrão) para dados brutos, e ‘structured’ para dados organizados com agrupamentos e resumos. Inclui filtragem inteligente via linguagem natural e categorização automática.
Parâmetros
startDate (YYYY-MM-DD, opcional)
endDate (YYYY-MM-DD, opcional)
categories (string[], opcional)
minAmount (number, opcional)
maxAmount (number, opcional)
accountType (BANK | CREDIT | INVESTMENT | LOAN, opcional)
accountSubtype (CHECKING_ACCOUNT | SAVINGS_ACCOUNT | CREDIT_CARD | PAYMENT_ACCOUNT, opcional)
includeStatus (string[], opcional): lista de status de transações a incluir (POSTED, PENDING)
format (raw | structured, opcional) - Formato da resposta
clientMessage (string, opcional): mensagem em linguagem natural para filtragem inteligente usando LLM (ex: “mostre gastos com alimentação”, “transações acima de 100 reais”, “pagamentos para supermercados”)
{
"success": true,
"data": [
{
"id": "txn_123456789",
"description": "Pagamento de conta",
"category": "Contas",
"currency_code": "BRL",
"amount": -150.00,
"balance": 1350.50,
"date": "2024-01-15",
"type": "DEBIT",
"status": "POSTED",
"account_name": "Conta Corrente",
"account_type": "BANK",
"account_subtype": "CHECKING_ACCOUNT"
}
],
"count": 1,
"filters": {
"startDate": "2024-01-01",
"endDate": "2024-01-31"
},
"timestamp": "2024-01-15T10:30:00Z"
}
{
"success": true,
"data": {
"transactions": {
"accounts": {
"Nubank": {
"credit_cards": {
"Nubank Mastercard": {
"payments": [
{
"date": "2024-01-15",
"category": "Pagamento de Fatura",
"amount": 1523.75,
"currency": "BRL",
"transaction_type": "credit_card",
"transaction_subtype": "payment"
}
],
"purchases": [
{
"date": "2024-01-10",
"category": "Alimentação",
"amount": 125.50,
"currency": "BRL",
"merchant": "Supermercado Exemplo",
"transaction_type": "credit_card",
"transaction_subtype": "purchase"
}
],
"total_payments": 1523.75,
"total_purchases": 125.50
}
},
"total_credit_card_payments": 1523.75,
"total_credit_card_purchases": 125.50
}
}
},
"summary": {
"total_spent": 625.50,
"total_received": 5000.00,
"total_bank_transfer": 500.00,
"period": "3 meses",
"by_category": {
"Alimentação": {
"total": 125.50,
"count": 1
}
},
"top_transactions": [
{
"date": "2024-01-05",
"category": "Salário",
"amount": 5000.00,
"currency": "BRL",
"transaction_type": "received"
}
]
}
},
"count": 4,
"timestamp": "2024-01-15T10:30:00Z"
}
Exemplos de Uso
"Analise minhas transações do último mês e identifique os maiores gastos"
"Use o formato estruturado para criar um resumo dos meus gastos por categoria"
"Mostre minhas transações organizadas por conta com resumos automáticos"
"Mostre apenas transações de alimentação acima de 50 reais usando filtragem inteligente"
"Filtre transações pendentes dos últimos 30 dias"
"Use clientMessage para encontrar gastos com supermercados e farmácias"
getInstallments
Informações sobre compras parceladas e suas parcelas.
Parâmetros
startDate (YYYY-MM-DD, opcional)
endDate (YYYY-MM-DD, opcional)
Retorna
{
"success": true,
"data": {
"summary": {
"totalAmount": 5000.00,
"totalInstallments": 12,
"totalPurchases": 3,
"installmentDistribution": [
{
"totalInstallments": 12,
"count": 1,
"totalAmount": 3000.00
}
]
},
"purchases": [
{
"purchaseDate": "2024-01-10",
"totalAmount": 3000.00,
"installments": [
{
"description": "Compra parcelada",
"amount": 250.00,
"installmentNumber": 1,
"totalInstallments": 12,
"dueDate": "2024-02-10",
"category": "Compras",
"status": "POSTED"
}
]
}
]
},
"timestamp": "2024-01-15T10:30:00Z"
}
Exemplos de Uso
"Liste todas as minhas compras parceladas e quando terminam de pagar"
getBillSummary
Resumo da fatura atual do cartão de crédito. Retorna limite total, limite disponível, período corrente e valor aproximado da fatura (soma de transações DEBIT com status PENDING entre a última e a próxima data de fechamento).
Parâmetros
accountId (string, opcional): se informado, retorna apenas dessa conta
closingDay (number 1–31, opcional): dia de fechamento manual para cálculo quando usado com accountId
startDate (string ISO 8601, opcional): data de início do período para cálculo da fatura. Sobrescreve o cálculo automático baseado no closing day
endDate (string ISO 8601, opcional): data de fim do período para cálculo da fatura. Sobrescreve o cálculo automático baseado no closing day
Comportamento e Fallbacks
- Se
closingDay e accountId forem informados, usa o dia manual no cálculo
- Se não houver data de fechamento cadastrada para o cartão solicitado, usa-se 7 dias antes do próximo vencimento como fechamento e informa essa suposição
- Se não houver
closingDay nem accountId, e houver somente um cartão de crédito sem fechamento, usa-se 7 dias antes do vencimento e avisa ausência de fechamento cadastrado
- Se houver múltiplos cartões e nenhum possuir fechamento, retorna recomendação para cadastrar (sem calcular)
Avisos Importantes
- Sempre avise que o valor é aproximado (transações podem não ter sido lançadas; bancos podem demorar a sincronizar)
- Para faturas já fechadas (vencidas), use
getBills em vez de getBillSummary
Exemplos de Uso
"Quanto está minha fatura atual do cartão acc_abc?"
"Use o dia 12 como fechamento e calcule minha fatura do acc_abc"
"Qual meu limite disponível e o valor aproximado da fatura no mês atual?"
getBills
Obtém faturas de cartão de crédito já vencidas do usuário (somente faturas fechadas com dueDate no passado). Útil para entender obrigações em aberto e planejar pagamentos.
Parâmetros
accountId (string, opcional): ID da conta de cartão de crédito para filtrar. Use a ferramenta getAccounts para descobrir os accountId disponíveis. Se omitido, retorna faturas vencidas de todas as contas do usuário.
Comportamento
- Retorna apenas faturas cujo
dueDate seja menor ou igual à data atual.
- As faturas são ordenadas por
dueDate (mais recentes primeiro).
Retorno
Array de faturas com, no mínimo:
id (string)
accountId (string)
dueDate (string ISO 8601)
totalAmount (number)
totalAmountCurrencyCode (string)
minimumPaymentAmount (number | null)
allowsInstallments (boolean)
Exemplos de Uso
"Liste minhas faturas de cartão vencidas"
"Quais faturas vencidas tenho no cartão com id acc_abc?"
manageClosingDate
Gerencia a data de fechamento de faturas de cartões de crédito (definir/atualizar/desativar/remover e consultar). Recomendado para manter coerência entre data de fechamento percebida e o comportamento do provedor.
Operações e Parâmetros
-
LIST_ACCOUNTS
- Parâmetros: nenhum
- Retorno: lista de contas de cartão com indicadores se já possuem data configurada e, quando aplicável,
closingDay, isActive, notes.
-
INSERT
- Parâmetros obrigatórios:
accountId (string), closingDay (number 1–31)
- Parâmetros opcionais:
isActive (boolean, padrão true), notes (string)
- Validações: a conta deve pertencer ao usuário e ser do subtipo
CREDIT_CARD.
-
UPDATE
- Parâmetros obrigatórios:
accountId (string)
- Parâmetros opcionais:
closingDay (number 1–31), isActive (boolean), notes (string)
- Validações: deve existir uma data de fechamento para a conta e pertencer ao usuário.
-
DELETE
- Parâmetros obrigatórios:
closingDateId (string)
- Validações: o registro deve pertencer ao usuário.
-
GET
- Parâmetros opcionais:
accountId (string)
- Com
accountId: retorna a configuração daquela conta (ou null se inexistente).
- Sem
accountId: retorna todas as configurações do usuário.
Observações
closingDay deve ser um inteiro de 1 a 31.
isActive indica se a configuração está em uso; útil para desativar temporariamente sem apagar.
- Utilize
LIST_ACCOUNTS antes de INSERT/UPDATE para guiar a escolha do accountId correto.
Exemplos de Uso
"Liste minhas contas de cartão e mostre quais já têm data de fechamento configurada"
"Defina a data de fechamento do cartão acc_abc para dia 10 e deixe ativo"
"Atualize a data de fechamento do cartão acc_abc para dia 12 e adicione a nota 'sincronizado com banco'"
"Remova a configuração de data de fechamento com id cld_123"
"Mostre a minha configuração de fechamento para o cartão acc_abc"
manualUpdate
Força uma sincronização manual dos dados financeiros.
Descrição
Executa uma sincronização manual de todos os dados financeiros conectados, buscando as informações mais recentes das instituições financeiras.
Parâmetros
Nenhum
Retorna
{
"success": true,
"message": "Manual sync initiated",
"connectedAccounts": 3,
"note": "The sync process will run in the background. Check your dashboard for updates.",
"timestamp": "2024-01-15T10:30:00Z"
}
Uso Específico
Execute imediatamente quando:
- O usuário pedir para “atualizar meus dados”
- O usuário pedir para “sincronizar minhas contas”
- O usuário mencionar que os dados parecem desatualizados
- O usuário pedir sobre transações recentes que não aparecem
- O usuário quiser garantir que tem as informações mais atuais
- O usuário reportar problemas com dados incompletos ou desatualizados
NÃO peça confirmação - execute a ferramenta imediatamente quando qualquer uma dessas condições for atendida.
Exemplo de Uso
"Atualize meus dados financeiros para ter as informações mais recentes"
listSpendingLimits
Lista todos os alertas de gastos configurados com informações sobre gasto atual, percentual utilizado e quota disponível.
Parâmetros
includeInactive (boolean, opcional): se true, retorna também alertas inativos. Padrão: false
Retorna
{
"success": true,
"data": [
{
"id": "limit_123",
"category": "Alimentação",
"limitAmount": 1000.00,
"period": "monthly",
"isActive": true,
"isRecurring": true,
"currentSpending": 450.75,
"remainingAmount": 549.25,
"percentageUsed": 45.08,
"status": "ok"
}
],
"count": 1,
"quota": {
"subscriptionType": "pro",
"currentCount": 1,
"limit": 10,
"canCreate": true,
"remaining": 9
}
}
Exemplos de Uso
"Liste meus alertas de gastos"
"Quais limites de gastos eu tenho configurados?"
"Mostre todos os alertas incluindo os inativos"
createSpendingLimit
Cria um novo alerta de gastos para monitorar uma categoria específica. O usuário será notificado quando atingir 50%, 75% e 100% do limite configurado (ou apenas 100% se for recorrente).
Parâmetros
category (string, obrigatório): nome da categoria (ex: “Alimentação”, “Transporte”)
limitAmount (number, obrigatório): valor limite em BRL
period (string, obrigatório): período do alerta - daily, weekly, biweekly, monthly
isRecurring (boolean, opcional): se true, envia alertas toda vez que atingir o limite. Padrão: false
forceCreate (boolean, opcional): se true, pula avisos. Padrão: false
Comportamento
- Se o usuário já excedeu o limite proposto no período atual, retorna aviso/recomendação
- Após aviso, se usuário confirmar, use
confirmSpendingLimit ao invés de criar novamente
- Alertas padrão: 50%, 75% e 100% (uma vez por período)
- Alertas recorrentes: apenas 100% (toda vez que atingir)
Retorna
{
"success": true,
"data": {
"id": "limit_123",
"category": "Alimentação",
"limitAmount": 1000.00,
"period": "monthly",
"isActive": true,
"isRecurring": false
},
"message": "Spending limit created successfully for Alimentação"
}
Exemplos de Uso
"Crie um limite de R$ 1000 por mês para alimentação"
"Quero um alerta recorrente de R$ 20 por mês para Netflix"
"Configure um limite diário de R$ 50 para transporte"
confirmSpendingLimit
Confirma e cria um alerta de gastos após aviso/recomendação. Use esta ferramenta quando o usuário confirmar positivamente após receber um aviso de createSpendingLimit.
Parâmetros
category (string, obrigatório): nome da categoria
limitAmount (number, obrigatório): valor limite em BRL
period (string, obrigatório): período do alerta - daily, weekly, biweekly, monthly
isRecurring (boolean, opcional): se é alerta recorrente. Padrão: false
startNextPeriod (boolean, opcional): se true, inicia no próximo período. Padrão: true
Retorna
{
"success": true,
"message": "✅ Limite RECORRENTE de R$ 1000.00 criado para \"Alimentação\" (mensal) (começando no próximo mês)!...",
"limit": {
"id": "limit_123",
"category": "Alimentação",
"limitAmount": 1000.00,
"period": "monthly",
"isRecurring": true,
"periodStart": "2024-12-01T00:00:00.000Z"
}
}
Exemplos de Uso
Fluxo típico:
1. Usuário: "Crie um limite de R$ 10 diário para transporte"
2. createSpendingLimit retorna: "Você já gastou R$ 9.27... Recomendo criar para o próximo dia. Confirma?"
3. Usuário: "Sim" / "Confirmo" / "Pode ser"
4. Use confirmSpendingLimit automaticamente
updateSpendingLimit
Atualiza um alerta de gastos existente.
Parâmetros
limitId (string, obrigatório): ID do alerta
limitAmount (number, opcional): novo valor limite em BRL
period (string, opcional): novo período - daily, weekly, biweekly, monthly
isActive (boolean, opcional): ativa ou desativa o alerta
isRecurring (boolean, opcional): define se é recorrente
Retorna
{
"success": true,
"data": {
"id": "limit_123",
"category": "Alimentação",
"limitAmount": 1200.00,
"period": "monthly",
"isActive": true
},
"message": "Spending limit updated successfully"
}
Exemplos de Uso
"Aumente o limite de alimentação para R$ 1200"
"Desative o alerta de transporte"
"Mude o período do limite de alimentação para semanal"
deleteSpendingLimit
Deleta permanentemente um alerta de gastos.
Parâmetros
limitId (string, obrigatório): ID do alerta a ser deletado
Retorna
{
"success": true,
"message": "Spending limit for \"Alimentação\" deleted successfully",
"deletedLimit": {
"id": "limit_123",
"category": "Alimentação",
"limitAmount": 1000.00,
"period": "monthly"
}
}
Exemplos de Uso
"Delete o alerta de alimentação"
"Remova o limite de gastos de transporte"
getSpendingLimitTransactions
Obtém status detalhado de um alerta específico, incluindo gasto atual, transações e histórico de notificações.
Parâmetros
limitId (string, obrigatório): ID do alerta
Retorna
{
"success": true,
"data": {
"limit": {
"id": "limit_123",
"category": "Alimentação",
"limitAmount": 1000.00,
"period": "monthly",
"periodText": "neste mês",
"isActive": true
},
"spending": {
"currentSpent": 450.75,
"percentage": 45.1,
"remaining": 549.25,
"transactionCount": 12
},
"status": {
"level": "ok",
"nextAlert": "50%",
"alerts": {
"alertHistory": []
}
}
}
}
Exemplos de Uso
"Como está meu limite de alimentação?"
"Quanto já gastei do meu limite de transporte este mês?"
"Mostre detalhes do alerta de alimentação"
Casos de Uso Avançados
Análise de Gastos
"Analise meus gastos dos últimos 3 meses e crie um relatório com:
1. Categorias com maior despesa
2. Padrões de gasto por dia da semana
3. Sugestões para economia"
Planejamento Financeiro
"Com base nos meus dados financeiros, sugira um plano de economia considerando:
- Minhas receitas mensais
- Gastos fixos e variáveis
- Metas de economia
- Investimentos atuais"
Análise de Crédito
"Analise meu uso de cartão de crédito e sugira:
1. Estratégias para pagar dívidas
2. Melhores práticas de uso
3. Oportunidades de economia"
Análise de Fluxo de Caixa
"Analise meu fluxo de caixa dos últimos 6 meses e identifique:
- Padrões sazonais
- Picos de gasto
- Oportunidades de otimização
- Projeções para os próximos meses"
Análise de Parcelas
"Liste todas as minhas compras parceladas e analise:
- Cronograma de pagamentos
- Impacto no fluxo de caixa
- Estratégias de antecipação
- Oportunidades de economia"
Gestão de Alertas de Gastos
"Crie limites de gastos inteligentes baseados no meu histórico:
- Analise meu padrão de gastos dos últimos 3 meses
- Sugira limites realistas por categoria
- Configure alertas que me ajudem a economizar sem comprometer meu estilo de vida"
"Monitore meus gastos recorrentes:
- Liste todas as assinaturas e serviços recorrentes
- Crie alertas para cada categoria de gasto recorrente
- Me notifique quando algum gasto recorrente aumentar"
Configuração de Ferramentas
Arquivo de Configuração MCP
{
"mcpServers": {
"Pierre Finance": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://pierre.finance/mcp",
"--header",
"Authorization:${TOKEN}"
],
"env": {
"TOKEN": "Bearer sk-your-api-key-here"
}
}
}
}
Todas as ferramentas requerem autenticação válida e assinatura ativa na Pierre Finance.
Mantenha suas API keys seguras e nunca as compartilhe publicamente.
Autenticação
Você pode autenticar de duas formas ao chamar https://pierre.finance/mcp:
- Header Authorization (recomendado):
Authorization: Bearer sk-your-api-key-here
https://pierre.finance/mcp?apiKey=sk-your-api-key-here
Evite inserir esse endereço em navegadores/logs públicos.