alaorneto /
pratinhas
Um simples gerenciador financeiro pessoal desenvolvido em Python/Django.
25/100 healthLoading repository data…
simaraconceicao / repository
Gerenciador Financeiro Pessoal com Agente de IA (ADK Python, MCP, Gemini, Cloud Run)
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Um projeto que demonstra a construção de um Agente de Inteligência Artificial para Gestão Financeira Pessoal, utilizando IA Generativa e Serverless(ADK, MCP, Gemini, Cloud Run) . Este sistema permite a interação conversacional para listar, registrar, analisar finanças e receber dicas.
Este repositório principal, ai-agent-finance/, contém duas pastas-filhas que compõem a arquitetura do agente financeiro:
agente-financeiro -> finance_agent/: Contém o código do Agente de IA desenvolvido com o Google Agent Development Kit (ADK). Este agente usa Gemini pra processar as interações do usuário, interpretar intenções e orquestrar as chamadas para as ferramentas financeiras, além prover dicas.mcp_server/: Contém o código do Model Context Protocol (MCP) Server implementado com FastMCP. Este servidor atua como uma ponte para expor funcionalidades da sua API de backend (list_expenses_by_user, create_expense) ao Agente de IA.gemini-2.0-flash): O modelo de linguagem grande (LLM) que impulsiona as capacidades generativas do agente.O sistema opera através da seguinte sequência:
finance_agent/) recebe a entrada do usuário, tipicamente via ADK Dev UI.mcp_server/) processa esta requisição, realiza validações de entrada e faz a chamada correspondente à API RESTful de finanças.Para colocar o projeto em funcionamento no Google Cloud Run, siga os passos abaixo.
Primeiro, autentique o gcloud CLI e defina seu projeto padrão:
gcloud auth login
gcloud config set project your-gcp-project-id
gcloud config set run/region us-central1 # Ou sua região preferida, ex: southamerica-east1
mcp_server/)Crie um arquivo chamado Dockerfile na pasta mcp_server/ com o seguinte conteúdo:
# Usa uma imagem base Python oficial leve
FROM python:3.10-slim-buster
# Define o diretório de trabalho no container
WORKDIR /app
# Copia o arquivo de requisitos e instala as dependências
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copia o código da sua aplicação
COPY . .
# Expõe a porta que o FastMCP usará (8080 por padrão, exigido pelo Cloud Run)
EXPOSE 8080
# Comando para iniciar o servidor FastMCP
# FORÇAR HOST '0.0.0.0' É CRUCIAL PARA O CLOUD RUN
# A variável de ambiente PORT será injetada automaticamente pelo Cloud Run
# Isso será feito direto no run do server
CMD ["python", "my_server.py"]
Crie um arquivo requirements.txt na pasta mcp_server/ com as dependências:
fastmcp
httpx
Na pasta mcp_server/, execute os seguintes comandos:
# Define o nome do serviço
export MCP_SERVICE_NAME="meu-mcp" # Nome do seu serviço Cloud Run
export GCP_PROJECT_ID="your-gcp-project-id" # Substitua pelo seu ID de projeto
# Deployar para o Cloud Run usando a flag --source
# O Cloud Run construirá a imagem Docker automaticamente a partir do Dockerfile na pasta atual.
# A opção --allow-unauthenticated é necessária para que o ADK consiga acessá-lo.
# A variável de ambiente PORT será injetada automaticamente pelo Cloud Run e usada pelo seu código.
gcloud run deploy ${MCP_SERVICE_NAME} \
--source=. \
--platform managed \
--allow-unauthenticated \
--port 8080 \
--project=${GCP_PROJECT_ID} \
--region=${GOOGLE_CLOUD_LOCATION}
Após o deploy, o Cloud Run fornecerá uma URL do serviço. Anote-a, pois ela será usada na configuração do seu agente ADK. A URL terá um formato similar a https://meu-mcp-XXXX.REGION.run.app. Você deverá obrigatoriamente incluir o path /mcp/ quando for integrar.
finance_agent/)Na pasta (finance_agent/), configure os 3 principais arquivos.
# Navegue para a pasta raiz do projeto se ainda não estiver nela
cd /path/to/your/agente-financeiro
# Seu ID de projeto do Google Cloud
export GOOGLE_CLOUD_PROJECT="your-gcp-project-id"
# Região onde seus serviços serão deployados (deve ser a mesma do MCP Server)
export GOOGLE_CLOUD_LOCATION="us-central1" # Ou sua região preferida
# Informa ao ADK para usar a Gemini API via Vertex AI
export GOOGLE_GENAI_USE_VERTEXAI=False
# O caminho para o diretório do seu agente ADK
export AGENT_PATH="./finance_agent"
# Nome do serviço Cloud Run para o seu agente
export AGENT_SERVICE_NAME="finance-assistant-agent"
# O ID do usuário fixo para o agente
export FINANCE_AGENT_USER_ID="seu-id" # Substitua pelo seu ID de usuário
# Não precisar exportar a key do Gemini pois dentro do cloud run você usa Gemini builtin
Importante: No seu arquivo finance_agent/agent.py, o USER_ID deve ser carregado via ambiente. A URL do MCP Toolset está fixada no código conforme sua instrução.
# finance_agent/agent.py (trecho relevante)
import os
from dotenv import load_dotenv # Importar para uso local
# Carrega as variáveis do arquivo .env (apenas para desenvolvimento local)
# Comenta ou remove esta linha se não estiver usando .env localmente
load_dotenv()
# Carrega o USER_ID de uma variável de ambiente
USER_ID = os.environ.get("FINANCE_AGENT_USER_ID")
# ... (restante do código do agente)
tools=[
MCPToolset(
connection_params=StreamableHTTPServerParams(
url="https://seulinkdocloudrun/mcp/" # URL do MCP fixada
),
)
],
# ...
Use o comando adk deploy cloud_run. O ADK CLI irá conteinerizar e deployar seu agente.
# Deploy com a UI de desenvolvimento (recomendado para testes)
# A variável de ambiente FINANCE_AGENT_USER_ID será injetada para a instância do agente no Cloud Run.
adk deploy cloud_run \
--project=${GOOGLE_CLOUD_PROJECT} \
--region=${GOOGLE_CLOUD_LOCATION} \
--service_name=${AGENT_SERVICE_NAME} \
--with_ui \
--set-env-vars="FINANCE_AGENT_USER_ID=${FINANCE_AGENT_USER_ID}" \
${AGENT_PATH}
Após o deploy, o Cloud Run fornecerá uma URL para a interface de desenvolvimento do seu agente. Acesse essa URL no seu navegador para interagir com o agente.
Para executar o agente localmente, você pode usar um arquivo .env para gerenciar as variáveis de ambiente sem a necessidade de exportá-las manualmente no terminal a cada sessão.
Instale python-dotenv:
pip install python-dotenv
Crie um arquivo .env na pasta finance_agent/:
# finance_agent/.env
FINANCE_AGENT_USER_ID="seu-user"
# Note: MCP_SERVER_URL não precisa estar aqui se estiver fixado no agent.py para uso local.
# Adicione outras variáveis de ambiente necessárias para o desenvolvimento local,
# API Key e VertexAI.
Importante: Adicione .env ao seu .gitignore para evitar o commit de informações sensíveis.
No seu finance_agent/agent.py, certifique-se de que from dotenv import load_dotenv e load_dotenv() estejam no início do arquivo, como mostrado na seção "Preparar Variáveis de Ambiente e Configuração do Agente" acima.
Para executar localmente:
cd finance_agent/
adk web
Acesse http://localhost:8000 no seu navegador.
Uma vez que o Agente de IA e o MCP Server estejam deployados e funcionando, você pode interagir com o agente através da ADK Dev UI.
Exemplos de Interação:
Esse repo tem algumas dicas legais que ainda não estão documentadas, tanto no fastMCP(config de deploy no Cloud Run) quanto no ADK(uso de transport streamable):
Selected from shared topics, language and repository description—not editorial ratings.
alaorneto /
Um simples gerenciador financeiro pessoal desenvolvido em Python/Django.
25/100 healthJhonathan-Ferroni /
Sistema de controle financeiro pessoal em Python
34/100 healthmatheuscansan8-eng /
Gerenciador financeiro pessoal feito em Python
49/100 healthrailandeveloper /
Projeto de controle financeiro pessoal com Python e MySQL.
27/100 healthrodrigospisila /
Backend do aplicativo Wimm - Gerenciador financeiro pessoal desenvolvido com Flask e Python
34/100 healthMarcusAraujoSi /
Gerenciador financeiro pessoal desenvolvido com FastAPI. Permite o cadastro de receitas e despesas com data, descrição, categoria e valor, além do acompanhamento por ano e mês. Projeto em constante evolução, com foco em boas práticas, separação de camadas e aprendizado prático de APIs modernas em Python.
34/100 health