list_emailsLABSCO SUMMARY
Calendar writes that only go one way.
This exists for a specific worry: once an agent can create events it can normally also delete them, because Google's scopes do not separate the two. Removing the tools is the blunt fix, and it means an agent using this can add to a calendar but never quietly clear it. Mail is not restricted the same way, and it can send.
What it is
A Gmail and Google Calendar server on OAuth. It is a variant of the Google Workspace server with the calendar update and delete tools removed, because Google's Calendar API has no scope that permits creating events without also permitting deleting and updating them.
What you get
- Recent inbox mail listed with optional filtering (list_emails)
- Advanced search using Gmail query syntax (search_emails)
- New mail sent, with CC and BCC support (send_email)
- Labels changed: archive, trash, mark read or unread (modify_email)
- Upcoming calendar events listed, with date-range filtering
- Calendar events created, with attendees
- No calendar update and no calendar delete: both were removed on purpose
Requirements
Node.js, and a Google Cloud project with the Gmail API and Google Calendar API enabled. Create OAuth credentials of type Web application, list the server's local callback address among the authorised redirect URIs, and save them as credentials.json in the project root. Smithery can install it for Claude Desktop in one command.
Setup effort
Build from source
USE CASES
Letting an agent put things in your calendar, safely
It can create events with attendees and read the upcoming ones, and there is no tool for it to update or delete anything. The guarantee comes from the missing tools rather than from a prompt asking it not to.
Finding a message you cannot remember the sender of
Search with Gmail query syntax, the same operators you would type into the search box, so from, has:attachment and date ranges all work as written.
Clearing the inbox down
List recent mail with a filter, then archive, trash or mark items read in place, which is the triage pass rather than the reading pass.
Sending the follow-up you just agreed on
Compose and send from the conversation, with CC and BCC available, so the message goes out while the context is still in front of you.
6 tools
Listed in project docs. Your client may show a different list.
search_emailssend_emailmodify_emaillist_eventscreate_eventBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation.
Requires
- Node.js 14 or higher
- A Google Cloud project with the Gmail API and Google Calendar API enabled
- GOOGLE_CLIENT_ID in your environment
- GOOGLE_CLIENT_SECRET in your environment
- GOOGLE_REFRESH_TOKEN in your environment
INSTALLATION
Connect your client
MCP Clients
Claude Desktop
Clone and build
git clone https://github.com/erickva/google-workspace-mcp-server-no-calendar-deletetion.git
cd google-workspace-mcp-server-no-calendar-deletetion
npm install
npm run buildGet your Google credentials, then add the server
In Google Cloud Console, enable the Gmail API and the Google Calendar API and create an OAuth client ID of type Web application, with http://localhost:4100/code as an authorized redirect URI. Save its ID and secret in the clone as credentials.json — {"web": {"client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "redirect_uris": ["http://localhost:4100/code"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token"}} — then run node get-refresh-token.js, which signs you in through the browser and prints the refresh token. Put the client ID, secret, refresh token and the path to build/index.js in your clone into ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": [
"<YOUR_PATH_TO_GOOGLE_WORKSPACE_SERVER>/build/index.js"
],
"env": {
"GOOGLE_CLIENT_ID": "<YOUR_GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<YOUR_GOOGLE_CLIENT_SECRET>",
"GOOGLE_REFRESH_TOKEN": "<YOUR_GOOGLE_REFRESH_TOKEN>"
}
}
}
}Cline
Clone and build
git clone https://github.com/erickva/google-workspace-mcp-server-no-calendar-deletetion.git
cd google-workspace-mcp-server-no-calendar-deletetion
npm install
npm run buildGet your Google credentials, then add the server
In Google Cloud Console, enable the Gmail API and the Google Calendar API and create an OAuth client ID of type Web application, with http://localhost:4100/code as an authorized redirect URI. Save its ID and secret in the clone as credentials.json — {"web": {"client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "redirect_uris": ["http://localhost:4100/code"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token"}} — then run node get-refresh-token.js, which signs you in through the browser and prints the refresh token. Put the client ID, secret, refresh token and the path to build/index.js in your clone into Cline's cline_mcp_settings.json (~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/):
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": [
"<YOUR_PATH_TO_GOOGLE_WORKSPACE_SERVER>/build/index.js"
],
"env": {
"GOOGLE_CLIENT_ID": "<YOUR_GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<YOUR_GOOGLE_CLIENT_SECRET>",
"GOOGLE_REFRESH_TOKEN": "<YOUR_GOOGLE_REFRESH_TOKEN>"
}
}
}
}