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 "Deploy 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-mcp Find 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: google-workspace-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
Available Tools
5 toolsdrive_read_fileA
Read the text content of a Drive file by its id (from drive_search).
Handles Google Docs, Sheets and Slides (exported to text/CSV) as well as PDF, Word (.docx), Excel (.xlsx) and PowerPoint (.pptx) files. Long files are truncated to max_chars; raise it to read more.
Inputs: file_id (required), max_chars. Returns: result
drive_searchA
Search Google Drive (your files and shared drives) and list matches.
Filter by words in the file name, words found inside the file content (full-text), and/or file_type. Valid file_type values: doc, sheet, slides, pdf, folder. With NO filters, returns your most recently modified files. Set include_shared_drives=False to limit to your own Drive. Returns id, name, type, owner and last-modified time. Use the id with drive_read_file to read the contents.
Inputs: name, content, file_type, include_shared_drives, +1 more. Returns: result
gmail_read_emailA
Read one full email by its id (from gmail_search).
Returns headers, the plain-text body, and the names of any attachments.
Inputs: message_id (required). Returns: result
gmail_searchA
Search your Gmail and return a compact list of matching emails.
Filter by any combination of: a free-text keyword (matches anywhere), a sender email/name, words in the subject, and a date range. Dates use dd.mm.yyyy (e.g. 31.12.2026). 'after' means on/after that day, 'before' means before that day. With NO filters, returns your most recent emails. Returns id, from, subject, date and a short snippet for each hit. Use the id with gmail_read_email to read the full message.
Inputs: keyword, sender, subject, after, +3 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 5 tools
Tools are clearly separated by service prefix (drive_ vs gmail_) and have distinct purposes: listing drives, searching and reading files, searching and reading emails. No overlap in functionality.
All tools follow a service_verb[_object] pattern with underscores, but some use a bare verb (drive_search, gmail_search) while others include an object (drive_list_shared_drives, drive_read_file, gmail_read_email). Slight inconsistency but the pattern is predictable.
With 5 tools covering two Google services, the count is well-scoped. Each tool serves a clear purpose and there is no bloat or deficiency for the apparent scope.
The server covers search and read operations for both Drive and Gmail, but lacks any write or update capabilities (e.g., create, delete, send). This is a notable gap that may require additional tools for full lifecycle coverage.
Maintenance
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Read-only Google Search Console MCP server for AI assistants.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceRead-only MCP server for Gmail that enables searching threads, reading messages, and listing labels without any write access.128 npmMIT
- AlicenseNot gradedqualityDmaintenanceA single-tool MCP server for Google Calendar, Gmail, and Drive, designed for LLM context efficiency with compact output and multi-account support.1,276 npm1MIT
- FlicenseNot gradedqualityBmaintenanceA read-only Gmail MCP server that searches email, fetches complete threads, and stores them as local Markdown and JSON for offline analysis by other agents.1-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents full read and organizational access to multiple Gmail accounts β and no ability to send, trash, or delete mail.MIT