mcpField
A
allourthings

allourthings

Local
github.com/matt-hardingProductivity1Updated 4d ago

About allourthings

AllOurThings is a household inventory system for cataloging possessions and asking an MCP-compatible AI client natural-language questions about them. Its filesystem-based vault keeps item records and attachments accessible for direct browsing and editing.

Key features

  1. 01Catalog items with custom fields
  2. 02Search and filter inventory
  3. 03Track purchase and warranty details
  4. 04Attach manuals, receipts, and photos
  5. 05Manage the vault with a CLI

Use cases

  1. 01Find items by category, location, or brand
  2. 02Check an item's warranty expiry
  3. 03Review spending on a type of item
  4. 04Organize receipts and manuals with possessions

MCP support

The MCP server exposes 11 inventory and attachment tools to Claude Desktop and other MCP clients, including tools to add, update, search, and retrieve items.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"io-allourthings": {
"command": "npx",
"args": [
"-y",
"@allourthings/mcp-server"
],
"env": {
"ALLOURTHINGS_DATA_DIR": "<ALLOURTHINGS_DATA_DIR>"
}
}
}
}
Run commandnpx -y @allourthings/mcp-server
Environment variables to set
ALLOURTHINGS_DATA_DIRDirectory where inventory data is stored. Defaults to ~/Documents/AllOurThings.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@allourthings/mcp-server0.2.0

Tools

6

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
namestringYesName of the item
tagsarrayNo
brandstringNo
modelstringNo
notesstringNo
imagesarrayNoImage file paths or URLs
categorystringNoCategory (e.g. appliance, furniture, subscription)
currencystringNoe.g. USD, GBP
featuresarrayNo
locationstringNoWhere the item is kept
retailerstringNo
manual_refstringNoURL or filename of the manual
purchase_datestringNoISO date string
purchase_pricenumberNo
warranty_expiresstringNoISO date string

Details

From the project README

AllOurThings

Your things, understood by AI.

AllOurThings is an inventory system that works the way you do. Catalog anything you like from your home appliances to your Pokémon cards — then ask plain-English questions and get instant answers.

Website: allourthings.io

Packages

PackagenpmDescription
packages/mcp-server@allourthings/mcp-serverMCP server — connects your inventory to Claude Desktop and other MCP clients
packages/cli@allourthings/cliCLI — manage your inventory from the terminal

Quick start

Desktop only. Requires macOS, Windows, or Linux with Claude Desktop or another MCP-compatible client.

1. Add to Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "allourthings": {
      "command": "npx",
      "args": ["-y", "@allourthings/mcp-server", "--data-dir", "~/Documents/AllOurThings"]
    }
  }
}

Restart Claude Desktop. Your inventory vault will be created automatically on first use.

2. Start asking questions
  • "Add my Bosch washing machine, bought from John Lewis for £649 in January 2024 with a 2-year warranty"
  • "What appliances do I own?"
  • "What's in the kitchen?"
  • "When does my TV warranty expire?"
  • "Search for anything Samsung"
  • "How much have I spent on electronics?"

How it works

The MCP server exposes your inventory to any MCP-compatible AI client via 11 tools:

ToolDescription
add_itemAdd a new item (names must be unique)
get_itemGet an item by ID or name
list_itemsList items, optionally filtered by category, subcategory or tags
update_itemUpdate fields on an item; set a field to null to clear it
delete_itemDelete an item by ID
search_itemsSearch field values; every word must match
get_item_fieldsList the field names in use across your catalog
add_attachmentAttach a base64-encoded file (manual, receipt, photo, warranty, other) to an item
attach_from_urlDownload a file from a URL and attach it to an item
get_attachmentGet an attachment as base64
delete_attachmentRemove an attachment from an item

Failures return isError: true with a message. See the MCP server README for parameters, validation rules and configuration.


Data

Vault structure

Your inventory lives in a vault — a plain directory on your filesystem. Each item gets its own folder:

~/Documents/AllOurThings/
  items/
    dyson-v15-detect-a1b2c3d4/
      item.json
      manual.pdf
      receipt.jpg
    samsung-65-qled-tv-b5c6d7e8/
      item.json
      warranty.pdf

Attachments (manuals, receipts, photos) sit alongside the item JSON. You can browse and edit the vault directly in Finder or File Explorer.

Item schema

Every item has required fields (id, name, created_at, updated_at) and well-known optional fields:

category subcategory brand model purchase_date purchase_price currency warranty_expires retailer location features notes tags attachments

The attachments field links PDFs and images stored in the item's folder:

{
  "attachments": [
    { "filename": "manual.pdf",  "type": "manual"   },
    { "filename": "receipt.jpg", "type": "receipt"  },
    { "filename": "photo.jpg",   "type": "photo"    }
  ]
}

You can also add any custom fields you like — they are preserved as-is.


CLI

A standalone terminal tool for power users and scripting. Works on macOS, Windows, and Linux. No AI client required.

# Run without installing
npx @allourthings/cli list

# Or install globally
npm install -g @allourthings/cli
Commands
allourthings init                                    # choose your vault folder (run once)
allourthings search <query>                          # search field values
allourthings list [-c <category>] [-s <subcategory>] [-t <tag>]
allourthings get <id-or-name>                        # show full item detail
allourthings add <name> [options]                    # add a new item
allourthings update <id> [options]                   # update fields; --unset to clear
allourthings delete <id>                             # delete an item (asks to confirm)
allourthings attach add|url|get|rm ...               # manage attachments

Add --json for machine-readable output. See the CLI README for every option.

Examples
# Add an item
allourthings add "Bosch Washing Machine" --brand Bosch --model "WGG244A9GB" \
  --category appliance --location kitchen \
  --purchase-date 2024-01-15 --price 649 --currency GBP \
  --warranty 2026-01-15 --retailer "John Lewis"

# Search and pipe to jq
allourthings search "warranty" --json | jq '[.[] | {name, warranty_expires}]'

# Attach a manual
allourthings attach add 6164c373 ~/Downloads/bosch-manual.pdf --label "User manual"

# Update a field
allourthings update 6164c373 --warranty 2027-01-15

# Use a custom data directory
allourthings --data-dir ~/Dropbox/AllOurThings list

Development

Prerequisites
  • Bun — brew install bun
  • Task — brew install go-task
Install dependencies
bun install
Tasks
TaskDescription
task devSeed vault + open MCP Inspector — fastest way to test
task dev:mcpStart MCP server in watch mode (stdio)
task test:runRun automated tests
task seedAppend test items to dev vault
task seed:resetClear dev vault and re-seed
task inspectOpen MCP Inspector (dev mode, no build required)
task inspect:prodBuild, then open MCP Inspector against compiled dist
task buildCompile MCP server to dist/
task build:cliCompile CLI to dist/
task cli -- <args>Run CLI from source against dev vault, e.g. task cli -- list
task typecheckRun TypeScript type checking
task cleanRemove dist/
task clean:vaultDelete local dev vault

All tasks use ./dev-vault by default. Override with DATA_DIR=/your/path task <command>.


License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.