agentsclimarketplace

Email sending

Skill Eng-Muhammad-Affan/digital-fte/.qwen/skills/email-sending

Send emails via Gmail using the Email MCP server. Supports sending, drafting, searching emails, and marking as read. Use when tasks require email communication, sending invoices, replying to clients, or managing Gmail inbox.From its SKILL.md

Install
npx -y skills add Eng-Muhammad-Affan/digital-fte --skill email-sending

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.7 KB, 919 tokens by cl100k_base, as published. Nobody here has run it

Email Sending Skill

Send and manage emails via Gmail MCP server built with FastMCP.

MCP Server Setup

Start Email MCP Server

# Start with stdio transport (for Claude Code integration)
uv run python mcp-servers/email/server.py

# Or start with HTTP transport
uv run python mcp-servers/email/server.py --transport http --port 8801

Configure Claude Code MCP

Add to your Claude Code MCP configuration:

{
  "mcpServers": {
    "email": {
      "command": "uv",
      "args": ["run", "python", "mcp-servers/email/server.py"]
    }
  }
}

Gmail API Setup

  1. Go to Google Cloud Console
  2. Create a new project
  3. Enable Gmail API
  4. Create OAuth 2.0 credentials
  5. Download credentials.json
  6. Place in ~/.gmail_watcher/credentials.json
  7. First run will auto-generate token

Tools

send_email

Send an email via Gmail.

uv run python scripts/mcp-client.py call -t send_email -p '{
  "to": "[email protected]",
  "subject": "Invoice #123",
  "body": "Please find attached your invoice...",
  "html": false
}'

Parameters:

  • to (required): Recipient email address
  • subject (required): Email subject
  • body (required): Email body content
  • from_email (optional): Sender email
  • cc (optional): CC recipients (comma-separated)
  • bcc (optional): BCC recipients (comma-separated)
  • html (optional): Whether body is HTML (default: false)

draft_email

Create a draft email in Gmail (does not send).

uv run python scripts/mcp-client.py call -t draft_email -p '{
  "to": "[email protected]",
  "subject": "Proposal for Project",
  "body": "Dear Client, Here is the proposal..."
}'

search_emails

Search emails in Gmail.

# Find unread emails
uv run python scripts/mcp-client.py call -t search_emails -p '{
  "query": "is:unread",
  "max_results": 10
}'

# Find emails from specific sender
uv run python scripts/mcp-client.py call -t search_emails -p '{
  "query": "from:[email protected]",
  "max_results": 5
}'

Parameters:

  • query (required): Gmail search query
  • max_results (optional): Maximum results (default: 10)

get_email_content

Get full content of a specific email.

uv run python scripts/mcp-client.py call -t get_email_content -p '{
  "message_id": "123abc"
}'

mark_as_read

Mark an email as read.

uv run python scripts/mcp-client.py call -t mark_as_read -p '{
  "message_id": "123abc"
}'

Workflow: Reply to Client Email

  1. Search for unread emails
  2. Get email content
  3. Draft reply (requires approval)
  4. On approval, send email

Workflow: Send Invoice

  1. Create invoice PDF
  2. Draft email with attachment
  3. Create approval file in /Pending_Approval/
  4. On approval (file moved to /Approved/), send email

Environment Variables

# Gmail credentials
GMAIL_CREDENTIALS_PATH=~/.gmail_watcher/credentials.json
GMAIL_TOKEN_PATH=~/.gmail_watcher/token.json

# Dry run mode
DRY_RUN=true  # Set to 'false' for production

Troubleshooting

IssueSolution
Authentication failedRe-run server to trigger OAuth flow
Credentials not foundDownload from Google Cloud Console
Email not sendingCheck DRY_RUN environment variable
API quota exceededWait and retry, or increase quota

Related Skills

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.