HomeBoxMCP

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.

Category
访问服务器

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. --doctor validates 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选