Skip to main content
Glama
hawkxdev

google-workspace-mcp

by hawkxdev

google-workspace-mcp

Проект для создания пяти независимых удалённых MCP-серверов для Google Workspace: Gmail, Google Calendar, Google Drive, Google Sheets и Google Docs.

Статус: pre-alpha. MCP-серверы ещё не работают. Репозиторий в настоящее время содержит каркас пакета, пять точек входа-заглушек, базовое ядро состояния OAuth для нижестоящего сервиса и неизменяемую конфигурацию для каждого сервиса.

Текущий статус

Реализовано:

  • Python-пакет с пятью консольными точками входа;

  • состояние OAuth для нижестоящего сервиса на базе SQLite;

  • регистрация OAuth-клиента и PKCE;

  • привязка токена к каноническому resource;

  • ротация refresh-токенов, обнаружение повторов и отзыв семейства токенов;

  • неизменяемые метаданные владения состоянием для сервиса и ресурса;

  • неизменяемая конфигурация для каждого сервиса со строгой проверкой порта и TTL токена.

Все пять консольных точек входа являются заглушками и завершаются сообщением о том, что сервис не реализован. HTTP/MCP-транспорт, интеграция с Google API, инструменты сервисов и конфигурация развёртывания пока не реализованы.

Related MCP server: google-workspace-mcp-advanced

Планируемые сервисы

В таблице описана целевая область. Эти возможности пока недоступны.

Сервис

Целевые возможности

gmail

поиск и чтение сообщений и цепочек, метки, вложения, черновики, отправка и ответы

calendar

календари, поиск и получение событий, доступность, создание и обновление событий

drive

поиск файлов, метаданные, содержимое папок, скачивание и экспорт

sheets

метаданные таблиц, чтение и запись диапазонов, пакетные операции

docs

создание документов, получение структуры и текста, вставка и замена

В целевой архитектуре каждый сервис работает как отдельный процесс со своей конечной точкой MCP, реестром инструментов, областями OAuth Google, учётными данными Google и состоянием OAuth нижестоящего сервиса.

Целевая архитектура авторизации

В проекте используются два независимых уровня:

Клиент — сервис. MCP-клиент использует OAuth 2.1 с PKCE. Каждый токен доступа привязан к одному resource, а refresh-токены ротируются с обнаружением повторов.

Сервис — Google. Каждый сервис использует отдельные учётные данные Google и минимально необходимые области OAuth. Refresh-токены Google никогда не возвращаются MCP-клиентам.

Сегодня существует только ядро состояния для первого уровня. HTTP-конечные точки и второй уровень авторизации не реализованы.

Технологии

Требования для разработки

  • Git

  • Python 3.14

  • uv

Проект Google Cloud и OAuth-клиент потребуются после реализации интеграции с Google API. Текущая версия их не использует.

Настройка среды разработки

git clone https://github.com/hawkxdev/google-workspace-mcp.git
cd google-workspace-mcp
uv sync --dev

Виртуальное окружение активировать не нужно. Запускайте команды через uv run.

Проверки

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 может повторно синхронизировать окружение из lock-файла.

Структура

Путь

Назначение

src/google_workspace_mcp/auth/state.py

жизненный цикл состояния OAuth нижестоящего сервиса

src/google_workspace_mcp/common/config.py

неизменяемая конфигурация окружения для каждого сервиса

src/google_workspace_mcp/cli/

пять точек входа-заглушек

tests/core/

регрессионные тесты ядра OAuth и точек входа пакета

pyproject.toml

метаданные пакета, зависимости и конфигурация инструментов

NOTICE

происхождение адаптированного кода

Участие в разработке

Проект находится на ранней стадии разработки. Перед внесением существенных изменений откройте issue с описанием предлагаемого поведения. Изменения не должны объединять пять сервисов в один процесс, разделять учётные данные между сервисами или вводить обход OAuth.

Происхождение

Проект адаптирует ядро OAuth 2.1 из jimprosser/obsidian-web-mcp под лицензией MIT. Подробности см. в NOTICE.

Ядро OAuth 2.1 для нижестоящего сервиса основано на ревизии 7e6a52d791a50e3bd533df1060217973ab5be1c8. Оно включает дополнительные исправления для жизненного цикла клиента и токенов, ротации refresh-токенов, обнаружения повторов и канонизации resource.

Функциональность Obsidian-хранилища и синхронизации с Git из исходного проекта не копировалась.

В этом проекте используется mcp>=2,<3. Пакет mcp.server.fastmcp, удалённый в MCP 2.0, не требуется; будущая композиция будет использовать mcp.server.mcpserver.

Автор

Sergey Sokolkin (@hawkxdev)

Лицензия

MIT, см. LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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