Strava MCP Server
Um servidor que se conecta à API do Strava, permitindo que modelos de linguagem acessem dados e funcionalidades do Strava.
Documentação
Servidor MCP do Strava
Fale com seus dados do Strava usando IA.
Conecte o Claude à sua conta do Strava e faça perguntas em linguagem natural: "Quantos quilômetros corri este mês?", "Analise meu último pedal" ou "Mostre-me meus segmentos mais rápidos."
O Que Você Pode Fazer Com Isso?
Depois de conectar, basta conversar com o Claude como se estivesse falando com um amigo que tem acesso a todos os seus dados do Strava:
🏃 Acompanhe Seu Progresso
"Quantos quilômetros corri este mês?"
"Compare minhas estatísticas de corrida de janeiro a dezembro"
"Qual foi meu pedal mais longo de todos?"
📊 Analise Seus Treinos
"Detalhe meu último treino de ciclismo - mostre potência, frequência cardíaca e cadência"
"Como ficaram minhas zonas de frequência cardíaca durante a corrida de ontem?"
"Qual foi meu ritmo médio em cada volta do meu treino intervalado?"
🗺️ Explore Rotas e Segmentos
"Quais são os segmentos de ciclismo mais populares perto do Central Park?"
"Mostre meus segmentos favoritos"
"Exporte minha rota de domingo de manhã como arquivo GPX"
🏆 Obtenha Insights de Treinamento
"Analise minha carga de treino desta semana"
"Como está meu condicionamento atual comparado ao mês passado?"
"Me dê um resumo do meu desempenho no ciclismo este ano"
Início Rápido (3 Passos)
Passo 1: Adicionar ao Claude Desktop
Abra o arquivo de configuração do Claude Desktop:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Adicione isto ao arquivo:
{
"mcpServers": {
"strava": {
"command": "npx",
"args": ["-y", "@r-huijts/strava-mcp-server"]
}
}
}
Passo 1 (alternativa): Adicionar ao Claude Code
Você pode adicionar este servidor MCP ao Claude Code com o seguinte comando:
claude mcp add --transport stdio strava -- npx @r-huijts/strava-mcp-server
Você pode confirmar a instalação bem-sucedida da seguinte forma:
% claude mcp list
Checking MCP server health...
strava: npx @r-huijts/strava-mcp-server - ✓ Connected
Passo 2: Reinicie o Claude Desktop
Feche e reabra o Claude Desktop para carregar a nova configuração.
Passo 3: Conecte Sua Conta do Strava
Basta dizer ao Claude:
"Conecte minha conta do Strava"
Uma janela do navegador será aberta. Insira suas credenciais da API do Strava, autorize o aplicativo e pronto!
É isso! Comece a perguntar sobre suas atividades.
Conectando Sua Conta do Strava
Configuração Inicial
Quando você disser "Conecte minha conta do Strava", aqui está o que acontece:
- Uma janela do navegador abre mostrando uma página de configuração
- Insira suas credenciais da API do Strava (Client ID e Client Secret)
- Clique em "Continuar para o Strava" - você será redirecionado para o Strava
- Autorize o aplicativo no site do Strava
- Veja a mensagem de sucesso - você pode fechar o navegador
- Pronto! O Claude confirma que você está conectado
Suas credenciais são salvas localmente em ~/.config/strava-mcp/config.json e persistem entre sessões.
Obtendo Suas Credenciais da API do Strava
Você precisa criar um aplicativo gratuito da API do Strava (configuração única):
- Acesse strava.com/settings/api
- Clique em "Criar um aplicativo" (ou veja seu aplicativo existente)
- Preencha o formulário:
- Nome do aplicativo: Qualquer coisa que você quiser (ex.: "Meu Assistente Claude")
- Categoria: Escolha qualquer uma
- Site: Pode ser qualquer coisa (ex.:
http://localhost) - Domínio de callback de autorização: Deve ser
localhost
- Copie seu Client ID e Client Secret
É isso! Você só precisa fazer isso uma vez.
Gerenciando Sua Conexão
- Verificar status: "Estou conectado ao Strava?"
- Reconectar: "Conecte minha conta do Strava" (use
force: truepara reconectar) - Desconectar: "Desconecte minha conta do Strava"
Opções de Instalação
Opção A: Apenas Use (Recomendado)
Sem necessidade de instalação! O comando npx no Início Rápido baixa e executa automaticamente a versão mais recente.
Opção B: Instalar Globalmente
Se você preferir instalar uma vez:
npm install -g @r-huijts/strava-mcp-server
Depois atualize sua configuração do Claude para usar:
{
"mcpServers": {
"strava": {
"command": "strava-mcp-server"
}
}
}
Nota: Mesmo que o nome do pacote seja @r-huijts/strava-mcp-server, o nome do executável permanece strava-mcp-server para compatibilidade retroativa.
Opção C: Compilar a partir do Código-Fonte
Para desenvolvedores que desejam modificar o código:
git clone https://github.com/r-huijts/strava-mcp.git
cd strava-mcp
npm install
npm run build
Depois aponte o Claude para sua compilação local:
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/path/to/strava-mcp/dist/server.js"]
}
}
}
Exemplos de Conversas
Check-in Matinal
Você: O que fiz de exercício esta semana?
Claude: Olhando suas atividades do Strava esta semana, você completou:
- Segunda-feira: corrida de 5,2 km (28:15)
- Quarta-feira: pedal de 45 km (1:32:00)
- Sábado: corrida de 10 km (52:30)
Total: 60,2 km em 3 atividades. Consistência excelente!
Análise de Treino
Você: Analise meu último treino de ciclismo em detalhes
Claude: Aqui está um detalhamento do seu pedal "Volta da Tarde" de ontem:
Visão Geral
- Distância: 42,3 km
- Tempo: 1:28:45
- Velocidade média: 28,6 km/h
Análise de Potência
- Potência média: 185W
- Potência normalizada: 198W
- Potência máxima: 520W
Frequência Cardíaca
- Média: 142 bpm
- Máxima: 175 bpm
- Tempo na Zona 4+: 23 minutos
Sua relação potência/frequência cardíaca sugere boa eficiência aeróbica...
Encontrando Novas Rotas
Você: Encontre subidas desafiadoras de ciclismo perto de Boulder, Colorado
Claude: Aqui estão segmentos de subida populares perto de Boulder:
- Flagstaff Road - 5,2 km, 6,8% de inclinação média
- Sunshine Canyon - 3,8 km, 7,2% de inclinação média
- Left Hand Canyon - 8,1 km, 4,5% de inclinação média
Quer que eu favorite algum desses para você encontrá-los facilmente depois?
Ferramentas Disponíveis
Conta e Perfil
| O que você pode perguntar | O que faz |
|---|---|
| "Conecte minha conta do Strava" | Vincula seu Strava ao Claude |
| "Verifique minha conexão com o Strava" | Mostra o status da conexão |
| "Desconecte minha conta do Strava" | Desvincula o Strava e limpa os tokens armazenados |
| "Obtenha meu perfil do Strava" | Mostra as informações do seu perfil |
| "Quais tênis eu tenho?" | Lista seus tênis e distância de uso |
| "Quais são minhas zonas de treino?" | Mostra zonas de FC e potência |
Atividades
| O que você pode perguntar | O que faz |
|---|---|
| "Mostre minhas atividades recentes" | Lista seus treinos mais recentes |
| "Obtenha todas as minhas corridas de janeiro" | Busca atividades com filtros |
| "Analise a atividade 12345" | Informações detalhadas sobre uma atividade |
| "Mostre as voltas da minha última corrida" | Detalhamento volta a volta |
| "Obtenha dados de frequência cardíaca do meu pedal" | Dados de treino em série temporal (formato compacto otimizado) |
| "Mostre fotos da minha trilha" | Fotos da atividade |
Estatísticas e Progresso
| O que você pode perguntar | O que faz |
|---|---|
| "Quais são minhas estatísticas de corrida?" | Totais do ano e de todos os tempos |
| "Quantos quilômetros pedalei este ano?" | Totais de atividades por tipo |
| "Qual foi meu pedal mais longo?" | Recordes pessoais |
Segmentos
| O que você pode perguntar | O que faz |
|---|---|
| "Mostre meus segmentos favoritos" | Seus segmentos preferidos |
| "Encontre segmentos perto de [local]" | Descubra segmentos populares |
| "Obtenha detalhes do segmento 12345" | Informações do segmento e ranking |
| "Favorite este segmento" | Salvar nos favoritos |
| "Mostre meus esforços em [segmento]" | Suas tentativas em um segmento |
Rotas
| O que você pode perguntar | O que faz |
|---|---|
| "Liste minhas rotas salvas" | Suas rotas criadas |
| "Obtenha detalhes da minha [nome da rota]" | Informações da rota |
| "Exporte [rota] como GPX" | Baixar para dispositivos GPS |
| "Exporte [rota] como TCX" | Baixar para dispositivos GPS |
Clubes
| O que você pode perguntar | O que faz |
|---|---|
| "Em quais clubes estou?" | Lista seus clubes do Strava |
Treinos
| O que você pode perguntar | O que faz |
|---|---|
| "Transforme este treino em um arquivo Zwift" | Formata um plano de treino em um arquivo estruturado (atualmente Zwift .zwo) |
Servidor
| O que você pode perguntar | O que faz |
|---|---|
| "Qual versão é o servidor do Strava?" | Mostra a versão do servidor MCP e metadados |
Solução de Problemas
"Conecte minha conta do Strava" não abre o navegador
- Certifique-se de que o Claude Desktop está executando o servidor MCP (verifique erros no Claude)
- Tente reiniciar o Claude Desktop
- Verifique se a porta 8111 não está bloqueada por um firewall
"Falha na autenticação" ou "Token inválido"
- Seu token pode ter expirado - diga "Conecte minha conta do Strava" para reconectar
- Certifique-se de que seu aplicativo da API do Strava ainda está ativo em strava.com/settings/api
Erro de "Credenciais ausentes"
- Você precisa concluir o fluxo OAuth - diga "Conecte minha conta do Strava"
- Se estiver usando variáveis de ambiente, certifique-se de que todas as 4 estão definidas (veja a seção Desenvolvedores)
O Claude não vê as ferramentas do Strava
- Certifique-se de que seu
claude_desktop_config.jsoné JSON válido (sem vírgulas finais!) - Reinicie o Claude Desktop após fazer alterações na configuração
- Verifique o console do desenvolvedor do Claude para mensagens de erro
JSONRPC.ProtocolTransportError após mudança de nome do pacote
Se você está recebendo um erro JSONRPC após atualizar para @r-huijts/strava-mcp-server:
- Limpe o cache do npx: Execute
rm -rf ~/.npm/_npxno terminal - Verifique a configuração usando
@r-huijts/strava-mcp-server(não o antigostrava-mcp-server) - Reinicie o Claude Desktop completamente (saia e reabra)
- Teste manualmente: Execute
npx -y @r-huijts/strava-mcp-server- você deve ver "Iniciando o servidor MCP do Strava v1.2.1..."
Para Desenvolvedores
Clique para expandir detalhes técnicos
Variáveis de Ambiente
Em vez de usar a autenticação baseada em navegador, você pode definir variáveis de ambiente:
| Variável | Descrição |
|---|---|
STRAVA_CLIENT_ID | Seu Client ID do aplicativo Strava |
STRAVA_CLIENT_SECRET | Seu Client Secret do aplicativo Strava |
STRAVA_ACCESS_TOKEN | Token de acesso OAuth |
STRAVA_REFRESH_TOKEN | Token de atualização OAuth |
ROUTE_EXPORT_PATH | Diretório para exportações GPX/TCX |
Atualização de Token
O servidor atualiza automaticamente tokens expirados. Novos tokens são salvos tanto em process.env quanto em ~/.config/strava-mcp/config.json.
Prioridade de Configuração
- Variáveis de ambiente (maior prioridade)
~/.config/strava-mcp/config.json- Arquivo local
.env
Compilação e Testes
npm install
npm run build
npm test
Otimização de Streams de Atividades
A ferramenta get-activity-streams usa um formato compacto por padrão, reduzindo o tamanho do payload em ~70-80% enquanto preserva todos os dados:
- Formato compacto (padrão): Arrays brutos com metadados, ~70-80% menores, ideal para processamento por LLM
- Formato detalhado: Objetos legíveis com valores formatados (compatível com versões anteriores)
- Divisão inteligente: Atividades grandes são automaticamente divididas em blocos de ~50KB
- Redução de amostragem opcional: Pode reduzir conjuntos de dados muito grandes preservando características principais
O formato compacto inclui metadados abrangentes (unidades, descrições, estatísticas) para que LLMs possam entender os dados numéricos brutos.
Referência da API
O servidor implementa o Protocolo de Contexto de Modelo (MCP) e expõe 25 ferramentas para a API v3 do Strava. Veja o código-fonte em src/tools/ para detalhes de implementação.
Contribuindo
Contribuições são bem-vindas! Envie um Pull Request.
Licença
Licença MIT - veja o arquivo LICENSE para detalhes.
Perguntas? Abra uma issue no GitHub.
