Feature Configuration
The extension provides a feature configuration system that lets you control which services and scopes are enabled. Each Google Workspace service is split into read and write feature groups, giving you granular control over what the extension can access.
Feature Groups
| Service | Group | Scopes | Default |
|---|---|---|---|
docs | read | documents | ON |
docs | write | documents | ON |
drive | read | drive.readonly | ON |
drive | write | drive | ON |
calendar | read | calendar.readonly | ON |
calendar | write | calendar | ON |
chat | read | chat.spaces.readonly, chat.messages.readonly, chat.memberships.readonly | ON |
chat | write | chat.spaces, chat.messages, chat.memberships | ON |
gmail | read | gmail.readonly | ON |
gmail | write | gmail.modify | ON |
people | read | userinfo.profile, directory.readonly | ON |
slides | read | presentations.readonly | ON |
slides | write | presentations | OFF |
sheets | read | spreadsheets.readonly | ON |
sheets | write | spreadsheets | OFF |
time | read | (none) | ON |
tasks | read | tasks.readonly | OFF |
tasks | write | tasks | OFF |
Read groups contain tools with no side effects (search, get, list). Write groups contain tools that perform mutations (create, update, delete, send).
Services whose write scopes aren't in the published GCP project (Slides write, Sheets write, Tasks) default to OFF. These can be enabled by contributors using their own GCP projects.
Configuration via WORKSPACE_FEATURE_OVERRIDES
Use the WORKSPACE_FEATURE_OVERRIDES environment variable to enable or disable feature groups and individual tools.
Syntax
WORKSPACE_FEATURE_OVERRIDES="key:on|off,key:on|off,..."Each entry is a comma-separated key:value pair where:
keyis a feature group (e.g.,gmail.write) or a tool name (e.g.,calendar.deleteEvent)valueisonoroff
Group-Level Overrides
Disable or enable entire feature groups:
# Disable Gmail write tools (send, createDraft, modify, etc.)
export WORKSPACE_FEATURE_OVERRIDES="gmail.write:off"
# Disable all of Chat
export WORKSPACE_FEATURE_OVERRIDES="chat.read:off,chat.write:off"
# Enable experimental features (Slides write, Tasks)
export WORKSPACE_FEATURE_OVERRIDES="slides.write:on,tasks.read:on,tasks.write:on"Tool-Level Overrides
Disable specific tools within an enabled group (subtractive only):
# Keep calendar.write enabled but disable delete
export WORKSPACE_FEATURE_OVERRIDES="calendar.deleteEvent:off"
# Disable destructive Gmail tools while keeping modify/label tools
export WORKSPACE_FEATURE_OVERRIDES="gmail.send:off,gmail.sendDraft:off"
# Combine group and tool overrides
export WORKSPACE_FEATURE_OVERRIDES="gmail.write:off,calendar.deleteEvent:off,slides.write:on"Tool-level overrides are subtractive only. You cannot use
tool:on to enable a tool whose feature group is disabled. To enable tools, enable their parent feature group. :::
Precedence
The configuration follows a three-layer precedence model:
- Baked-in defaults — Current services default ON; experimental services default OFF
- Settings — Future: overrides from the install-time settings UI
WORKSPACE_FEATURE_OVERRIDES— Highest precedence; overrides everything
Effects
When a feature group is disabled:
- Its tools are not registered with the MCP server (clients won't see them)
- Its OAuth scopes are not requested during authentication
- If you re-enable a previously disabled feature, you may need to re-authenticate to grant the new scopes
Tools by Feature Group
docs.read
docs.getSuggestionsdocs.getText
docs.write
docs.createdocs.writeTextdocs.replaceTextdocs.formatText
drive.read
drive.getCommentsdrive.findFolderdrive.searchdrive.downloadFile
drive.write
drive.createFolderdrive.moveFiledrive.trashFiledrive.renameFile
calendar.read
calendar.listcalendar.listEventscalendar.getEventcalendar.findFreeTime
calendar.write
calendar.createEventcalendar.updateEventcalendar.respondToEventcalendar.deleteEvent
chat.read
chat.listSpaceschat.findSpaceByNamechat.getMessageschat.findDmByEmailchat.listThreads
chat.write
chat.sendMessagechat.sendDmchat.setUpSpace
gmail.read
gmail.searchgmail.getgmail.downloadAttachmentgmail.listLabels
gmail.write
gmail.modifygmail.batchModifygmail.modifyThreadgmail.sendgmail.createDraftgmail.sendDraftgmail.createLabel
people.read
people.getUserProfilepeople.getMepeople.getUserRelations
slides.read
slides.getTextslides.getMetadataslides.getImagesslides.getSlideThumbnail
sheets.read
sheets.getTextsheets.getRangesheets.getMetadata
time.read
time.getCurrentDatetime.getCurrentTimetime.getTimeZone
For Contributors
When adding a new service or tools:
- Define read and write feature group entries in
workspace-server/src/features/feature-config.ts - Set the default state — ON for scopes in the published GCP project, OFF otherwise
- Register your tools in
index.tsas usual — the feature config wrapper automatically skips disabled tools
This lets contributors develop and merge new features without being blocked by the published GCP project's scope configuration. Contributors can test with their own GCP projects by enabling the feature via WORKSPACE_FEATURE_OVERRIDES.