Skip to main content
Glama
VibeSynergy MCP Server
by rvartanov

VibeSynergy

Your own health and training archive. VibeSynergy collects your data from Garmin, Withings, Strava, intervals.icu, CalDAV calendars and activity files into one local archive. You see it in a web portal, and any AI app can read it through a standard MCP server. An optional AI coach runs inside VibeSynergy on your own API key.

Everything runs on your own machine. Your data stays in your data folder and never leaves it unless you connect a service yourself.

Status: alpha (0.0.1). Expect changes between versions.

Install

INSTALL.md has every way, step by step, for people and for AI assistants. In short:

  • Windows, macOS, Linux, with Docker: save compose.yaml, put your email address in it, docker compose up -d, and open the login link from docker compose logs vibesynergy.

  • macOS, Linux, with uv (Python 3.12+):

    uv tool install git+https://github.com/rvartanov/vibesynergy
    vibesynergy init --email you@example.com   # prints your one-time login link
    vibesynergy serve                          # the portal on http://127.0.0.1:8447

Open the link, choose a password, and optionally a second step (a code by mail or an authenticator app). To look around without any account: vibesynergy init --demo and vibesynergy sync demo (synthetic data). Updating: vibesynergy update or Update now in Settings → System (container: docker compose pull && docker compose up -d).

Related MCP server: garmin-mcp

Connect your accounts

Enable a source in the config file and log in once. VibeSynergy only stores tokens, and stores them encrypted:

[sources.garmin]
enabled = true
vibesynergy auth garmin                           # once
vibesynergy backfill garmin --start 2015-01-01    # history, month by month
vibesynergy import garmin-export <export.zip>     # a Garmin account export
vibesynergy import strava-export <export.zip>     # a Strava account archive
vibesynergy import files <folder>                 # FIT, GPX or TCX files

Withings, Strava, intervals.icu and CalDAV are set up the same way or in the portal under Settings. See docs/SOURCES.md for each source.

Connect an AI app

Any MCP client (Claude, ChatGPT, a local model, …) connects in the portal under Settings → Coach apps. Set a passphrase, give the app the MCP address, and approve it on the consent page. You choose per app what it may do: read, read.expert, diary.write, coach.write, plan.propose, plan.write, sync, publish and sql. Writing to your plan, publishing and free-form queries stay off unless you turn them on.

Personal access tokens are made on the same page and always expire (30, 90 or 365 days).

The AI coach

The coach runs inside VibeSynergy on your own API key (Anthropic, OpenAI, xAI or a local server) and is off until you switch it on in Coach → Settings. Each task (morning advice, week review, race brief, and more) has its own switch, schedule and model. It fills in sessions within the plan you set up; changing planned sessions, thresholds or the knowledge base waits for your approval. See docs/AI_HARNESS.md.

Dates and times

Dates are shown day-month-year (d-m-yyyy), clock times on 24 hours, in the time zone from [user] timezone. The portal is in Dutch or English. Weather and temperatures in °C or °F, wind in km/h, m/s, knots or Beaufort: Settings → System ([user] temperature, [user] wind). AI apps always get SI values (°C, m/s) over MCP.

Development

uv sync
uv run ruff check . && uv run ruff format --check .
uv run basedpyright
uv run pytest -n 4

See CONTRIBUTING.md for the conventions. Tests use synthetic data only; never commit real exports, FIT files or tokens.

Licence

MIT, see LICENSE. Third-party code and assets: THIRD_PARTY.md.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      A
      quality
      D
      maintenance
      Provides read-only access to your Garmin Connect health data, including sleep, HRV, body battery, stress, training readiness, and activities, through an MCP server.
      2
      14
      -
    • A
      license
      B
      quality
      B
      maintenance
      MCP server for local fitness-data extraction and analysis from Garmin Connect, Intervals.icu, and Strava. Provides read-only analytical tools over DuckDB and targeted Strava enrichment.
      35
      469 npm
      1
      AGPL 3.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP clients to connect to a privacy-first, self-hostable workout planning and training log, allowing coaching agents to preview and apply program changes while accessing training data through OAuth-protected endpoints.
      AGPL 3.0