[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6Q2SCCEA2MGVTS7APMFC0DB":3,"skill-same:01M6Q2SCCEA2MGVTS7APMFC0DB":90},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":30,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":65,"repositoryHtmlUrl":66,"repositoryHomepageUrl":6,"ownerHtmlUrl":67,"ownerBlogUrl":6,"ownerDescription":68,"updatedAt":69,"install":70,"resources":83},"01M6Q2SCCEA2MGVTS7APMFC0DB","mailchannels-email-api",null,"Send email via MailChannels Email API and ingest signed delivery-event webhooks into Clawdbot (Moltbot).","Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F电子邮件\u002Fmailchannels\u002FSKILL.md",[17,22,25],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":26,"categoryName":27,"taxonomyType":28,"taxonomyTypeDesc":29},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"email","api","email api","mailchannels email api","clawdbot","send","event","via","id","delivery","moltbot","docs","webhooks","ingest","curl","send email","https","2026-11-10 10:12:30",false,"---\nname: mailchannels-email-api\ndescription: Send email via MailChannels Email API and ingest signed delivery-event webhooks into Clawdbot (Moltbot).\nhomepage: https:\u002F\u002Fdocs.mailchannels.net\u002Femail-api\u002F\nmetadata: {\"moltbot\":{\"emoji\":\"?\",\"requires\":{\"env\":[\"MAILCHANNELS_API_KEY\",\"MAILCHANNELS_ACCOUNT_ID\"],\"bins\":[\"curl\"]},\"primaryEnv\":\"MAILCHANNELS_API_KEY\"}}\n---\n\n# MailChannels Email API (Send + Delivery Events)\n\n## Environment\n\nRequired:\n- `MAILCHANNELS_API_KEY` (send in `X-Api-Key`)\n- `MAILCHANNELS_ACCOUNT_ID` (aka `customer_handle`)\n\nOptional:\n- `MAILCHANNELS_BASE_URL` (default: `https:\u002F\u002Fapi.mailchannels.net\u002Ftx\u002Fv1`), `MAILCHANNELS_WEBHOOK_ENDPOINT_URL`\n\n## Domain Lockdown (DNS)\n\nCreate a TXT record for each sender domain:\n- Host: `_mailchannels.\u003Cyour-domain>`\n- Value: `v=mc1; auid=\u003CYOUR_ACCOUNT_ID>`\n\n## API Quick Reference\nBase URL: `${MAILCHANNELS_BASE_URL:-https:\u002F\u002Fapi.mailchannels.net\u002Ftx\u002Fv1}`\n- Send: `POST \u002Fsend`\n- Send async: `POST \u002Fsend-async`\n- Webhook: `POST \u002Fwebhook?endpoint=\u003Curl>`, `GET \u002Fwebhook`, `DELETE \u002Fwebhook`, `POST \u002Fwebhook\u002Fvalidate`\n- Public key: `GET \u002Fwebhook\u002Fpublic-key?id=\u003Ckeyid>`\n\n## Sending Email\nMinimum payload fields: `personalizations`, `from`, `subject`, `content`.\nUse `\u002Fsend` for normal traffic and `\u002Fsend-async` for queued\u002Flow-latency; both produce webhooks.\nPersist MailChannels correlation IDs (e.g., `request_id`).\n\n## Delivery Events (Webhooks)\nMailChannels POSTs a JSON array. Common fields: `email`, `customer_handle`, `timestamp`, `event`, `request_id`.\nBounce fields often include: `recipients`, `status`, `reason`, `smtp_id`.\n\n## Moltbot Hooks Routing\n1) Enable hooks in `~\u002F.clawdbot\u002Fmoltbot.json`.\n2) Map `\u002Fhooks\u002F\u003Cpath>` to an agent action via `hooks.mappings` and optional transform.\n3) Enroll the public endpoint in MailChannels `\u002Fwebhook?endpoint=...`.\n\n## Webhook Signature Verification\nHeaders: `Content-Digest`, `Signature-Input`, `Signature`.\nSteps:\n- Parse `Signature-Input` (name, `created`, `alg`, `keyid`).\n- Reject stale `created` values.\n- Fetch public key by `keyid`.\n- Recreate the RFC 9421 signature base.\n- Verify ed25519 signature (avoid hand-rolling).\nAlso verify JSON body is an array and every event has `customer_handle == MAILCHANNELS_ACCOUNT_ID`.\n\n## Correlation + State Updates\nStore your internal message ID + MailChannels IDs (e.g., `request_id`, `smtp_id`).\nUpdate delivery state from events: `processed`, `delivered`, `soft-bounced`, `hard-bounced`, `dropped`.\nOperational tips: respond 2xx quickly, process async, store raw events, dedupe retries.\n","# MailChannels Email API (Send + Delivery Events)\n\n## Environment\n\nRequired:\n- `MAILCHANNELS_API_KEY` (send in `X-Api-Key`)\n- `MAILCHANNELS_ACCOUNT_ID` (aka `customer_handle`)\n\nOptional:\n- `MAILCHANNELS_BASE_URL` (default: `https:\u002F\u002Fapi.mailchannels.net\u002Ftx\u002Fv1`), `MAILCHANNELS_WEBHOOK_ENDPOINT_URL`\n\n## Domain Lockdown (DNS)\n\nCreate a TXT record for each sender domain:\n- Host: `_mailchannels.\u003Cyour-domain>`\n- Value: `v=mc1; auid=\u003CYOUR_ACCOUNT_ID>`\n\n## API Quick Reference\nBase URL: `${MAILCHANNELS_BASE_URL:-https:\u002F\u002Fapi.mailchannels.net\u002Ftx\u002Fv1}`\n- Send: `POST \u002Fsend`\n- Send async: `POST \u002Fsend-async`\n- Webhook: `POST \u002Fwebhook?endpoint=\u003Curl>`, `GET \u002Fwebhook`, `DELETE \u002Fwebhook`, `POST \u002Fwebhook\u002Fvalidate`\n- Public key: `GET \u002Fwebhook\u002Fpublic-key?id=\u003Ckeyid>`\n\n## Sending Email\nMinimum payload fields: `personalizations`, `from`, `subject`, `content`.\nUse `\u002Fsend` for normal traffic and `\u002Fsend-async` for queued\u002Flow-latency; both produce webhooks.\nPersist MailChannels correlation IDs (e.g., `request_id`).\n\n## Delivery Events (Webhooks)\nMailChannels POSTs a JSON array. Common fields: `email`, `customer_handle`, `timestamp`, `event`, `request_id`.\nBounce fields often include: `recipients`, `status`, `reason`, `smtp_id`.\n\n## Moltbot Hooks Routing\n1) Enable hooks in `~\u002F.clawdbot\u002Fmoltbot.json`.\n2) Map `\u002Fhooks\u002F\u003Cpath>` to an agent action via `hooks.mappings` and optional transform.\n3) Enroll the public endpoint in MailChannels `\u002Fwebhook?endpoint=...`.\n\n## Webhook Signature Verification\nHeaders: `Content-Digest`, `Signature-Input`, `Signature`.\nSteps:\n- Parse `Signature-Input` (name, `created`, `alg`, `keyid`).\n- Reject stale `created` values.\n- Fetch public key by `keyid`.\n- Recreate the RFC 9421 signature base.\n- Verify ed25519 signature (avoid hand-rolling).\nAlso verify JSON body is an array and every event has `customer_handle == MAILCHANNELS_ACCOUNT_ID`.\n\n## Correlation + State Updates\nStore your internal message ID + MailChannels IDs (e.g., `request_id`, `smtp_id`).\nUpdate delivery state from events: `processed`, `delivered`, `soft-bounced`, `hard-bounced`, `dropped`.\nOperational tips: respond 2xx quickly, process async, store raw events, dedupe retries.\n",{"name":5,"homepage":53,"metadata":54,"description":7},"https:\u002F\u002Fdocs.mailchannels.net\u002Femail-api\u002F",{"moltbot":55},{"emoji":56,"requires":57,"primaryEnv":59},"?",{"env":58,"bins":61},[59,60],"MAILCHANNELS_API_KEY","MAILCHANNELS_ACCOUNT_ID",[45],"main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","电子邮件\u002Fmailchannels",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":8,"skillName":5,"commands":71,"prompt":81,"zipAvailable":82},[72,75,78],{"tool":73,"command":74},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill mailchannels-email-api",{"tool":76,"command":77},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill mailchannels-email-api",{"tool":79,"command":80},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill mailchannels-email-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F电子邮件\u002Fmailchannels\u002FSKILL.md",true,[84],{"path":85,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":88,"sourceHtmlUrl":89},"_meta.json","REFERENCE","参考文档",288,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F电子邮件\u002Fmailchannels\u002F_meta.json",[91,115,142,153,163,192],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":48},"01M6Q5R6WZ06RRB9RQTW54B34B","zyfai","Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[93,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],"safe","ethereum","defi","Optimization","user","use","Wallet","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":116,"name":117,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":125,"publishedAt":48},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[120,121,124],{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":26,"categoryName":27,"taxonomyType":28,"taxonomyTypeDesc":29},[32,126,127,128,129,130,131,100,132,104,133,134,135,136,137,138,139,140,141],"zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","crypto","evm","solana","query","across","positions","token","prices",{"skillNo":143,"name":144,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":150,"publishedAt":48},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[147,148,149],{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":28,"taxonomyTypeDesc":29},[32,151,152,126,127,128,129,130,131,100,132,104,134,135,136,137,138,139,140,141],"api skill","zerion api skill",{"skillNo":154,"name":155,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":161,"publishedAt":48},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[158,159,160],{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":28,"taxonomyTypeDesc":29},[128,32,162,126,127,129,130,100,132,104,133,134,135,136,137,138,139,140,141],"zerion api mcp",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":172,"publishedAt":48},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[169],{"categoryNo":170,"categoryName":171,"taxonomyType":28,"taxonomyTypeDesc":29},"01JBSEEDCAT000000000000040","财务",[173,174,175,176,177,178,47,179,180,181,182,183,184,185,186,187,188,189,190,191],"finance","yahoo finance","forex","yahoo","yahoo finance forex","github","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data","for",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":199,"publishedAt":48},"01M6Q5QM6VS84WZVM7BKXXPF32","yahoo-finance","This skill should be used when the user asks to \"get stock prices\", \"check stock quotes\", \"look up earnings\", \"get financial data\", \"find trending stocks\", or needs stock market data from Yahoo Finance.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[198],{"categoryNo":170,"categoryName":171,"taxonomyType":28,"taxonomyTypeDesc":29},[173,174,176,200,201,202,203,204,205,183,206,207,208,209,210,211,212,213,141,190],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]