Google Workspace MCP server (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Chat/People + multi-account) — vendored gemini-cli workspace-server + mcp-core auth
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 88912ac · analyzer v28 · 13h ago
skills & prompt files 2
- agent-rules n24q02m-better-workspace-mcp-88912ac/AGENTS.md
- agent-rules n24q02m-better-workspace-mcp-88912ac/CLAUDE.md
danger signals6
- over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
n24q02m-better-workspace-mcp-88912ac/src/auth/add-account-remote.test.ts :130
expect(scope).toContain('https://www.googleapis.com/auth/drive') - over-broad OAuth scope https://www.googleapis.com/auth/documents
expected for this server's purpose
n24q02m-better-workspace-mcp-88912ac/src/auth/oauth-setup.test.ts :169
expect(options.delegatedOAuth.upstream.scopes).toContain('https://www.googleapis.com/auth/documents') - over-broad OAuth scope https://www.googleapis.com/auth/documents
expected for this server's purpose
n24q02m-better-workspace-mcp-88912ac/src/auth/oauth-setup.ts :23
'https://www.googleapis.com/auth/documents', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
n24q02m-better-workspace-mcp-88912ac/src/auth/oauth-setup.ts :24
'https://www.googleapis.com/auth/drive', - over-broad OAuth scope gmail.modify n24q02m-better-workspace-mcp-88912ac/src/auth/oauth-setup.ts :26
'https://www.googleapis.com/auth/gmail.modify', - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
n24q02m-better-workspace-mcp-88912ac/src/auth/oauth-setup.ts :27
'https://www.googleapis.com/auth/spreadsheets',
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 60
filesystem 4
- fs n24q02m-better-workspace-mcp-88912ac/src/create-server.ts :6
import { readFileSync } from 'node:fs' - fs n24q02m-better-workspace-mcp-88912ac/src/main.ts :12
import { realpathSync } from 'node:fs' - fs n24q02m-better-workspace-mcp-88912ac/src/tools/registry.ts :8
import { readFile } from 'node:fs/promises' - fs n24q02m-better-workspace-mcp-88912ac/src/version.ts :15
import { readFileSync } from 'node:fs'
network 2
- net n24q02m-better-workspace-mcp-88912ac/src/auth/add-account-remote.ts :20
import type { IncomingMessage, ServerResponse } from 'node:http' - net n24q02m-better-workspace-mcp-88912ac/src/worker.ts :31
WORKSPACE?: { idFromName(n: string): unknown; get(id: unknown): { fetch(r: Request): Promise<Response> } }
secrets 5
- secrets n24q02m-better-workspace-mcp-88912ac/src/auth/add-account-remote.ts :81
const secret = process.env.CREDENTIAL_SECRET - secrets n24q02m-better-workspace-mcp-88912ac/src/auth/add-account.ts :50
const clientSecret = process.env.GOOGLE_OAUTH_CLIENT_SECRET - secrets n24q02m-better-workspace-mcp-88912ac/src/auth/oauth-setup.ts :97
const clientSecret = process.env.GOOGLE_OAUTH_CLIENT_SECRET - secrets n24q02m-better-workspace-mcp-88912ac/src/auth/workspace-auth.ts :89
clientSecret: process.env.GOOGLE_OAUTH_CLIENT_SECRET - secrets n24q02m-better-workspace-mcp-88912ac/src/transports/http.ts :99
const clientSecret = process.env.GOOGLE_OAUTH_CLIENT_SECRET
install hooks 1
- prepublishOnly n24q02m-better-workspace-mcp-88912ac/package.json :19
bun run build
declared dependencies 14
- @modelcontextprotocol/sdk@^1.29.0
- @n24q02m/mcp-core@1.22.0-beta.1
- googleapis@^173.0.0
- google-auth-library@^10.9.0
- zod@^4.4.3
- @biomejs/biome@^2.5.2
- @cloudflare/containers@^0.3.7
- @cloudflare/workers-types@^5.20260705.1
- @types/node@^26.1.0
- @vitest/coverage-v8@^4.1.9
- esbuild@^0.28.1
- tsx@^4.23.0
- typescript@^5.9.3
- vitest@^4.1.9
transport_posture 1
- binds all interfaces (0.0.0.0) n24q02m-better-workspace-mcp-88912ac/tests/worker.test.ts :133
const out = pickContainerEnv({ PUBLIC_URL: '', HOST: '0.0.0.0' } as never)