Skip to main content
skill CX Codex

sent-contacts — Claude Code skill: manage Sent contacts via MCP

A skill that runs Sent contact operations through MCP tools: search, bulk import, messaging summary, deletion. Creates and deletes go through confirmation gates.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sentdm/sent-plugin --skill sent-contacts -a claude-code
Open on GitHub

What sent-contacts does

Five tools sit behind this skill: contacts.list, contacts.get, contacts.create_many, contacts.delete and contacts.message_summary. The agent searches contacts with a narrow filter, pulls one record by identifier, imports a batch, reads a messaging summary, or removes a record. Read-only calls need no confirmation.

Before any mutation the skill surfaces the active organization and Sender Profile from the connection context. If either is missing, it points you at sent-account-readiness to inspect the authorized scope. Bulk creation runs local validation and deduplication first, then shows a payload preview with record count and duplicate handling, and only calls contacts.create_many after explicit confirmation. Deletion follows the same shape: fetch the exact target with contacts.get, show a preview with the display label and a masked address, then confirm. Change the records or the scope and the confirmation is void; every retry counts as a new mutation with a fresh preview.

Connection uses client-managed OAuth 2.1/PKCE, and the skill never asks for tokens or API keys. Phone numbers get masked, and reports carry counts and stable identifiers instead of full contact records. A number or a message history is not proof of consent, which matters if you plan to build outreach on an imported list.

What it helps with

  • find a contact by filter without dumping the whole book
  • import a contact list in bulk with duplicate checks
  • review the messaging summary for one contact
  • delete a record by its exact identifier
  • verify the organization and Sender Profile before writing

Example prompts for the agent

  • find contacts matching these numbers and show names only
  • import these records into Sent, preview them and the duplicates first
  • delete the contact with this identifier, show me the record first

How to install sent-contacts

1Skills CLI (Vercel)

npx skills add sentdm/sent-plugin --skill sent-contacts -a claude-code

2Manually: put the files in place

~/.claude/skills/sent-contacts/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/sent-contacts/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about sent-contacts

How do I install sent-contacts in Claude?

Run npx skills add sentdm/sent-plugin --skill sent-contacts -a claude-code. The skill lands at ~/.claude/skills/sent-contacts/SKILL.md.

What does sent-contacts do?

It gives the agent access to Sent contacts through MCP tools: search, fetch by identifier, bulk create, messaging summary and delete. Creates and deletes require explicit confirmation.

Does the skill need an API key?

No. Connection uses client-managed OAuth 2.1/PKCE, and the skill never requests or exposes tokens, API keys or authorization headers.

Source text

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

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set15

sent-account-readiness This skill uses Sent MCP tools to check whether an account can send: balance, onboarding, KYC and the selected Sender Profile. CX Codex +1 2,900installs sent-templates Inspects, discovers, and removes existing Sent message templates via MCP tools. Useful for checking template review statuses or cleaning up obsolete records. CX Codex +1 2,900installs sender-profile-architect Designs Sent v3 Sender Profile architecture for multi-tenant and multi-channel applications. It helps set up isolation, API key scoping, WABA, and billing boundaries. CX Codex +1 2,900installs sms-10dlc-registration Prepares and validates a Sent US A2P 10DLC brand and campaign registration: consent evidence, use cases, sample messages. CX Codex +1 2,900installs rcs-agent-onboarding Walks you through Sent RCS and RBM onboarding: launch evidence checklist, Sender Profile readiness, templates and routing tests. CX Codex +1 2,900installs template-builder-ui Helps design and audit tenant-facing Sent v3 template builders, preview interfaces, channel validation, and lifecycle states before submitting to providers. CX Codex +1 2,900installs waba-embedded-signup Walks you through WhatsApp Business Account onboarding via Sent and keeps three integration paths apart. Useful when wiring profiles, tokens and completion callbacks. CX Codex +1 2,900installs waba-template-author Converts messaging copy into valid payloads for the Sent v3 API and reviews WhatsApp policy constraints. Useful for building utility, marketing, and OTP templates. CX Codex +1 2,900installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor