gmail-mcp-server
gmail-mcp-server
MCP-сервер, предоставляющий один инструмент, send_email, который отправляет сообщения Gmail (с возможностью прикрепления файлов) через Gmail API. Создан для использования в качестве локального stdio MCP-сервера внутри Claude Code.
Область действия намеренно узкая: только gmail.send (без доступа на чтение/изменение почтового ящика) — минимальные привилегии для инструмента, единственная задача которого — отправлять почту.
Этот README написан по итогам реальной первой настройки, включая все ошибки, которые возникали по ходу дела. Проходите его сверху вниз — и вы не должны столкнуться ни с одной из них.
Примечание по PowerShell:
&&не работает как разделитель команд в Windows PowerShell (это синтаксис bash/cmd). Все команды, состоящие из нескольких частей, ниже записаны отдельными строками; либо используйте;, если нужна одна строка:cd C:\Users\GaneshGupta\gmail-mcp-server; python auth_setup.py
1. Google Cloud — включите API и создайте OAuth-учётные данные
В консоли Google этот раздел недавно переименовали из «OAuth consent screen» в Google Auth Platform, а настройки разнесли по отдельным страницам левого меню (Branding / Audience / Clients / Data Access / Verification Center). В шагах ниже используются актуальные названия.
Перейдите на console.cloud.google.com. Создайте новый проект или используйте существующий.
APIs & Services → Library → найдите «Gmail API» → Enable.
APIs & Services → OAuth consent screen (вы попадёте в новый раздел Google Auth Platform) → заполните страницу Branding:
App name: любое, например
gmail-mcp-toolUser support email: ваш адрес Gmail
Developer contact email: ваш адрес Gmail
Поля logo/App domain пока оставьте пустыми — вы вернётесь к App domain на шаге 4, если столкнётесь с ошибкой «incomplete configuration». Не заполняйте их на всякий случай; делайте это только если действительно увидите эту ошибку.
Страница Audience (левое меню) → в разделе Test users → + Add users → укажите свой собственный адрес Gmail (тот, с которого будет отправляться почта) → Save.
Если «Add users» заблокировано жёлтым баннером с текстом «Your app's OAuth configuration is incomplete... Please visit the Branding page» — это происходит потому, что
gmail.send— чувствительная область доступа, для которой поля App domain должны быть непустыми даже для приложения только в режиме Testing. Исправление:Перейдите в Branding → App domain и заполните:
Application home page:
https://example.comApplication privacy policy link:
https://example.com/privacyApplication terms of service link:
https://example.com/terms
После этого появится поле Authorized domains. Введите только домен без префикса
https://:Правильно:
example.comНеправильно (отклоняется с ошибкой «Invalid domain: must not specify the scheme»):
https://example.com
Нажмите Save на странице Branding (должно появиться уведомление «Branding changes saved!»).
Вернитесь в Audience → Add users и попробуйте снова — на этот раз должно пройти.
Эти URL не обязаны быть реальными/рабочими — Google не проверяет их, пока приложение находится в статусе Testing, ему просто нужно, чтобы поля были заполнены.
Страница Clients (левое меню) → + Create client:
Application type: Desktop app
Name: любое, например
gmail-mcp-desktopCreate → Download JSON (кнопка появляется сразу после создания)
Скачанный файл будет называться примерно так:
client_secret_<long-id>.apps.googleusercontent.com.json. Переименуйте его точно вclient_secret.jsonи переместите в:C:\Users\GaneshGupta\gmail-mcp-server\credentials\client_secret.jsonТочное имя файла важно —
gmail_auth.pyищет файл по этому имени и выбрасываетFileNotFoundError, если имя не совпадает (это самая частая ошибка на этом шаге).
Related MCP server: Gmail MCP Server
2. Установка зависимостей
cd C:\Users\GaneshGupta\gmail-mcp-server
pip install -r requirements.txt3. Одноразовый вход
python auth_setup.pyЧто происходит:
Откроется окно браузера с обычным входом в Google.
Вы попадёте на экран «Google hasn't verified this app». Это ожидаемо — это ваш собственный OAuth-клиент в режиме Testing, запрашивающий чувствительную область доступа. Нажмите Continue (в старом интерфейсе: Advanced → Go to [app name] (unsafe)).
Предоставьте разрешение «Send email on your behalf».
Браузер покажет «The authentication flow has completed. You may close this window.»
В терминале появится
Authorized. Token saved to ...credentials\token.json.
Если на шаге 2 вместо этого отображается Error 403: access_denied / «has not completed the Google verification process... can only be accessed by developer-approved testers» — вашего адреса Gmail ещё нет в списке Audience → Test users. Вернитесь к шагу 1.4 выше.
Сделайте это один раз. После этого server.py лишь молча обновляет сохранённый токен — браузер больше никогда не открывается сам.
4. Проверка токена (необязательно, но рекомендуется)
python -c "from gmail_auth import load_credentials; c = load_credentials(); print('valid:', c.valid); print('scopes:', c.scopes); print('has refresh token:', bool(c.refresh_token))"Ожидайте valid: True, scopes: ['https://www.googleapis.com/auth/gmail.send'], has refresh token: True.
5. Регистрация в Claude Code
claude mcp add gmail-sender --scope user -- python C:\Users\GaneshGupta\gmail-mcp-server\server.py--scope user регистрирует сервер глобально — он становится доступен во всех сессиях Claude Code на этой машине, а не только в той, где вы выполнили команду. В уже запущенной сессии он задним числом не появится — MCP-серверы загружаются при старте сессии, поэтому откройте новый терминал / новую сессию claude, чтобы увидеть его.
Проверка:
claude mcp listВ списке вы должны увидеть gmail-sender.
6. Использование
В любой сессии Claude Code (после регистрации выше) просто попросите на естественном языке:
Отправь письмо на jane@example.com с темой «Following up» и текстом «...» — приложи C:\path\to\file.pdf
Claude Code напрямую вызовет инструмент send_email. Никакой дополнительной настройки для каждой сессии не требуется.
Справочник по инструменту
send_email(to, subject, body, attachments=None, cc=None, bcc=None, html=False)
to/cc/bcc: адреса через запятуюattachments: список абсолютных локальных путей к файлам, суммарный лимит — 15MB (потолок Gmail для raw-отправки — 25MB; 15MB исходных файлов оставляют запас на раздувание base64 + заголовки)html: установите true, чтобы отправить HTML-тело вместо обычного текстаВозвращает
{status, message_id, thread_id, to, subject, attachment_count}
Таблица неполадок
Симптом | Причина | Исправление |
| У скачанного JSON осталось длинное имя, заданное Google по умолчанию | Переименуйте точно в |
| Вашего аккаунта ещё нет в Test users | Audience → Test users → добавьте свой адрес Gmail |
Страница Audience: баннер «Your app's OAuth configuration is incomplete» блокирует Add users | Чувствительная область доступа ( | Заполните Branding → App domain (home page/privacy/terms) любым |
Ошибка «Invalid domain: must not specify the scheme» в поле Authorized domain | Введён | Введите только |
Предупреждение «Google hasn't verified this app» при входе | Ожидаемо — ваш собственный OAuth-клиент в режиме Testing | Нажмите Continue (или Advanced → Go to app), это нормально, а не ошибка |
| Это синтаксис bash, а не PowerShell | Используйте |
| Зарегистрирован после запуска текущей сессии или указан неверный scope | Откройте новую сессию |
Нужно отправлять с другого аккаунта Gmail | Токен привязан к аккаунту, под которым вы вошли | Удалите |
Вложение отклонено / отправка больших файлов не удаётся | Суммарный размер вложений более 15MB | Разбейте на несколько писем или сожмите |
Примечания
credentials/client_secret.jsonиcredentials/token.jsonнаходятся в .gitignore — никогда не коммитьте их.Чтобы отправлять с другого аккаунта Gmail, удалите
credentials/token.jsonи снова запуститеauth_setup.py.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage Gmail messages, threads, labels, drafts, and settings from your workflows. Send and organiz…
Send transactional email over a verified domain — templates, attachments, custom headers.
Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables comprehensive Gmail management including sending, reading, and organizing emails, managing labels, drafts, threads, and configuring account settings through the Gmail API with secure OAuth2 authentication.641,723MIT
- AlicenseNot gradedqualityBmaintenanceEnables reading, sending, archiving, and managing Gmail emails and labels through Google OAuth authentication, acting as an OAuth proxy to the Gmail API.20511MIT
- FlicenseNot gradedqualityDmaintenanceEnables sending emails through Gmail using Google's Gmail API. Requires OAuth authentication setup through Google Cloud Console.
- AlicenseNot gradedqualityDmaintenanceEnables programmatic interaction with Gmail using OAuth 2.0 authentication, allowing users to search, read, send, and manage emails through a standardized interface.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ganeshhgupta/gmail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server