google-nice-mcp
Search and read emails with filters by sender, subject, keyword, date range, or unread status. Provides compact plain-text output.
Search files by name, full-text content, and type across My Drive and shared drives. Read text from Google Docs, Sheets, Slides, PDF, Word, Excel, and PowerPoint files.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-nice-mcpFind emails from John about project updates since 01.01.2025"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
google-nice-mcp
The Google Workspace MCP server that's actually nice to small local LLMs.
Why this exists
Most Google Workspace MCP servers expose 30+ tools across a dozen services (Gmail, Calendar, Docs, Sheets, Slides, Tasks, Chat, Formsβ¦). That floods a small model's context window and wrecks tool selection β a 7B local model staring at 30 tools will pick the wrong one.
This server does the opposite. It's a focused, read-only context-gatherer: just Gmail and Drive, just 5 tools, with plain typed parameters (no Gmail/Drive query DSL to memorize) and compact plain-text output instead of raw API JSON. The point is to let your local LLM learn about your project from your mail and files β not to manage your account.
Related MCP server: imap-mcp
Features
π― Just 5 tools β small enough that a local model reliably picks the right one.
π§° Gmail + Drive read β search and read email; search Drive by name or file content; read Docs, Sheets, Slides, PDF, Word, Excel and PowerPoint as text.
ποΈ Shared drives included β searches My Drive and shared/team drives together.
ποΈ Forgiving inputs β filter by
sender/subject/keyword/file_typeinstead of query syntax, and write dates asdd.mm.yyyy.π Token-cheap output β compact plain text, truncation, self-explaining errors.
π Read-only by scope β
gmail.readonly+drive.readonly. It physically cannot send, delete, or modify anything.
Tools
Tool | Purpose |
| Find emails by keyword, sender, subject, date range, or unread. |
| Read one full email β headers, plain-text body, attachment names. |
| Find files by name, full-text content, and type, across My Drive and shared drives. |
| Read a file's text: Google Docs/Sheets/Slides, PDF, Word ( |
| Discover which shared drives you can access. |
Friendly inputs everywhere
Dates (
gmail_search) usedd.mm.yyyyβ e.g.31.12.2026. Normalized internally to what the Gmail API requires;YYYY-MM-DDis also accepted.File types (
drive_search) are simple aliases:doc,sheet,slides,pdf,folder.Bad input gets a self-explaining error, not an empty result.
1. Set up Google Cloud OAuth (one time)
Open the Google Cloud Console and create a project (or pick one).
Enable the APIs: APIs & Services β Library β enable Gmail API and Google Drive API.
Configure the consent screen: APIs & Services β OAuth consent screen.
User type External is fine for a personal account.
Add your Google account under Test users (so you don't need app verification).
Create credentials: APIs & Services β Credentials β Create Credentials β OAuth client ID.
Application type: Desktop app.
Download the JSON.
Save that JSON as
~/.config/google-nice-mcp/credentials.json(or setGOOGLE_NICE_CREDENTIALSto point at it).
2. Install & authenticate
git clone https://github.com/Schneckenhausmann/google-nice-mcp.git
cd google-nice-mcp
uv sync # installs into .venv
uv run google-nice-mcp-login # opens a browser; approve read-only accessThe token is cached at ~/.config/google-nice-mcp/token.json and refreshed
automatically. Re-run the login only if you revoke access or change scopes.
3. Configure
Environment variables (all optional):
Variable | Default | Purpose |
|
| Where credentials/token live. |
|
| OAuth client file path. |
|
| Cached token path. |
Claude Desktop / Claude Code
{
"mcpServers": {
"google-nice": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/google-nice-mcp",
"run",
"google-nice-mcp"
]
}
}
}Local LLM clients (Ollama, LM Studio, β¦)
Use the same command / args in whatever MCP config your client supports. The
server speaks MCP over stdio, so anything that can launch a stdio MCP server works.
Example prompts
"Find emails from anna@acme.com about the Q3 budget since 01.01.2026 and summarize them."
"Search my Drive for files containing 'onboarding checklist' and read the most recent one."
"What shared drives do I have access to, and which contain a file named 'roadmap'?"
"Read the PDF spec in Drive (file id β¦) and list its requirements."
Develop
uv sync # install deps
uv run google-nice-mcp # run the server over stdioSource layout: tools in server.py; Gmail/Drive
API helpers in gmail.py /
drive.py; file-text extraction in
extract.py; OAuth in
auth.py.
Notes
Read-only. Nothing can be sent, deleted, or modified.
Long files are truncated by
drive_read_file'smax_chars(default 20k); raise it to read more.Scanned/image-only PDFs have no extractable text and will say so (no OCR).
Acknowledgments
Built fresh, but inspired by excellent prior work in the Google Workspace MCP ecosystem β thank you to their authors:
taylorwilsdon/google_workspace_mcp by Taylor Wilsdon β the most feature-complete Workspace MCP server; we drew on its Drive export-MIME mappings and native-vs-binary file handling.
aaronsb/google-workspace-mcp by Aaron Bushnell β clean read-focused Gmail/Drive tool surface.
Full third-party license notices are in CREDITS.md.
License
MIT Β© 2026 Nikias Herzhauser
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Schneckenhausmann/google-nice-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server