claude-2-mail

claude-2-mail

Local MCP server for reading/sending email via Gmail and managing Google Calendar events, enabling an AI agent to handle email and calendar operations through natural language.

Category
访问服务器

README

claude-2-mail

Local MCP server for Gmail + Google Calendar. Lets your AI agent read/send email and manage your calendar — runs locally via stdio.

Tools

Tool What it does
mail_list List recent emails (folder, count, unread filter)
mail_read Read full email by UID
mail_search Search by sender, subject, body, date range
mail_draft Draft a reply or new email
mail_send Send an approved email
mail_auto_reply Auto-reply to whitelisted senders
calendar_list List upcoming events
calendar_create Create a new event
calendar_update Update or delete an event

Prerequisites

  • Python 3.10+
  • A Google account
  • An MCP-compatible client (Claude Code, Cursor, etc.)

Setup

Auth Pipeline (Overview)

There are two separate auth systems:

System Used for How it works
Gmail App Password IMAP (read) + SMTP (send) 16-char password from Google Account settings
Google OAuth2 Calendar API Browser-based consent flow, saves a token file

You need both. App Password for email, OAuth2 for calendar.

1. Install Dependencies

pip install mcp google-api-python-client google-auth-httplib2 google-auth-oauthlib

2. Create a Gmail App Password (for Email)

Gmail uses IMAP/SMTP with an App Password — NOT your real Google password.

Steps:

  1. Go to Google Account Security
  2. Enable 2-Step Verification (required — App Passwords won't work without it)
  3. Go to App Passwords
  4. Select app: Mail, device: Other (Custom name) → type "claude-2-mail"
  5. Click Generate → copy the 16-character password (e.g. abcd efgh ijkl mnop)

Why: Google blocks "less secure apps". App Passwords are per-app tokens that bypass this.

3. Create a Google Cloud Project (for Calendar)

Calendar needs OAuth2. This is a multi-step process — follow in order:

Step A — Create project + enable API:

  1. Go to Google Cloud Console
  2. Click Select a projectNew Project → name it → Create
  3. Select your new project
  4. Go to APIs & Services → Library
  5. Search "Google Calendar API" → click it → Enable

Step B — Configure OAuth consent screen:

  1. Go to APIs & Services → OAuth consent screen
  2. User type: ExternalCreate
  3. Fill in: App name, User support email, Developer contact email
  4. Save and Continue through scopes (add nothing) → Back to Dashboard
  5. Under Test usersAdd users → add your own email address

Why Test users: Until your app is published, only test users can authorize it. Without this step, OAuth will fail with "access_blocked".

Step C — Create OAuth credentials:

  1. Go to APIs & Services → Credentials
  2. Create CredentialsOAuth client ID
  3. Application type: Desktop app → name it → Create
  4. Click Download JSON → save the file

Why Desktop app: MCP servers run locally. "Desktop app" type doesn't need a redirect URI — it uses localhost callback.

4. Configure

mkdir -p ~/.config/claude-2-mail

cp config/config.template.json ~/.config/claude-2-mail/config.json
cp config/.secrets.template ~/.config/claude-2-mail/.secrets
cp config/credentials.json.template ~/.config/claude-2-mail/credentials.json

Edit each file:

~/.config/claude-2-mail/config.json — your email, display name, settings.

~/.config/claude-2-mail/.secrets — your App Password:

export GMAIL_APP_PASSWORD="abcd efgh ijkl mnop"

~/.config/claude-2-mail/credentials.json — paste the downloaded OAuth JSON.

Lock permissions:

chmod 600 ~/.config/claude-2-mail/config.json
chmod 600 ~/.config/claude-2-mail/.secrets
chmod 600 ~/.config/claude-2-mail/credentials.json

5. Source the Secrets

Add to ~/.bashrc or ~/.zshrc:

[ -f ~/.config/claude-2-mail/.secrets ] && source ~/.config/claude-2-mail/.secrets

Reload: source ~/.bashrc

6. Register in Your MCP Client

Claude Code (~/.mcp.json):

{
  "mcpServers": {
    "gmail-calendar": {
      "command": "python",
      "args": ["/path/to/claude-2-mail/gmail_calendar_mcp.py"],
      "env": {
        "GMAIL_MAIL_CONFIG": "/home/YOUR_USER/.config/claude-2-mail/config.json"
      }
    }
  }
}

7. First Run

First Calendar use opens a browser for OAuth approval. One-time — token saves for future.

Troubleshooting

Problem Fix
AUTHENTICATIONFAILED (IMAP) Regenerate App Password. 2FA must be on.
invalid_client (OAuth) Check credentials.json is Desktop app type.
access_blocked (OAuth) Add your email as Test user in OAuth consent screen.
Token expired Delete calendar_token.json, re-auth.
Config not found Check GMAIL_MAIL_CONFIG env var path.
CredentialsWithRegionalAccessBoundary.refresh() missing argument Update google-auth: pip install --upgrade google-auth
Missing pip libs pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

Testing

pip install -e ".[dev]"
pytest tests/ -v

Security

  • App Password in .secrets (chmod 600), NOT in config.json or shell rc
  • OAuth tokens stored chmod 600
  • Logging redacts emails/tokens/passwords at INFO level
  • IMAP input escaped to prevent injection
  • Narrow OAuth scopes only

License

MIT.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选