Strava MCP 서버
Strava API와 상호 작용하기 위한 MCP(Model Context Protocol) 서버입니다.
사용자 가이드
설치
uvx
사용하여 Strava MCP를 쉽게 설치할 수 있습니다:
지엑스피1
Strava 자격 증명 설정
- Strava API 애플리케이션 만들기 :
- 자격 증명 구성 : 자격 증명 파일을 만듭니다(예:
~/.ssh/strava.sh
):export STRAVA_CLIENT_ID=your_client_id
export STRAVA_CLIENT_SECRET=your_client_secret
- Claude Desktop 구성 : Claude 구성에 다음을 추가합니다(
/Users/<username>/Library/Application Support/Claude/claude_desktop_config.json
):"strava": {
"command": "bash",
"args": [
"-c",
"source ~/.ssh/strava.sh && uvx strava-mcp"
]
}
입증
Strava MCP 도구를 처음 사용하는 경우:
- 인증 흐름이 자동으로 시작됩니다.
- 브라우저에서 Strava 인증 페이지가 열립니다.
- 승인 후 로컬 페이지로 다시 리디렉션됩니다.
- 새로 고침 토큰은 나중에 사용할 수 있도록 자동으로 저장됩니다.
사용 가능한 도구
사용자 활동 가져오기
인증된 사용자에 대한 활동을 검색합니다.
매개변수:
before
(선택 사항): 필터링을 위한 Epoch 타임스탬프after
(선택 사항): 필터링을 위한 Epoch 타임스탬프page
(선택 사항): 페이지 번호(기본값: 1)per_page
(선택 사항): 페이지당 항목 수(기본값: 30)
활동 받기
특정 활동에 대한 자세한 정보를 얻습니다.
매개변수:
activity_id
: 활동의 IDinclude_all_efforts
(선택 사항): 세그먼트 작업 포함(기본값: false)
활동 세그먼트 가져오기
특정 활동에서 세그먼트를 검색합니다.
매개변수:
세그먼트 리더보드 받기
특정 세그먼트의 리더보드를 가져옵니다.
매개변수:
segment_id
: 세그먼트의 ID- 다양한 선택 필터(성별, 연령대 등)
개발자 가이드
프로젝트 설정
- 저장소를 복제합니다.
git clone <repository-url>
cd strava
- 종속성 설치:
- 환경 변수 설정:
export STRAVA_CLIENT_ID=your_client_id
export STRAVA_CLIENT_SECRET=your_client_secret
또는 이러한 변수를 사용하여 .env
파일을 만듭니다.
개발 모드에서 실행
MCP CLI로 서버를 실행합니다.
mcp dev strava_mcp/main.py
수동 인증
다음을 실행하여 수동으로 새로 고침 토큰을 얻을 수 있습니다.
프로젝트 구조
strava_mcp/
: 메인 패키지 디렉토리__init__.py
: 패키지 초기화config.py
: pydantic-settings를 사용한 구성 설정models.py
: Strava API 엔터티에 대한 Pydantic 모델api.py
: Strava용 저수준 API 클라이언트auth.py
: Strava OAuth 인증 구현oauth_server.py
: 독립형 OAuth 서버 구현service.py
: 비즈니스 로직을 위한 서비스 계층server.py
: MCP 서버 구현
tests/
: 단위 테스트strava_mcp/main.py
: 서버를 실행하기 위한 주요 진입점get_token.py
: 새로 고침 토큰을 수동으로 가져오는 유틸리티 스크립트
테스트 실행
PyPI에 게시
패키지 빌드
# Build both sdist and wheel
uv build
PyPI에 게시
# Publish to Test PyPI first
uv publish --index testpypi
# Publish to PyPI
uv publish
특허
MIT 라이센스
감사의 말