EpicTexting: Send SMS from Your AI Agent (Twilio)
Let your AI agent send text messages from your own Twilio number: one SMS or a personalised bulk text to up to 50 people, with delivery status.
Sanskar Tiwari
@theindianappguy
Install
$ openclaw skills install @theindianappguy/epictextingEpicTexting
Your agent sends the text. EpicTexting sends SMS from your own Twilio number: one message or a personalised bulk text, with delivery status and replies.
1. Connect (once)
EpicTexting runs as a hosted MCP server: https://www.epictexting.app/api/mcp/mcp (Streamable HTTP, OAuth sign-in, no API key).
If you already see EpicTexting tools (get_account_status, get_message_status …, possibly prefixed like mcp__epictexting__…), skip this.
Otherwise tell the user the one command for their agent, then ask them to sign in when the browser opens:
| Agent | Connect |
|---|---|
| Claude Code | claude mcp add --transport http epictexting https://www.epictexting.app/api/mcp/mcp then /mcp → epictexting → Authenticate |
| Codex | codex mcp add epictexting --url https://www.epictexting.app/api/mcp/mcp then codex mcp login epictexting |
| Gemini CLI | gemini mcp add -t http epictexting https://www.epictexting.app/api/mcp/mcp then /mcp auth epictexting |
| OpenClaw | openclaw mcp add epictexting --url https://www.epictexting.app/api/mcp/mcp --transport streamable-http then openclaw mcp login epictexting |
| Hermes | hermes mcp add epictexting --url https://www.epictexting.app/api/mcp/mcp --auth oauth then hermes mcp login epictexting |
| Cursor / Claude.ai / ChatGPT | add a custom MCP connector with the URL above |
A free account works to start: https://www.epictexting.app/?ref=agent-skill
2. Tools
| Tool | What it does | Kind |
|---|---|---|
get_account_status | Twilio connected?, default sender, plan, SMS left this month | read-only |
list_sender_numbers | Twilio numbers you can send from | read-only |
send_sms | Send one SMS | sends / acts |
send_bulk_sms | Send the same SMS to up to 50 people, personalised with {name} | sends / acts |
list_recent_messages | Recent sent and received SMS | read-only |
get_message_status | Delivery status of one message by SID | read-only |
3. Rules (non-negotiable)
- Always confirm before sending. Show the user exactly who gets what text (every number and the final message, with
{name}filled in for one example), and for bulk sends the count of SMS. Wait for a clear yes. One send per yes. - Numbers must be international format (
+15551234567,+919876543210). - Only text people who expect to hear from the user. No spam, no purchased lists, no marketing to people who haven't opted in. Respect STOP replies.
- If a result has
connect_url, Twilio isn't connected: give the user that link and stop. If it hasupgrade_url, the monthly limit is reached: share it.
4. Workflow
get_account_statusfirst. If it returnsconnect_url, share it and stop.- Draft the message (and the recipient list for bulk). Use
{name}for personalisation insend_bulk_sms. - Show the draft and get a yes. Then
send_sms(one) orsend_bulk_sms(≤50). - Report what was sent. If asked, check
get_message_statuswith the returned SID, orlist_recent_messagesfor replies.
5. Examples
- "Text +1 415 555 0134: running 10 minutes late, see you at 6:10." → Show number + text → yes → send_sms → "Sent from your default number."
- "Send this to my 12 workshop attendees: Hi {name}, tomorrow's session starts at 10am in Room B." → Show list + one filled example + "12 SMS" → yes → send_bulk_sms.
- "Did my last text to Priya get delivered?" → list_recent_messages to her number → get_message_status → delivered / failed with reason.
- "Which numbers can I send from?" → list_sender_numbers.
- "Any replies today?" → list_recent_messages → summarise inbound texts.
6. Errors
| Result | Do this |
|---|---|
| 401 / "sign in" / auth error | The MCP isn't authorised: run the connect step for the user's agent again. |
connect_url / upgrade_url in a result | Give the user that link; don't retry. |
| Tool refuses the request | Explain the reason it gave; don't rephrase to get around it. |
Top skills in this category
Humanizer
@biostartechnologyRemove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Slack
@steipeteUse when you need to control Slack from Clawdbot via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
PollyReach
@pollyreachPollyReach gives every AI agent a phone number and the ability to get things done over the phone — finding contacts, making calls, and completing tasks. Just...
imap-smtp-email
@gzlicanyiRead and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments. Supports multiple accounts. Works with any IMAP/SMTP server including Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, and vip
Answer Overflow
@rhyssullivanSearch indexed Discord community discussions via Answer Overflow. Find solutions to coding problems, library issues, and community Q&A that only exist in Discord conversations.