Skip to content
Conduit

mcp server

mcp-gee-sweet

Google Workspace MCP server for Sheets, Docs, Drive, Calendar, and Gmail: raw formula access, Markdown and HTML to fully structured Docs, two-way local Drive sync, and a read cache.

khuisman/mcp-gee-sweetcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-gee-sweet": {
      "command": "uvx",
      "args": [
        "mcp-gee-sweet"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 17, 2026

mcp-gee-sweet

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

uvx mcp-gee-sweet

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

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
Gmail11Search 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
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.

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"
    }
  }
}

See Client Setup for more options including tool filtering.


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

↑↓ navigate openesc close