Show HN: Apple Contacts MCP – 本地AI訪問macOS通訊錄
一款新的本地優先MCP伺服器,透過AppleScript自動化,讓AI代理安全地搜尋、編輯和管理macOS通訊錄,寫入預設使用試執行模式,注重隱私。
近日,一個名為 Apple Contacts MCP 的開源專案在Hacker News上釋出,它為AI代理提供了一種本地優先的方式,透過macOS上的Contacts.app安全地搜尋、編輯和管理通訊錄。該專案使用AppleScript自動化,無需雲憑據,而是依賴macOS的隱私提示。預設情況下,所有寫操作都是試執行(dry-run),需要使用者明確確認才能實際執行。
該MCP伺服器提供多種工具,包括contacts_status(檢查訪問許可權和總數)、search_contacts(按姓名、組織等搜尋)、create_contact、update_contact、append_contact_note(追加有日期的互動日誌)、delete_contact以及test_roundtrip(建立、編輯、驗證並刪除一個測試聯絡人)。刪除操作還需要確認短語“delete contact”。
安裝要求macOS系統安裝了Contacts.app和Node.js 18或更新版本。克隆倉庫後,執行npm test和npm run smoke進行驗證。對於Codex和Claude Desktop等代理,可以透過MCP配置新增。例如,在Claude Desktop的配置檔案中新增一個stdio MCP伺服器,指向bin/apple-contacts-mcp.cjs的絕對路徑。
許可權方面,首次即時呼叫可能觸發macOS的通訊錄或自動化許可權提示,使用者需要批准。如果Contacts.app未執行,可以先開啟該應用。寫操作的安全性設計包括兩步確認:dryRun設為false且confirm設為true,刪除還需要confirmPhrase。append_contact_note適用於CRM風格的互動記錄,而不是覆蓋整個備註欄位。
隱私是該專案的一個重點。伺服器在本地Mac上執行,不會呼叫雲API或自行上傳通訊錄。但代理能夠看到它要求返回的資料,因此建議使用欄位過濾和脫敏。通訊錄可能透過iCloud、Google或Exchange同步,因此本地寫入可能會傳播到這些服務。目前後端使用AppleScript,未來可能提供基於Swift的簽名助手,透過Contacts.framework實現更結構化的訪問。專案有意不支援直接SQLite寫入AddressBook資料庫。
該專案採用MIT許可證,當前在GitHub上獲得1顆星,程式碼完全用JavaScript編寫。