Vopak Workspace MCP
Provides tools for listing, creating, moving, renaming, copying, trashing, and sharing files in Google Drive.
Provides tools for reading, sending, and managing emails via Gmail API through workspace-cli server.
Provides tools for managing Google Cloud resources including Cloud Run, IAM, Storage, Logging, and BigQuery via gcp-cli server.
Provides tools for reading, writing, and formatting documents, including text extraction, search, insert, style updates, and find/replace.
Provides tools for creating, reading, and modifying presentations, including slide management, text formatting, speaker notes, and branded content creation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vopak Workspace MCPcreate a new Google Doc titled 'Project Plan' and add a heading and bullet list"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vopak MCP
What Is This?
Vopak MCP is a collection of custom Model Context Protocol servers that give AI coding agents full, safe access to Google Workspace and Google Cloud Platform. It runs as a single Docker container and exposes 3 independent MCP servers:
Server | Tools | Auth | Purpose |
| 36 | ADC | Granular Slides, Docs, Sheets, Drive, and branded content tools |
| 3 | OAuth | GWS CLI wrappers for Gmail, Calendar, Tasks, Forms, People |
| 3 | ADC | GCP CLI wrappers for Cloud Run, IAM, Storage, Logging, BigQuery, and more |
You choose what to install. Each server is independently configurable. Install all 3 for full coverage, or just the ones you need.
Related MCP server: google-connections-mcp
Architecture
graph TB
subgraph Agent["AI Agent (Antigravity / Gemini)"]
direction LR
A1["workspace-tools<br/><small>36 tools</small>"]
A2["workspace-cli<br/><small>3 tools</small>"]
A3["gcp-cli<br/><small>3 tools</small>"]
end
subgraph Docker["Docker Container: vopak-mcp"]
direction TB
S1["workspace_tools.py<br/><small>Slides, Docs, Sheets, Drive, Branded</small>"]
S2["workspace_cli.py<br/><small>gws_read / gws_write / gws_destructive</small>"]
S3["gcp_cli_server.py<br/><small>gcp_read / gcp_write / gcp_destructive</small>"]
end
subgraph APIs["Google APIs"]
direction LR
WS["Workspace APIs<br/><small>Slides, Docs, Sheets, Drive</small>"]
CLI["GWS CLI<br/><small>Gmail, Calendar, Tasks, Forms</small>"]
GCP["GCP CLI<br/><small>gcloud, bq, gsutil</small>"]
end
A1 -->|stdio| S1
A2 -->|stdio| S2
A3 -->|stdio| S3
S1 -->|OAuth/ADC| WS
S2 -->|OAuth| CLI
S3 -->|ADC| GCP
style Docker fill:#0a2373,stroke:#00cfe1,color:#fff
style Agent fill:#1a1a2e,stroke:#283ce1,color:#fff
style APIs fill:#16213e,stroke:#00cfe1,color:#fffQuick Start
1. Clone and Build
git clone https://github.com/patriciosantamaria/vopak-mcp.git
cd vopak-mcp
docker compose up -d --build2. Authenticate
# Google Workspace CLI (OAuth — for workspace-cli server)
docker exec -it vopak-mcp gws auth setup
# GCP (Application Default Credentials — for workspace-tools and gcp-cli)
docker exec -it vopak-mcp gcloud auth application-default login3. Verify
docker exec -it vopak-mcp python -m src.servers.workspace_tools # Should print server info
docker exec -it vopak-mcp python -m src.servers.workspace_cli # Should print server info
docker exec -it vopak-mcp python -m src.servers.gcp_cli_server # Should print server info4. Configure Your IDE
Copy the MCP config into your Antigravity (or other MCP client) configuration:
{
"mcpServers": {
"workspace-tools": {
"command": "docker",
"args": ["exec", "-i", "vopak-mcp", "python", "-m", "src.servers.workspace_tools"],
"timeout": 30
},
"workspace-cli": {
"command": "docker",
"args": ["exec", "-i", "vopak-mcp", "python", "-m", "src.servers.workspace_cli"],
"timeout": 30
},
"gcp-cli": {
"command": "docker",
"args": ["exec", "-i", "vopak-mcp", "python", "-m", "src.servers.gcp_cli_server"],
"timeout": 60
}
}
}See mcp_config.example.json for the full reference.
Setup Options
Not every project needs all 42 tools. Choose the setup that fits your use case:
Setup | Servers | Tools | Best For |
Full |
| 42 | Full-stack projects using Workspace + GCP |
Workspace Only |
| 39 | Projects that only use Google Workspace |
Workspace Granular |
| 36 | Slides/Docs/Sheets/Drive automation (no Gmail/Calendar) |
GCP Only |
| 3 | Infrastructure management, Cloud Run, BigQuery |
CLI Only |
| 6 | Universal CLI access to both Workspace and GCP |
Complete Tool Catalog
Server 1: workspace-tools (36 tools)
Granular, purpose-built tools for Google Slides, Docs, Sheets, Drive, and branded content creation.
Slides Tools (19)
# | Tool | Type | Description |
1 |
| Read | Presentation metadata: slide count, IDs, titles, page dimensions |
2 |
| Read | All elements from a slide with text, positions, placeholder types |
3 |
| Read | Speaker notes from one or all slides with element IDs |
4 |
| Read | Per-run font, bold, italic, color, links for all text elements |
5 |
| Read | All comments with authors, replies, resolution status |
6 |
| Read | Full-text search across all slides with context snippets |
7 |
| Read | Estimate text overflow using font-metric heuristics |
8 |
| Read | Batch audit: titles, text, overflow, thumbnails in one call |
9 |
| Read | PNG thumbnail URL for visual QA verification |
10 |
| Write | Replace text in a specific element |
11 |
| Write | Apply formatting (bold, font, color) to text ranges |
12 |
| Write | Replace text and apply formatting in one atomic call |
13 |
| Write | Clone a slide at a specified position |
14 |
| Write | Move slides to new positions |
15 |
| Write | Replace speaker notes on a single slide |
16 |
| Write | Update speaker notes on multiple slides in one call |
17 |
| Write | Raw Slides API batch update (escape hatch) |
18 |
| Destructive | Permanently delete a slide |
19 |
| Destructive | Clear speaker notes from a slide |
Docs Tools (8)
# | Tool | Type | Description |
20 |
| Read | Document structure: headings, sections, element tree |
21 |
| Read | Extract plain text from a document |
22 |
| Read | Search for text patterns across the document |
23 |
| Write | Insert text at a specific position |
24 |
| Write | Apply formatting to text ranges |
25 |
| Write | Append a new section with heading and body |
26 |
| Write | Find and replace text across the document |
27 |
| Destructive | Delete text at a specific range |
Sheets Tools (4)
# | Tool | Type | Description |
28 |
| Read | Read cell values from a specified range |
29 |
| Read | Sheet names, row/column counts, named ranges |
30 |
| Write | Bulk write data from JSON to a sheet range |
31 |
| Write | Atomic write + readback verification (cell-by-cell) |
Drive Tools (2)
# | Tool | Type | Description |
32 |
| Read | List files with structured filters (folder, MIME type, name) |
33 |
| Write | Create, move, rename, copy, trash, or share Drive files |
Branded Content Tools (3)
# | Tool | Type | Description |
34 |
| Write | Generate pixel-perfect Vopak-branded Google Slides |
35 |
| Write | Generate branded Google Docs from Markdown |
36 |
| Read | Environment, credentials, and dependency verification |
Server 2: workspace-cli (3 tools)
Universal CLI wrappers for the Google Workspace CLI. Covers Gmail, Calendar, Tasks, Forms, People — anything the granular tools above don't cover.
# | Tool | Type | Description |
37 |
| Read | Read-only GWS CLI commands: |
38 |
| Write | Write GWS CLI commands: |
39 |
| Destructive | Delete GWS CLI commands: |
How verb-gating works: The server extracts the verb from each command and blocks misrouted operations at the server level. If you try to run a delete command via gws_read, the server rejects it before execution.
When to use: Use workspace-cli for Google Workspace services not covered by the granular workspace-tools server (e.g., Gmail, Calendar, Tasks, Forms). If you install only the CLI, consider loading the GWS CLI Reference Skill for command syntax guidance.
Server 3: gcp-cli (3 tools)
Universal CLI wrappers for gcloud, bq, and gsutil. Covers Cloud Run, IAM, Secret Manager, Cloud Storage, Cloud Logging, BigQuery, Pub/Sub, Firestore, Compute, and more.
# | Tool | Type | Description |
40 |
| Read | Read-only GCP commands: |
41 |
| Write | Write GCP commands: |
42 |
| Destructive | Delete GCP commands: |
Security features:
Verb-gating: Server-side verb classification blocks misrouted operations
Shell injection blocking: Commands are sanitized to block
|,&&,;, backticks,$(), redirectsJSON enforcement:
--format=jsonis auto-appended for structured outputAudit trail: Write and destructive tools require a
reasonparameter (min 10 chars)
Reference skill: Load skills/gcp_cli_reference/SKILL.md for exact command syntax across 12 GCP services.
Skills
The project includes reference skills that teach agents how to use the CLI tools effectively:
Skill | File | Purpose |
GCP CLI Reference | Command syntax for 12 GCP services: Cloud Run, IAM, Secrets, Storage, Logging, BigQuery, Pub/Sub, Firestore, Compute, APIs, Projects |
Security Model
Verb-Gated CLI Tools
Both CLI servers (workspace-cli and gcp-cli) enforce a 3-tier safety model:
READ ───── Safe. No confirmation needed.
WRITE ───── Requires reason (audit trail). IDE may prompt.
DESTRUCTIVE ─ Requires reason + explicit human confirmation (HITL).The agent cannot bypass this — verb classification happens server-side before the command reaches the CLI.
Shell Injection Protection (gcp-cli)
All GCP CLI commands are sanitized before execution. The following patterns are blocked:
Pattern | Example | Status |
Pipe |
| Blocked |
Command chaining |
| Blocked |
Semicolons |
| Blocked |
Backticks |
| Blocked |
Subshell |
| Blocked |
Redirects |
| Blocked |
Scoped Authentication
Server | Auth Method | Scopes |
| Application Default Credentials | Per-tool minimum OAuth scopes |
| GWS CLI OAuth | Full Workspace access via CLI |
| Application Default Credentials | Full GCP access via CLI |
Development
Prerequisites
Python 3.11+
Docker and Docker Compose
Install for Development
pip install -e ".[dev]"Run Tests
pytest -vLint
ruff check src/ tests/Project Structure
vopak-mcp/
src/
servers/
workspace_tools.py # Server 1: 36 granular Workspace tools
workspace_cli.py # Server 2: 3 GWS CLI wrappers
gcp_cli_server.py # Server 3: 3 GCP CLI wrappers
tools/
slides.py # 19 Slides tools
docs.py # 8 Docs tools
sheets.py # 4 Sheets tools
drive.py # 2 Drive tools
branded.py # 3 Branded content tools
cli_wrapper.py # 3 GWS CLI wrapper tools
gcp_cli.py # 3 GCP CLI wrapper tools
shared/
common.py # AgentResult, safe_execute, auth, API factories
gws_helpers.py # GWS verb sets, extraction, query builders
gws_runner.py # GWS CLI async subprocess runner
gcp_helpers.py # GCP verb sets, extraction, sanitization
gcp_runner.py # GCP CLI async subprocess runner
skills/
gcp_cli_reference/ # GCP CLI command syntax reference
tests/
test_gcp_helpers.py # GCP helpers unit tests
test_gcp_cli.py # GCP CLI tool verb-gating tests
docs/
assets/
hero.png # Hero graphic
docker-compose.yml # Single-container deployment
Dockerfile # Python + gcloud + gws CLI
pyproject.toml # Project metadata and dependencies
mcp_config.example.json # IDE configuration referenceLicense
MIT
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.
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/patriciosantamaria/vopak-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server