Mcp Gee Sweet

io.github.khuismanPublished by GitHub account khuismanv0.9.5Updated Nov 1, 2026

MCP server for Google Workspace — Sheets, Drive, Docs (HTML or Markdown), Calendar, and Gmail.

Overview

AI-generated overview

Local MCP server giving an AI assistant deep read and write access to Google Sheets, Drive, Docs, Calendar and Gmail.

What you can do
  • Read and write Google Sheets, including raw formulas, batch operations, charts and structural changes
  • Manage Drive files, permissions and sharing, revision history, and two-way sync with a local folder
  • Build and edit Google Docs from HTML or Markdown, with tables, range styling and themes
  • Create, update and delete Calendar events and find free slots across several calendars
  • Search, read, send and reply to Gmail messages and threads, and manage drafts and labels
When to use it
Useful when an assistant should work directly inside a Google Workspace account: editing spreadsheets and documents, organizing Drive files, scheduling meetings, or handling email. It suits users who want one server covering several Workspace services rather than separate integrations.
Requirements
Runs locally as a stdio process, installed with uvx or from a cloned repo with uv; Docker is optional for a shared SSE server. Needs Google credentials: an OAuth client JSON via CREDENTIALS_PATH plus TOKEN_PATH with a one-time browser login, or a service account via SERVICE_ACCOUNT_PATH or CREDENTIALS_CONFIG. Gmail tools require OAuth. Clients with tool limits need ENABLED_TOOLS set to a subset.
Before you install
It authenticates as the user with full personal Drive access under OAuth, so the assistant can read and change real documents, files, calendars and mail. Gmail can send and reply; by default nothing is sent until the user confirms, and clients that cannot ask leave a draft. Service account keys and OAuth tokens are sensitive files; keep CREDENTIALS_CONFIG, SERVICE_ACCOUNT_PATH and TOKEN_PATH private. The SSE mode needs MCP_SERVER_TOKEN and shares one process across clients.

Installation

In SourceWeft

  1. Open Mcp Gee Sweet in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[mcp-gee-sweet logo]

mcp-gee-sweet

A Google Workspace MCP server built for depth.

[GitHub License]

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):

bash
uvx mcp-gee-sweet

Install (bleeding edge — every code change on develop):

bash
uvx --prerelease=allow mcp-gee-sweet

Full documentation →


What's covered

ServiceToolsHighlights
Google Sheets36Formula access, batch read/write, 8 chart types, structural ops
Google Drive38File ops, sharing/permissions, local sync, revision history
Google Docs34Full HTML→Doc pipeline, tables, range styling, themes, Markdown export
Google Calendar17Event CRUD, free-slot finder across multiple calendars
Gmail15Search and read messages and threads, send and reply, drafts you can review, edit, or discard before sending, labels (OAuth only). By default nothing is sent until the user confirms it; a client that can't ask leaves the email as a draft. See Gmail sending

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.

bash
git clone https://github.com/khuisman/mcp-gee-sweet.gitcd mcp-gee-sweetuv 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.

bash
git clone https://github.com/khuisman/mcp-gee-sweet.gitcd mcp-gee-sweetecho "MCP_SERVER_TOKEN=$(python3 -c 'import secrets; print(secrets.token_urlsafe(32))')" >> .envmake build   # build the container imagemake 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:

bash
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 — one-click bundle: download mcp-gee-sweet-<version>.mcpb from the latest GitHub Release and open it in Claude Desktop. It asks for your OAuth client file and needs no config editing (details).

Claude Desktop — stdio (cloned repo):

json
{  "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):

json
{  "mcpServers": {    "mcp-gee-sweet": {      "transport": "sse",      "url": "http://localhost:47000/sse",      "headers": {        "Authorization": "Bearer <token>"      }    }  }}

See Client Setup for more options including tool filtering.

Using a client with a tool limit

Some MCP clients cap how many tools they accept, and with every tool registered this server is over each cap:

ClientLimit
VS Code + GitHub Copilot (agent mode)128 tools per request, built-in tools included. Over it, every request fails with "Cannot have more than 128 tools per request"
Windsurf100 tools in total, across all servers
CursorDepends on the model ("Too many MCP tools are enabled for this mode")
Google Antigravity100 tools per server (user report)

On these clients, set ENABLED_TOOLS in the server's env to one of the suggested subsets, each under 100 tools, e.g. all Docs tools, or Docs + Drive combined. Clients with a tool limit has a ready-to-paste config for VS Code, Cursor, and Windsurf.


Docs


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

Source: README.md at commit 730b7dc

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the server did not start.

Version history

6
  1. v0.9.5LatestOct 25, 2026
  2. v0.9.4Oct 23, 2026
  3. v0.9.3Oct 21, 2026
  4. v0.9.2Oct 18, 2026
  5. v0.9.1Oct 4, 2026
  6. v0.9.0Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts