# Google Workspace MCP server: Gmail, Calendar, Drive and Docs

> One hosted MCP server for Gmail, Google Calendar, Drive, Docs and Sheets, with OAuth and no Cloud project. Compared with Google's own servers and self-hosting.

Updated 2026-11-01 · https://upsy.ai/guides/google-workspace-mcp-server

## Short answer

Upsy is a hosted Google Workspace MCP server (a connector that lets an AI agent use your Google apps) at `https://upsy.ai/connect`. It holds Gmail, Google Calendar, Google Drive, Docs and Sheets in one server, with up to five Google accounts per app. Connect your apps in Upsy, add the address to your agent, and sign in with OAuth: no Google Cloud project, no OAuth client, no API key. It takes a few minutes in Claude Code, Cursor, Codex, Claude, ChatGPT or any client with remote MCP, and it's free for personal use.

## Google Workspace MCP servers compared

| | Upsy | Google's own servers | [google_workspace_mcp](https://github.com/taylorwilsdon/google_workspace_mcp) |
|---|---|---|---|
| Status | Live | Developer Preview Program | Open source |
| Apps | Gmail, Calendar, Drive, Docs, Sheets | Gmail, Calendar, Drive, Docs, Sheets, Slides, Chat, People | 12, adding Slides, Forms, Tasks, Contacts, Chat and Apps Script |
| Addresses | One for every app | One per app, such as `calendarmcp.googleapis.com/mcp/v1` | One |
| Your own Cloud project and OAuth client | Not needed | Needed | Needed when you host it; hosted plans from $5 a month |
| Sends email | Yes | No, Gmail's drafts only | Yes |
| Google accounts | Up to 5 per app | One per connection | Depends on setup |
| Limits per agent | Full access, Read-only, Pick actions or No access | The OAuth scopes you configure | Tool tiers and a read-only mode |
| Record of actions | History and alerts | Admins' OAuth logs | Your own logs |

Google's servers are all in its [Developer Preview Program](https://developers.google.com/workspace/preview). To use one, you join the program, turn on the app's API and its MCP service in a Cloud project, set up a consent screen, and create a web OAuth client marked for an AI agent ([Google's setup guide](https://developers.google.com/workspace/guides/configure-mcp-servers)). For a self-hosted server, an External OAuth app still in Testing gets refresh tokens that expire after 7 days, so you sign in again every week ([Google's OAuth docs](https://developers.google.com/identity/protocols/oauth2#expiration)).

When something else fits better:

- **Google's servers,** if you're in the preview and want only Google between your agent and your data.
- **google_workspace_mcp,** if you need Slides, Forms, Tasks, Chat or Apps Script, or your data must stay on servers you run.
- **Your assistant's own connectors,** if one Google account in one assistant is enough. Claude and ChatGPT have Gmail, Calendar and Drive built in.

## Server details

| | |
|---|---|
| Address | `https://upsy.ai/connect` |
| Transport | Streamable HTTP |
| Sign-in | OAuth 2.1 with PKCE. Client ID Metadata Documents or dynamic client registration. No client secret, no API key |
| Tokens | Access tokens last 15 minutes, refresh tokens 30 days |

The metadata addresses and error behavior are in the [Gmail MCP server guide](/guides/gmail-mcp-server#server-details). Tool schemas are at [upsy.ai/docs](https://upsy.ai/docs).

## Connect your Google apps to Upsy

1. Go to [upsy.ai](https://upsy.ai) and click **Set up Upsy**.
2. Open **Apps** and connect Gmail, Google Calendar and Google Drive, signing in with Google for each. Docs and Sheets come with Drive. Repeat for each Google account, up to five per app.
3. On the **Assistants** page, click **Add assistant** and choose your agent under **Which assistant?** for its exact steps.

## Add the server to your agent

When you sign in, Upsy shows a page where you tick each app, pick its access and click **Allow**.

- **Claude Code:** `claude mcp add --transport http --scope user upsy https://upsy.ai/connect`, then `/mcp` to sign in.
- **Cursor:** add `{"mcpServers":{"upsy":{"url":"https://upsy.ai/connect"}}}` to `~/.cursor/mcp.json`, then connect it in Cursor's MCP settings.
- **Codex:** `codex mcp add upsy --url https://upsy.ai/connect`, then `codex mcp login upsy`.
- **Claude:** Customize › Connectors › **Add custom connector**. See [Claude MCP](/guides/claude/custom-connector).
- **ChatGPT:** Plugins › **Add** › **Create custom MCP server**, with OAuth. See [ChatGPT MCP](/guides/chatgpt/custom-connector).
- **Grok and Muse:** paste the setup prompt Upsy shows into a chat and approve the sign-in.

## Check that it works

Ask your agent:

> What's on my calendar tomorrow? Then find the most recent doc in my Drive about the budget.

It should call `calendar_list_events`, then `drive_search`. Both calls show up in Upsy's History.

## Tools

Labels come from each tool's MCP annotations: **Read**, **Write**, and **Sensitive write** (it sends, deletes, overwrites or can't be undone).

| App | Tool | What it does | Label |
|---|---|---|---|
| Calendar | `calendar_list_events` | Events in a range, the next 7 days by default | Read |
| Calendar | `calendar_get_event` | One event's details, guests and meeting link | Read |
| Calendar | `calendar_find_free_time` | Open slots, optionally within working hours | Read |
| Calendar | `calendar_create_event` | Creates an event and invites guests | Sensitive write |
| Calendar | `calendar_update_event` | Moves or changes an event, or its guests | Sensitive write |
| Calendar | `calendar_delete_event` | Deletes an event and tells its guests | Sensitive write |
| Calendar | `calendar_respond` | Accepts, declines or tentatively accepts an invite | Sensitive write |
| Drive | `drive_search`, `drive_recent` | Finds files by name or content; lists recent ones | Read |
| Drive | `drive_read` | A file's text: Docs and Slides as text, Sheets as CSV, PDFs and Word files extracted | Read |
| Drive | `drive_upload` | Saves a new file, up to 3 MB, or copies an email attachment into Drive | Write |
| Docs | `docs_read` | A Doc as Markdown, with headings, lists and tables, tab by tab | Read |
| Docs | `docs_suggest` | Suggests changes you accept or reject in the Doc | Sensitive write |
| Docs | `docs_comment` | Comments on a passage | Sensitive write |
| Docs | `docs_edit` | Changes the text directly; the Doc's version history keeps the old text | Sensitive write |
| Sheets | `sheets_read` | Tabs, sizes and values, the first 200 rows by default | Read |
| Sheets | `sheets_update`, `sheets_batch_update` | Writes values and formulas, up to 10,000 cells; the batch tool takes up to 100 ranges at once | Sensitive write |
| Sheets | `sheets_append` | Adds rows after a table's last row | Sensitive write |
| Sheets | `sheets_add_tab` | Adds an empty tab | Sensitive write |

Nothing deletes a file in Drive. Gmail's tools, including sending, are listed in the [Gmail MCP server guide](/guides/gmail-mcp-server#gmail-tools).

## Access levels and accounts

Each agent gets its own level per app on the Assistants page: **Full access**, **Read-only** (the Read tools), **Pick actions** (the tools you choose) or **No access**. A tool the level doesn't allow isn't listed and can't be called.

`docs_edit` is left out of Full access, so agents suggest changes by default. To let one edit Docs directly, choose **Pick actions** and tick it.

You can connect up to 5 accounts per app and allow each on its own. With more than one, every tool takes `account`, the address to act as; the default is the first you connected.

## Prompts to try

- "Find a 30-minute slot with no meetings on Thursday afternoon and invite alex@example.com to a call."
- "Read the Q4 plan doc and suggest tighter wording for the summary. Don't edit it directly."
- "Add this week's expenses from my receipts email to the Expenses sheet."
- "Save the PDF attached to the latest email from our accountant into Drive."
- "Decline tomorrow's 9am meeting and tell the organizer I'm out sick."

## Troubleshooting

### Google's consent screen names Composio

While Google reviews Upsy's own Google app, Gmail, Calendar and Drive sign in through Composio's verified Google app. It's temporary. Upsy acts on your data only when an agent you allowed asks.

### `Error 400: access_not_configured`

Your Workspace admin blocks unreviewed apps. They can trust the app under Security › Access and data control › API controls › Manage App Access ([Google's guide](https://knowledge.workspace.google.com/admin/apps/control-which-apps-access-google-workspace-data)).

### The agent only sees my main calendar

Calendar tools use your main calendar unless the agent passes `calendar_id`. Name the calendar in your prompt.

### Changes show up as suggestions, not edits

That's `docs_suggest`, the default. Accept them in the Doc, or allow `docs_edit` under Pick actions.

### A tool says the app isn't connected

Connect it under **Apps**. If it says you haven't allowed it, turn the app on for that agent on the Assistants page, then reconnect the agent.

## Security and privacy

- Agents never get your Google password or tokens. They call Upsy's tools, and Upsy calls Google.
- Every call is in Upsy's **History** under the agent that made it. Upsy emails you when one agent makes 50 or more deletes, 20 or more sends, or 100 or more reads within 10 minutes, and when a new agent or app connects.
- Upsy has no approval prompt of its own. Confirmation before a send or an invite comes from your agent, so keep it on for sensitive tools.
- An email or a shared Doc can carry instructions aimed at your agent. Give agents that read untrusted content **Read-only**.
- One click turns an agent off. Upsy is built by Upstash, free for personal use, with no ads, and doesn't sell data.

## FAQ

### Is there an official Google Workspace MCP server?

Yes, in preview. Google runs MCP servers for Gmail, Calendar, Drive, Docs, Sheets, Slides, Chat and People through its Workspace Developer Preview Program. Each needs your own Cloud project and OAuth client, and Gmail's can't send.

### What's the Google Calendar MCP server URL?

Upsy's is `https://upsy.ai/connect`, shared by all your Google apps. Google's preview server is `https://calendarmcp.googleapis.com/mcp/v1`.

### Can an MCP server edit Google Docs and Sheets?

Upsy's can. In Docs, it suggests changes for you to accept, or edits directly if you allow `docs_edit`. In Sheets, it writes values and formulas and adds rows and tabs.

### Does it cover Slides, Forms or Google Chat?

Not in Upsy. Agents can read Slides as text with `drive_read`. For editing Slides or using Chat, Forms and Tasks, use Google's preview servers or google_workspace_mcp.

### Can I connect more than one Google account?

Yes, up to five per app in Upsy, such as a work and a personal account, each with its own access.

---

Upsy connects personal AI assistants (Muse, Grok, ChatGPT, Claude, Cursor, Claude Code, Codex, Devin) to your Gmail, Google Calendar, Google Drive, Slack, Notion and other apps through one MCP server, with a shared memory, files and a cloud browser signed in to your sites. You choose what each assistant may do in each app, see everything it did, and turn it off in one click. Upsy is free. To add Upsy to an assistant, add a remote MCP server (Streamable HTTP) named Upsy at https://upsy.ai/connect. It signs in with OAuth; there is no API key.
