mcp-server-strava
Интеграция Strava API с Model Context Protocol SDK
Documentation
Интеграция Strava API с Model Context Protocol (MCP) SDK
Интеграция для анализа тренировок и получения рекомендаций на основе данных Strava с использованием Model Context Protocol SDK.
🚀 Возможности
- Анализ тренировок из Strava
- Рекомендации по тренировкам
- Автоматическое обновление токенов
- Rate limiting для API запросов
📋 Требования
- Python 3.10+
- Claude Desktop
- Strava аккаунт
- uv (рекомендуется)
⚙️ Установка
# Клонируем репозиторий
git clone https://github.com/rbctmz/mcp-server-strava.git
cd mcp-server-strava
# Установка через uv (рекомендуется)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv pip install .
# Установка в режиме разработки
uv pip install -e ".[dev]"Установка MCP SDK
uv add "mcp[cli]"🔧 Настройка
Настройка Strava API
1. Перейдите на страницу настроек API
2. Создайте приложение:
Настройка окружения
1. Создайте файл с переменными окружения:
cp .env-template .env2. Получите токены доступа:
python scripts/auth.py3. Проверьте настройку:
mcp dev src/server.py
curl -X GET "http://localhost:8000/activities"📚 API и примеры
Ресурсы и инструменты
| Тип | Название | Описание |
|---|---|---|
| Ресурс | `strava://activities` | Список активностей |
| Ресурс | `strava://activities/{id}` | Детали активности |
| Ресурс | `strava://athlete/zones` | Тренировочные зоны |
| Ресурс | `strava://athlete/clubs` | Клубы атлета |
| Ресурс | `strava://gear/{gear_id}` | Информация о снаряжении |
| Инструмент | `analyze_activity(activity_id)` | Анализ тренировки |
| Инструмент | `analyze_training_load(activities)` | Анализ нагрузки |
| Инструмент | `get_activity_recommendations()` | Рекомендации |
Примеры использования
from mcp import ClientSession
# Получение активностей
async with ClientSession() as session:
activities = await session.read_resource("strava://activities")
activity = await session.read_resource("strava://activities/12345678")
# Анализ тренировки
result = analyze_activity(activity_id="12345678")
"""
{
"type": "Run",
"distance": 5000,
"moving_time": 1800,
"analysis": {
"pace": 5.5, # мин/км
"effort": "Средняя"
}
}
"""
# Анализ нагрузки
summary = analyze_training_load(activities)
"""
{
"activities_count": 10,
"total_distance": 50.5, # км
"total_time": 5.2, # часы
"heart_rate_zones": {
"easy": 4, # ЧСС 150
}
}
"""
# Получение тренировочных зон
async with ClientSession() as session:
zones = await session.read_resource("strava://athlete/zones")
"""
{
"heart_rate": {
"custom_zones": true,
"zones": [
{"min": 0, "max": 120, "name": "Z1 - Recovery"},
{"min": 120, "max": 150, "name": "Z2 - Endurance"},
{"min": 150, "max": 170, "name": "Z3 - Tempo"},
{"min": 170, "max": 185, "name": "Z4 - Threshold"},
{"min": 185, "max": -1, "name": "Z5 - Anaerobic"}
]
},
"power": {
"zones": [
{"min": 0, "max": 180},
{"min": 181, "max": 250},
{"min": 251, "max": 300},
{"min": 301, "max": 350},
{"min": 351, "max": -1}
]
}
}
"""🛠 Разработка
CI/CD и безопасность
Проверки в GitHub Actions
| Тип | Инструмент | Описание |
|---|---|---|
| Линтинг | ruff | Форматирование и анализ кода |
| Тесты | pytest | Unit и интеграционные тесты |
| Покрытие | pytest-cov | Отчет о покрытии кода |
Безопасность и секреты
1. Защита токенов:
2. Настройка секретов:
# В GitHub: Settings → Secrets → Actions
STRAVA_CLIENT_ID=
STRAVA_CLIENT_SECRET=
STRAVA_REFRESH_TOKEN=Contributing
1. Форкните репозиторий
2. Установите зависимости: `uv pip install -e ".[dev]"`
3. Создайте ветку: `git checkout -b feature/name`
4. Проверьте изменения:
ruff format .
ruff check .
pytest --cov=src5. Создайте Pull Request
📫 Поддержка
- GitHub Issues: создать issue
- Telegram: @greg_kisel
📄 Лицензия
Frequently asked questions
What is mcp-server-strava?
mcp-server-strava is Интеграция Strava API с Model Context Protocol SDK
How do I install mcp-server-strava?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-server-strava open source?
Yes — it is hosted on GitHub at https://github.com/rbctmz/mcp-server-strava.
Related MCP tools
AWS MCP Servers — helping you get the most out of AWS, wherever you use MCP. Python-based implementation. Trusted by 6900+ developers.
A simple, secure MCP-to-OpenAPI proxy server Python-based implementation. Trusted by 3500+ developers. Trusted by 3500+ developers.
MCP server that interacts with Obsidian via the Obsidian rest API community plugin Python-based implementation. Trusted by 2300+ developers.
Default Configuration: MCP CLI defaults to using Ollama with the gpt-oss reasoning model for local, privacy-focused operation without requiring API keys.
Official MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
MCP server for long term agent memory with Mem0. Also useful as a template to get you started building your own MCP server with Python!
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP