google-workspace-mcp
google-workspace-mcp
Набор из пяти независимых удалённых MCP-серверов над Google Workspace: Gmail, Google Calendar, Google Drive, Google Sheets и Google Docs.
Статус: pre-alpha. Проект находится в активной разработке; публичные интерфейсы и конфигурация могут меняться до первого стабильного релиза.
Серверы намеренно разделены. Клиент или проект включает только тот сервис, который ему нужен, и получает токен, действующий ровно для него: токен Gmail не открывает Drive. Общими остаются репозиторий, инфраструктурные библиотеки, каркас авторизации и процедура развёртывания.
Сервисы
Сервис | Что делает |
| поиск и чтение писем и цепочек, метки, вложения, черновики, отправка и ответ |
| календари, поиск и чтение событий, занятость, создание и правка событий |
| поиск файлов, метаданные, содержимое папок, выгрузка и экспорт |
| метаданные таблицы, чтение и запись диапазонов, батчевые операции |
| создание документа, чтение структуры и текста, вставка и замена |
Каждый сервис — отдельный процесс, отдельный MCP-эндпоинт, отдельный реестр инструментов, отдельный набор разрешений Google и отдельное хранилище учётных данных.
Два слоя авторизации
Они независимы и не смешиваются.
Клиент → сервис. MCP-клиент проходит OAuth 2.1 с PKCE и динамической регистрацией. Выданный токен привязан к одному ресурсу и обновляется по ротируемому refresh-токену с обнаружением повторного использования.
Сервис → Google. Сервис обращается к продуктовым API Google от имени владельца по долговременному refresh-токену и обновляет access-токен сам. Google-токен клиенту не возвращается ни при каком исходе.
Официальные MCP-эндпоинты Google находятся в Developer Preview и здесь не используются: вызовы идут в стабильные продуктовые API.
Требования
Python 3.14, устанавливается
uv; системный интерпретатор не затрагиваетсяuvпроект Google Cloud с включёнными API пяти сервисов и OAuth-клиентом
Установка
uv sync --devПроверки
uv run --no-sync pytest -q
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync mypy srcФлаг --no-sync обязателен при проверке версий зависимостей: без него uv run пересинхронизирует окружение из лок-файла и возвращает пиннутую версию вместо фактической, из-за чего заведомо ломающая версия пакета даёт зелёный прогон.
Происхождение
Проект адаптирует OAuth 2.1-ядро из jimprosser/obsidian-web-mcp под MIT; полная информация приведена в NOTICE.
Основой downstream OAuth 2.1 служит ревизия 7e6a52d791a50e3bd533df1060217973ab5be1c8. После неё в ядро внесены собственные исправления жизненного цикла клиентов и токенов, ротации refresh-токенов, обнаружения повторного использования и канонизации resource.
Доменная часть исходного проекта — работа с хранилищем Obsidian и синхронизация через Git — не переносилась.
Здесь используется mcp>=2,<3: удалённый в MCP 2.0 пакет mcp.server.fastmcp не требуется, а собственная композиция строится на mcp.server.mcpserver.
Лицензия
MIT, см. LICENSE.
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
Streamable HTTP MCP server for Google Calendar and Sheets with OAuth login.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
AI-powered medical document management for cancer patients. Google Drive, Gmail, Calendar via MCP.
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/hawkxdev/google-workspace-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server