Skip to content
LabTether
All posts

· LabTether

Why We Built an AI Agent Gateway for Homelabs

Everyone who runs a homelab keeps a map of it in their head. You know which nodes run what, where storage is tight, which containers are fragile. But acting on that knowledge (checking status, finding a fault, applying a fix) still means moving between web UIs and typing SSH commands.

The Idea

An AI client can take on some of that work if it can read the state of your lab and run the commands you would run. MCP (Model Context Protocol) is an open standard for giving AI clients that kind of access.

The LabTether hub has a built-in MCP server. Point Claude, Cursor or another MCP client at https://<hub>:8443/mcp with a LabTether API key, and the client can list your devices, read metrics, run commands and restart services, within what that key allows.

How It Works

When an AI client connects, the hub offers it:

  • Resources. Three views of current state: your devices (labtether://assets), the active alerts (labtether://alerts/active) and your groups (labtether://groups).
  • Tools. 32 of them. They list and read devices, run a command on one device or many, list and restart services, read files and directories, and show processes, network, disks and packages. For Docker they list hosts and containers, read container logs and stats, and restart a container. They also list and acknowledge alerts, give a metrics overview, and reboot, shut down or wake a device. Others list schedules, webhooks, saved actions, update plans and connector health.
  • Topology. The topology_edges tool returns the links from the Topology page, such as which VM runs on which Proxmox node.

LabTether has no AI model and calls no AI service. When you ask your client "What's the status of my Proxmox nodes?", the client calls tools such as assets_list and metrics_overview. LabTether supplies the data; the model you chose writes the answer.

Why MCP

We chose MCP because it's an open standard. You're not locked into one AI provider. Today you might use Claude; tomorrow you might run a local model through an MCP client on your own hardware. The hub works with any client that speaks MCP over Streamable HTTP.

Security

Each AI client connects with a LabTether API key. A key has a role, scopes, an optional list of allowed devices and an optional expiry date. It never has more rights than the user who created it, and it can never be an owner key. Each tool checks the key's scopes and device list before it runs, and the hub refuses API keys over plain HTTP.

Every command and change made through MCP is written to the Audit Log, including requests the hub refused. The AI client has no separate way in: it uses the same API keys and scope checks as the CLI and your scripts.

Try It

If you're already running LabTether, the MCP server is built in. Create an API key with only the scopes the client needs in Settings → API Access, add the hub to your client, and start asking. See the gateway documentation for setup instructions.

If you're new to LabTether, get started here.