HomeBoxMCP
Enables natural-language read and write access to a Homebox inventory, including searching and managing items, locations, tags, and attaching files such as receipts and warranties.
README
HomeBoxMCP
Talk to your home inventory. HomeBoxMCP is a small, stateless MCP server that puts your Homebox inventory in reach of any MCP client — Claude, or anything else that speaks the protocol. Ask where the drill is, file a new purchase with its receipt attached, or reorganize a whole closet, in plain language.
"Where did I put the spare HDMI cables?"
"Add the new espresso machine to the kitchen — warranty expires 2028-04-01."
"Move everything on Shelf B to the garage overflow bin."
Sixteen tools, one file, zero runtime dependencies — just Node 22 and node:http.
Drop it behind Docker and forget about it.
Why this one
- Read and write. Not to be confused with the third-party read-only
homebox-mcp. This one creates, updates, moves, deletes, and attaches files. - Built for Homebox v0.26.x. Targets the entity API, where items and locations are unified as "entities" and labels are renamed "tags".
- Stateless streamable HTTP. No session store, no database, no sidecar. Restart it whenever you like.
- Fails loudly, not weirdly.
--doctorvalidates your Homebox connection before the server ever accepts a request, and oversize uploads are rejected with the actual size instead of an opaque 422.
Quick start
Pull the published image:
docker run -d --name HomeBoxMCP -p 3334:3334 \
-v /path/to/config:/config:rw \
-v /path/to/inbox:/inbox:ro \
ghcr.io/businessnone/homeboxmcp:latest
Or build from source:
docker build -t homeboxmcp:latest .
Point your MCP client at http://your-host:3334/mcp — that path is enforced, a POST
anywhere else returns 404 naming the correct endpoint. Check the server is alive with
curl http://your-host:3334/healthz, which reports the version and tool count.
Prefer to sanity-check the config first? --doctor verifies the Homebox URL is reachable
and that the credentials actually work, then exits non-zero with a one-line reason if not:
docker run --rm -v /path/to/config:/config:ro \
ghcr.io/businessnone/homeboxmcp:latest node /app/index.mjs --doctor
Unraid
An Unraid template lives at unraid/homeboxmcp.xml. Add it under
Docker → Add Container → Template using the raw URL, or install from Community Apps
once listed. Set the config and inbox paths to shares you control, and set an MCP auth
token if the container is reachable beyond your LAN.
Configuration
Write /config/config.json:
{ "homeboxUrl": "http://homebox:7745", "apiKey": "..." }
Or skip the file entirely and use HOMEBOX_URL plus HOMEBOX_API_KEY — or
HOMEBOX_URL with email and password, if you'd rather HomeBoxMCP log in for itself.
| Env | Default | Purpose |
|---|---|---|
PORT |
3334 |
Listen port |
CONFIG_PATH |
/config/config.json |
Config file |
INBOX_PATH |
/inbox |
Read-only upload staging dir |
MAX_UPLOAD_MB |
10 |
Must match Homebox's HBOX_WEB_MAX_UPLOAD_SIZE |
MCP_AUTH_TOKEN |
unset | Bearer token required on every MCP request |
MAX_REQUEST_BYTES |
4000000 |
Maximum accepted JSON-RPC request size |
LOG_LEVEL |
info |
error, warn, info, or debug |
MCP_PATH |
/mcp |
Path the JSON-RPC endpoint is served on |
ENTITY_TYPE_TTL_MS |
86400000 |
How long Homebox entity type IDs are cached; 0 disables caching |
If you expose HomeBoxMCP beyond your own machine, set MCP_AUTH_TOKEN. Clients may send it
as Authorization: Bearer <token>, X-MCP-Token, or X-Homebox-MCP-Token.
The 16 tools
Read — search_entities, entity_tree, get_entity, list_tags,
list_entity_types, get_stats
Write — create_location, create_item, update_entity, move_entity,
delete_entity, create_tag
Attachments — list_inbox, upload_attachment, delete_attachment,
link_external_attachment
Attachments, and why there's an inbox
MCP tool calls carry JSON, not binary. Inlining a 10 MB receipt as base64 would burn ~13 MB of the model's context to move one file. So files reach HomeBoxMCP through a read-only inbox mount instead: drop the file in the inbox, then attach it by filename.
Paths resolve against the inbox and are rejected if they try to escape it — ../../etc/passwd
and absolute paths both fail closed. Valid attachment types are attachment, photo,
manual, warranty, receipt, and thumbnail.
Origin story
This repo exists because HomeBoxMCP (then called homebox-shim) was discovered running with no source on disk — the
only copy of index.mjs lived inside a running Docker image, with no Dockerfile anywhere.
It was recovered with docker cp Homebox-Shim:/app/index.mjs and the Dockerfile
reconstructed from the image's own config. This repo is now the source of truth. Rebuild
from here, not from the image.
See docs/SUPPORTABILITY.md for the review that prompted the
recovery.
License
MIT — see LICENSE.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。