Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
Beschreibung vom Entwickler (englisches Original)
Google Workspace MCP — Docs, Drive, Calendar, Gmail, Sheets, Slides, Tasks, Chat, People, Forms
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRETAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"better-workspace": {
"command": "npx",
"args": [
"-y",
"@n24q02m/workspace"
],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "your-value",
"GOOGLE_OAUTH_CLIENT_SECRET": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add better-workspace --env GOOGLE_OAUTH_CLIENT_ID=your-value --env GOOGLE_OAUTH_CLIENT_SECRET=your-value -- npx -y @n24q02m/workspaceTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"better-workspace": {
"command": "npx",
"args": [
"-y",
"@n24q02m/workspace"
],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "your-value",
"GOOGLE_OAUTH_CLIENT_SECRET": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"better-workspace": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@n24q02m/workspace"
],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "your-value",
"GOOGLE_OAUTH_CLIENT_SECRET": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto n24q02m bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.6.0) kam vor 12 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js, Docker auf deinem Computer.
In derselben Kategorie: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
workspace
Google Workspace MCP — Docs, Drive, Calendar, Gmail, Sheets, Slides, Tasks, Chat, People, Forms
ARCHIVED 2026-09-13 — This repository is no longer maintained. Use the official Google Workspace APIs instead of this MCP server. Existing installations keep working but receive no updates or support.
Docs · Install · Quick start · Community
Sister projects from n24q02m (click to expand)
| Project | Tagline | Tag |
|---|---|---|
| agent-chat-plugin | Peer AI agents chat in a shared folder — no human relay, no orchestrator, wor... | Tooling |
| better-code-review-graph | Knowledge graph for token-efficient code reviews -- semantic search and call-... | MCP |
| better-drive | 2-way Google Drive sync with .driveignore filter — rclone engine, Windows tray | Tooling |
| better-email-mcp | IMAP/SMTP email for AI agents -- read, send, organize folders, and manage att... | MCP |
| better-godot-mcp | Composite MCP server for Godot Engine -- 17 composite tools for AI-assisted g... | MCP |
| better-notion-mcp | Markdown-first Notion for AI agents -- pages, databases, blocks, and comments... | MCP |
| better-semantic-release | Drop-in python-semantic-release fork with built-in release-safety guards (orp... | Tooling |
| better-telegram-mcp | Telegram for AI agents -- messages, chats, media, and contacts across both bo... | MCP |
| better-workspace-mcp | Google Workspace MCP server (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch... | MCP |
| claude-plugins | Claude Code plugin marketplace for the n24q02m MCP servers -- install web sea... | Marketplace |
| imagine-mcp | Image and video understanding + generation for AI agents -- across Gemini, Op... | MCP |
| jules-task-archiver | Chrome Extension for bulk operations on Jules tasks via batchexecute API -- a... | Tooling |
| mcp-core | Shared foundation for building MCP servers -- Streamable HTTP transport, OAut... | MCP |
| mnemo-mcp | Persistent AI memory with hybrid search and embedded sync. Open, free, unlimi... | MCP |
| qwen3-embed | Lightweight Qwen3 text embedding and reranking via ONNX Runtime and GGUF | Library |
| skret | Secrets without the server. | CLI |
| tacet | A self-distilling neuro-symbolic cascade that amortises LLM cost across knowl... | Tooling |
| web-core | Shared web infrastructure package for search, scraping, HTTP security, and st... | Library |
| wet-mcp | Open-source MCP server for AI agents: web search, content extraction, and lib... | MCP |
The server runs in two modes: stdio (default, single-user, one Google OAuth client of your own) and HTTP (multi-user, per-user bearer tokens). For stdio, add it to your MCP client config:
{
"mcpServers": { "workspace": { "command": "npx", "args": ["--yes", "@n24q02m/workspace@latest"], "env": { "GOOGLE_OAUTH_CLIENT_ID": " .apps.googleusercontent.com", "GOOGLE_OAUTH_CLIENT_SECRET": " " } } } }
The package is @n24q02m/workspace (formerly @n24q02m/better-workspace-mcp; old package receives one final release then freezes). The MCP Registry id stays io.github.n24q02m/better-workspace-mcp, and the legacy better-workspace-mcp command is kept as an alias of workspace.
Those two values come from an OAuth 2.0 client of type Desktop app, created in the Google Cloud Console under APIs & Services → Credentials. Desktop is the right type because the server receives the consent redirect on a loopback address, not on a public URL. Enable the Workspace APIs you plan to call on the same project, and add yourself as a test user while the consent screen is unpublished.
The first run opens the Google consent screen in your browser; the refresh token is stored encrypted on your machine under ~/.better-workspace/ (a legacy ~/.better-workspace-mcp/ is read as a fallback), so later runs start without asking again.
The same server can also serve several people over HTTP -- see Remote (HTTP mode).
Install with an AI agent -- paste this to your AI coding agent:
Install MCP server
workspacefollowing the steps at
https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/better-workspace-mcp/setup-with-agent.md
Besides stdio, the server runs as a multi-user HTTP service. Each request carries a bearer token from a users file (WORKSPACE_USERS_FILE), and each user's Google credentials are kept in their own bucket, keyed by that user's namespace, so one deployment serves several people without them sharing an account. Google consent for an HTTP account runs on the host, with workspace auth --user .
Point your MCP client at the host you deployed it on:
{
"mcpServers": { "workspace": { "type": "http", "url": "https:// /mcp" } } }
Two, and only two. There is no proxy or daemon mode: stdio speaks the MCP stdio transport directly, with no HTTP hop inside it.
| Mode | Selected by | Serves | Google OAuth client |
|---|---|---|---|
stdio | the default | one user, on their own machine | Desktop app |
http | --http, MCP_TRANSPORT=http, or TRANSPORT_MODE=http | several users, one credential bucket per user namespace | Web application |
Google binds redirect URIs to the *type* of the OAuth client, so the two modes cannot share one. stdio uses a Desktop client, which may redirect to any loopback port. HTTP uses a Web client. Keep the two credentials under separate names: pointing GOOGLE_OAUTH_CLIENT_ID/_SECRET at the Web client on a machine that also runs stdio breaks every stdio install. That is why docker-compose.http.yml reads the Web pair as GOOGLE_OAUTH_WEB_CLIENT_ID/_SECRET and renames it on the way into the container.
| Variable | Required | What it does |
|---|---|---|
GOOGLE_OAUTH_CLIENT_ID | yes | Web client id. The server refuses to start without it. |
GOOGLE_OAUTH_CLIENT_SECRET | yes | Web client secret. Same. |
CREDENTIAL_SECRET | yes | Derives the encryption key of each user's credential store. The server refuses to start without it, rather than fail in the middle of a user's consent. |
WORKSPACE_USERS_FILE | yes in HTTP | Users file that maps each bearer token to a user namespace (hull multi auth). Unset uses hull's default location. |
PORT | no | Listen port. 0 (the default) asks the OS for a free one. |
HOST | no | Bind address. Defaults to loopback, so a container needs 0.0.0.0. |
Credentials are stored on local disk under ~/.better-workspace/, which is the data volume in the container. A legacy ~/.better-workspace-mcp/ is read as a fallback.
docker-compose.http.yml in this repo is these variables written out as a runnable overlay.
One composite tool per Workspace domain, plus config and help:
| Tool | What it covers |
|---|---|
docs | Google Docs -- getText, create, writeText, getSuggestions, replaceText, formatText |
drive | Files and folders -- search, findFolder, createFolder, moveFile, renameFile, trashFile, downloadFile, getComments |
calendar | Events -- listCalendars, listEvents, getEvent, createEvent, updateEvent, deleteEvent, respondToEvent, findFreeTime |
gmail | Mail -- search, get, send, createDraft, sendDraft, modify, batchModify, modifyThread, downloadAttachment, listLabels, createLabel |
sheets | Spreadsheets, read-only -- getText, getRange, getMetadata |
slides | Presentations -- 19 actions covering slides, text, shapes, images, tables, and speaker notes |
tasks | Task lists and tasks -- listTaskLists, listTasks, createTask, updateTask, completeTask, deleteTask |
chat | Google Chat -- listSpaces, findSpaceByName, setUpSpace, getMessages, listThreads, sendMessage, sendDm, findDmByEmail |
people | Profile lookups -- getMe, getUserProfile, getUserRelations |
forms | Forms -- create, get, batchUpdate, listResponses, getResponse |
time | Local date/time/timezone helpers (no Google account needed) |
config | Credential state and account management |
help | Full documentation for any tool |
Questions are added to a form with forms(action="batchUpdate"), not at create; responses are read-only, because the Forms API cannot write one. Listing or deleting forms goes through drive.
Check that the credentials landed, with the config tool. Before the first consent this reports awaiting_setup; afterwards it names the account the server is acting as:
{ "action": "status" }
Then call a domain tool. On docs, create returns the new document's ID, which getText reads back:
{ "action": "create", "title": "Notes", "content": "First line." }
{ "action": "getText", "documentId": " " }
time, config, and help need no Google account, so they answer even before consent -- time is the quickest check that
Nur der Anfang wird gezeigt; den Rest findest du im Repo