Spree Commerce: open-source B2B and marketplace ecommerce
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Beschreibung vom Entwickler (englisches Original)
Homebox home inventory: search, intake, warranties, attachments, locations, tags, QR labels
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
HOMEBOX_URL, HOMEBOX_TOKEN, HOMEBOX_ALIAS_FIELD, HOMEBOX_LABEL_DIRAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"homebox": {
"command": "uvx",
"args": [
"homebox-mcp"
],
"env": {
"HOMEBOX_URL": "your-value",
"HOMEBOX_TOKEN": "your-value",
"HOMEBOX_ALIAS_FIELD": "your-value",
"HOMEBOX_LABEL_DIR": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add homebox --env HOMEBOX_URL=your-value --env HOMEBOX_TOKEN=your-value --env HOMEBOX_ALIAS_FIELD=your-value --env HOMEBOX_LABEL_DIR=your-value -- uvx homebox-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"homebox": {
"command": "uvx",
"args": [
"homebox-mcp"
],
"env": {
"HOMEBOX_URL": "your-value",
"HOMEBOX_TOKEN": "your-value",
"HOMEBOX_ALIAS_FIELD": "your-value",
"HOMEBOX_LABEL_DIR": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"homebox": {
"type": "stdio",
"command": "uvx",
"args": [
"homebox-mcp"
],
"env": {
"HOMEBOX_URL": "your-value",
"HOMEBOX_TOKEN": "your-value",
"HOMEBOX_ALIAS_FIELD": "your-value",
"HOMEBOX_LABEL_DIR": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
HOMEBOX_ALIAS_FIELD envHOMEBOX_LABEL_DIR envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 9. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto dgahagan bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: HOMEBOX_URL, HOMEBOX_TOKEN
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.3.0) kam vor 14 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
MCP server integrating with Stripe - tools for customers, products, payments, and more.
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
An MCP server over the Homebox REST API, so an MCP client like Claude can work with your home inventory in plain language: *"where is my impact driver",* *"what's in Tote B-3", "which warranties expire this year", "add this drill — here's a photo of the receipt and the model number".* It answers questions, performs intake (create an item, attach the manual/receipt, tag and file it), manages attachments, and prints QR labels for totes and shelves — no hand-rolled curl.
You need a running Homebox instance (0.26+, see Requirements) and an API key from Profile → API Keys in the Homebox web UI.
claude mcp add homebox --scope user \
-e HOMEBOX_URL=https://homebox.example.com \ -e HOMEBOX_TOKEN=hb_xxxxxxxxxxxxxxxxxxxxxxxx \ -- uvx homebox-mcp claude mcp get homebox # should show: Status ✔ Connected
--scope user makes it available from any project. uvx fetches and runs the published package in an ephemeral environment — nothing to install first.
Add to your client's MCP config (e.g. claude_desktop_config.json):
{
"mcpServers": { "homebox": { "command": "uvx", "args": ["homebox-mcp"], "env": { "HOMEBOX_URL": "https://homebox.example.com", "HOMEBOX_TOKEN": "hb_xxxxxxxxxxxxxxxxxxxxxxxx" } } } }
The module carries PEP 723 inline dependencies, so it also runs standalone with uv run --script — uv resolves mcp, httpx, pillow, and pillow-heif into an ephemeral venv on first run. Instead of env vars, drop credentials in a .env file next to the module:
git clone https://github.com/dgahagan/homebox-mcp
cd homebox-mcp cp .env.example .env # .env is gitignored chmod 600 .env
Then register the absolute path to the module (or to server.py, a compatibility shim kept for older registrations):
claude mcp add homebox --scope user -- \
uv run --script /path/to/homebox-mcp/homebox_mcp.py
The server reads config from the environment, falling back to the sibling .env (resolved relative to the script, so the absolute-path invocation still finds it). The credential never enters the MCP config — it stays in the gitignored .env.
/items, /locations, /labels) and are rejected on the first tool call with a clear error rather than failing cryptically.hb_).homebox-mcp yourself.mcp>=2,<3), pulled in automatically. uvx/pipx build an isolated environment, so this needs no action. If you are installing into an environment already pinned to mcp<2, stay on homebox-mcp==1.0.1.All configuration is via environment variables (or the sibling .env for the clone workflow):
| Variable | Required | Purpose |
|---|---|---|
HOMEBOX_URL | yes | Base URL of your Homebox instance (no trailing slash). |
HOMEBOX_TOKEN | yes | Homebox API key (hb_…). |
HOMEBOX_ALIAS_FIELD | no | Name of one custom field to treat as a stable item identifier — items can be resolved by it, summaries surface it, and field_index defaults to it. Unset = resolve by assetId/name only. See Conventions. |
HOMEBOX_LABEL_DIR | no | Where generate_label / qrcode save output. Default: current working directory. |
~39 tools. Reads accept a fuzzy identifier (assetId, alias field, exact name, then first keyword match). Write tools require an exact identifier (assetId, alias field, or exact name) — a typo or an ambiguous match is refused rather than mutating the wrong item. An assetId must be in the full 000-012 form: a bare 12 is matched as a name or alias, never as asset 000-012. Locations are referenced by name or /-separated path (e.g. Garage/Shelf 1) to disambiguate duplicate names.
| Tool | Purpose |
|---|---|
search_items(query?, tags?, limit=20) | Search items by keyword and/or tag names (AND of both); returns each with assetId, location, and the alias field. |
get_item(identifier) | Full detail for one item: location path, identity, purchase, warranty, custom fields, tags, attachments. |
list_locations() | The full location tree as an indented outline. |
location_contents(location, recursive=False) | Items directly in a location plus its sub-location names; recursive=True walks the whole subtree and returns every nested item with its full location path. |
list_tags(detail=False) | All tag (label) names; detail=True returns full objects (description, color, icon, parent tag). |
warranties_expiring(before?, after?, lifetime=False) | Items whose warranty expires in after…before (after defaults to today, excluding already-expired); lifetime=True lists lifetime-warranty items. |
| Tool | Purpose |
|---|---|
create_item(name, location?, quantity=1, manufacturer?, model?, serial?, purchase_price?, purchase_date?, purchase_from?, warranty_expires?, notes?, fields?, tags?) | Create and enrich an item in one call. fields is a dict typed by JSON value (string→text, number→number [integer-coerced], bool→boolean); tags must already exist. location resolves as in move_item: a location name or path, or a container item (name, path or assetId). Returns the new assetId. |
import_csv(csv_text) | Bulk-create items and locations from a Homebox CSV in one multipart request. HB.location auto-creates the path hierarchy; recognizes HB.name, HB.tags, HB.quantity, HB.serial_number, HB.model_number, HB.manufacturer, HB.notes, HB.purchase_*, HB.warranty_expires, HB.field. . |
create_location(name, parent?, description?) | Create a location (tote/bin/shelf) to bootstrap a new storage spot; description doubles as a contents manifest. |
barcode_lookup(code) | UPC/EAN → name/manufacturer/model (optional, for boxed goods). |
duplicate_item(identifier, copy_attachments=False, copy_custom_fields=True, copy_maintenance=False, prefix="Copy of ") | Duplicate an item ("I bought a second one"). Copied custom fields include the alias field verbatim — give the copy its own value after. |
All write tools resolve by exact identifier and preserve everything you don't touch (a full-body PUT that echoes the rest of the item back — see gotchas).
| Tool | Purpose |
|---|---|
set_item(identifier, new_name?, description?, notes?, quantity?, purchase_price?, purchase_date?, purchase_from?, insured?, archived?, fields?) | General item editor: rename, notes, quantity, purchase info, insured/archived flags, custom fields. Quantity-only edits use a partial PATCH. |
move_item(identifier, location) | Move an item into a location or into another item (e.g. a lens into Camera Bag). The destination is a location name or path, as before; only if no location matches is it looked up as an item by exact name or path (e.g. Office/Camera Bag), or give the item's assetId. A name matching more than one is refused, and so is a location as the item to move — use set_location (partial PATCH — nothing else changes). |
set_warranty(identifier, expires?, lifetime?, details?) | Set warranty end date, lifetime flag, and terms summary. |
set_identity(identifier, manufacturer?, model_number?, serial_number?) | Set manufacturer / model / serial (e.g. after a nameplate photo reveals them). |
set_fields(identifier, fields) | Create or overwrite custom fields (upsert; typed by JSON value type). |
set_tags(identifier, tags, mode="add") | Add / remove / replace tags on an item; unknown tag names are auto-created (partial PATCH). |
set_tag(name, new_name?, description?, color?, icon?, parent?, clear_parent=False) | Edit a tag's own metadata (rename, color, icon, parent tag for grouping) — not what's tagged on an item. Creates the tag if new. |
set_location(location, new_name?, parent?, clear_parent?, description?, notes?, tags?, tags_mode?, entity_type?, asset_id?, fields?) | General location editor: rename, move (or clear_parent to root), tags, notes, entity type, assetId, custom fields. |
mark_sold(identifier, sold_price?, sold_to?, sold_date?, sold_notes?, clear=False) | Record a sale (price/buyer/date/notes) or clear=True to un-sell; pair with set_item(archived=True) to retire the item. |
| Tool | Purpose |
|---|---|
log_maintenance(identifier, name, description?, completed_date?, scheduled_date?, cost?) | Add an entry — "changed the mower oil today" (completed) or "sharpen blades in spring" (scheduled). |
list_maintenance(identifier?, status="both") | Entries for one item, or across the whole inventory ("what maintenance is due?"); status = scheduled / completed / both. |
set_maintenance(entry_id, ...) | Edit an entry — e.g. mark a scheduled one completed by setting completed_date. |
delete_maintenance(entry_id, confirm) | Delete one entry (confirm = its exact name). |
| Tool | Purpose |
|---|---|
inventory_stats(by="totals", start?, end?) | Totals (counts, total value, warranty count), value by location or tag, or purchase-price over time — the cheap way to answer "what's my inventory worth?". |
export_csv(save_to?) | Export the whole inventory as a Homebox CSV (complement of import_csv; quick backup). |
list_custom_fields(field?) | Discover the custom-field schema in use: all field names, or every distinct value of one field. |
| Tool | Purpose |
|---|---|
attach_document(identifier, source, title, doc_type="manual", primary=False) | Attach a file (local path or http(s) URL) to an item, or to a location by name as a fallback. doc_type e.g. manual/receipt/warranty/photo; primary=True makes a photo the entity's primary image (e.g. a location's "this is the spot" wayfinding shot). |
list_attachments(identifier) | List an item's or location's attachments with their ids (the handle the other attachment tools need). |
get_attachment(identifier, attachment_id, save_to) | Download one attachment to a local path so its content (e.g. a manual) can be read. |
rename_attachment(identifier, attachment_id, title?, doc_type?, primary?) | Update an attachment's title, type, or primary flag. |
Uploads auto-convert HEIC/HEIF (iPhone photos) to JPEG so Homebox always
stores a browser-renderable image, and sanitize
/in titles (Homebox treats
a title as a path and would otherwise truncate it).
Every delete requires confirm to equal the target's exact name and carries the MCP destructiveHint annotation, so clients prompt before running them.
| Tool | Purpose |
|---|
| delete_item(identifier, confirm) | Permanently delete an item and its attachments. No und
Nur der Anfang wird gezeigt; den Rest findest du im Repo