[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EP7GQGYY7GJSQP45Q8QFRH":3,"skill-same:01M6EP7GQGYY7GJSQP45Q8QFRH":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M6EP7GQGYY7GJSQP45Q8QFRH","gmail-tools",null,"Reading and managing Gmail emails - Sending emails with attachments - Replying to emails while maintaining thread continuity","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fclementwalter\u002Fgmail-tools\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29],"gmail","Tools","gmail tools","attachments","continuity","emails","2026-11-10 10:12:30",false,"---\nname: gmail-tools\ndescription: Reading and managing Gmail emails - Sending emails with attachments - Replying to emails while maintaining thread continuity\n---\n\n# Gmail Tools\n\nSecure Gmail access via IMAP\u002FSMTP with 1Password credential storage. Supports listing, reading, searching, sending, and replying to emails with proper threading and attachments.\n\n## When to Use\n\n- Reading and managing Gmail emails\n- Sending emails with attachments\n- Replying to emails while maintaining thread continuity\n- Searching emails using IMAP queries\n\n## Prerequisites\n\n### 1Password Setup\n\nCreate a 1Password item with:\n\n- **Item name**: Any descriptive name (e.g., \"Gmail Work Claude\", \"Gmail Personal\")\n- **username** field: Your Gmail address (e.g., `user@gmail.com`)\n- **password** field: Gmail App Password (NOT your regular password)\n\n### Getting a Gmail App Password\n\n1. Go to [Google Account Security](https:\u002F\u002Fmyaccount.google.com\u002Fsecurity)\n2. Enable 2-Factor Authentication if not already enabled\n3. Go to \"App passwords\" (under \"2-Step Verification\")\n4. Generate a new app password for \"Mail\"\n5. Copy the 16-character password to your 1Password item\n\n## MCP Server Tools\n\nThe plugin provides these MCP tools:\n\n### list_emails\n\nList recent emails from an account.\n\n```text\naccount: \"Gmail Work Claude\"  # 1Password item name\nfolder: \"INBOX\"               # Optional, default: INBOX\nlimit: 10                     # Optional, default: 10\n```\n\n### read_email\n\nRead full email content including threading headers.\n\n```text\naccount: \"Gmail Work Claude\"\nemail_id: \"46\"                # From list_emails\nfolder: \"INBOX\"               # Optional\n```\n\n### send_email\n\nSend a new email with optional attachments.\n\n```text\naccount: \"Gmail Work Claude\"\nto: \"recipient@example.com\"\nsubject: \"Hello\"\nbody: \"Email content here\"\ncc: \"cc@example.com\"          # Optional\nbcc: \"bcc@example.com\"        # Optional\nattachments: [\"\u002Fpath\u002Fto\u002Ffile.pdf\"]  # Optional\n```\n\n### reply_email\n\nReply to an email, maintaining the thread.\n\n```text\naccount: \"Gmail Work Claude\"\nemail_id: \"46\"                # Email to reply to\nbody: \"Thanks for your message!\"\nattachments: [\"\u002Fpath\u002Fto\u002Fdoc.pdf\"]  # Optional\nfolder: \"INBOX\"               # Optional\n```\n\n### search_emails\n\nSearch using IMAP syntax.\n\n```text\naccount: \"Gmail Work Claude\"\nquery: \"FROM sender@example.com\"  # or \"SUBJECT hello\", \"UNSEEN\", etc.\nfolder: \"INBOX\"               # Optional\nlimit: 10                     # Optional\n```\n\n## Standalone Scripts\n\nFor CLI usage without MCP, use scripts in `scripts\u002F`:\n\n### List Emails\n\n```bash\n.\u002Fscripts\u002Fgmail_list.py \"Gmail Work Claude\" --limit 20\n.\u002Fscripts\u002Fgmail_list.py \"Gmail Work Claude\" --json  # JSON output\n```\n\n### Read Email\n\n```bash\n.\u002Fscripts\u002Fgmail_read.py \"Gmail Work Claude\" \"46\"\n.\u002Fscripts\u002Fgmail_read.py \"Gmail Work Claude\" \"46\" --json\n```\n\n### Reply to Email\n\n```bash\n# Dry run (preview without sending)\n.\u002Fscripts\u002Fgmail_reply.py \"Gmail Work Claude\" \"46\" \\\n  --body \"Thanks for your email.\" \\\n  --attachment ~\u002Fdocument.pdf \\\n  --dry-run\n\n# Send reply\n.\u002Fscripts\u002Fgmail_reply.py \"Gmail Work Claude\" \"46\" \\\n  --body \"Thanks for your email.\" \\\n  --attachment ~\u002Fdocument.pdf\n```\n\n## Email Threading\n\nWhen using `reply_email`, the tool automatically:\n\n1. Extracts the original email's `Message-ID` and `References` headers\n2. Sets `In-Reply-To` to the original `Message-ID`\n3. Builds proper `References` header chain\n4. Adds `RE:` prefix to subject if not present\n5. Sends to the sender's email address\n\nThis ensures replies appear in the same thread in all email clients.\n\n## Common IMAP Search Queries\n\n| Query                  | Description                   |\n| ---------------------- | ----------------------------- |\n| `ALL`                  | All messages                  |\n| `UNSEEN`               | Unread messages               |\n| `FROM \"john\"`          | From sender containing \"john\" |\n| `SUBJECT \"meeting\"`    | Subject containing \"meeting\"  |\n| `SINCE \"01-Jan-2024\"`  | Messages since date           |\n| `BEFORE \"01-Jan-2024\"` | Messages before date          |\n| `BODY \"keyword\"`       | Body containing \"keyword\"     |\n\nCombine with parentheses: `(FROM \"john\" SUBJECT \"meeting\")`\n\n## Troubleshooting\n\n### \"1Password item not found\"\n\nVerify the exact item name in 1Password matches what you're using.\n\n### \"Authentication failed\"\n\n- Ensure you're using an App Password, not your regular Gmail password\n- Verify 2FA is enabled on your Google account\n- Check the App Password hasn't been revoked\n\n### \"IMAP not enabled\"\n\nEnable IMAP in Gmail Settings → Forwarding and POP\u002FIMAP → Enable IMAP\n","# Gmail Tools\n\nSecure Gmail access via IMAP\u002FSMTP with 1Password credential storage. Supports listing, reading, searching, sending, and replying to emails with proper threading and attachments.\n\n## When to Use\n\n- Reading and managing Gmail emails\n- Sending emails with attachments\n- Replying to emails while maintaining thread continuity\n- Searching emails using IMAP queries\n\n## Prerequisites\n\n### 1Password Setup\n\nCreate a 1Password item with:\n\n- **Item name**: Any descriptive name (e.g., \"Gmail Work Claude\", \"Gmail Personal\")\n- **username** field: Your Gmail address (e.g., `user@gmail.com`)\n- **password** field: Gmail App Password (NOT your regular password)\n\n### Getting a Gmail App Password\n\n1. Go to [Google Account Security](https:\u002F\u002Fmyaccount.google.com\u002Fsecurity)\n2. Enable 2-Factor Authentication if not already enabled\n3. Go to \"App passwords\" (under \"2-Step Verification\")\n4. Generate a new app password for \"Mail\"\n5. Copy the 16-character password to your 1Password item\n\n## MCP Server Tools\n\nThe plugin provides these MCP tools:\n\n### list_emails\n\nList recent emails from an account.\n\n```text\naccount: \"Gmail Work Claude\"  # 1Password item name\nfolder: \"INBOX\"               # Optional, default: INBOX\nlimit: 10                     # Optional, default: 10\n```\n\n### read_email\n\nRead full email content including threading headers.\n\n```text\naccount: \"Gmail Work Claude\"\nemail_id: \"46\"                # From list_emails\nfolder: \"INBOX\"               # Optional\n```\n\n### send_email\n\nSend a new email with optional attachments.\n\n```text\naccount: \"Gmail Work Claude\"\nto: \"recipient@example.com\"\nsubject: \"Hello\"\nbody: \"Email content here\"\ncc: \"cc@example.com\"          # Optional\nbcc: \"bcc@example.com\"        # Optional\nattachments: [\"\u002Fpath\u002Fto\u002Ffile.pdf\"]  # Optional\n```\n\n### reply_email\n\nReply to an email, maintaining the thread.\n\n```text\naccount: \"Gmail Work Claude\"\nemail_id: \"46\"                # Email to reply to\nbody: \"Thanks for your message!\"\nattachments: [\"\u002Fpath\u002Fto\u002Fdoc.pdf\"]  # Optional\nfolder: \"INBOX\"               # Optional\n```\n\n### search_emails\n\nSearch using IMAP syntax.\n\n```text\naccount: \"Gmail Work Claude\"\nquery: \"FROM sender@example.com\"  # or \"SUBJECT hello\", \"UNSEEN\", etc.\nfolder: \"INBOX\"               # Optional\nlimit: 10                     # Optional\n```\n\n## Standalone Scripts\n\nFor CLI usage without MCP, use scripts in `scripts\u002F`:\n\n### List Emails\n\n```bash\n.\u002Fscripts\u002Fgmail_list.py \"Gmail Work Claude\" --limit 20\n.\u002Fscripts\u002Fgmail_list.py \"Gmail Work Claude\" --json  # JSON output\n```\n\n### Read Email\n\n```bash\n.\u002Fscripts\u002Fgmail_read.py \"Gmail Work Claude\" \"46\"\n.\u002Fscripts\u002Fgmail_read.py \"Gmail Work Claude\" \"46\" --json\n```\n\n### Reply to Email\n\n```bash\n# Dry run (preview without sending)\n.\u002Fscripts\u002Fgmail_reply.py \"Gmail Work Claude\" \"46\" \\\n  --body \"Thanks for your email.\" \\\n  --attachment ~\u002Fdocument.pdf \\\n  --dry-run\n\n# Send reply\n.\u002Fscripts\u002Fgmail_reply.py \"Gmail Work Claude\" \"46\" \\\n  --body \"Thanks for your email.\" \\\n  --attachment ~\u002Fdocument.pdf\n```\n\n## Email Threading\n\nWhen using `reply_email`, the tool automatically:\n\n1. Extracts the original email's `Message-ID` and `References` headers\n2. Sets `In-Reply-To` to the original `Message-ID`\n3. Builds proper `References` header chain\n4. Adds `RE:` prefix to subject if not present\n5. Sends to the sender's email address\n\nThis ensures replies appear in the same thread in all email clients.\n\n## Common IMAP Search Queries\n\n| Query                  | Description                   |\n| ---------------------- | ----------------------------- |\n| `ALL`                  | All messages                  |\n| `UNSEEN`               | Unread messages               |\n| `FROM \"john\"`          | From sender containing \"john\" |\n| `SUBJECT \"meeting\"`    | Subject containing \"meeting\"  |\n| `SINCE \"01-Jan-2024\"`  | Messages since date           |\n| `BEFORE \"01-Jan-2024\"` | Messages before date          |\n| `BODY \"keyword\"`       | Body containing \"keyword\"     |\n\nCombine with parentheses: `(FROM \"john\" SUBJECT \"meeting\")`\n\n## Troubleshooting\n\n### \"1Password item not found\"\n\nVerify the exact item name in 1Password matches what you're using.\n\n### \"Authentication failed\"\n\n- Ensure you're using an App Password, not your regular Gmail password\n- Verify 2FA is enabled on your Google account\n- Check the App Password hasn't been revoked\n\n### \"IMAP not enabled\"\n\nEnable IMAP in Gmail Settings → Forwarding and POP\u002FIMAP → Enable IMAP\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fclementwalter\u002Fgmail-tools",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill gmail-tools",{"tool":50,"command":51},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill gmail-tools",{"tool":53,"command":54},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill gmail-tools","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fclementwalter\u002Fgmail-tools\u002FSKILL.md",true,[58,64,68,72],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"scripts\u002Fgmail_list.py","SCRIPT","脚本",3218,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fclementwalter\u002Fgmail-tools\u002Fscripts\u002Fgmail_list.py",{"path":65,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":66,"sourceHtmlUrl":67},"scripts\u002Fgmail_read.py",3745,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fclementwalter\u002Fgmail-tools\u002Fscripts\u002Fgmail_read.py",{"path":69,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":70,"sourceHtmlUrl":71},"scripts\u002Fgmail_reply.py",6383,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fclementwalter\u002Fgmail-tools\u002Fscripts\u002Fgmail_reply.py",{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"skill-report.json","REFERENCE","参考文档",11159,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fclementwalter\u002Fgmail-tools\u002Fskill-report.json",[79,89,99,108,114,121],{"skillNo":80,"name":81,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":85,"publishedAt":30},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[84],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[86,87,88],"model","model hierarchy","model hierarchy skill",{"skillNo":90,"name":91,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":95,"publishedAt":30},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[94],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[96,97,98],"MCP","zoom","zoom mcp",{"skillNo":100,"name":101,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":30},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[105,106,107,97],"sdk","zoom apps sdk","apps",{"skillNo":109,"name":110,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":30},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[110],{"skillNo":115,"name":116,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":30},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[119],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[116],{"skillNo":122,"name":123,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":30},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[123]]