Canonical source for CarlyEmail's agent skills. Skills are authored here; any other first-party copy — plugin exports, docs examples — is generated from this repository.
CarlyEmail gives an AI agent a real email address: it can send, receive, reply on the right thread, and be woken by a webhook when mail arrives.
# All skills
npx skills add UseCarly/carlyemail-skills
# One skill
npx skills add UseCarly/carlyemail-skills --skill carlyemail-mcp| Skill | Job |
|---|---|
carlyemail-mcp |
Connect a client to the hosted MCP server, and fix it when it will not connect |
carlyemail-send-email |
Draft, send, reply and forward through the MCP tools |
carlyemail |
Build against the CarlyEmail Python or TypeScript SDK |
carlyemail-cli |
Run CarlyEmail from a terminal, and script it |
carlyemail-send-email needs a working MCP connection; the others do not.
Detail that only some tasks need — full parameter lists, webhook setup,
attachments, refusal codes — lives in a reference.md or references/
beside the skill and is loaded on demand. SKILL.md is what is always in
context, so it carries the rules rather than the tables.
backend-contract.json pins the exact tool list these skills describe, with a
hash of it and where it was read from. A skill that documents a tool the
server no longer serves is worse than no skill — it teaches a model to call
something that will fail — so the contract is checked rather than trusted:
python scripts/check_contract.py --from-manifest ../carlyemail/mcp-tools.jsonmcp-tools.json is generated in the API repo from the live registry and
guarded by a test there, so this is a read rather than a parse. --from-server https://api.carlyemail.com/mcp checks what is deployed right now instead, and
needs CARLYEMAIL_API_KEY. Add --update to re-pin after a deliberate change.
PRs against this repository. Skill content merged to main ships to installers
immediately, so treat main as published.