Personal Finance MCP Server

Um servidor MCP que pode ser integrado ao seu sistema Claude para orientá-lo a calcular melhor as finanças pessoais no ecossistema Claude.

Documentação

💰 Personal Finance MCP

Kit de finanças pessoais determinístico exposto sobre o Model Context Protocol — 77 calculadoras, um meta-assessor e dados de mercado ao vivo, com uma interface web refinada. Fundamentado em matemática financeira consolidada.

Python 3.10+ MCP Tests License: MIT Live on Hugging Face

Demonstração ao vivo: https://sarveshtalele-personal-finance-mcp.hf.space URL do conector: https://sarveshtalele-personal-finance-mcp.hf.space/mcp

Demonstração

Watch the demo

▶️ Assista à demonstração de 2 minutos — pergunta em linguagem natural → ferramentas encadeadas → um plano priorizado.

Nota sobre a demonstração pública: o Space hospedado é uma instância compartilhada de melhor esforço (com limite de taxa, pode demorar para iniciar após ficar ocioso). Para uso intenso ou privado, execute localmente ou faça auto-hospedagem (veja docs/HOW_IT_WORKS.md).


Visão geral

A maioria dos "assistentes" financeiros adivinha números. Este não. Ele traz 77 calculadoras determinísticas — mesmas entradas, mesma resposta, sempre — e permite que um LLM direcione uma pergunta em linguagem natural para as ferramentas certas. Descreva sua situação ("Tenho 30 anos, ganho ₹1L/mês, quero me aposentar aos 60") e o orquestrador create_financial_plan encadeia as calculadoras relevantes em um único plano priorizado.

Ele funciona de três maneiras a partir de um único código-base:

  • Como servidor MCP — conecte-o ao Claude Desktop, Claude Code, Cursor ou qualquer cliente MCP.
  • Como site — uma interface Next.js com calculadora ao vivo, painel de mercado e catálogo de ferramentas.
  • Como conector hospedado — implantado em um Hugging Face Docker Space; uma única URL faz tudo.

Destaques

  • 🔢 Determinístico — matemática pura, sem inferência de modelo para os números.
  • 🤖 História → ferramentas — o modelo mapeia a intenção para ferramentas; os usuários nunca as nomeiam.
  • 🇮🇳 Fundamentado em teoria — TVM, dívidas, PPF/SSY/NSC/EPF, títulos, derivativos, MPT e mais.
  • 🛰️ Dados de mercado ao vivo — NAVs de fundos mútuos (AMFI), câmbio (ECB), cotações de ações (Yahoo) — sem chaves de API.
  • 🔒 Endurecido — APIs sem estado, com limite de taxa, entradas limitadas e cabeçalhos de segurança/CSP.

Catálogo de ferramentas — 77 ferramentas, 13 categorias

CategoriaFerramentasExemplos
Valor do Dinheiro no Tempo10valor futuro/presente, anuidade, perpetuidade, TEA, retorno real
Análise de Portfólio11CAPM, Sharpe, Sortino, Treynor, alfa, alocação, rebalanceamento
Planejamento Financeiro9patrimônio líquido, índices, fundo de emergência, aposentadoria, educação, seguro
Pequenas Poupanças (Índia)9PPF, SSY, NSC, KVP, SCSS, RD, FD, EPF
Fundos Mútuos7SIP, SWP, valor único vs. SIP, CAGR, NAV, impacto da taxa de despesas
Dívidas e Empréstimos6EMI, amortização, pagamento antecipado, consolidação, investir vs. antecipar
Renda Fixa6preço do título, YTM, rendimento atual, duração, convexidade, cupom zero
Derivativos5valor justo de futuros, payoff de opções, paridade put-call, Black-Scholes, hedge beta
Avaliação de Ações5DDM, DDM em dois estágios, P/L, FCD, rendimento de dividendos
Dados de Mercado ao Vivo4busca de fundos, NAV ao vivo, taxa de câmbio, cotação de ação/índice
Fluxo de Caixa e Orçamento3fluxo de caixa familiar, dívida sobre renda, fundo de contingência
Perfil de Risco1pontuação de adequação → divisão sugerida entre ações/dívida
Assessor1create_financial_plan — o orquestrador história → plano

Explore todos (com descrições ao vivo) em /tools.


Início rápido

Use o conector hospedado (sem instalação)

Claude Desktop — Configurações → Conectores → Adicionar conector personalizado → cole:

https://sarveshtalele-personal-finance-mcp.hf.space/mcp

Claude Code

claude mcp add --transport http personal-finance https://sarveshtalele-personal-finance-mcp.hf.space/mcp

Cursor / VS Code — adicione ao mcp.json:

{
  "mcpServers": {
    "personal-finance": {
      "url": "https://sarveshtalele-personal-finance-mcp.hf.space/mcp",
      "transport": "http"
    }
  }
}

Instale a partir do PyPI (servidor stdio)

pip install personal-finance-mcp     # or: uvx personal-finance-mcp

Em seguida, aponte o Claude Desktop para ele:

{
  "mcpServers": {
    "personal-finance": { "command": "uvx", "args": ["personal-finance-mcp"] }
  }
}

Execute localmente a partir do código-fonte

git clone https://github.com/sarveshtalele/personal-finance-mcp.git
cd personal-finance-mcp
pip install -e .

# Option A — classic stdio MCP server (offline, no web)
python -m src

# Option B — unified server: website + /mcp connector + /api  (http://localhost:7860)
cd web && npm install && npm run build && cd ..
python -m src.web

Para stdio, aponte o Claude Desktop para o processo local:

{
  "mcpServers": {
    "personal-finance": { "command": "python", "args": ["-m", "src"] }
  }
}

O site

python -m src.web serve tudo em uma única porta:

CaminhoO quê
/Site Next.js — página inicial, catálogo de ferramentas, calculadora ao vivo, painel de mercado, guia de configuração
/mcpServidor MCP via streamable-HTTP — a URL do conector
/api/*Endpoints JSON (catálogo de ferramentas, calculadoras, dados de mercado ao vivo)

Arquitetura

src/
├── server.py            # FastMCP server — registers all tool modules
├── __main__.py          # `python -m src`  (stdio transport)
├── tools/               # pure math fns + per-module register(mcp)
│   ├── tvm.py  debt.py  planning.py  bonds.py  stocks.py  mutual_funds.py
│   ├── portfolio.py  derivatives.py  india_savings.py  cashflow.py
│   ├── risk_profile.py  advisor.py   # advisor = story → plan orchestrator
│   └── marketdata.py    # live AMFI / Frankfurter / Yahoo (keyless)
├── models/              # Pydantic schemas + enums
├── utils/               # output formatters
└── web/                 # unified Starlette server (MCP + /api + static site)
    ├── server.py        # routes, security middleware, calculator registry
    └── __main__.py      # `python -m src.web`  (uvicorn, port 7860)

web/                     # Next.js front-end (static export → web/out)
└── app/                 # home, tools, calculator, dashboard, connect

Cada arquivo de ferramenta mantém funções puras determinísticas separadas dos wrappers finos @mcp.tool, de modo que as mesmas funções alimentam o servidor MCP, as calculadoras web e os testes.


Segurança

  • Sem estado — sem banco de dados, sem sessões; cada chamada é independente e reproduzível.
  • API endurecida — limite de taxa por IP, teto no corpo da requisição e validação de entrada que limita parâmetros que dirigem loops (anos/meses/idade) para prevenir negação de serviço.
  • Cabeçalhos de segurança — CSP (com frame-ancestors para o embed do Hugging Face), X-Content-Type-Options, Referrer-Policy, Permissions-Policy; CORS limitado a GET/POST sem credenciais. O middleware de cabeçalhos é implementado na camada ASGI para nunca armazenar em buffer as respostas de streaming /mcp (SSE).
  • Sem segredos no aplicativo — as fontes de dados ao vivo são públicas e sem chaves.

Veja SECURITY.md para reportar uma vulnerabilidade.


Desenvolvimento

pip install -e ".[dev]"
pytest -q                       # 119 tests
ruff check .                    # lint
python -m src.web               # run the full stack locally

Implantação

Implantado como um Hugging Face Docker Space, sincronizado automaticamente do GitHub a cada push para main (veja .github/workflows/hf-sync.yml). Instruções completas — local, Docker e Hugging Face — estão em docs/deployment.md.


Documentação

Contribuindo

Contribuições são bem-vindas — veja CONTRIBUTING.md e o Código de Conduta. Boas primeiras issues: adicionar uma calculadora (uma função pura + um wrapper register + um teste), melhorar descrições para um melhor roteamento de ferramentas ou estender a interface web.


Aviso legal

Ferramenta educacional para ilustrar fórmulas financeiras padrão. Não é aconselhamento de investimento. Os valores são ilustrativos; verifique antes de tomar decisões financeiras.

Licença

MIT — livre para usar, modificar e distribuir.