[project]
name = "strava-training-mcp"
version = "1.0.0"
description = "A comprehensive Model Context Protocol (MCP) server for Strava API integration, designed for training analysis, marathon preparation, and performance tracking"
readme = "README.md"
license = { text = "MIT" }
authors = [
{ name = "hxie", email = "hxie@pallassecurity.com" }
]
requires-python = ">=3.12"
keywords = [
"strava",
"mcp",
"model-context-protocol",
"marathon",
"running",
"training",
"athlete",
"fitness",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Scientific/Engineering :: Information Analysis",
]
dependencies = [
"httpx>=0.24.0",
"python-dotenv>=1.0.0",
"fastmcp>=0.1.0",
"rich>=13.0.0",
]
[project.optional-dependencies]
dev = [
"ruff>=0.1.0",
"mypy>=1.0.0",
]
[project.scripts]
strava-training-mcp = "src.server:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src"]
[tool.hatch.build]
only-packages = true
[tool.ruff]
line-length = 100
target-version = "py312"
select = ["E", "F", "I", "B", "W"]
[tool.mypy]
python_version = "3.12"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true