Skip to main content
Glama

home-remote-mcps

Persönliches Remote-MCP-Gateway. Stellt Garmin Connect, Home Assistant und YouTube als Model Context Protocol-Server bereit, die über HTTP erreichbar sind, sodass Claude (oder ein beliebiger MCP-Client) sie von überall abfragen und steuern kann — ohne lokalen Server, ohne lokale Anmeldedaten.

Die Authentifizierung für die Web-UI wird an ein externes SSO (home-auth, OAuth2) delegiert. MCP-Clients authentifizieren sich separat mit einem pro Benutzer ausgestellten API-Schlüssel, der über diese UI vergeben wird.

Warum ein Sidecar für Garmin

Garmin Connect hat keine offizielle öffentliche API und keinen aktiv gepflegten Node-Client. Der Dienst garmin-connector ist ein kleiner, nur intern genutzter Python-Sidecar, der die Bibliothek garminconnect kapselt, die Garmins Anmeldeablauf (einschließlich MFA) und die Token-Aktualisierung übernimmt. Das NestJS-Backend kommuniziert über das Docker-Netzwerk mit ihm, wobei ein gemeinsames Geheimnis verwendet wird; er wird nie öffentlich exponiert. Home Assistant und YouTube haben normale REST-APIs, daher spricht das Backend sie direkt an.

Related MCP server: FitnessMCP

Projektstruktur

backend/            NestJS API — REST (auth, credentials, API keys) + MCP servers, DDD-ish layers
frontend/            React SPA — login, manage stored credentials, issue MCP API keys
garmin-connector/    FastAPI sidecar — Garmin Connect login/session via `garminconnect`
deploy/              docker-compose + Caddy config for production

Siehe CLAUDE.md für die detaillierte Architektur (Schichten, MCP-Anfragepfad, Connector-Design pro Integration, Authentifizierungsmodell) und ai-docs/ für weiterführendes Referenzmaterial. Für Menschen aufbereitete Anleitungen befinden sich in docs/.

Voraussetzungen

  • Node.js >= 20 (siehe .nvmrc)

  • Python >= 3.11 für garmin-connector

  • Eine laufende home-auth-Instanz (für diese App registrierter OAuth2-Client) für die Browser-Anmeldung

  • Docker für Produktions-Deployments (deploy/docker-compose.yml)

Lokale Entwicklung

npm install                    # installs backend + frontend workspaces

cp backend/.env.example backend/.env          # fill in home-auth + secrets, see comments in the file
cp garmin-connector/.env.example garmin-connector/.env

npm run dev:backend            # http://localhost:3000 (API under /api, Swagger under /api/docs)
npm run dev:frontend           # http://localhost:5173, proxies API calls to the backend

cd garmin-connector && pip install -r requirements.txt && uvicorn app.main:app --reload --port 8000

GARMIN_CONNECTOR_SECRET muss zwischen backend/.env und garmin-connector/.env übereinstimmen.

Build, Test, Lint

npm run build        # frontend, then backend (bundles frontend/dist into the backend build)
npm run test          # backend (jest) then frontend (vitest)
npm run lint           # eslint on both workspaces
npm run format          # prettier --write, repo-wide

Husky-Hooks (pre-commit, pre-push, commit-msg) führen lint-staged und commitlint (Conventional Commits) automatisch aus.

Bereitstellung

Das Dockerfile im Repository-Stammverzeichnis baut mehrstufig frontend → backend → ein Laufzeit-Image, das Litestream für kontinuierliche SQLite-Replikation in einen MinIO- (S3-kompatiblen) Bucket bündelt und beim Start wiederherstellt, wenn MINIO_BUCKET gesetzt ist. garmin-connector/Dockerfile baut das Sidecar-Image separat. deploy/docker-compose.yml führt beide als nebeneinander laufende Dienste in einem internen Docker-Netzwerk aus — der Sidecar hat keinen veröffentlichten Port und ist nur vom Backend unter http://garmin-connector:8000 erreichbar. deploy/Caddyfile ist die Reverse-Proxy-Konfiguration für den öffentlichen Dienst.

Erforderliche Umgebungsvariablen sind inline in backend/.env.example und garmin-connector/.env.example dokumentiert.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A unified data gateway MCP server that enables Claude to interact with multiple external REST and GraphQL APIs through OAuth 2.0 authentication.
  • A
    license
    Not graded
    quality
    C
    maintenance
    A unified MCP server that connects AI assistants to multiple fitness services (Hevy, Strava, Cronometer, Intervals.icu) through a single secure endpoint, enabling workout, nutrition, and activity data access.
    MIT

View all related MCP servers

Related MCP Connectors

  • An authenticated remote MCP server for user-owned devices and one-shot capability invocation.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

  • Self-hosted federated MCP gateway: one OAuth 2.1 MCP server in front of N apps, user-level scopes.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SlobodaFR/home-remote-mcps'

If you have feedback or need assistance with the MCP directory API, please join our Discord server