Strava MCP Server

Acesse a API do Strava para interagir com atividades, informações do atleta e outros dados do Strava.

Documentação

Servidor MCP Strava

Um servidor Model Context Protocol (MCP) que fornece acesso à API do Strava. Este servidor permite que modelos de linguagem interajam com dados do Strava, incluindo atividades, informações de atletas e muito mais.

Recursos

  • 🏃‍♂️ Rastreamento e análise de atividades
  • 📊 Estatísticas de atletas
  • 🗺️ Visualização de rotas
  • 🏆 Rastreamento de conquistas
  • 🤝 Recursos sociais (elogios, comentários)

Pré-requisitos

  • Python 3.12+
  • Credenciais da API do Strava
  • pip (instalador de pacotes Python)

Instalação

  1. Clone o repositório:
git clone https://github.com/yourusername/strava_mcp.git
cd strava_mcp
  1. Crie um ambiente virtual:
python -m venv venv
source venv/bin/activate  # On Windows: .\venv\Scripts\activate
  1. Instale as dependências:
pip install -r requirements.txt

Configuração

  1. Crie um arquivo config/.env com suas credenciais da API do Strava:
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
STRAVA_REFRESH_TOKEN=your_refresh_token
  1. Para obter credenciais da API do Strava:

Uso

Usando com Claude

Depois de conectado, você pode interagir com seus dados do Strava por meio do Claude de várias maneiras:

Consultas de Atividades

  • "Mostre minhas atividades recentes"
  • "Obtenha detalhes sobre minha última corrida"
  • "Qual foi meu passeio mais longo neste mês?"
  • "Mostre atividades em que estabeleci recordes pessoais"
  • "Exiba o mapa da rota da minha atividade mais recente"

Análise de Desempenho

  • "Qual é meu ritmo médio de corrida neste ano?"
  • "Compare meu desempenho no ciclismo entre o mês passado e este mês"
  • "Mostre minhas zonas de frequência cardíaca do treino de ontem"
  • "Qual é meu ganho total de elevação em todas as atividades?"
  • "Calcule minha quilometragem semanal de corrida"

Interações Sociais

  • "Quem deu elogios na minha atividade mais recente?"
  • "Mostre comentários na minha corrida de maratona"
  • "Liste todas as atividades do meu clube"
  • "Encontre atividades que fiz com amigos"

Rastreamento de Conquistas

  • "Liste todas as minhas conquistas de segmento"
  • "Mostre meus recordes pessoais em segmentos locais"
  • "Quais conquistas ganhei esta semana?"
  • "Exiba meu progresso nas metas anuais"

Dados Disponíveis por meio do Claude

  1. Detalhes da Atividade:

    • Distância, duração, ritmo
    • Mapas de rota e perfis de elevação
    • Dados de frequência cardíaca, potência e cadência
    • Informações de divisões e voltas
    • Condições climáticas durante a atividade
  2. Estatísticas do Atleta:

    • Totais do ano até a data e de todos os tempos
    • Recordes pessoais e conquistas
    • Carga de treino e tendências de condicionamento físico
    • Uso e manutenção de equipamentos
  3. Dados Sociais:

    • Elogios e comentários
    • Atividades do clube e rankings
    • Atividades e desafios de amigos
    • Esforços em segmentos e classificações
  4. Informações de Rota:

    • Mapas detalhados com dados de elevação
    • Análise de segmentos
    • Rotas e segmentos populares
    • Planejamento e análise de rotas

Como Servidor MCP

Atualize sua configuração do Claude Desktop:

{
    "mcpServers": {
        "Strava": {
            "command": "python",
            "args": ["src/strava_server.py"],
            "cwd": "/path/to/strava_mcp",
            "env": {
                "STRAVA_CLIENT_ID": "your_client_id",
                "STRAVA_CLIENT_SECRET": "your_client_secret",
                "STRAVA_REFRESH_TOKEN": "your_refresh_token"
            }
        }
    }
}

Como Servidor HTTP

  1. Inicie o servidor:
./run_server.sh
  1. Acesse a API em http://localhost:8000

Endpoints disponíveis:

  • GET /activities/recent - Listar atividades recentes
  • GET /activities/{id} - Obter detalhes da atividade
  • GET /activities/{id}/map - Obter visualização do mapa da atividade
  • GET /athlete/stats - Obter estatísticas do atleta

Desenvolvimento

Estrutura do Projeto

strava_mcp/
├── src/
│   ├── strava_server.py      # MCP server implementation
│   ├── strava_http_server.py # HTTP API server
│   ├── map_utils.py          # Map visualization utilities
│   └── templates.py          # HTML templates
├── config/
│   └── .env                  # Environment variables (not in git)
├── requirements.txt          # Python dependencies
└── run_server.sh            # Server startup script

Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de recurso
  3. Faça commit das suas alterações
  4. Envie para o branch
  5. Crie um Pull Request

Segurança

  • Nunca faça commit de arquivos .env ou credenciais da API
  • O arquivo .gitignore está configurado para impedir que dados sensíveis sejam commitados
  • Use variáveis de ambiente para toda configuração sensível

Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Agradecimentos

  • Documentação da API do Strava
  • Especificação do Model Context Protocol (MCP)
  • Contribuidores e mantenedores