HomeShed is a self-hosted Model Context Protocol tool server. Add it to your AI assistant and it can check your containers, work with git, remember what it learned across sessions, spot bugs it has seen before, and solve logic problems: 167 tools behind one endpoint that you run and control.
New in 0.7.0: one-click sign-in for Claude.ai and other MCP apps
Add HomeShed to your chat app in one step: paste the address, sign in, approve the 6-digit code on your Control Panel. No key to copy and paste. Every app gets its own access level, limits and an off switch, and your memory, tools and keys stay on your own machine. It's the standard MCP sign-in (OAuth 2.1 with PKCE), so any MCP app that supports sign-in can connect; tested with Claude's custom connectors. Free, in the open-source core. Set it up
Why people use it
Free and open source (Apache-2.0). One install, 167 tools, no account, no GPU.
New in 0.7.0
- One-click sign-in for Claude.ai and other MCP apps. Paste the address, sign in, approve the 6-digit code on your Control Panel: no key to copy. Every app gets only the tools you choose, its own limits and an off switch. Your HomeShed, its memory and its tools, now reach your chat apps, not just the ones on your computer. It's the standard MCP sign-in, tested with Claude's custom connectors (how). HomeShed Pro adds per-app tool sets, a savings report and approve-in-chat cards on top.
- Cheaper on every turn: the front door. Instead of loading 160+ tool descriptions, an app sees five tools that find and run all the others. Replies can be cut to just the fields you need, or kept on the server and read a page at a time, and pictures arrive as real images, not text. Fewer tokens, and small models pick the right tool more often. Switch it per app on the Control Panel's API access page.
- Choose when Claude Code compacts. One setting sets how full a chat gets before Claude Code summarises it.
- See what happened to a request.
approvals.statustells your AI whether something it asked for was approved, declined or is still waiting, and who decided.
Everything else
- Memory that carries across sessions. Your AI remembers facts, decisions and fixes between conversations and across projects. It's built in, with nothing extra to run. Facts are kept by category and recalled by relevance to the task in hand, and in Claude Code each project gets its own memory automatically.
- Finds the API keys your AI has already seen. Claude Code keeps every conversation on disk as plain text, including any key that was pasted or printed. HomeShed checks those files and tells you which kinds of key are there, where, and where to rotate them, without showing the keys themselves.
- Reasoning where language models slip. A logic and constraint solver (Z3) handles the puzzles models get wrong, big tasks break into steps, and a router says when a task needs a frontier model and when a smaller one will do.
- Your model first, the cloud when you choose. Routine work like drafts and summaries can go to a model you run (Ollama, llama.cpp, LM Studio) or to cloud keys you bring. HomeShed doesn't include a model or need a GPU.
- Ready-to-publish checks for your own projects. What a professional repository needs, private details and secrets caught before they go public, docs checked against the code, and a progress score. They're the checks used to prepare this release.
- Mistakes that stay fixed. Your AI logs corrections and broken rules as observations, repeats get flagged, and a known-bugs list answers "has this error been seen before?"
- Checks before your AI acts. Rule packs check each command and file write before Claude Code runs it, and stop risky ones with the reason and what to do instead. Anyone can write their own in a few lines of JSON (how). Or skip the trial and error: HomeShed Pro's five packs are already written, tested on real sessions and kept up to date, and each one is a single install.
- A Control Panel, if you want one. An optional web page on your own machine shows what's running and what it has saved you, with a switch for every tool and a key for every app. Add it any time; HomeShed never needs it.
- One endpoint, you stay in control. Every app gets its own key, tool list and rate limit, and every change to them is logged. Tools that act on your machines start off, and keys sit in an encrypted vault that's never shown to the AI.
- Your homelab at a glance. If you run Proxmox, the Control Panel's Proxmox tab and
proxmox.healthshow every node, VM and container, and send you an alarm when something breaks and again when it recovers. A Terminal tab (off until you switch it on) gives you SSH to your own machines in the browser. - Spend you can cap. Every app gets a daily dollar cap for paid models and images. At the cap its paid calls stop and everything free keeps working.
- Never lose your place (Pro). Before Claude Code compacts a long session, HomeShed Pro saves a note of what you were doing and puts it back straight after. More.
Try it: things to ask
Once HomeShed is added, just ask your AI. A few favourites:
Install
Install only from the official sources: PyPI
homeshed-mcp,ghcr.io/keefng8/homeshed-mcp, github.com/keefng8/homeshed-mcp and the MCP Registryio.github.keefng8/homeshed-mcp. Look-alikes may carry malware (more).
A real run, from setup to the first answers: Three steps. No accounts, no keys, no GPU.
1. Install uv (the tool that runs homeshed-mcp; once per computer). Open a terminal (Windows: press Start, type
PowerShell, press Enter; macOS: open Terminal) and paste:
Then close the terminal and open a new one, so it can find uv. uvx --version prints a version number when it's
ready.
2. Add it to your AI app. For Claude Code (already installed), one command finds a local model if you run one, lists the optional tool groups (the ones it finds are ticked: press Enter to keep them), then asks before adding HomeShed (answer Y):
uvx homeshed-mcp setup
For Cursor, VS Code or Claude Desktop, click the button for your app (Claude Desktop's downloads homeshed-mcp.mcpb:
double-click that file). Or add it to Claude Code yourself:
claude mcp add -s user homeshed-mcp -- uvx homeshed-mcp
3. Quit your app fully, open it again, and try it in its chat (Windows: right-click its icon by the clock and choose Quit; macOS: Cmd+Q; Cursor and VS Code: use agent mode). These work straight away, with nothing else set up:
- "What tools do you have from homeshed-mcp?"
- "What are github.com's IP addresses?"
- "Is port 443 open on example.com?"
- "Use the logic solver: which whole numbers x and y give x + y = 10 and x − y = 4?"
- "What operating system and CPU is this machine running?"
Stuck? If the terminal says uvx isn't recognised or not found, open a new terminal and try again. Then run
uvx homeshed-mcp doctor: it checks everything and gives you the exact command to fix anything that's missing. If your app
can't start uvx (common for apps opened from the macOS Dock), put the full path that which uvx prints into its MCP
settings in place of uvx.
Upgrading? uvx homeshed-mcp@latest doctor, then restart your app. Your data is kept.
All install methods, and steps for AI agents.
One-line commands
Claude Desktop
Easiest: download homeshed-mcp.mcpb from the latest release and
double-click it. Or add this to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"homeshed-mcp": {
"command": "uvx",
"args": [
"homeshed-mcp"
]
}
}
}
The same mcpServers block works in Cursor (~/.cursor/mcp.json), Windsurf
(~/.codeium/windsurf/mcp_config.json) and Cline (MCP Servers → Configure).
VS Code (.vscode/mcp.json)
{
"servers": {
"homeshed-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"homeshed-mcp"
]
}
}
}
Zed (settings.json)
{
"context_servers": {
"homeshed-mcp": {
"source": "custom",
"command": "uvx",
"args": [
"homeshed-mcp"
]
}
}
}
OpenCode (opencode.json)
{
"mcp": {
"homeshed-mcp": {
"type": "local",
"command": [
"uvx",
"homeshed-mcp"
],
"enabled": true
}
}
}
Goose (~/.config/goose/config.yaml; on Windows %APPDATA%\Block\goose\config\config.yaml)
extensions:
homeshed-mcp:
type: stdio
name: homeshed-mcp
enabled: true
cmd: uvx
args: [homeshed-mcp]
timeout: 300
Codex (~/.codex/config.toml)
[mcp_servers.homeshed-mcp]
command = "uvx"
args = ["homeshed-mcp"]
No uv yet? Install it with one command.
Pass settings as environment variables, for example with -e in claude mcp add:
claude mcp add -s user homeshed-mcp -e LOCAL_AI_BASE_URL=http://localhost:11434/v1 -- uvx homeshed-mcp
Keep keys out of config files. A key passed with
-eis saved in plain text in that client's config. Where your client supports it, point at an environment variable instead, and never commit a config that holds a key.
New to terminals? Follow the step-by-step guide: every step explained, with what you should see after each one.
Run it as a server for all your apps (Docker)
Run it once and connect every assistant, agent and machine to it, each with its own key, grants and limits.
On the server (it needs Docker, and uv from step 1 above):
git clone https://github.com/keefng8/homeshed-mcp.git && cd homeshed-mcp
uvx homeshed-mcp init # writes .env here (token, vault key, allowed hosts) and prints your owner token once
docker compose up -d # listens on 127.0.0.1:8765
Then, on the machine where your AI app runs (the same machine here):
Put the token init printed in an environment variable named HOMESHED_TOKEN:
- Windows:
setx HOMESHED_TOKEN "paste-token-here" - macOS:
echo 'export HOMESHED_TOKEN=paste-token-here' >> ~/.zshrc - Linux:
echo 'export HOMESHED_TOKEN=paste-token-here' >> ~/.bashrc
Then open a new terminal, and run:
claude mcp add -s user --transport http homeshed-mcp 'http://127.0.0.1:8765/mcp' --header 'Authorization: Bearer ${HOMESHED_TOKEN}'
Keep the single quotes: Claude Code then saves only the variable's name and reads the token when it connects, so the
token never goes into its settings file. The server keeps its copy in .env (git ignores it; back it up, since
init shows the token only once). To share the setup with a team, commit a .mcp.json that names the variable
("Authorization": "Bearer ${HOMESHED_TOKEN}"), never the token itself. Better still, give each app its own key:
Connect Claude Code to your server. To connect from other machines, see
configuration.
Add the Control Panel (optional)
A web page for your install, on your own machine: see at a glance what's running and what it has saved you, switch any tool off, give each app its own key, and keep your keys encrypted in one place. HomeShed never needs it. Add it now, later, or not at all, and remove it without touching HomeShed.
With Docker, in the HomeShed folder:
docker compose --profile panel up -d
docker compose logs panel # the first-run password, printed once
Without Docker: make a folder for it, open a terminal there and run uvx homeshed-mcp init once (skip this if you
already did). Then, in that folder:
uvx homeshed-mcp serve --http # HomeShed as a server; leave it running
uvx --from "homeshed-mcp[panel]" homeshed-mcp panel # in a second terminal
Then open http://127.0.0.1:9090 and sign in. The panel answers on this machine only and always asks for a password. Every page says Not set up yet, and what it needs, for anything you haven't added. More: the panel's README and its page-by-page guide.
Connect a chat app with sign-in (OAuth)
Chat apps can connect by signing in, so nobody copies a token. HomeShed uses the standard MCP sign-in (OAuth 2.1 with PKCE, dynamic client registration and client metadata documents), so any MCP app that supports sign-in can connect; it's tested with Claude's custom connectors. You need the server running (Docker, above), the Control Panel (to approve each sign-in), and an https address the chat app can reach it at: a service that gives your server a public web address, such as Cloudflare Tunnel, Tailscale Funnel or Caddy.
- In
.env, setMCP_PUBLIC_URLto that address and add its name toMCP_ALLOWED_HOSTS, for example:
Then runMCP_PUBLIC_URL=https://mcp.example.com MCP_ALLOWED_HOSTS=localhost:8765,127.0.0.1:8765,mcp.example.comdocker compose up -dagain (a plain restart doesn't read.envchanges). WithMCP_PUBLIC_URLunset, sign-in is off. - In the chat app, add a custom connector with
https://mcp.example.com/mcpand choose sign-in (in Claude: "Sign in now", "Use Claude's published identity" or "Register automatically"). - A page opens with a 6-digit code. On the Control Panel, press Waiting for you at the top of the page. Check the Sign-in waiting card shows the same code, give the app a name, choose Read-only (recommended), and press Approve.
Each sign-in is then an app on the API page: its grants, tool view, limits, suspend and delete work as for any app, and deleting it (or rotating its key) ends its sign-in. Access tokens last an hour and refresh for 60 days; only their SHA-256 hashes are stored. A chat app left unused for 60 days signs in again. A sign-in waits 10 minutes for you, then expires. Approve only a sign-in you just started yourself, with the same code on both screens: anyone who can reach the address can start one and call themselves "Claude".
What your AI can do
flowchart LR
C["Claude Code · Claude Desktop<br/>Cursor · VS Code · any MCP client"] -- "one endpoint" --> R["HomeShed<br/>keys · grants · limits · audit"]
R --> T["Built-in tools<br/>memory · git · files · network · logic solver · workflows"]
R -. "if you run one" .-> L["Your model<br/>Ollama · llama.cpp · LM Studio"]
R -. "your keys" .-> K["Cloud models<br/>any OpenAI-compatible provider"]
R -. "optional" .-> O["Docker · Uptime Kuma · ntfy<br/>memory-core · code graph"]
Tools
167 tools in 42 groups. write tools change something; 🔒 = off until you enable it (see Security).
Every tool has its own page in capabilities/ with inputs, examples and risks.
Security
HomeShed can act on your machines, so it's built to be dull and safe out of the box:
- On your own machine (the one-line install) it talks only to the app that started it, with nothing listening on the network.
- As a Docker server, a token on every request, including from localhost, with
HostandOriginchecks against DNS rebinding. The one exception is/healthz, which says only{"status": "ok"}so an uptime monitor can check it. The server refuses to start without a token and a list of allowed hosts. - Listens on
127.0.0.1by default. Putting it on the internet is opt-in: behind an access proxy such as Cloudflare Access, or, for chat apps, with sign-in switched on, where/mcpstill needs a token and a chat app gets one only after you approve it on the Control Panel. - Runs as an ordinary user in Docker, not root, and can't rewrite its own code there.
- Tools that act on your machines start off. Docker, git writes and code execution each need switching on. Tools that only keep notes for your AI (memory, observations, known bugs) are on.
- Per-app grants: each client gets its own token, tool list, rate limit and expiry, and only sees the tools it's granted; creating, rotating or suspending one is written to an audit log.
- SSRF guard:
web.readand the network tools refuse private and metadata addresses. - No telemetry, and requests aren't logged. Each call is recorded as tool name, time, duration and which app, never its arguments or result; usage counters keep sizes only. Memory, observations and the known-bugs list store only what your AI saves on purpose, on your machine.
Mounting the Docker socket gives root on that machine, so the compose file leaves it out until you uncomment its line (how). To report a vulnerability, see SECURITY.md.
Get HomeShed only from official sources
Popular open-source tools attract look-alike packages and fake copies that carry malware. HomeShed is published only here:
Anything else using the name, a similar name or this project's logo isn't us. Every GitHub release has a
SHA256SUMS file, and PyPI packages are published from this repo's release workflow with provenance, so you can
check what you install. To check a file you downloaded from a release, compare its hash with the line for it in
SHA256SUMS:
certutil -hashfile homeshed-mcp.mcpb SHA256 # Windows
shasum -a 256 homeshed-mcp.mcpb # macOS and Linux
If they don't match, don't open the file. We never ask for your tokens, keys or passwords, by email, message or anywhere else; your keys stay in your own HomeShed. If you find a fake copy, please tell us.
What it's not
- Not a model provider. It includes no AI model and needs no GPU. It uses a model you run, or cloud keys you bring.
- Not a hosted service. You run it yourself, on your own machine or server.
- Not a gateway for other MCP servers. Its tools are built in. To put many existing servers behind one door, run a gateway alongside it.
- Not an autonomous agent. It acts only when your AI app calls a tool, and tools that act on your machines start switched off.
How it compares
Choose something else if you need one focused job done brilliantly (browser automation: Playwright MCP; library docs: Context7), or you already run many MCP servers and just want them behind one door (a gateway). They work alongside HomeShed.
FAQ
No. HomeShed doesn't include a model. Without one, the AI tools say they aren't set up and everything else works. If you run a model, or bring your own cloud keys, routine work can go there instead of your paid assistant.
Only where you point it: your model server, the cloud providers whose keys you add, and your memory store. Two tools
reach outside services, and only when used: web.read sends the page's address to
Jina Reader, which fetches the page, and bugs.find can search public GitHub issues if
you opt in. If you connect HomeShed Pro, it also talks to the Pro website, using your Pro key: to check
your membership and to fetch the packs and the known-bugs feed. Nothing phones home.
- If you turned rule packs on:
uvx homeshed-mcp packs off(it takes HomeShed's hook out of Claude Code's settings). - Remove it from your app:
claude mcp remove homeshed-mcp -s userfor Claude Code, or delete it from the MCP settings (or extensions, for Claude Desktop) of Cursor, VS Code or Claude Desktop. - Free the downloaded files:
uv cache clean homeshed-mcp. - Only if you also want your saved memory, keys and settings gone: delete the data folder
(where it is). For Docker,
docker compose down -vdeletes its volumes.
Only behind an access proxy (for example Cloudflare Access) as well as the token, or with sign-in for chat apps, where you approve each sign-in yourself. See Security.
Yes: one Python file plus a JSON manifest, and every MCP client sees it within its grants. See CONTRIBUTING.md.
Roadmap
✅ available · 🟡 in progress · ⚪ planned
Want something else? Suggest it; a 👍 on an existing idea helps us choose what comes next.
HomeShed Pro
Every curated pack and fix, kept up to date.
HomeShed is free and complete, and it stays that way: every tool and all of its memory. HomeShed Pro is part of Mavis Pro, the membership from the makers of Mavis, a Windows voice assistant with 124 one-click apps. One membership covers both. It adds:
- Never lose your place. Before Claude Code compacts a long session, HomeShed Pro saves a note of
what you were doing and puts it back straight after, so Claude carries on knowing the task. It comes with the Token
Saver pack, and
uvx homeshed-mcp packs compact-at 80sets when compaction starts. Windows and Linux tested; macOS should work. The note stays on your own machine (how it works). - Every curated rule pack, done for you. You can write your own packs, so why do Pro's? Because these are the
lessons from real Claude Code sessions, already written, tested and kept up to date, and one command installs each:
Token Saver (cuts wasted tokens and time: bounded searches, no waiting in loops, simple work to your own model), Safe Operator (keeps keys and
passwords out of commands, files and the chat, and stops risky commands with the reason), Team Sessions (several
Claude sessions working together: every message checked, nothing handed over unchecked, nobody left waiting),
Release Ready (keeps
.envfiles out of git, plus Docker lockfile hygiene) and Beginner Mode (plain words, one step at a time, and a question before anything is installed or deleted). - A curated known-bugs feed: fixes other users already found, straight into
bugs.find. - Fair terms: packs you've installed keep working if you stop paying.
- Pro tools: the to-do list (
todo.*) and trend signals (signal.*). Runuvx homeshed-mcp pro updateafter connecting (needs HomeShed 0.3.1 or newer); the package is checked against its signature before it's unpacked. Still to come: the decision tools, file summaries and knowledge search (with their companion services), and YouTube publishing.
Connect it. On the Pro website, open your account page, then Access keys, and make a key (it starts with
mav_ and is shown once). In the Control Panel, go to Settings → Account and sharing → Pro membership, choose
Paste a Pro key and paste it. Without the Control Panel, run uvx homeshed-mcp pro connect and paste it there.
HomeShed checks the key with the Pro website, then keeps it in its vault. Then install packs: see
Rule packs.
HomeShed never asks for your Pro password; a copy that does isn't ours. Until you connect, nothing is sent to the Pro website. To stop, choose Disconnect in the same place, and revoke the key on the Pro website.
Contributing
Issues and pull requests are welcome. Start with CONTRIBUTING.md; taking part means following the Code of Conduct. If HomeShed saves you time or tokens, a ⭐ helps other people find it.
Licence
Apache-2.0. Third-party components and their licences are listed in THIRD_PARTY.md and NOTICE.