Let Claude, ChatGPT, Grok Bot and any MCP agent email you when something needs your attention. Private, free, one-click deploy to Cloudflare Workers.
TypeScript
0
9 commits
updated Oct 5, 2026

Always-on agents like OpenAI Dots and Grok Bot keep working after you close the app. agent-notify lets them, and Claude Code, Cursor or any script, email you when something needs your attention: a new lead, this week's free games, a failed backup, a finished report.
It's one Cloudflare Worker on your own free account, deployed in one click. It can only send email, and only to you. It has no access to your inbox, and there's no shared service in the middle.
Works with Claude Code, Cursor, Grok Bot, ChatGPT and OpenAI Dots (wherever custom connectors are available), and anything that can use an MCP server or send a web request.

You need: a free Cloudflare account, a domain on Cloudflare, and any inbox (Gmail, Proton, work email…). Nothing to install.
Domain already has email? That's fine. Onboarding doesn't touch your MX records. If it offers a new DMARC record, keep your existing one if other tools send as your domain.
Click Deploy to Cloudflare above and fill in:
agent-notify-7f3k9q2m8x4w, so your Worker's URL can't be guessed (see Security)TO_ADDRESS: the inbox you verifiedFROM_ADDRESS: any address on your onboarded domain, e.g. alerts@yourdomain.comYou'll get a one-time setup link. Open it, press Reveal, and follow the steps. That page is shown once, so save your token.
After installing the MCP and Skill, just ask your agent in plain words:
Check the free games on Epic every Friday and email me the good ones.
Watch my inbox for new leads and email me a one-line summary of each.
ChatGPT, Grok Bot and other apps that only accept a URL: add the secret MCP URL from your setup page as a custom connector with no authentication.
Or send from any script:
curl -X POST "$AGENT_NOTIFY_URL" \
-H "Authorization: Bearer $AGENT_NOTIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"subject":"Backup finished","text":"All 3 databases backed up."}'
The connection lets your agent send email. The agent-notify skill teaches it to do that well.
[FAILED] nightly backup, what happened and what to do next. Digests you ask for (this week's free games, new leads, a report) can be as long as they need, laid out item by item with links so they're easy to skim on a phone.Install it in Claude Code with one command (also shown on your setup page):
mkdir -p ~/.claude/skills/agent-notify && curl -fsSL https://raw.githubusercontent.com/CyrisXD/agent-notify/main/skills/agent-notify/SKILL.md -o ~/.claude/skills/agent-notify/SKILL.md
Then just mention email ("email me when it's done") or call it directly:
/agent-notify find this week's free games and email me the best three
The skill is a plain Markdown file, so other agents that support skills or custom instructions can use it too.
Free. On Cloudflare's free plan it can't cost anything: going over a limit just pauses sending until the next day.
On the $5 Workers Paid plan, emails to your verified inbox are still free, and DAILY_LIMIT (default 100 a day) keeps you inside the included quota. If you're on Paid, set a budget alert anyway.
agent-notify is secure by design: it can only ever email you. Nothing a caller sends can change the recipient, so even a misbehaving agent can't use it to leak your data to someone else or spam other people.
agent-notify is the same for everyone, so a random name keeps junk traffic away. npm run deploy picks one for you on the first deploy (agent-notify- plus 24 random characters). With the Deploy button, type a suffix into the Worker name field yourself. This is only an extra layer: nothing works without your token, whatever the URL.DAILY_LIMIT a day. But those emails come from your own domain, so treat an unexpected agent-notify email asking you to log in, pay or run something as phishing.token_sha256 key. The old token stops working within about a minute and setup reopens: open your Worker's URL and request a new link.Agents read web pages, emails and documents, and some of that content is written to trick them ("ignore your instructions and…"). That's prompt injection. No tool can fully prevent it, because it happens inside the agent before a request ever reaches agent-notify.
What agent-notify does is limit the damage. A tricked agent can't email your files or secrets to an attacker, because the only inbox it can reach is yours. The remaining risk is a misleading email to you, such as a fake "log in here" link copied from a page the agent read. So:
FROM_ADDRESS domain isn't onboarded (step 1). Fix it, wait a few minutes, then open your Worker's URL and click Email me a setup link. No redeploy needed.TO_ADDRESS, FROM_ADDRESS or DAILY_LIMIT? Edit wrangler.jsonc in the copy of this repo that Cloudflare created on your GitHub. Committing redeploys it. Don't change them in the Cloudflare dashboard: the next deploy resets them.claude mcp list. If agent-notify is missing, re-run the command from your setup page (it uses --scope user, so it works in every folder).DAILY_LIMIT (see above).git clone https://github.com/CyrisXD/agent-notify && cd agent-notify && npm i
# set TO_ADDRESS and FROM_ADDRESS in wrangler.jsonc
npm run deploy # first run gives the Worker a random, unguessable name and saves it in wrangler.jsonc
MIT licensed.
If agent-notify saves you some time, you can buy me a coffee:
Let Claude, ChatGPT, Grok Bot and any MCP agent email you when something needs your attention. Private, free, one-click deploy to Cloudflare Workers.
TypeScript
0
9 commits
updated Oct 5, 2026

Always-on agents like OpenAI Dots and Grok Bot keep working after you close the app. agent-notify lets them, and Claude Code, Cursor or any script, email you when something needs your attention: a new lead, this week's free games, a failed backup, a finished report.
It's one Cloudflare Worker on your own free account, deployed in one click. It can only send email, and only to you. It has no access to your inbox, and there's no shared service in the middle.
Works with Claude Code, Cursor, Grok Bot, ChatGPT and OpenAI Dots (wherever custom connectors are available), and anything that can use an MCP server or send a web request.

You need: a free Cloudflare account, a domain on Cloudflare, and any inbox (Gmail, Proton, work email…). Nothing to install.
Domain already has email? That's fine. Onboarding doesn't touch your MX records. If it offers a new DMARC record, keep your existing one if other tools send as your domain.
Click Deploy to Cloudflare above and fill in:
agent-notify-7f3k9q2m8x4w, so your Worker's URL can't be guessed (see Security)TO_ADDRESS: the inbox you verifiedFROM_ADDRESS: any address on your onboarded domain, e.g. alerts@yourdomain.comYou'll get a one-time setup link. Open it, press Reveal, and follow the steps. That page is shown once, so save your token.
After installing the MCP and Skill, just ask your agent in plain words:
Check the free games on Epic every Friday and email me the good ones.
Watch my inbox for new leads and email me a one-line summary of each.
ChatGPT, Grok Bot and other apps that only accept a URL: add the secret MCP URL from your setup page as a custom connector with no authentication.
Or send from any script:
curl -X POST "$AGENT_NOTIFY_URL" \
-H "Authorization: Bearer $AGENT_NOTIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"subject":"Backup finished","text":"All 3 databases backed up."}'
The connection lets your agent send email. The agent-notify skill teaches it to do that well.
[FAILED] nightly backup, what happened and what to do next. Digests you ask for (this week's free games, new leads, a report) can be as long as they need, laid out item by item with links so they're easy to skim on a phone.Install it in Claude Code with one command (also shown on your setup page):
mkdir -p ~/.claude/skills/agent-notify && curl -fsSL https://raw.githubusercontent.com/CyrisXD/agent-notify/main/skills/agent-notify/SKILL.md -o ~/.claude/skills/agent-notify/SKILL.md
Then just mention email ("email me when it's done") or call it directly:
/agent-notify find this week's free games and email me the best three
The skill is a plain Markdown file, so other agents that support skills or custom instructions can use it too.
Free. On Cloudflare's free plan it can't cost anything: going over a limit just pauses sending until the next day.
On the $5 Workers Paid plan, emails to your verified inbox are still free, and DAILY_LIMIT (default 100 a day) keeps you inside the included quota. If you're on Paid, set a budget alert anyway.
agent-notify is secure by design: it can only ever email you. Nothing a caller sends can change the recipient, so even a misbehaving agent can't use it to leak your data to someone else or spam other people.
agent-notify is the same for everyone, so a random name keeps junk traffic away. npm run deploy picks one for you on the first deploy (agent-notify- plus 24 random characters). With the Deploy button, type a suffix into the Worker name field yourself. This is only an extra layer: nothing works without your token, whatever the URL.DAILY_LIMIT a day. But those emails come from your own domain, so treat an unexpected agent-notify email asking you to log in, pay or run something as phishing.token_sha256 key. The old token stops working within about a minute and setup reopens: open your Worker's URL and request a new link.Agents read web pages, emails and documents, and some of that content is written to trick them ("ignore your instructions and…"). That's prompt injection. No tool can fully prevent it, because it happens inside the agent before a request ever reaches agent-notify.
What agent-notify does is limit the damage. A tricked agent can't email your files or secrets to an attacker, because the only inbox it can reach is yours. The remaining risk is a misleading email to you, such as a fake "log in here" link copied from a page the agent read. So:
FROM_ADDRESS domain isn't onboarded (step 1). Fix it, wait a few minutes, then open your Worker's URL and click Email me a setup link. No redeploy needed.TO_ADDRESS, FROM_ADDRESS or DAILY_LIMIT? Edit wrangler.jsonc in the copy of this repo that Cloudflare created on your GitHub. Committing redeploys it. Don't change them in the Cloudflare dashboard: the next deploy resets them.claude mcp list. If agent-notify is missing, re-run the command from your setup page (it uses --scope user, so it works in every folder).DAILY_LIMIT (see above).git clone https://github.com/CyrisXD/agent-notify && cd agent-notify && npm i
# set TO_ADDRESS and FROM_ADDRESS in wrangler.jsonc
npm run deploy # first run gives the Worker a random, unguessable name and saves it in wrangler.jsonc
MIT licensed.
If agent-notify saves you some time, you can buy me a coffee: