Skip to main content
Glama
Junk Drawer MCP Server

Junk Drawer MCP Server

Junk Drawer MCP Server

A local MCP server cataloguing the small things that vanish: cables, adapters, batteries, craft bits, spare keys. You add an item once - with a location note, tags and a photo hint - and after that the question "do we have an HDMI adapter?" takes one tool call instead of twenty minutes of opening drawers.

Distinct from:

  • gear-serial-inventory-webapp - that one is for serial-numbered gear; this one is for unlabeled small things.

  • free-home-inventory-kit - that one is for insurance paperwork and printables; this one is for daily "where is it" moments.

By Asdale Dynamics, LLC - AI explained like a friend would: plain English, step by step, never condescending.

What it does

  • add_item - catalogue a thing: name, kind (cable, adapter, battery, craft, key, hardware, office, medical, media, other), room, container note, description, tags, photo hint.

  • search - ask in plain words: "do we have an HDMI adapter", "spare house key", "AA batteries". Scoring leans on name and tags; small plural/singular differences are forgiven.

  • where_is - one item's full story: exact spot, photo hint, move log.

  • list_by_room - items in one room, or (with no room) counts per room.

  • mark_moved - record a relocation; keeps the record and reality agreeing, which is the whole point.

  • move_history - every recorded hop for an item.

  • remove_item - mark something gone (used up, given away, binned).

  • summary - calm overview: counts by kind, moves on file.

  • list_kinds - the kinds the drawer knows.

  • Prompt: find_my_thing - a gentle walk through a lost-thing question.

No personal data needed, nothing leaves your machine, and photos are not required either: the photo_hint field just tells future-you what to snap (e.g. "silver coil left of the tape measure") so you can verify at a glance.

Related MCP server: inventory-mcp

Quick start

pip install -e .
export JUNK_DRAWER_DB=$PWD/data/drawer.json   # optional, this is the default spot
junk-drawer-server                            # talks MCP over stdio

Or run as a module: python -m junk_drawer.server.

Point your MCP client at it

{
  "mcpServers": {
    "junk-drawer": {
      "command": "junk-drawer-server",
      "env": { "JUNK_DRAWER_DB": "/home/you/junkdrawer/drawer.json" }
    }
  }
}

Storage

  • Default: plain JSON at data/drawer.json (override with JUNK_DRAWER_DB).

  • SQLite: give JUNK_DRAWER_DB a path ending in .db, .sqlite or .sqlite3 and the server uses a single-table SQLite file instead. Same tools, same behaviour.

Both files are the entire state of the system: copy one and you have a backup.

Examples

add_item "HDMI to mini HDMI adapter" kind=adapter room="office" \
         container="tin, second drawer down" tags="hdmi, video" \
         photo_hint="coiled grey cable left of the tape measure"
search "do we have an HDMI adapter"
list_by_room "office"
mark_moved "hdmi-to-mini-hdmi-adapter" new_room="lounge" \
           new_container="TV cabinet, cable pouch" note="wiring the new telly"

Development

pip install -e .
pip install pytest
python -m pytest          # 60+ tests, all local

License

MIT - Copyright (c) 2026 Asdale Dynamics, LLC. See LICENSE.

Available Tools

9 tools
add_itemB

Catalogue one small thing before it vanishes.

name: what you'd call it, e.g. 'HDMI to mini HDMI adapter'. kind: cable, adapter, battery, craft, key, hardware, office, medical, media or other. room: where it lives, e.g. 'office', 'kitchen junk drawer'. container: the finer spot, e.g. 'labelled tin, second drawer'. tags: comma-separated, e.g. 'hdmi, video, tv mount'. photo_hint: what a photo of its spot would show, e.g. 'silver coil left of the tape measure'.

NameRequiredDescriptionDefault
kindYes
nameYes
roomYes
tagsNo
containerNo
photo_hintNo
descriptionNo

Output Schema

NameRequiredDescription
resultYes
list_by_roomB

List items in one room, or with no room, show every room count.

NameRequiredDescriptionDefault
roomNo

Output Schema

NameRequiredDescription
resultYes
list_kindsC

The kinds of small things this drawer tracks.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
mark_movedB

Record that an item moved (new drawer, newbox, new shelf, new box).

item: name or ID of the item, e.g. 'hdmi-to-mini-hdmi-adapter'. new_room: the room it lives in now; keep the same room with a different new_container if it only changed containers. note: optional 'why', e.g. 'rerouted to the TV drawer'.

NameRequiredDescriptionDefault
itemYes
noteNo
new_roomYes
new_containerNo

Output Schema

NameRequiredDescription
resultYes
move_historyB

Every recorded hop for one item, oldest first.

NameRequiredDescriptionDefault
itemYes

Output Schema

NameRequiredDescription
resultYes
remove_itemB

Take an item out of the drawer record: used up, given away, binned.

reason: what happened, e.g. 'battery dead', 'key given to house-sitter'. gone_to: optional place it went, e.g. 'sister's apartment'.

NameRequiredDescriptionDefault
itemYes
reasonNo
gone_toNo

Output Schema

NameRequiredDescription
resultYes
summaryB

A calm overview: counts by kind, busiest rooms, recent moves.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes
where_isC

The full story on one item: exact spot, picture hint, moves.

NameRequiredDescriptionDefault
itemYes

Output Schema

NameRequiredDescription
resultYes

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.1.0
    • First observedadd_item
    • First observedlist_by_room
    • First observedlist_kinds
    • First observedmark_moved
    • First observedmove_history
    • First observedremove_item
    • First observedsearch
    • First observedsummary
    • First observedwhere_is

TDQS

B3.1/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target distinct intents: fuzzy lookup (search), detail retrieval (where_is), browsing (list_by_room), mutation (mark_moved, remove_item, add_item), and history (move_history). The one soft overlap is where_is, which promises 'moves' in its answer, versus move_history which returns the full hop log — an agent may hesitate between them. search vs list_by_room also brush against each other but the descriptions make the fuzzy-vs-enumerated distinction clear.

Naming Consistency3/5

All names are snake_case, but the verb_noun convention is only partially followed: add_item, remove_item, list_kinds, list_by_room, mark_moved are clean, while search and summary are bare nouns and where_is / move_history break the verb_noun pattern. Readable overall, but not a predictable schema an agent can pattern-match on.

Tool Count5/5

Nine tools is well within a healthy range and each covers a distinct slice of the household-catalogue lifecycle (capture, find, browse, relocate, remove, report). Nothing feels padded or missing at the count level.

Completeness4/5

The surface covers capture (add_item), retrieval (search, where_is, list_by_room), location mutation (mark_moved), history (move_history), deletion (remove_item), and reporting (summary, list_kinds) — a full lifecycle for the stated domain. The notable gap is editing item metadata (typo in name, corrected tags or photo_hint); the only workaround is remove_item plus re-add, which destroys move history.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables cataloging and managing personal inventory (items, attachments) through natural language, allowing users to add, search, update, and retrieve item details and attachments via MCP tools.
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Inventory (whereiput.it) that enables searching, full CRUD operations on items/locations/areas, and AI-powered photo recognition flow from MCP-compatible clients.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables creating and managing collections of items by adding entries, checking them off, and deleting them through MCP tools.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets AI apps search and manage a home inventory of numbered boxes, rooms and lists, so users can find where an item is stored, add or move items and boxes between rooms, and work through packing, lending, rental and stocktake lists from chat. Changes made through the connected app apply to the user's account immediately.
    CC BY-4.0