Skip to main content
Glama
Wyrhta-Labs

heorth-mcp

by Wyrhta-Labs

heorth-mcp

El servidor MCP único del hogar de Wyrhta Labs, que se ejecuta como su propio contenedor.

No posee datos ni lógica de dominio. Cada llamada de herramienta se traduce en llamadas a la API REST pública de un servicio upstream, de modo que una herramienta MCP solo puede hacer lo que un miembro autenticado del hogar ya podría hacer por HTTP.

MCP client ──Streamable HTTP──▶ heorth-mcp ──▶ Heorth REST      (37 tools)
                                           └─▶ KithLedger REST  (13 tools)

Estado

Las 50 herramientas portadas. Las 37 herramientas de Heorth (household.*, calendar.*, meals.*, library.*, inventory.*, tasks.*, feoh.*) llegaron en la tarea A5; las 13 herramientas kith.* en la tarea B11. tools/list sirve lo que proporcionen los upstreams configurados: ambas, una o (con ninguna configurada) nada en absoluto. El código MCP sigue viviendo incrustado en Heorth y KithLedger y solo se elimina allí una vez que la herramienta equivalente aquí se verifica contra el contenedor desplegado.

Configuración

Variable

Significado

HEORTH_BASE_URL

URL base de Heorth. Sin definir -> las 37 herramientas de Heorth no se registran.

KITH_BASE_URL

URL base de KithLedger. Sin definir -> las 13 herramientas kith.* no se registran. Requiere HEORTH_BASE_URL (ver más abajo): si se define sola, es un error de arranque.

KITH_AUDIENCE

La audiencia satélite para los tokens intercambiados (por defecto kithledger). Debe coincidir con SATELLITE_AUDIENCES de Heorth y SATELLITE_AUDIENCE de KithLedger.

PORT

Por defecto 3200.

UPSTREAM_TIMEOUT_MS

Por llamada upstream, por defecto 10000.

heorth-mcp no posee ninguna credencial propia, para ninguno de los dos upstreams. Las llamadas a Heorth llevan el Bearer he_... del llamante tal cual. Las llamadas a KithLedger llevan un token de miembro de corta duración que heorth-mcp intercambia en Heorth (POST /api/v1/auth/satellite-token, ADR 0009) usando esa misma credencial del llamante, almacenada en caché en memoria por llamante durante poco menos de sus 5 minutos de vida. Por eso kith.* necesita ambos upstreams: Heorth es la autoridad de identidad, así que si es inalcanzable, las herramientas kith.* fallan (IDENTITY_UNAVAILABLE) incluso cuando KithLedger está sano.

KITH_API_KEY ha desaparecido. KithLedger aplica control de acceso por miembro (ADR 0004) y ninguna de sus tres clases de credenciales kl_ es el miembro llamante: una clave member lee como el propio ámbito de la cuenta emisora, una clave household solo ve la porción del hogar, una clave ops no tiene acceso a datos en absoluto.

Creado por ADR 0008 — MCP como contenedor independiente sobre REST en el meta repositorio Wyrhta-Labs/wyrhta-labs.

Imagen del contenedor

Publicado en el GitHub Container Registry como ghcr.io/wyrhta-labs/heorth-mcp mediante .github/workflows/build-image.yml. El flujo de trabajo primero verifica tipos y ejecuta la suite de pruebas completa (una suite en rojo bloquea la publicación) y luego construye el Dockerfile de este repositorio para linux/amd64.

Solo dos cosas publican: un push a main y una etiqueta git v*. Nada más lo hace, así que el registro se mantiene libre de basura de ramas.

Etiqueta

Producida por

¿Fijable?

main-<short sha>

cada push a main

sí: inmutable, una construcción por commit

<version>, <major>.<minor>, <major>

un push de etiqueta v* (p. ej. v0.2.0 -> 0.2.0, 0.2, 0)

<version> sí; las truncadas se mueven

main

cada push a main

no: puntero móvil

latest

solo un push de etiqueta v*

no: puntero móvil

Fijándolo en producción. El deploy/compose.prod.yml del meta repositorio requiere una etiqueta explícita en deploy/.env:

HEORTH_MCP_IMAGE_TAG=main-a1b2c3d   # a main build, by short commit sha
HEORTH_MCP_IMAGE_TAG=0.2.0          # a release, once a v0.2.0 tag exists

Nunca fijes latest ni main: ambos se mueven bajo el despliegue en ejecución y anulan el propósito de fijar. Usa el main-<sha> exacto que muestra la ejecución del flujo de trabajo (o docker images), o el semver de un lanzamiento.

La imagen es privada, como el repositorio. Un host que la extraiga necesita un inicio de sesión en GHCR con read:packages para la organización Wyrhta-Labs.

Repositorios relacionados

Repo

Rol

Wyrhta-Labs/wyrhta-labs

Concepto, ADR, pila de despliegue

Wyrhta-Labs/Heorth

Centro del hogar — upstream

Wyrhta-Labs/KithLedger

Gestor de relaciones — upstream

Wyrhta-Labs/wyrhta-core

Librería compartida, fijada por etiqueta git

-
license - not tested
-
quality - not tested
C
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 Connectors

  • 34 production API tools over one hosted MCP endpoint.

  • Hosted MCP server for personal tools: budgets, savings goals, spaced repetition, tips, countdowns.

  • Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API.

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/Wyrhta-Labs/heorth-mcp'

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