# Apple Contacts

Даёт ИИ-клиенту доступ к «Контактам» на macOS: находит нужного человека и превращает его в готового получателя сообщения.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 29
- Автор: JonathanRReed
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/JonathanRReed/Apple-MCPs/tree/HEAD/applecontacts-mcp
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/mcp/apple-contacts

## Что делает

Сервер поднимается локально на Mac и отдаёт клиенту инструменты для чтения и поиска записей в «Контактах». Отдельная функция — превратить найденный контакт в получателя, которого можно сразу подставить в письмо или сообщение. Полезно, когда агенту нужно отправить что-то человеку, а точного адреса под рукой нет.

Нужен Python 3.11+ и macOS. Запуск идёт через `uvx apple-contacts-mcp`, поэтому сначала поставьте `uv` — без него команда не сработает. Режим безопасности задаётся переменной `APPLE_CONTACTS_MCP_SAFETY_MODE`; если значение пустое или некорректное, сервер выберет `safe_readonly`. Доступ к самим «Контактам» вы подтверждаете в системном запросе macOS или в «Системных настройках» — за вас это не сделает никто.

Транспорт по умолчанию — `stdio`. Для Streamable HTTP нужно задать `APPLE_<DOMAIN>_MCP_TRANSPORT=streamable-http` и переменные хоста с портом, при этом биндинг разрешён только на `127.0.0.1`, `::1` или `localhost`: удалённой аутентификации у серверов нет, сетевые и wildcard-адреса отклоняются. Через туннель или публичный прокси их выставлять нельзя. Данные, которые сервер вернул, клиент может отправить своему провайдеру модели, а приложения Apple синхронизируются через iCloud — локальный запуск не значит, что данные остаются на месте.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `APPLE_CONTACTS_MCP_SAFETY_MODE` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env APPLE_CONTACTS_MCP_SAFETY_MODE=<APPLE_CONTACTS_MCP_SAFETY_MODE> --transport stdio applecontacts-mcp -- uvx apple-contacts-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-contacts-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add applecontacts-mcp --env APPLE_CONTACTS_MCP_SAFETY_MODE=<APPLE_CONTACTS_MCP_SAFETY_MODE> -- uvx apple-contacts-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-contacts-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "applecontacts-mcp": {
            "command": "uvx",
            "args": [
                "apple-contacts-mcp"
            ],
            "env": {
                "APPLE_CONTACTS_MCP_SAFETY_MODE": "<APPLE_CONTACTS_MCP_SAFETY_MODE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-contacts-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "applecontacts-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "apple-contacts-mcp"
            ],
            "env": {
                "APPLE_CONTACTS_MCP_SAFETY_MODE": "<APPLE_CONTACTS_MCP_SAFETY_MODE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-contacts-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e APPLE_CONTACTS_MCP_SAFETY_MODE=<APPLE_CONTACTS_MCP_SAFETY_MODE> applecontacts-mcp uvx apple-contacts-mcp
```
Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from apple-contacts-mcp <команда>

## Когда брать
- найти контакт по имени, когда точного адреса нет
- подставить получателя в письмо или сообщение
- проверить, что нужный человек есть в «Контактах»
- отдать агенту доступ только к контактам, не открывая почту и календарь

## Примеры запросов агенту
- Найди в «Контактах» Марию Соколову и покажи её адрес почты
- Подбери получателя для письма про договор и проверь адрес через контакты
- Поищи контакт по фамилии Reed и скажи, какой у него номер телефона

## Похожие
- [REA](https://affpapa.org/nevibecode/mcp/rea.md) — MCP-сервер · ★ 386989
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119160
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [mcp-server](https://affpapa.org/nevibecode/mcp/mcp-server.md) — MCP-сервер · ★ 43872

Из того же набора: [jonathanrreed/apple-mcps](https://affpapa.org/nevibecode/by/jonathanrreed/apple-mcps.md) — 11 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
