heorth-mcp
heorth-mcp
Единственный MCP-сервер домашнего хозяйства Wyrhta Labs, работающий в собственном контейнере.
Он не владеет ни данными, ни доменной логикой. Каждый вызов инструмента преобразуется в вызовы публичного REST API вышестоящего сервиса — поэтому MCP-инструмент может сделать только то, что уже мог бы сделать аутентифицированный член домохозяйства по HTTP.
MCP client ──Streamable HTTP──▶ heorth-mcp ──▶ Heorth REST (37 tools)
└─▶ KithLedger REST (13 tools)Статус
Все 50 инструментов перенесены. 37 инструментов Heorth (household.*, calendar.*, meals.*, library.*, inventory.*, tasks.*, feoh.*) появились в задаче A5; 13 инструментов kith.* — в задаче B11. tools/list отдаёт то, что предоставляют настроенные вышестоящие сервисы — оба, один или (если не настроен ни один) вообще ничего. Код MCP по-прежнему живёт встроенным в Heorth и KithLedger и удаляется оттуда только после того, как эквивалентный инструмент здесь будет проверен на развёрнутом контейнере.
Конфигурация
Переменная | Значение |
| Базовый URL Heorth. Не задан -> 37 инструментов Heorth не регистрируются. |
| Базовый URL KithLedger. Не задан -> 13 инструментов |
| Спутниковая аудитория для обмениваемых токенов (по умолчанию |
| По умолчанию |
| Таймаут на вызов вышестоящего сервиса, по умолчанию |
heorth-mcp не хранит собственных учётных данных — ни для одного из вышестоящих сервисов. Вызовы Heorth несут Bearer he_... вызывающего абонента без изменений. Вызовы KithLedger несут кратковременный токен участника, который heorth-mcp обменивает в Heorth (POST /api/v1/auth/satellite-token, ADR 0009), используя те же учётные данные вызывающего, кэшируя их в памяти для каждого вызывающего чуть менее чем на 5 минут его жизни. Вот почему kith.* требует оба вышестоящих сервиса: Heorth является центром идентификации, поэтому, когда он недоступен, инструменты kith.* завершаются с ошибкой (IDENTITY_UNAVAILABLE), даже если KithLedger здоров.
KITH_API_KEY больше нет. KithLedger применяет контроль доступа на уровне участников (ADR 0004), и ни один из трёх типов учётных данных kl_ не является вызывающим участником: ключ member читает в рамках собственной области выдающего аккаунта, ключ household видит только срез домохозяйства, ключ ops вообще не имеет доступа к данным.
docs/spec/tool-surface.md— контракт на 50 инструментов и его REST-сопоставлениеdocs/spec/migration.md— что переносится из вышестоящих репозиториев, в каком порядке и что должно быть истинным перед каждым удалениемCLAUDE.md— архитектура, модель аутентификации и соглашения
Создано по ADR 0008 — MCP как отдельный контейнер поверх REST в мета-репозитории Wyrhta-Labs/wyrhta-labs.
Образ контейнера
Публикуется в GitHub Container Registry как ghcr.io/wyrhta-labs/heorth-mcp с помощью .github/workflows/build-image.yml. Рабочий процесс сначала выполняет проверку типов и запускает полный набор тестов — красный набор блокирует публикацию — затем собирает Dockerfile этого репозитория для linux/amd64.
Публикуют только два события: push в main и git-тег v*. Больше ничего, поэтому реестр остаётся свободным от мусора веток.
Тег | Создаётся | Закрепляемый? |
| каждый push в | да — неизменяемый, одна сборка на коммит |
| push тега |
|
| каждый push в | нет — перемещаемый указатель |
| только push тега | нет — перемещаемый указатель |
Закрепление в продакшене. Мета-репозиторий deploy/compose.prod.yml требует явный тег в 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Никогда не закрепляйте latest или main — оба перемещаются под работающим развёртыванием и сводят на нет смысл закрепления. Используйте точный main-<sha>, указанный в запуске рабочего процесса (или docker images), или semver релиза.
Образ является приватным, как и репозиторий. Хост, который его тянет, должен иметь вход в GHCR с read:packages для организации Wyrhta-Labs.
Связанные репозитории
Репозиторий | Роль |
Концепция, ADR, стек развёртывания | |
Домашний хаб — вышестоящий сервис | |
Менеджер отношений — вышестоящий сервис | |
Общая библиотека, закрепляется git-тегом |
This server cannot be installed
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.
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/Wyrhta-Labs/heorth-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server