Google Toolbox
STDIOMCP server providing AI assistants with tools to interact with Google services.
MCP server providing AI assistants with tools to interact with Google services.
An MCP server that provides AI assistants with powerful tools to interact with Google services, including Gmail, Google Calendar, Google Drive, and Google Search.
py-mcp-google-toolbox provides the following Google-related functionalities:
git clone https://github.com/jikime/py-mcp-google-toolbox.git cd py-mcp-google-toolbox
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv -p 3.12 source .venv/bin/activate # On MacOS/Linux # or .venv\Scripts\activate # On Windows
uv pip install -r requirements.txt
uv run get_refresh_token.py
This will:
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/gmail.send
https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/drive.readonly
token.json
cp env.example .env vi .env # change with your key GOOGLE_API_KEY=your_google_api_key GOOGLE_CSE_ID=your_custom_search_engine_id GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret GOOGLE_REFRESH_TOKEN=your_google_refresh_token
docker build -t py-mcp-google-toolbox .
docker run py-mcp-google-toolbox
mcp run server.py
mcp dev server.py
Add the server configuration to your MCP settings file:
npx -y @smithery/cli install @jikime/py-mcp-google-toolbox --client claude
~/Library/Application Support/Claude/claude_desktop_config.json
Add this to the mcpServers
object:
{ "mcpServers": { "Google Toolbox": { "command": "/path/to/bin/uv", "args": [ "--directory", "/path/to/py-mcp-google-toolbox", "run", "server.py" ] } } }
open ~/.cursor/mcp.json
Add this to the mcpServers
object:
{ "mcpServers": { "Google Toolbox": { "command": "/path/to/bin/uv", "args": [ "--directory", "/path/to/py-mcp-google-toolbox", "run", "server.py" ] } } }
{ "mcpServers": { "Google Toolbox": { "command": "docker", "args": [ "run", "-i", "--rm", "py-mcp-google-toolbox" ] } } }
list_emails
: Lists recent emails from Gmail inbox with filtering optionssearch_emails
: Performs advanced Gmail searches with detailed email content retrievalsend_email
: Composes and sends emails with support for CC, BCC recipientsmodify_email
: Changes email states (read/unread, archived, trashed) by modifying labelslist_events
: Retrieves upcoming calendar events within specified time rangescreate_event
: Creates new calendar events with attendees, location, and descriptionupdate_event
: Modifies existing calendar events with flexible parameter updatingdelete_event
: Removes calendar events by event IDread_gdrive_file
: Reads and retrieves content from Google Drive filessearch_gdrive
: Searches Google Drive for files with customizable queriessearch_google
: Performs Google searches and returns formatted resultsFor local testing, you can use the included client script:
# Example: List emails uv run client.py list_emails max_results=5 query="is:unread" # Example: Search emails uv run client.py search_emails query="from:[email protected]" # Example: Send email uv run client.py send_email to="[email protected]" subject="test mail" body="Hello" # Example: Modify email uv run client.py modify_email id=MESSAGE_ID remove_labels=INBOX add_labels=ARCHIVED # Example: List events uv run client.py list_events time_min=2025-05-01T00:00:00+09:00 time_max=2025-05-02T23:59:59+09:00 max_results=5 # Example: Create event uv run client.py create_event summary="new event" start=2025-05-02T10:00:00+09:00 end=2025-05-02T11:00:00+09:00 attendees="[email protected],[email protected]" # Example: Update event uv run client.py update_event event_id=EVENT_ID summary="update event" start=2025-05-02T10:00:00+09:00 end=2025-05-02T11:00:00+09:00 attendees="[email protected],[email protected]" # Example Delete event uv run client.py delete_event event_id=EVENT_ID # Example: Search Google uv run client.py search_google query="what is the MCP?" # Example: Search Google Drive uv run client.py search_gdrive query=mcp # Example: Read file uv run client.py read_gdrive_file file_id=1234567890
MIT License