The official Sent agent plugin combines focused Agent Skills with live Model Context Protocol (MCP) tools. Use it to send and track business messages, manage contacts and templates, query analytics and account readiness, diagnose delivery failures, and guide SMS 10DLC, WhatsApp Business, RCS/RBM, and Sender Profile implementations.
This repository is both:
- a skills collection that can be discovered and installed with the
skillsCLI; and - a portable Agent Plugins 1.0.0 package with generated Codex and Claude Code adapters.
Each skill's canonical documentation lives in its SKILL.md. The collection READMEs provide the searchable task index; skill-specific references/, scripts/, and agents/openai.yaml files provide deeper guidance only where needed.
List the available skills without installing them:
npx skills add https://github.com/sentdm/sent-plugin --listInstall the sent dispatcher when you want the agent to route broad Sent requests:
npx skills add https://github.com/sentdm/sent-plugin --skill sentInstall one or more focused skills when the task is already known:
npx skills add https://github.com/sentdm/sent-plugin \
--skill sent-messaging \
--skill messaging-performance-analyzerInstall all skills:
npx skills add https://github.com/sentdm/sent-plugin --skill '*'The Skills CLI installs agent instructions. Live account reads and mutations additionally require the Sent MCP server through a compatible, authorized client.
/plugin marketplace add sentdm/sent-plugin
/plugin install sent@sent
For local plugin development:
claude --plugin-dir ./claude-plugins/sentThe repository root is directly discoverable as an Agent Plugins 1.0.0 package. packages/sent is the canonical portable artifact; plugins/sent and claude-plugins/sent are generated host adapters.
| Skill | Use for | Example searches and requests | Path |
|---|---|---|---|
sent |
Route broad, ambiguous, or multi-step Sent work | “What can Sent do?”, “set up business messaging”, “which Sent skill should I use?” | skills/sent/SKILL.md |
sent-messaging |
Send SMS, WhatsApp, or RCS messages; inspect one message and its activity timeline; handle ambiguous send outcomes | “send this approved template”, “did message msg_123 deliver?”, “the send timed out” |
skills/sent-messaging/SKILL.md |
sent-contacts |
List, find, inspect, bulk-create, summarize, or delete Sent contacts | “import these contacts”, “find this contact”, “show messaging history”, “delete contact” | skills/sent-contacts/SKILL.md |
sent-templates |
List, find by name or ID, inspect, or delete existing templates | “find an approved template”, “get template status”, “delete this template” | skills/sent-templates/SKILL.md |
sent-analytics |
Query message volume, aggregate deliverability, contact metrics, or phone-number capabilities | “delivery rate last week”, “messages sent this month”, “look up this number” | skills/sent-analytics/SKILL.md |
sent-account-readiness |
Check the authorized account, balance, onboarding/KYC status, organization, and Sender Profile scope | “am I ready to send?”, “check balance”, “what is blocking onboarding?” | skills/sent-account-readiness/SKILL.md |
messaging-performance-analyzer |
Diagnose MDR/message-activity funnels, delivery failures, error-code clusters, read-rate gaps, and channel fallback | “why did SMS delivery drop?”, “analyze this MDR”, “why are RCS messages falling back?” | skills/messaging-performance-analyzer/SKILL.md |
sms-10dlc-registration |
Prepare US A2P 10DLC brand, campaign, TCR, opt-in, sample-message, and rejection-remediation evidence | “register a 10DLC campaign”, “TCR brand vetting”, “carrier filtering”, “opt-in proof” | skills/sms-10dlc-registration/SKILL.md |
waba-embedded-signup |
Connect a WhatsApp Business Account, map WABA and phone-number identifiers, and verify webhook/profile readiness | “connect WhatsApp”, “Embedded Signup failed”, “map this WABA to a Sender Profile” | skills/waba-embedded-signup/SKILL.md |
waba-template-author |
Write, classify, lint, and revise WhatsApp utility, marketing, and authentication templates | “utility or marketing?”, “fix Meta rejection”, “draft an OTP template” | skills/waba-template-author/SKILL.md |
rcs-agent-onboarding |
Prepare an RCS Business Messaging agent, carrier-approval evidence, capabilities, SMS fallback, and launch checks | “onboard an RBM agent”, “RCS carrier approval”, “design SMS fallback” | skills/rcs-agent-onboarding/SKILL.md |
sender-profile-architect |
Design multi-tenant and multi-brand Sender Profile boundaries, webhook routing, lifecycle, and channel ownership | “model 50 messaging tenants”, “profile per brand?”, “route webhooks by tenant” | skills/sender-profile-architect/SKILL.md |
template-builder-ui |
Design or audit a tenant-facing SMS, WhatsApp, and RCS template editor and submission workflow | “build a WhatsApp template editor”, “design template validation”, “handle approval states” | skills/template-builder-ui/SKILL.md |
sent-integration-starter |
Stand up and harden a Sent v3 integration: SDK choice, idempotent sends, retry policy, error families, launch checklist | “add Sent to our app”, “what retry policy?”, “are we production ready?” | skills/sent-integration-starter/SKILL.md |
sent-webhook-engineer |
Build and debug webhook receivers: signature verification, replay window, dedupe, retries, auto-disable recovery | “401 on every webhook”, “verify the signature header”, “our endpoint went inactive” | skills/sent-webhook-engineer/SKILL.md |
sent-routing-strategist |
Choose channels and diagnose routes: broadcast versus automatic routing, reroute behavior, and delivery outcomes | “RCS then SMS fallback?”, “why is channel auto?”, “recipients got two messages” | skills/sent-routing-strategist/SKILL.md |
sent-two-way-messaging |
Design inbound flows: keyword consent, opt-out state, the WhatsApp 24-hour window, RCS STOP chips, conversation history | “do I handle STOP myself?”, “auto-reply stopped working”, “page conversation history” | skills/sent-two-way-messaging/SKILL.md |
sent-profile-provisioning |
Execute the Sender Profile lifecycle: create, inheritance, completion callback, campaigns, users and roles | “create a profile via the API”, “completion callback never arrived”, “invite a developer” | skills/sent-profile-provisioning/SKILL.md |
migrate-to-sent |
Migrate from Twilio, Sinch, Infobip, Vonage, or Bird: concept mapping, dual-run, staged cutover, rollback | “moving off Sinch”, “Vonage failover equivalent”, “dual-run comparison metrics” | skills/migrate-to-sent/SKILL.md |
Use sent-analytics for aggregate dashboard totals and trends. Use messaging-performance-analyzer for message-level evidence, funnel drop-off, and root-cause analysis. Use sent-templates for existing records, waba-template-author for WhatsApp content and policy decisions, and template-builder-ui for product UX.
For engineering work, use sent-integration-starter to stand up and harden a new integration, sent-webhook-engineer for receiver construction and delivery debugging, sent-routing-strategist for channel selection and route diagnosis, sent-two-way-messaging for inbound and consent flows, sent-profile-provisioning to execute the profile lifecycle that sender-profile-architect designs, and migrate-to-sent when replacing an incumbent provider.
The plugin declares the Streamable HTTP endpoint https://mcp.sent.dm/mcp and exposes these operations through the authorized connection:
| Area | Tools |
|---|---|
| Messaging | messages.send, messages.get, messages.activities.list |
| Contacts | contacts.list, contacts.get, contacts.create_many, contacts.delete, contacts.message_summary |
| Templates | templates.list, templates.get, templates.get_by_name, templates.delete |
| Lookup and analytics | numbers.lookup, dashboard.messages_sent, dashboard.deliverability, dashboard.contacts |
| Account | account.get, balance.get, onboarding.status |
The MCP client performs OAuth 2.1 authorization with PKCE and Dynamic Client Registration. The user selects an organization and Sender Profile during authorization; the client stores the resulting grant. Reauthorize to change scope and revoke access from Sent Dashboard → Settings → MCP Connections. Do not paste API keys or tokens into prompts.
- Preview the exact organization, Sender Profile, target, and payload before every send, contact creation, or deletion.
- Require explicit confirmation immediately before the mutation. Any changed payload or retry needs a fresh preview and confirmation.
- Never retry an ambiguous send automatically; inspect the message and activity history first when possible.
- Treat
acceptedorqueuedas processing states, not proof of delivery. - Mask phone numbers where practical and avoid repeating message bodies, contact data, KYC data, or billing details.
- Treat number lookup as a capability signal, never as evidence of consent.
The canonical source is packages/sent. Root discovery files and host adapters are generated; do not edit generated copies directly.
packages/sent/ # canonical portable package
├── plugin.json # searchable package metadata
├── mcp.json # remote MCP declaration
├── README.md # portable-package documentation
└── skills/<name>/
├── SKILL.md # trigger metadata and workflow
├── agents/openai.yaml # optional UI metadata
├── references/ # optional deep reference docs
└── scripts/ # optional deterministic helpers
evals/ # positive, negative, and overlap routing cases
adapter-sources/ # shared and host-specific adapter sources
plugins/sent/ # generated Codex adapter
claude-plugins/sent/ # generated Claude Code adapter
scripts/ # generation, validation, and fixture tests
When adding or changing a skill, update the canonical SKILL.md, keep its frontmatter description rich in user intent and domain terms, add routing evaluations, update the sent dispatcher and README catalogs when scope changes, then regenerate and validate:
python3 -m pip install -r requirements-dev.txt
python3 scripts/generate_adapters.py
python3 scripts/validate.py
python3 scripts/test_validation_gates.py
python3 scripts/test_fixtures.py
claude plugin validate . --strict
claude plugin validate ./claude-plugins/sent --strictSee CONTRIBUTING.md for the public-data policy, docs/PUBLIC_RELEASE.md for the release checklist, and SECURITY.md for security reporting.