Keeper.sh vs Google Workspace MCP

A side-by-side look at the Keeper.sh and Google Workspace MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Keeper.sh logoKeeper.shWorkplace & ProductivityCalendar sync tool & universal calendar MCP server. Aggregate, sync and control calendars on Google, Outlook, Office 365, iCloud, CalDAV or ICS.55GoodAuth: not declaredGoogle Workspace MCP logoGoogle Workspace MCPWorkplace & Productivity · Local subprocess (stdio)Comprehensive Google Workspace MCP server with full support for Google Calendar, Drive, Gmail, and Docs, Forms, Chats, Slides and Sheets over stdio, Streamable HTTP and SSE transports.68GreatAuth: oauth 2.0

Verdict: choose Keeper.sh for workplace & productivity work; choose Google Workspace MCP for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Keeper.sh logoChoose Keeper.sh when

  • You need dedicated capabilities in the Workplace & Productivity domain.
  • You want tools like list_calendars, get_event_count, get_events.
Explore Keeper.sh

Google Workspace MCP logoChoose Google Workspace MCP when

  • You need dedicated capabilities in the Workplace & Productivity domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: OAuth 2.0.
  • You want tools like start_google_auth, search_gmail_messages, get_gmail_message_content.
Explore Google Workspace MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecKeeper.sh logoKeeper.shGoogle Workspace MCP logoGoogle Workspace MCP
CategoryWorkplace & ProductivityWorkplace & Productivity
Quality signal55/100 · Good68/100 · Great
Install commandNot confirmed yetConfirmed
Transport—Local subprocess (stdio)
AuthNot declaredOAuth 2.0
PricingFreeFree
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars1,4513,490
Directory activity 1 views 0 installs 0 upvotes 8 views 0 installs 0 upvotes
Tools14123

Tools & capabilities

Keeper.sh tools 14

  • list_calendarsList all calendars connected to Keeper.sh, including provider name and account.
  • get_event_countGet the number of calendar events. Optionally scoped to a date range with `from` and `to` ISO 8601 datetimes, and an IANA timezone whose local days all-day events count on.
  • get_eventsGet calendar events within a date range. Accepts ISO 8601 datetimes and an IANA timezone identifier used to localize event times. All-day events return `YYYY-MM-DD` dates with an exclusive end.
  • get_eventGet a single calendar event by its ID.
  • find_free_timeFind open slots of at least a given duration across every synced calendar in a date range.
  • create_eventCreate an event on a connected calendar. Requires a calendar ID, title, start time, and end time.
  • update_eventUpdate an existing calendar event. Only the fields you provide are updated.
  • delete_eventDelete a calendar event by its ID.
  • get_pending_invitesGet invitations on a calendar that have not been responded to within a date range.
  • rsvp_eventRespond to a calendar event invitation with `accepted`, `declined`, or `tentative`.
  • list_accountsList all connected calendar accounts with provider information.
  • trigger_syncForce a sync now instead of waiting for the next scheduled run. Throttled to one request per minute.
  • +2 more on the listing page

Google Workspace MCP tools 123

  • start_google_authManually initiate Google OAuth authentication flow. NOTE: This is a legacy OAuth 2.0 tool and is disabled when OAuth 2.1 is enabled. The authentication system automatically handles credential checks and prompts for authentication when needed. Only use this tool if: 1. You need to re-authenticate with different credentials 2. You want to proactively authenticate before using other tools 3. The automatic authentication flow failed and you need to retry In most cases, simply try calling the Google Workspace tool you need - it will automatically handle authentication if required.
  • search_gmail_messagesSearches messages in a user's Gmail account based on a query. Returns both Message IDs and Thread IDs for each found message, along with Gmail web interface links for manual verification. Supports pagination via page_token parameter.
  • get_gmail_message_contentRetrieves the full content (subject, sender, recipients, body) of a specific Gmail message. Bodies are returned inline and truncated at 20,000 characters. Set full=True to get the complete, untruncated message instead: it is exported to disk and the response carries a short-lived download URL (HTTP transport) or file path (stdio transport) rather than the body, so large messages never stream through the model context. Stateless deployments have no file storage, so there full=True returns the untruncated body inline.
  • get_gmail_messages_content_batchRetrieves the content of multiple Gmail messages in a single batch request. Supports up to 25 messages per batch to prevent SSL connection exhaustion.
  • get_gmail_attachment_contentDownloads an email attachment and saves it to local disk. In stdio mode, returns the local file path for direct access. In HTTP mode, returns a temporary download URL (valid for 1 hour). May re-fetch message metadata to resolve filename and MIME type.
  • send_gmail_messageSends an email using the user's Gmail account. Supports new emails, replies, and forwards, with optional attachments. Supports Gmail's "Send As" feature to send from configured alias addresses. To forward an existing message, pass forward_message_id. The original subject, body (quoted with a "Forwarded message" header), and attachments are carried over. In forward mode, body (if any) is prepended as a note and subject is optional. Threading, reply, and signature options do not apply when forwarding. THIS TOOL SENDS IMMEDIATELY AND CANNOT SCHEDULE. Gmail's REST API exposes no send-time parameter; Schedule send is a web-UI feature with no API equivalent, so no argument to this tool can defer delivery. Never tell a user a message was scheduled. For "prepare now, deliver later", create a draft with draft_gmail_message. An external scheduler must retain the message data to create and send a new message via send_gmail_message at the chosen time, or call users.drafts.send with the draft ID returned by draft_gmail_message. Alternatively, let the user schedule that draft in the Gmail UI.
  • draft_gmail_messageCreates a draft email in the user's Gmail account. Supports both new drafts and reply drafts with optional attachments. Supports Gmail's "Send As" feature to draft from configured alias addresses. SCHEDULED SEND IS NOT AVAILABLE. Gmail's REST API exposes no send-time parameter; the Schedule send feature is web-UI only, and a message cannot be placed in the Scheduled folder through the API. Do not claim a message was scheduled. To deliver at a chosen time, create a draft with draft_gmail_message. An external scheduler must retain the message data to create and send a new message via send_gmail_message then, or call users.drafts.send with the draft ID returned by draft_gmail_message. Alternatively, let the user schedule the draft in the Gmail UI.
  • get_gmail_thread_contentRetrieves the complete content of a Gmail conversation thread, including all messages. Optionally also returns structured ownership analysis so a caller can determine who sent the last message and who owes whom a response without re-parsing the formatted string or making a second tool call.
  • get_gmail_threads_content_batchRetrieves the content of multiple Gmail threads in a single batch request. Supports up to 25 threads per batch to prevent SSL connection exhaustion.
  • list_gmail_labelsLists labels in the user's Gmail account.
  • manage_gmail_labelManages Gmail labels: create, update, or delete labels.
  • list_gmail_filtersLists all Gmail filters configured in the user's mailbox.
  • +111 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Keeper.sh

No confirmed install command for Keeper.sh yet — follow the setup steps linked from its listing page rather than a guessed package name.

Google Workspace MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "taylorwilsdon-google-workspace-mcp": {
      "command": "uvx",
      "args": [
        "workspace-mcp"
      ]
    }
  }
}

Frequently asked questions

Keeper.sh is categorized under Workplace & Productivity and uses an install path we have not confirmed yet. Google Workspace MCP belongs to Workplace & Productivity and uses a local stdio subprocess. Pick Keeper.sh for workplace & productivity work and Google Workspace MCP for workplace & productivity.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client. Keeper.sh has no confirmed install command yet — follow its own setup instructions.

Keeper.sh is listed as free. Google Workspace MCP is listed as free. Auth: oauth 2.0. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add keeper-sh and taylorwilsdon-google-workspace-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Keeper.sh has a quality signal of 55/100 (Good) with 1 views, 0 installs and 1,451 GitHub stars. Google Workspace MCP has 68/100 (Great) with 8 views, 0 installs and 3,490 GitHub stars.