Apple Health Data with Elasticsearch
Um servidor MCP baseado em Python que se conecta a um índice Elasticsearch com dados do Apple HealthKit.
Documentação
Servidor MCP para Dados de Saúde da Apple com Elasticsearch - Projeto Inicial
Bem-vindo! Este repositório contém o código-fonte completo e final para o post do blog, "Desbloqueie o Potencial do seu LLM: Construindo um Servidor MCP com Elasticsearch para Dados Reais de Saúde".
Este projeto fornece uma implementação executável de um servidor personalizado do Model Context Protocol (MCP). Construído com Python e o framework FastMCP, este servidor se conecta a um índice Elasticsearch contendo dados de amostra de passos do Apple HealthKit. Esta configuração permite que um cliente LLM como o Claude consulte dados pessoais de saúde usando linguagem natural.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte instalado e em execução:
- Python 3.10+
- Elasticsearch: Uma instância do Elasticsearch 8.x rodando localmente em
http://localhost:9200. - Claude Desktop: O cliente MCP que usaremos para interagir com o servidor.
- uv: Para gerenciar pacotes Python.
Começando
Siga estes passos para configurar seu ambiente local e instalar as dependências necessárias.
1. Navegue até o Diretório do Seu Projeto
Abra seu terminal ou prompt de comando e navegue até a pasta do projeto.
cd path/to/your/folder/apple-watch-health-mcp
2. Inicialize o Projeto Python
Este passo cria o arquivo pyproject.toml, que o uv usa para gerenciar as dependências do seu projeto.
uv init
3. Crie e Ative um Ambiente Virtual
# Create the virtual environment
uv venv
# Activate the environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate
4. Instale as Dependências
Instale os pacotes Python necessários. Observe que estamos especificando uma versão compatível para a biblioteca elasticsearch para corresponder ao servidor v8.x usado neste tutorial.
uv add "mcp[cli]" "elasticsearch>=8.0.0,<9.0.0" aiohttp pydantic
Configuração do Ambiente
Configurando a Chave de API
Após criar a chave de API no Elasticsearch, você precisa configurá-la no seu ambiente:
# Export the API key for the current session
export ES_API_KEY="your_encoded_api_key_here"
Instruções de Uso
Com o ambiente configurado, você agora pode executar a solução.
1. Ingira os Dados de Amostra
Primeiro, execute o script fornecido para popular sua instância do Elasticsearch com os dados de amostra. Este script criará o índice com o mapeamento correto e inserirá os 30 documentos de amostra.
python ingest_data.py
Você deve ver uma saída confirmando que os documentos foram ingeridos com sucesso.
2. Teste o Servidor com o MCP Inspector
Antes de instalar no Claude, você pode verificar se o servidor está funcionando corretamente usando a ferramenta MCP Inspector.
mcp dev apple_watch_mcp.py
Isso abrirá uma interface web onde você pode testar interativamente os recursos, ferramentas e prompts do servidor.
3. Instale e Use no Claude
Este é o passo final para conectar seu servidor MCP ao cliente Claude Desktop.
-
Instale o servidor: Execute este comando no seu terminal.
mcp install apple_watch_mcp.py --name "Apple Health Steps"Este comando registra o servidor no arquivo de configuração do Claude Desktop.
Execute o comando abaixo para visualizar o conteúdo deste arquivo.
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
Você deve ver uma estrutura semelhante a esta dentro do arquivo, sob a chave "mcpServers":
{
"mcpServers": {
"Apple Health Steps": {
"command": "/full/path/to/your/uv",
"args": [
"--directory",
"/path/to/repository/apple-watch-health-mcp",
"run",
"apple_watch_mcp.py"
// Other arguments may appear depending on your setup
]
}
// ... other servers might be listed here
}
}
-
Reinicie o Claude Desktop: Você deve fechar e reabrir o aplicativo Claude Desktop para que ele carregue a nova configuração do servidor.
-
Comece a Conversar: Após reiniciar, o Claude executará automaticamente seu servidor MCP em segundo plano. Agora você pode fazer perguntas sobre seus dados de saúde em linguagem natural. Experimente estes exemplos do post do blog:
- "Qual foi meu dia mais ativo esta semana?"
- "Compare minha atividade entre Apple Watch e iPhone"
- Ou use os comandos de barra integrados como
/daily_reportou/trend_analysis.
Descrições dos Arquivos
apple_watch_mcp.py: O script completo e final para o servidor MCP, contendo todos os Recursos, Ferramentas e Prompts implementados.ingest_data.py: Um script auxiliar que popula sua instância do Elasticsearch com os dados de amostra.sample_data.json: Um arquivo JSON contendo dados fictícios de contagem de passos do Apple Health para teste.README.md: Este arquivo, fornecendo instruções para executar a solução completa.