contacts as a graph, not a list

a contacts api that returns names and phone numbers is a phonebook. vintage treats contacts as the person authority for everything else: each contact links to their messages, mail threads, shared notes, calls and events.

so the mcp person tool answers "what’s the story with leo?" — last contact, what you owe them, the notes you share — not just a vcard.

vintage runs entirely on your Mac: it reads the local Apple databases, builds one person-graph index, and serves it over cli and mcp. no cloud, no account, nothing leaves the machine.

brew install systemoperators/tap/vintage
vintage index sync
claude mcp add vintage -- vintage mcp --stdio
vintage people          # ranked by actual activity

how is this different from the macos contacts app via applescript?

vintage reads the addressbook store directly and joins it against six other sources; the value is the join, which no per-app bridge gives you.

local. no account. never phones home. · everything vintage does · the engine