io.github.khuisman/mcp-gee-sweet
MCP server for Google Workspace — Sheets, Drive, Docs (HTML or Markdown), Calendar, and Gmail.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
mcp-gee-sweetclaude mcp add mcp-gee-sweet -e 'AUTH_METHOD=<AUTH_METHOD>' -e 'CREDENTIALS_PATH=credentials.json' -e 'TOKEN_PATH=token.json' -e 'SERVICE_ACCOUNT_PATH=service_account.json' -e 'CREDENTIALS_CONFIG=<your credentials_config>' -e 'ENABLED_TOOLS=<ENABLED_TOOLS>' -- uvx mcp-gee-sweet==0.9.5
{
"mcpServers": {
"mcp-gee-sweet": {
"command": "uvx",
"args": [
"mcp-gee-sweet==0.9.5"
],
"env": {
"AUTH_METHOD": "<AUTH_METHOD>",
"CREDENTIALS_PATH": "credentials.json",
"TOKEN_PATH": "token.json",
"SERVICE_ACCOUNT_PATH": "service_account.json",
"CREDENTIALS_CONFIG": "<your credentials_config>",
"ENABLED_TOOLS": "<ENABLED_TOOLS>"
}
}
}
}
Variables d'environnement
AUTH_METHODPin a single auth method with no fallback, instead of the default waterfall (OAuth, then service account, then Application Default Credentials).CREDENTIALS_PATHPath to an OAuth Client ID JSON file downloaded from GCP Console, used for the oauth auth method.TOKEN_PATHPath where the OAuth token is cached after the first interactive authorization.SERVICE_ACCOUNT_PATHPath to a Google service account JSON key file, used for the service_account auth method.CREDENTIALS_CONFIGsecret Base64-encoded service account JSON key, as an alternative to SERVICE_ACCOUNT_PATH for headless or container deployments.ENABLED_TOOLSComma-separated list of tool function names to register. Default: all tools enabled.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
mcp-gee-sweet
A Google Workspace MCP server built for depth.
mcp-gee-sweet gives AI clients deep, direct access to Google Sheets, Docs, Drive, Calendar, and Gmail. It reads raw formulas like =VLOOKUP(), builds Docs structurally (colspan/rowspan tables, themes, named styles, an HTML/Markdown→AST→Docs pipeline), and covers Drive files, sharing, and sync alongside Calendar events and Gmail messages, threads, and drafts.
A few highlights:
- Caching — repeated reads return in ~2ms from a local cache instead of a round-trip API call every time.
- Formula access — reads raw
=VLOOKUP(),=SUM(), and=IF()expressions, not just the values they produce. - Local sync — two-way sync between a local folder and Google Drive.
Install (stable):
uvx mcp-gee-sweet
Install (bleeding edge — every code change on develop):
uvx --prerelease=allow mcp-gee-sweet
What's covered
| Service | Tools | Highlights |
|---|---|---|
| Google Sheets | 36 | Formula access, batch read/write, 8 chart types, structural ops |
| Google Drive | 38 | File ops, sharing/permissions, local sync, revision history |
| Google Docs | 34 | Full HTML→Doc pipeline, tables, range styling, themes, Markdown export |
| Google Calendar | 17 | Event CRUD, free-slot finder across multiple calendars |
| Gmail | 11 | Search and read messages and threads, send and reply, drafts, labels (OAuth only) |
Quick start
Option A: uv — local use and development
If you cloned the repo or just want to use the server from your machine, uv is all you need. No Docker required.
git clone https://github.com/khuisman/mcp-gee-sweet.git
cd mcp-gee-sweet
uv sync
Then point your MCP client at it using stdio transport (see MCP client config below). The client spawns the server as a subprocess on demand — each session gets its own isolated process, so restarting the server for a code change or config update doesn't affect other open sessions.
Option B: Docker — persistent shared server (SSE)
Use Docker when you want a single long-running server that multiple clients connect to over SSE — for example, Claude Desktop talking to the same instance as Claude Code.
git clone https://github.com/khuisman/mcp-gee-sweet.git
cd mcp-gee-sweet
echo "MCP_SERVER_TOKEN=$(python3 -c 'import secrets; print(secrets.token_urlsafe(32))')" >> .env
make build # build the container image
make start # start the server (SSE on port 47000)
make logs # tail logs
Point your MCP client at http://localhost:47000/sse, sending the token from .env as an Authorization: Bearer <token> header (see the SSE config below). The server rejects any request without it. Without Docker, --transport sse and --transport streamable-http listen on 127.0.0.1 only, and need MCP_SERVER_TOKEN to serve on any other address; see HTTP transport authentication.
Note: when using SSE, all clients share one server process. After a code change or restart (
make restart), you must also restart each MCP client to reconnect.
Configuration
The server tries auth methods in a waterfall by default, OAuth first — it authenticates as you and has full personal Drive access, which is what local/dev use (Option A above) needs. For OAuth, download an OAuth Client ID JSON from GCP Console and point the server at it:
export CREDENTIALS_PATH="/path/to/credentials.json"
export TOKEN_PATH="/path/to/token.json"
mcp-gee-sweet auth # one-time browser login; `uvx mcp-gee-sweet auth` for a PyPI install
Pass the same CREDENTIALS_PATH and TOKEN_PATH in your MCP client's env. A stdio server with no token doesn't open a browser itself. Instead its first tool call offers you the Google consent link (or you run mcp-gee-sweet auth), and you retry the call. A token revoked mid-session is handled the same way, with no restart.
Service accounts (recommended for headless server deployments, see Option B above), base64 credential injection, and Application Default Credentials are also supported. Gmail tools need OAuth. See Authentication for all options.
MCP client config
Claude Desktop — stdio (cloned repo):
{
"mcpServers": {
"mcp-gee-sweet": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-gee-sweet", "mcp-gee-sweet"],
"env": {
"CREDENTIALS_PATH": "/path/to/credentials.json",
"TOKEN_PATH": "/path/to/token.json"
}
}
}
}
Claude Desktop — SSE (Docker):
{
"mcpServers": {
"mcp-gee-sweet": {
"transport": "sse",
"url": "http://localhost:47000/sse",
"headers": {
"Authorization": "Bearer <token>"
}
}
}
}
See Client Setup for more options including tool filtering.
Docs
- Tools — full tool reference, grouped by domain
- Authentication — all four auth methods
- Configuration — env vars, caching, tool filtering
- Client Setup — MCP client config examples
- Design Principles — tool inclusion policy, composite tool decisions
- Roadmap — planned features and known gaps
Contributing
See CONTRIBUTING.md for setup, QA workflows, and PR guidelines. A signed-off docs/qa/runs/vX.Y.Z.md record is required before any stable PyPI release — see docs/qa/README.md for the QA workflow.
License
MIT — see LICENSE.
Credits
- xing5/mcp-google-sheets — upstream this project was forked from
- FastMCP
- freema/mcp-gsheets and piotr-agier/google-drive-mcp — roadmap inspiration
Questions fréquentes
Qu'est-ce que io.github.khuisman/mcp-gee-sweet ?
MCP server for Google Workspace — Sheets, Drive, Docs (HTML or Markdown), Calendar, and Gmail.
Comment installer io.github.khuisman/mcp-gee-sweet ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add mcp-gee-sweet -e 'AUTH_METHOD=<AUTH_METHOD>' -e 'CREDENTIALS_PATH=credentials.json' -e 'TOKEN_PATH=token.json' -e 'SERVICE_ACCOUNT_PATH=service_account.json' -e 'CREDENTIALS_CONFIG=<your credentials_config>' -e 'ENABLED_TOOLS=<ENABLED_TOOLS>' -- uvx mcp-gee-sweet==0.9.5. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.khuisman/mcp-gee-sweet ?
Oui. Il attend CREDENTIALS_CONFIG, à renseigner dans sa configuration.
io.github.khuisman/mcp-gee-sweet est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient io.github.khuisman/mcp-gee-sweet ?
Il est publié par khuisman. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.