mcp-takeout-googlefit
Provides tools for analyzing Google Fit exported data from Google Takeout, including daily activity metrics (steps, calories, active minutes, distance), workout sessions, sleep records, and raw fitness file parsing, along with resources and prompts for fitness progress analysis and coaching.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-takeout-googlefit What were my total steps last week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Servidor MCP para Google Fit (Google Takeout)
Este projeto contém um Servidor MCP (Model Context Protocol) modular desenvolvido em Python com a biblioteca FastMCP. O servidor descompacta, lê, filtra e analisa automaticamente as pastas exportadas do Google Fit (extraídas do Google Takeout em Português) colocadas na pasta ./data.
Estrutura Modular do Projeto
cli_project/
├── data/ # Ignorada no .gitignore (dados privados)
│ ├── Atividades/ # Ficheiros de registo de treinos e sessões
│ ├── Métricas de atividade diária/ # Ficheiros de passos, calorias e minutos ativos
│ ├── Todas as sessões/ # Histórico completo de sessões de exercício
│ └── Todos os dados/ # Ficheiros JSON derived_com.google.*
├── src/ # Pacote Python com arquitetura modular
│ ├── models/ # Schemas e estruturas de dados Pydantic
│ │ └── fitness_schemas.py
│ ├── parsers/ # Parsers de ficheiros (ZIP, CSV, JSON)
│ │ ├── zip_extractor.py
│ │ ├── csv_parser.py
│ │ └── json_parser.py
│ ├── services/ # Regras de negócio e agregação de dados
│ │ └── fitness_service.py
│ ├── server/ # Componentes registados no FastMCP
│ │ ├── tools.py # Definição das Ferramentas (@mcp.tool)
│ │ ├── resources.py # Definição dos Recursos (@mcp.resource)
│ │ └── prompts.py # Definição dos Prompts (@mcp.prompt)
│ └── app.py # Inicialização e configuração do FastMCP
├── mcp_server.py # Ponto de entrada leve do Servidor MCP
├── pyproject.toml # Configuração e dependências
├── .gitignore # Proteção dos seus dados privados (data/)
└── README.md # Documentação de integraçãoRelated MCP server: Apple Health Chat MCP
Instalação
Criar e ativar o ambiente virtual:
uv venv .venv\Scripts\activate uv pip install -e .
Como Integrar o Servidor MCP em Qualquer IA
Adicione o servidor no ficheiro de configuração MCP do seu cliente de IA (mcp_config.json ou claude_desktop_config.json):
{
"mcpServers": {
"google-fit-server": {
"command": "uv",
"args": [
"run",
"mcp_server.py"
]
}
}
}Como Testar no MCP Inspector
Para testar o servidor e inspecionar as pastas do Google Fit no ambiente gráfico de desenvolvimento:
uv run mcp dev mcp_server.pyGuia Detalhado de Utilização dos Componentes MCP
1. Ferramentas (Tools)
As ferramentas permitem que os assistentes de IA executem funções de consulta e manutenção de dados.
clean_empty_data_files
Descrição: Analisa e deteta ficheiros JSON ou CSV na pasta
./dataque contêm zero pontos de dados ou apenas valores vazios"".Parâmetros:
dry_run(boolean, opcional, padrão:true): Setrue, apenas lista os ficheiros vazios sem apagar. Sefalse, elimina fisicamente os ficheiros vazios do disco.
Exemplos de Valores e Chamadas:
Simulação (listar sem apagar):
clean_empty_data_files(dry_run=true)Eliminação física:
clean_empty_data_files(dry_run=false)
scan_google_fit_data
Descrição: Percorre a pasta
./data, deteta as pastas exportadas (Atividades,Métricas de atividade diária,Todas as sessões,Todos os dados) e devolve uma contagem das pastas e ficheiros válidos.Parâmetros: Nenhum argumento necessário.
Exemplo de Chamada:
scan_google_fit_data()
get_daily_activity
Descrição: Extrai registos diários de contagem de passos (
step_count), calorias despendidas (calories.expended), minutos ativos (active_minutes) e distância percorrida, ignorando ficheiros vazios.Parâmetros: Nenhum argumento necessário.
Exemplo de Chamada:
get_daily_activity()
get_workout_logs
Descrição: Extrai sessões de treino, exercícios e segmentos de atividade física a partir das pastas
AtividadeseTodas as sessões.Parâmetros: Nenhum argumento necessário.
Exemplo de Chamada:
get_workout_logs()
get_sleep_records
Descrição: Extrai registos e horários de sono dos ficheiros
derived_com.google.internal.sleep.Parâmetros: Nenhum argumento necessário.
Exemplo de Chamada:
get_sleep_records()
read_fitness_file
Descrição: Lê e interpreta o conteúdo bruto ou parseado de qualquer ficheiro localizado na pasta
./data.Parâmetros:
file_path(string, obrigatório): Caminho relativo do ficheiro dentro da pasta./data.
Exemplos de Valores de Parâmetro:
file_path="Métricas de atividade diária/Daily activity metrics.csv"file_path="Todos os dados/derived_com.google.step_count.delta_com.google.android.fit.json"file_path="Atividades/Atividades.csv"
Exemplo de Chamada:
read_fitness_file(file_path="Métricas de atividade diária/Daily activity metrics.csv")
2. Recursos e Templates de Recursos (Resources & Resource Templates)
Os recursos fornecem aos assistentes de IA leitura direta de dados através de URIs padrão.
fitness://summary (URI Direta)
Descrição: Devolve um resumo executivo em JSON com o estado da ligação, total de ficheiros e ficheiros válidos detetados.
Exemplo de URI de Acesso:
fitness://summary
docs://documents (URI Direta)
Descrição: Devolve uma lista JSON com os caminhos de todos os ficheiros disponíveis na pasta
./data.Exemplo de URI de Acesso:
docs://documents
docs://documents/{doc_id} (Template de Recurso)
Descrição: Template de URI parametrizado para aceder ao conteúdo de qualquer ficheiro individual.
Parâmetro do Template:
{doc_id}(Caminho relativo do ficheiro).Exemplos de URIs Completas para Acesso:
docs://documents/Métricas de atividade diária/Daily activity metrics.csvdocs://documents/Todos os dados/derived_com.google.calories.expended.jsondocs://documents/Todas as sessões/Sessões.csv
3. Prompts
Os prompts são rotinas de análise pré-definidas que orientam a IA para tarefas específicas de coaching e análise.
analyze_progress
Descrição: Orienta a IA a analisar a evolução de passos, distância, minutos ativos e calorias.
Parâmetros:
period(string, opcional, padrão:"all"): Período temporal de análise.
Exemplos de Valores de Parâmetro:
"7_dias","30_dias","tudo"Exemplos de Utilização no Cliente de IA:
/analyze_progress period="7_dias"/analyze_progress period="30_dias"
generate_workout_plan
Descrição: Orienta a IA a criar um plano semanal de treinos e descanso adaptado ao histórico de atividades do utilizador.
Parâmetros:
fitness_goal(string, opcional, padrão:"fitness_geral"): Objetivo de treino pretendido.
Exemplos de Valores de Parâmetro:
"hipertrofia","perda_peso","resistencia"Exemplos de Utilização no Cliente de IA:
/generate_workout_plan fitness_goal="hipertrofia"/generate_workout_plan fitness_goal="perda_peso"
give_coaching_feedback
Descrição: Orienta a IA a fornecer comentários e recomendações práticas diárias sobre o nível de atividade física e qualidade de sono.
Parâmetros:
date(string, opcional, padrão:"mais_recente"): Data alvo para avaliação.
Exemplos de Valores de Parâmetro:
"hoje","mais_recente","2026-08-05"Exemplos de Utilização no Cliente de IA:
/give_coaching_feedback date="hoje"/give_coaching_feedback date="2026-08-05"
Available Tools
6 toolsclean_empty_data_filesA
Identifica e limpa ficheiros JSON/CSV sem pontos de dados válidos na pasta ./data
Inputs: dry_run. Returns: result
get_daily_activityA
Extrai o total de passos, calorias, minutos ativos e distância das métricas diárias, ignorando ficheiros vazios
Inputs: no named parameters. Returns: result
get_sleep_recordsA
Extrai dados e horários de sono a partir dos ficheiros derived_com.google.internal.sleep, ignorando ficheiros vazios
Inputs: no named parameters. Returns: result
get_workout_logsA
Extrai registos das pastas Atividades, Todas as sessões e segmentos de atividade física, ignorando ficheiros vazios
Inputs: no named parameters. Returns: result
read_fitness_fileA
Lê o conteúdo bruto ou parseado de qualquer ficheiro dentro da pasta ./data
Inputs: file_path (required). Returns: result
scan_google_fit_dataA
Percorre a pasta ./data, deteta as pastas exportadas do Google Fit (Atividades, Métricas de atividade diária, Todas as sessões, Todos os dados) e lista os ficheiros
Inputs: no named parameters. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a distinct purpose: cleaning empty files, scanning directory structure, extracting daily activity, workout logs, sleep records, and reading any file. No overlapping functionality.
All tool names follow the snake_case verb_noun pattern (clean, scan, get, get, get, read). Consistent and predictable naming.
Six tools is well-scoped for a Google Fit Takeout processing server, covering both extraction and utility operations without being excessive.
The tool set covers the main Google Fit data types (daily metrics, workouts, sleep) plus scanning, cleaning, and arbitrary file reading. No obvious gaps for typical workflows.
Maintenance
Related MCP Connectors
Explore Garmin activity and health data with your AI assistant.
Ask your AI about your fitness: activities and data from Garmin, COROS, Strava, GPX and more
Your Garmin, Oura, WHOOP, Hevy and 35 more fitness apps, queryable from your own AI.
Your strength-training data for any AI assistant: workouts, progress, muscle volume, routines.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query live Garmin Connect health and fitness data, including daily metrics, activities, sleep analysis, and trends via natural language.MIT
- AlicenseBqualityDmaintenanceEnables Claude to answer natural language questions about your Apple Health data by analyzing local CSV exports, supporting metrics like steps, heart rate, sleep, and more.62MIT
- FlicenseNot gradedqualityDmaintenanceEnables analysis of FitNotes workout data through an LLM, providing insights on progress, muscle groups, and personalized recommendations.4-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to retrieve and analyze Garmin Connect health data, including daily summaries, sleep, HRV, workouts, and raw FIT files, while also supporting SQL queries on the underlying database.10-