home-remote-mcps
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 productionSiehe 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-connectorEine laufende
home-auth-Instanz (für diese App registrierter OAuth2-Client) für die Browser-AnmeldungDocker 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 8000GARMIN_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-wideHusky-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.
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityDmaintenanceA unified data gateway MCP server that enables Claude to interact with multiple external REST and GraphQL APIs through OAuth 2.0 authentication.
- AlicenseNot gradedqualityCmaintenanceA 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
- FlicenseNot gradedqualityDmaintenanceRemote MCP server acting as a personal assistant with secure OAuth authentication, integrating Google Calendar, TickTick tasks, meal logging, workout tracking, and water intake logging.
- AlicenseNot gradedqualityAmaintenanceA multi-user OAuth 2.1-protected gateway that enables Claude to access Garmin Connect tools through secure per-user sessions.4MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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