property-inventory
Provides a local-first, evidence-backed ledger for physical property, enabling agents to search inventory, prepare capture reviews, and inspect proposals through MCP. Enforces strict boundaries: scoped reads by default, with private write access limited to preparing, not applying, mutations.
README
agent-property-inventory
agent-property-inventory is a local JSONL ledger that lets agents answer what you own, where it is, and what it works with.

Agents query before buying or advising. Facts enter through one verified local writer.
What it knows
The ledger preserves photos, receipts, serials, locations, condition, measurements, lifecycle history, and unknowns. An empty search means “not recorded,” never “does not exist.”
How it works
Data/store/*.jsonl is the sole source of truth. Immutable media, runtime databases, and backups stay outside Obsidian. SQLite and Inventory.md are disposable rebuilt views.
Quick start
Python 3.11 or newer is required.
git clone https://github.com/Anneo22/agent-property-inventory.git
cd agent-property-inventory
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev,mcp]'
demo_root="$(mktemp -d "${TMPDIR:-/tmp}/property-inventory-demo.XXXXXX")"
export PROPERTY_INVENTORY_ROOT="$demo_root/inventory"
export PROPERTY_INVENTORY_RUNTIME="$demo_root/runtime"
export PROPERTY_INVENTORY_MEDIA_ROOT="$demo_root/media"
export PROPERTY_INVENTORY_CATALOGUE_OUTPUT="$demo_root/notes/Inventory.md"
property-inventory init
property-inventory status
status rebuilds SQLite, regenerates the catalogue, runs the semantic verifier, and checks every foreign key.
Use it
Query before buying or claiming ownership:
property-inventory search "hex bit" --condition working
property-inventory context --task "repair a bicycle tyre"
property-inventory compatibility itm-driver itm-bit
property-inventory torque-check --tool-item-id itm-driver --requested-nm 4
Record a real check against an existing item and location:
property-inventory physical-check \
--actor "Example reviewer" \
--source-ref "Checked in person" \
--item-id itm-example \
--checked-on 2026-08-09 \
--location-id loc-example \
--quantity 1 \
--condition working
The CLI also records plans, orders, deliveries, moves, loans, sales, corrections, evidence, kits, maintenance, insurance readiness, measured spaces, and offline replica proposals. Run property-inventory --help for the complete command surface.
Connect an agent
The MCP server is a local stdio process. Its default read profile can search, inspect, and reason about the inventory without changing canonical JSONL.
{
"command": "/absolute/path/to/property-inventory-mcp",
"args": [
"--config", "/absolute/path/to/config.json",
"--instance", "private",
"--scope", "personal",
"--profile", "read"
]
}
The private write profile may prepare bounded proposals, capture reviews, and replica plans. It cannot apply them or invoke direct lifecycle mutations. See MCP profiles.
Deliberate limits
There is no web or phone interface, hosted sync service, bundled recognition model, insurer integration, or proof of broad real-world adoption. Spatial packing is a deterministic measured-box heuristic, not an optimal organizer. Local capture adapters are trusted programs and still require explicit review.
Documentation
Development
ruff check .
python3 -m compileall -q src property_inventory.py rebuild_inventory_sqlite.py render_inventory.py verify_inventory.py
python3 -m unittest discover -v -s tests -p 'test_*.py'
vhs docs/assets/demo.tape
python3 scripts/check-readme-visuals.py
scripts/check-public-leaks.sh
License
MIT. See LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.