npm gmail-mcpstdioupdated 27d ago
MCP server for Gmail - read, send, archive, and manage emails.
Gmail で何ができる?
gmail-mcp
MCP server for Gmail - read, send, archive, and manage emails.
Use Cases
Flight check-in: "Check me in for my flight tomorrow" → finds your confirmation email, extracts the booking reference, and completes check-in with browser use.
Expense submission: "Submit my Amazon purchases from last week as expenses" → finds receipts, extracts amounts/categories, and files them in your expense system.
Package tracking: "Where's my package from Acme?" → finds the shipping notification, extracts the tracking number, and fetches current delivery status.
Find that attachment: "What did we settle on for the budget? Michelle sent me something yesterday" → locates the email and opens the attached spreadsheet.
Vacation mode: "I'm on holiday Dec 20-Jan 2" → sets up Gmail auto-reply, blocks your calendar, and updates your Slack status in one go.
Meeting follow-up: After a call, your assistant reads the Gemini transcript, summarizes key decisions, and drafts a follow-up email with action items.
(These are just examples - any workflow that needs email search, reading, or sending can use this.)
Setup
1. Create Google OAuth credentials
- Go to Google Cloud Console
- Create a new project (or use existing)
- Enable the Gmail API
- Go to APIs & Services → OAuth consent screen, set up consent screen
- Go to APIs & Services → Credentials → Create Credentials → OAuth client ID
- Choose Web application
- Add
http://localhost:3000/callbackto Authorized redirect URIs - Note your Client ID and Client Secret
2. Run the server
GOOGLE_CLIENT_ID='your-client-id' \
GOOGLE_CLIENT_SECRET='your-client-secret' \
MCP_TRANSPORT=http \
npm start
The server runs on http://localhost:3000 by default. Change with PORT=3001.
3. Add to your MCP client
With the server running, follow the instructions on install-mcp, which generates the right config for your MCP client (Claude Code, Claude Desktop, Cursor, Cline, VS Code, and more).
Architecture
This server acts as an OAuth proxy to Google:
graph LR
A[MCP client] <--> B[gmail-mcp] <--> C[Google OAuth/API]
- Server advertises itself as an OAuth authorization server via
/.well-known/oauth-authorization-server /registerreturns the Google OAuth client credentials/authorizeredirects to Google, encoding the client's callback URL in state/callbackreceives the code from Google and forwards to the client's callback/tokenproxies token requests to Google, injecting client credentials/mcphandles MCP requests, using the bearer token to call Gmail API
The server holds no tokens or state - it just proxies OAuth to Google.
Tools
| Tool | Description |
|---|---|
gmail_get_profile |
Get user's email address and profile info |
| Messages | |
gmail_messages_list |
Search/list messages (consider gmail_threads_list instead) |
gmail_message_get |
Get a single message |
gmail_message_send |
Send an email |
gmail_message_forward |
Forward an email to new recipients |
gmail_message_modify |
Add/remove labels |
gmail_message_archive |
Archive (remove from inbox) |
gmail_message_trash |
Move to trash |
gmail_message_untrash |
Restore from trash |
gmail_message_delete |
Permanently delete |
gmail_messages_batch_modify |
Bulk label changes |
gmail_messages_batch_delete |
Bulk permanent delete |
| Threads | |
gmail_threads_list |
Search/list threads (recommended) |
gmail_thread_get |
Get all messages in a thread (recommended) |
gmail_thread_modify |
Add/remove labels |
gmail_thread_trash |
Move to trash |
gmail_thread_untrash |
Restore from trash |
gmail_thread_delete |
Permanently delete |
| Drafts | |
gmail_drafts_list |
List drafts |
gmail_draft_get |
Get a draft |
gmail_draft_create |
Create a draft |
gmail_draft_update |
Update a draft |
gmail_draft_send |
Send a draft |
gmail_draft_delete |
Delete a draft |
| Labels | |
gmail_labels_list |
List all labels |
gmail_label_get |
Get a label |
gmail_label_create |
Create a label |
gmail_label_update |
Update a label |
gmail_label_delete |
Delete a label |
| Attachments | |
gmail_attachment_get |
Download attachment |
| Filters | |
gmail_filters_list |
List email filters |
gmail_filter_get |
Get a filter |
gmail_filter_create |
Create a filter |
gmail_filter_delete |
Delete a filter |
| Settings | |
gmail_vacation_get |
Get vacation auto-reply settings |
gmail_vacation_set |
Set vacation auto-reply settings |
Gmail API Scopes
gmail.readonly- Read messages and labelsgmail.send- Send messagesgmail.modify- Modify messages (archive, labels, trash)
Contributing
Pull requests are welcomed on GitHub! To get started:
- Install Git and Node.js
- Clone the repository
- Install dependencies with
npm install - Run
npm run testto run tests - Build with
npm run build
Releases
Versions follow the semantic versioning spec.
To release:
- Use
npm version <major | minor | patch>to bump the version - Run
git push --follow-tagsto push with tags - Wait for GitHub Actions to publish to the NPM registry.
インストール
Gmail をクライアントに追加します。お使いのものを選んでください。
claude mcp add gmail-mcp -- npx -y gmail-mcpcodex mcp add gmail-mcp -- npx -y gmail-mcpamp mcp add gmail-mcp -- npx -y gmail-mcp{
"mcpServers": {
"gmail-mcp": {
"command": "npx",
"args": [
"-y",
"gmail-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"gmail-mcp": {
"command": "npx",
"args": [
"-y",
"gmail-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"gmail-mcp","command":"npx","args":["-y","gmail-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"gmail-mcp": {
"command": "npx",
"args": [
"-y",
"gmail-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"gmail-mcp": {
"command": "npx",
"args": [
"-y",
"gmail-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"gmail-mcp": {
"command": "npx",
"args": [
"-y",
"gmail-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"gmail-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"gmail-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"gmail-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"gmail-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y gmail-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
36 個のツール
Gmail は接続したエージェントに 36 個のツールを提供します。
- gmail_get_profile
- Get user's email address and profile info
- gmail_messages_list
- Search/list messages (consider `gmail_threads_list` instead)
- gmail_message_get
- Get a single message
- gmail_message_send
- Send an email
- gmail_message_forward
- Forward an email to new recipients
- gmail_message_modify
- Add/remove labels
- gmail_message_archive
- Archive (remove from inbox)
- gmail_message_trash
- Move to trash
- gmail_message_untrash
- Restore from trash
- gmail_message_delete
- Permanently delete
- gmail_messages_batch_modify
- Bulk label changes
- gmail_messages_batch_delete
- Bulk permanent delete
- gmail_threads_list
- Search/list threads (recommended)
- gmail_thread_get
- Get all messages in a thread (recommended)
- gmail_thread_modify
- Add/remove labels
- gmail_thread_trash
- Move to trash
- gmail_thread_untrash
- Restore from trash
- gmail_thread_delete
- Permanently delete
- gmail_drafts_list
- List drafts
- gmail_draft_get
- Get a draft
- gmail_draft_create
- Create a draft
- gmail_draft_update
- Update a draft
- gmail_draft_send
- Send a draft
- gmail_draft_delete
- Delete a draft
- gmail_labels_list
- List all labels
- gmail_label_get
- Get a label
- gmail_label_create
- Create a label
- gmail_label_update
- Update a label
- gmail_label_delete
- Delete a label
- gmail_attachment_get
- Download attachment
- gmail_filters_list
- List email filters
- gmail_filter_get
- Get a filter
- gmail_filter_create
- Create a filter
- gmail_filter_delete
- Delete a filter
- gmail_vacation_get
- Get vacation auto-reply settings
- gmail_vacation_set
- Set vacation auto-reply settings
スコア
76 / 100
良好
- ドキュメント25/25
- メンテナンス25/25
- 信頼性6/20
- 機能8/15
- 導入のしやすさ12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 20 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 36 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
バージョン履歴
| バージョン | 公開日 |
|---|---|
| 2.4.0最新 | 2026年7月27日 |
| 2.3.2 | 2026年7月23日 |
| 2.3.1 | 2026年5月25日 |
| 2.3.0 | 2026年3月7日 |
| 2.2.1 | 2026年2月23日 |
| 2.2.0 | 2026年2月21日 |
| 2.1.2 | 2025年12月28日 |
| 2.1.1 | 2025年12月28日 |
| 2.1.0 | 2025年12月28日 |
| 2.0.1 | 2025年12月13日 |
| 2.0.0 | 2025年12月11日 |
| 1.0.3 | 2025年12月10日 |