Junk Drawer MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JUNK_DRAWER_DB | No | Path to the storage file. Defaults to data/drawer.json. If the path ends in .db, .sqlite, or .sqlite3, the server uses SQLite instead of plain JSON. | data/drawer.json |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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'. |
| searchC | Ask the drawer a question the way you'd ask a person. e.g. 'do we have an HDMI adapter', 'spare house key', 'AA batteries'. Just list the words you remember; short is fine. |
| where_isC | The full story on one item: exact spot, picture hint, moves. |
| list_by_roomB | List items in one room, or with no room, show every room count. |
| 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'. |
| move_historyB | Every recorded hop for one item, oldest first. |
| 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'. |
| list_kindsC | The kinds of small things this drawer tracks. |
| summaryB | A calm overview: counts by kind, busiest rooms, recent moves. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| find_my_thing | A gentle walk through the 'do we have an HDMI adapter?' question. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
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.
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.
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.
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.