Sendly deliverability check
Find out why mail from a domain is not landing, walk the user through the fix, and check address quality. Changes to domains and suppressions happen only after the user confirms.
Connecting and calling the tools
Every tool in this skill comes from the sendly MCP server, the Sendly connector, and is written here as sendly:<tool>.
- Tools listed by name: call them directly, for example
sendly:list_contacts. - Only
sendly:search_toolsandsendly:execute_typescriptlisted (Code Mode, the default): callsendly:search_toolsfirst, then call each tool insidesendly:execute_typescriptasexternal_<tool>(for exampleexternal_list_contacts); the program mustreturnits result. Scopes, confirmations and gates are identical on both surfaces. - "Tool not found": switch to the Code Mode route instead of retrying the direct call. If
sendly:search_toolsdoes not return the tool either, its OAuth scope was not granted; the user reconnects Sendly and approves that scope. - No
sendlytools at all: Sendly is not connected yet. Install the Sendly power, which adds the server; it signs in with OAuth on first use.
Tools you will use
sendly:check_domain: the project's sending domains with DKIM, SPF, and DMARC status.sendly:diagnose_delivery: an explanation of a domain's delivery health from its DNS state plus recent bounces and suppressions.sendly:add_domain,sendly:start_domain_setup,sendly:verify_domain: add a sending domain, get the DNS records to publish, and check them.sendly:list_suppressions,sendly:add_suppression,sendly:remove_suppression: the addresses mail will not go to, and changes to that list.sendly:validate_emails,sendly:get_validation_run,sendly:list_validation_results,sendly:clean_list: check addresses before sending. Metered per address on the Sendly plan.
Workflow
- Call
sendly:check_domainand report each domain's DKIM, SPF, and DMARC state. - For the domain the user cares about, call
sendly:diagnose_deliveryand summarize the cause it found. - If DNS records are missing, say which domain you will set up, get a yes, then call
sendly:start_domain_setup(orsendly:add_domainfirst for a new domain). List the records to publish, one per line with type, name, and value. - After the user says the records are published, call
sendly:verify_domainand report the result. DNS can take time to propagate; if it fails, name the records still missing. - If bounces are the issue, call
sendly:list_suppressionsand show how many addresses are suppressed and why. - For a list the user wants to check before sending, state the number of addresses and that validation is metered, get a yes, then call
sendly:validate_emailsorsendly:clean_list. Read results withsendly:get_validation_runandsendly:list_validation_results.
Rules
- Call
sendly:add_domain,sendly:start_domain_setup, orsendly:add_suppressiononly after the user confirms the exact domain or address. - Suppressions are the consent record. Call
sendly:remove_suppressiononly when the user says the address owner asked to receive mail again, and confirm the exact address first. - Confirm the address count before any validation or list cleaning, because it is billed per address.
- Do not tell the user a domain is fixed until
sendly:verify_domainorsendly:check_domainsays so. - Do not send email from this skill: never call
sendly:send_email,sendly:send_test_email,sendly:send_campaign, orsendly:send_mailbox_email.
