From 7d0364e0ed0b2910f834403c0b2cabffc33dbd80 Mon Sep 17 00:00:00 2001 From: Matthias Hinrichs Date: Thu, 14 May 2026 20:10:27 +0200 Subject: [PATCH] chore: update landing page copy, improve code formatting, and add PyPI publish workflow --- .gitea/workflows/cicd.yml | 22 ++++++++++++++++++++++ pyproject.toml | 5 ++++- website/index.html | 30 ++++++++++++++++++++---------- 3 files changed, 46 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/cicd.yml b/.gitea/workflows/cicd.yml index cd1b291..f43d778 100644 --- a/.gitea/workflows/cicd.yml +++ b/.gitea/workflows/cicd.yml @@ -34,6 +34,28 @@ jobs: - name: Run Ruff (Lint & Syntax Check) run: uv run ruff check src + publish-pypi: + name: Publish to PyPI + needs: lint + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v2 + with: + version: "latest" + + - name: Build package + run: uv build + + - name: Publish to PyPI + run: uv publish --token ${{ secrets.PYPI_TOKEN }} + env: + UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }} + build-and-push: name: Build & Push Docker Image needs: lint diff --git a/pyproject.toml b/pyproject.toml index 3227236..5f0a4a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" [project] -name = "strava-mcp-server" +name = "strava-mcp-server-hnrx" dynamic = ["version"] description = "A Model Context Protocol (MCP) server that exposes the Strava API v3 as tools, resources, and prompts for AI agents." readme = "README.md" @@ -54,6 +54,9 @@ dev = [ [tool.hatch.version] source = "vcs" +[tool.hatch.build.targets.wheel] +packages = ["src/strava_mcp_server"] + [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] diff --git a/website/index.html b/website/index.html index 5e85cfd..416db2d 100644 --- a/website/index.html +++ b/website/index.html @@ -1,11 +1,13 @@ + Strava MCP Server | Modern Training Data Access +
@@ -27,9 +29,11 @@
Futuristic Background

Empower your AI with Strava Data.

-

A production-ready Model Context Protocol (MCP) server that exposes the Strava API for AI agents and LLMs.

+

A production-ready Model Context Protocol (MCP) server that exposes the Strava + API for AI agents and LLMs.

@@ -37,13 +41,15 @@

Features

-

Comprehensive access to your training data through standardized MCP tools.

+

Comprehensive access to your training data through standardized MCP + tools.

👤

Athlete Profiles

-

Detailed profiles, heart rate zones, and power stats for personalized analysis.

+

Detailed profiles, heart rate zones, and power stats for personalized + analysis.

🚴 @@ -69,8 +75,11 @@

Optimized for both humans and machines. Every tool delivers two outputs:


    -
  • User Content: Formatted markdown for an aesthetic display in the chat.
  • -
  • Assistant Resource: Structured JSON for precise data processing by the LLM.
  • +
  • User + Content: Formatted markdown for an aesthetic display + in the chat.
  • +
  • Assistant Resource: Structured JSON for precise data processing by the LLM.
@@ -141,7 +150,7 @@ "nav-arch": "Architektur", "nav-install": "Installation", "nav-repo": "Quellcode", - "hero-title": "Stärke deine KI mit Strava Daten.", + "hero-title": "Analysiere deine Strava-Daten mit KI-Power.", "hero-subtitle": "Ein produktionsreifer Model Context Protocol (MCP) Server, der die Strava API für AI Agents und LLMs nutzbar macht.", "btn-start": "Loslegen", "btn-more": "Mehr erfahren", @@ -168,7 +177,7 @@ function setLanguage(lang) { localStorage.setItem('preferredLang', lang); - + // Update all text elements document.querySelectorAll('[data-i18n]').forEach(el => { const key = el.getAttribute('data-i18n'); @@ -184,7 +193,7 @@ btn.classList.add('active'); } }); - + document.documentElement.lang = lang; } @@ -193,4 +202,5 @@ setLanguage(savedLang); - + + \ No newline at end of file