Lp3
Medium
- Category
- MCP Least Privilege
- Confidence
- 70% confidence
- Finding
- Without declared permissions the skill's intent is opaque and cannot be validated.
Security checks across malware telemetry and agentic risk
This skill does what it claims, but it sets up a powerful autonomous email inbox with full email-provider credentials and weakly scoped access controls.
Install only if you intentionally want an agent-operated email address. Before using it, add authentication to the inbox read and ack endpoints, limit the Resend API key where possible, store secrets in a real secrets manager, restrict who can read mail/inbox and mail.log, and make the cron monitor explicit, reversible, and easy to disable.
```js
async function sendEmail(to, subject, text, html) {
const res = await fetch('https://api.resend.com/emails', {
method: 'POST',
headers: {
'Authorization': `Bearer ${RESEND_API_KEY}`,RESEND_KEY="re_xxxxx"
# Add domain
curl -s -X POST -H "Authorization: Bearer $RESEND_KEY" \
-H "Content-Type: application/json" \
https://api.resend.com/domains \
-d '{"name": "yourdomain.com", "region": "us-east-1"}'## Step 3: Register Webhook on Resend
```bash
curl -s -X POST -H "Authorization: Bearer $RESEND_KEY" \
-H "Content-Type: application/json" \
https://api.resend.com/webhooks \
-d '{**Send a test email:**
```bash
curl -s -X POST -H "Authorization: Bearer $RESEND_KEY" \
-H "Content-Type: application/json" \
https://api.resend.com/emails \
-d '{# Add domain
curl -s -X POST -H "Authorization: Bearer $RESEND_KEY" \
-H "Content-Type: application/json" \
https://api.resend.com/domains \
-d '{"name": "yourdomain.com", "region": "us-east-1"}'
# Get DNS records to configure# Get DNS records to configure curl -s -H "Authorization: Bearer $RESEND_KEY" \ https://api.resend.com/domains/yourdomain.com | jq '.records' ``` Add the returned DNS records (TXT, MX, CNAME) to your DNS provider. Wait for verification (usually minutes).
**Verify status:**
```bash
curl -s -H "Authorization: Bearer $RESEND_KEY" \
https://api.resend.com/domains/yourdomain.com | jq '{status, capabilities}'
```
Both `sending` and `receiving` must be `"enabled"`.```bash
curl -s -X POST -H "Authorization: Bearer $RESEND_KEY" \
-H "Content-Type: application/json" \
https://api.resend.com/webhooks \
-d '{
"endpoint": "https://yourdomain.com/api/inbound-email",
"events": ["email.received"],```bash
curl -s -X POST -H "Authorization: Bearer $RESEND_KEY" \
-H "Content-Type: application/json" \
https://api.resend.com/emails \
-d '{
"from": "Agent <agent@yourdomain.com>",
"to": ["owner@theirdomain.com"],```js
async function sendEmail(to, subject, text, html) {
const res = await fetch('https://api.resend.com/emails', {
method: 'POST',
headers: {
'Authorization': `Bearer ${RESEND_API_KEY}`,## Step 6: Set Up Inbox Monitoring Cron Create a cron job that checks for new emails every 5 minutes and notifies the agent: ``` Every 5 min → Check mail/inbox/ for new .json files
63/63 vendors flagged this skill as clean.