sent-contacts — скилл для Claude Code: контакты Sent через MCP
Скилл для работы с контактами Sent через MCP-инструменты: поиск, импорт списком, сводка по переписке, удаление. Создание и удаление проходят через подтверждение.
npx skills add sentdm/sent-plugin --skill sent-contacts -a claude-codeЧто делает sent-contacts
Скилл закрывает пять операций: contacts.list, contacts.get, contacts.create_many, contacts.delete и contacts.message_summary. Через них агент ищет контакты по фильтру, достаёт запись по идентификатору, заливает список пачкой, смотрит сводку по переписке и удаляет записи. Чтение подтверждения не требует.
Перед любой записью скилл показывает активную организацию и Sender Profile из контекста подключения. Если их нет, он отправляет проверять авторизованную область через sent-account-readiness. Для массового создания сначала идёт локальная валидация и дедупликация, потом превью с числом записей и обработкой дублей, и только после явного подтверждения вызывается contacts.create_many. Удаление устроено так же: сначала contacts.get по точному идентификатору, превью с меткой и замаскированным адресом, затем подтверждение. Любое изменение записей или области действия обнуляет подтверждение, а повтор считается новой мутацией с новым превью.
Подключение идёт через client-managed OAuth 2.1/PKCE, токены и ключи скилл не запрашивает. Номера телефонов маскируются, в отчёт уходят счётчики и стабильные идентификаторы, а не полные карточки. Наличие номера или истории переписки не означает согласия на рассылку — это стоит держать в голове, если строите кампанию на выгрузке.
Какие задачи решает
- найти контакт по фильтру, не выгружая всю базу
- залить список контактов пачкой с проверкой дублей
- посмотреть сводку по переписке с конкретным контактом
- удалить запись по точному идентификатору
- сверить организацию и Sender Profile перед записью
Примеры запросов агенту
- найди контакты с номером из этого списка и покажи только имена
- загрузи эти записи в Sent, сначала покажи превью и дубли
- удали контакт с этим идентификатором, сначала покажи карточку
Как установить sent-contacts
1Через Skills CLI (Vercel)
npx skills add sentdm/sent-plugin --skill sent-contacts -a claude-code2Вручную: положить файлы
~/.claude/skills/sent-contacts/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/sent-contacts/
1Через Skills CLI (Vercel)
npx skills add sentdm/sent-plugin --skill sent-contacts -a codex2Вручную: положить файлы
.agents/skills/sent-contacts/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add sentdm/sent-plugin --skill sent-contacts -a cursor2Вручную: положить файлы
.cursor/skills/sent-contacts/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install sentdm/sent-plugin sent-contacts2Вручную: положить файлы
.github/skills/sent-contacts/SKILL.md1Через Skills CLI (Vercel)
npx skills add sentdm/sent-plugin --skill sent-contacts -a gemini-cli2Командой платформы
gemini skills install https://github.com/sentdm/sent-plugin --path skills/sent-contactsВручную: положить файлы
.devin/skills/sent-contacts/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add sentdm/sent-plugin --skill sent-contacts -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о sent-contacts
Как установить sent-contacts в Claude?
Выполните npx skills add sentdm/sent-plugin --skill sent-contacts -a claude-code. Файл скилла окажется в ~/.claude/skills/sent-contacts/SKILL.md.
Что делает sent-contacts?
Даёт агенту доступ к контактам Sent через MCP-инструменты: поиск, чтение по идентификатору, массовое создание, сводка по переписке и удаление. Создание и удаление требуют явного подтверждения.
Нужен ли API-ключ для работы скилла?
Нет, подключение идёт через client-managed OAuth 2.1/PKCE. Скилл не запрашивает и не показывает токены, ключи и заголовки авторизации.
Исходный текст
SKILL.md · MIT
--- name: sent-contacts description: Lists, finds, inspects, bulk-creates, summarizes, or deletes Sent contacts with the Sent MCP tools. Use when a user asks to search contacts, get a contact by ID, import or deduplicate a contact list, review a contact's messaging summary, remove a contact, or manage direct contact records. Requires confirmation gates for creates and deletes. --- # Sent Contacts Operate contacts with `contacts.list`, `contacts.get`, `contacts.create_many`, `contacts.delete`, and `contacts.message_summary`. ## Establish connection and scope Use client-managed OAuth 2.1/PKCE. Never request or expose a token, API key, authorization header, client ID, or secret. Before a mutation, surface the active organization and Sender Profile from the connection context; if either is unavailable, use `sent-account-readiness` to inspect the authorized scope. Mask phone numbers where practical. Return only the contact fields needed for the task, and do not repeat contact data after it has been reviewed. Number presence or messaging history does not establish consent. An organization grant may select an owned Sender Profile with the tool schema's optional `profileId`; omit it to act as the authenticated account. Validate ownership with `sender_profiles.list` or `sender_profiles.get`, and use the same selector for preflight reads, mutations, and follow-up reads. Profile grants cannot use this selector. Reauthorize for a different organization or a profile outside the grant. Never invent scope fields or request credentials. ## Read contacts - Use `contacts.list` to search or page through contacts. Apply the narrowest available filter and do not dump an entire contact book unnecessarily. - Use `contacts.get` when an exact contact identifier is known or before a delete. - Use `contacts.message_summary` for the contact's messaging summary. Distinguish summary data from proof of consent or current reachability. Read-only calls do not require mutation confirmation. ## Create contacts in bulk 1. Validate and deduplicate the proposed records locally. Preserve only fields the user actually supplied. 2. Build the exact `contacts.create_many` arguments without calling the tool. 3. Show a payload preview with the selected organization, Sender Profile, record count, duplicate handling, and each exact target. Mask phone numbers where the operator can still verify them; reveal full values once only when exact verification requires it. 4. Ask for explicit confirmation for this exact batch. Earlier or general approval is not sufficient. 5. Call `contacts.create_many` immediately after confirmation. Any change to the records or scope invalidates confirmation. Never call `contacts.create_many` without a preview and explicit confirmation immediately before the call. Treat every retry as a new mutation with a fresh preview and new explicit confirmation. ## Delete a contact 1. Resolve the requested contact to one unambiguous identifier. 2. Fetch the exact target first with `contacts.get`. Never delete from a guessed identifier, broad filter, or stale list result. 3. Show a delete preview containing the selected organization, Sender Profile, exact contact identifier, display label, and masked address. State that deletion is destructive. 4. Ask for explicit confirmation to delete that exact target. 5. Call `contacts.delete` immediately after confirmation. If the target, scope, or record changes, fetch it again and repeat the preview. Never call `contacts.delete` without fetching the target and obtaining explicit confirmation immediately before the call. Every retry requires another fetch, a fresh preview, and new explicit confirmation. ## Report results Report counts and stable identifiers, not full contact records. If a create or delete outcome is ambiguous, do not assume success and do not retry automatically. Re-read the exact target when possible, explain the uncertainty, and require a new confirmation before any further mutation.
© sentdm · MIT · sentdm/sent-plugin