Google Workspace MCP bundle¶
Google Workspace MCP servers (Gmail, Drive, Docs, Sheets, Calendar) for the agents of a project with one shared OAuth client; every user logs in with OAuth, read-only by default
| Chart | mcp-bundle-google-workspace |
| Version | 0.1.0 |
| Application version | v1 |
| Kind | MCP bundle |
| MCP category | productivity |
| MCP bundle | google-workspace |
| MCP login | oauth2 |
| Source | charts/mcp-bundle-google-workspace |
The values are listed under Values, the changes per version under Changelog.
Purpose¶
Installs Google's hosted Workspace MCP servers for the agents of your project in one release: mcp-gmail, mcp-google-drive, mcp-google-docs, mcp-google-sheets and mcp-google-calendar, each a kagent RemoteMCPServer (gmail, google-drive, google-docs, google-sheets, google-calendar). Nothing runs in the project: every user logs in to Google with OAuth in the agent's UI, and users grant read-only scopes unless a server's write is true.
All servers share one OAuth client, the Secret <release>-google-oauth-client this chart writes. They carry the labels mcp.openshift.eu/bundle: google-workspace, mcp.openshift.eu/category: productivity and mcp.openshift.eu/addon: "true", so an agent gets them only when it asks for the bundle (for an openhands agent, mcp.bundles: [google-workspace]) or for single servers by name (mcp.servers: [gmail]).
Install¶
helm repo add grncloud https://apps.openshift.eu
helm install google grncloud/mcp-bundle-google-workspace \
--set secrets.clientId=<client id> --set secrets.clientSecret=<client secret>
enabled(default: true): Switch of the bundle insidemcp-all.secrets.type(default:kubernetes):kuberneteswrites the shared client Secret fromsecrets.clientIdandsecrets.clientSecret(empty: no Secret, and agents skip the servers until it exists);externalSecretreads them fromsecrets.externalSecret.item(username: client id, password: client secret) insecrets.externalSecret.storeName.gmail,googleDrive,googleDocs,googleSheets,googleCalendar(default:enabled: true): The values of each server's chart, for examplegoogleDocs.write: truefor write scopes orgoogleDrive.enabled: falseto leave a server out. KeepoauthClientas set: it points every server at the shared client.
Delivery instructions¶
Google offers its Workspace MCP servers to members of the Google Workspace Developer Preview Program. In a Google Cloud project of your organisation (https://developers.google.com/workspace/guides/configure-mcp-servers):
- Enable the APIs and their MCP services:
gcloud services enable gmail.googleapis.com drive.googleapis.com docs.googleapis.com sheets.googleapis.com calendar-json.googleapis.com gmailmcp.googleapis.com drivemcp.googleapis.com docsmcp.googleapis.com sheetsmcp.googleapis.com calendarmcp.googleapis.com --project=<project>. - Google Auth Platform > Branding: configure the consent screen, audience Internal for a Workspace organisation.
- Google Auth Platform > Data Access: add the scopes of the servers you use (read-only by default, see each server's chart).
- Google Auth Platform > Clients > Create client: type Web application, select Use this client for an AI-powered agent, and add one authorized redirect URI per agent,
https://<agent route host>/mcp-oauth/callback. - Put the client id and secret into
secrets.clientIdandsecrets.clientSecret, or into a vault item forsecrets.type: externalSecret.
Then give the agent the bundle: for an openhands agent in this project set mcp.bundles: [google-workspace]. The servers appear switched off under Settings > MCP; each user opens one, authorizes it with their own Google account and switches it on. The agent asks Google for offline access, so a login keeps working after the first hour.
Prompt injection: an agent that reads mail or documents from strangers can be steered by them. Keep write scopes off unless the agent needs them, and review what it does.