heorth-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@heorth-mcpAdd 'buy anniversary gift' to my tasks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
heorth-mcp
The Wyrhta Labs household's single MCP server, running as its own container.
It owns no data and no domain logic. Every tool call is translated into calls against an upstream service's public REST API — so an MCP tool can only ever do what an authenticated household member could already do over HTTP.
MCP client ──Streamable HTTP──▶ heorth-mcp ──▶ Heorth REST (37 tools)
└─▶ KithLedger REST (13 tools)Status
All 50 tools ported. The 37 Heorth tools (household.*, calendar.*,
meals.*, library.*, inventory.*, tasks.*, feoh.*) landed in task A5;
the 13 kith.* tools in task B11. tools/list serves whatever the configured
upstreams provide — both, one, or (with neither configured) nothing at all. The
MCP code still lives embedded in Heorth and KithLedger and is deleted there only
once the equivalent tool here is verified against the deployed container.
Configuration
Variable | Meaning |
| Heorth's base URL. Unset -> the 37 Heorth tools are not registered. |
| KithLedger's base URL. Unset -> the 13 |
| The satellite audience for exchanged tokens (default |
| Default |
| Per upstream call, default |
heorth-mcp holds no credential of its own — for either upstream. Heorth
calls carry the caller's Bearer he_... verbatim. KithLedger calls carry a
short-lived member token that heorth-mcp exchanges at Heorth
(POST /api/v1/auth/satellite-token, ADR 0009) using that same caller
credential, cached in memory per caller for just under its 5-minute life. That
is why kith.* needs both upstreams: Heorth is the identity authority, so with
it unreachable the kith.* tools fail (IDENTITY_UNAVAILABLE) even when
KithLedger is healthy.
KITH_API_KEY is gone. KithLedger enforces per-member access control
(ADR 0004) and none of its three kl_ credential kinds is the calling member: a
member key reads as the issuing account's own scope, a household key sees
only the household slice, an ops key has no data access at all.
docs/spec/tool-surface.md— the 50-tool contract and its REST mappingdocs/spec/migration.md— what moves out of the upstream repos, in what order, and what must be true before each deletionCLAUDE.md— architecture, auth model, and conventions
Created by ADR 0008 — MCP as a standalone container over REST in the meta
repo Wyrhta-Labs/wyrhta-labs.
Container image
Published to the GitHub Container Registry as
ghcr.io/wyrhta-labs/heorth-mcp by
.github/workflows/build-image.yml. The
workflow typechecks and runs the full test suite first — a red suite blocks the
publish — then builds this repo's Dockerfile for linux/amd64.
Only two things publish: a push to main and a v* git tag. Nothing else
does, so the registry stays free of branch junk.
Tag | Produced by | Pinnable? |
| every push to | yes — immutable, one build per commit |
| a |
|
| every push to | no — moving pointer |
| a | no — moving pointer |
Pinning it in production. The meta repo's deploy/compose.prod.yml
requires an explicit tag in 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 existsNever pin latest or main — both move under the running deployment and
defeat the point of pinning. Use the exact main-<sha> shown in the workflow
run (or docker images), or the semver of a release.
The image is private, like the repo. A host that pulls it needs a GHCR login
with read:packages for the Wyrhta-Labs org.
Related repos
Repo | Role |
Concept, ADRs, deploy stack | |
Household hub — upstream | |
Relationship manager — upstream | |
Shared lib, pinned by git tag |
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