contacts-mcp
Exposes Apple Contacts data, allowing lookup of contacts by phone, email, name, or identifier.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@contacts-mcpfind John Doe's email address"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
contacts-mcp
Local MCP server that exposes Apple Contacts data through a Contacts.framework helper app.
Built entirely by OpenAI GPT-5.4 via Codex.
Install
git clone https://github.com/<your-account>/contacts-mcp.git
cd contacts-mcp
./bootstrap.shRelated MCP server: apple-mcp
Run
npm run startPermissions
Run contacts_permissions once with prompt: true.
The helper app is intended to be built with the project's normal code signing so macOS can attribute Contacts access to a stable app identity.
If the prompt does not appear from inside Codex, launch the helper app directly once:
open ContactsMCPHelperApp/build/Build/Products/Release/ContactsMCPHelperApp.appWhen opened directly, the app will request Contacts access and show a status alert. After that initial grant, the MCP tools can read visible contacts normally.
Lookup behavior is intentionally narrow: contacts_lookup_phone, contacts_lookup_email, and contacts_search_name return zero or more ranked matches, contacts_get_contact fetches one unified contact by identifier, and the server does not expose any write path.
Phone lookup uses the framework predicate first, then falls back to canonical digit matching when needed. Email lookup uses the framework predicate first, then falls back to exact case-insensitive comparison. Name search uses the framework name predicate first, then backfills ranked matches across full name, nickname, organization, and component fields when needed.
MCP config
{
"mcpServers": {
"contacts": {
"command": "node",
"args": ["/absolute/path/to/contacts-mcp/dist/index.js"],
"env": {
"CONTACTS_MCP_HELPER_APP_PATH": "/absolute/path/to/contacts-mcp/ContactsMCPHelperApp/build/Build/Products/Release/ContactsMCPHelperApp.app"
}
}
}
}Verify
npm run verifyThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA macOS app that provides an MCP server to your Messages, Contacts, and moreLast updated1,510MIT
- AlicenseBqualityFmaintenanceMCP server for macOS Apple apps. Enables read/write access to Notes, Reminders, Calendar, Contacts, and Safari using SQLite and JXA, all running locally.Last updated28172MIT
- AlicenseAqualityCmaintenanceLocal-first MCP server for safely searching and editing Apple Contacts on macOS via AppleScript automation, with dry-run writes and explicit confirmation.Last updated64MIT
- Alicense-qualityAmaintenanceMCP server for the Infomaniak Contacts API, enabling listing and searching contacts across address books.Last updated371MIT
Related MCP Connectors
MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay
Identity resolution MCP server for phone/email lookups across 31+ services. Global + India coverage.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/atfinke/contacts-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server