MCP server giving Hermes scoped Gmail/Calendar/Drive access via a dedicated Google account
Project description
hermes-google
MCP server giving Hermes (Claude Code running as a personal assistant) scoped access to Gmail, Google Calendar, and Google Drive through a dedicated Hermes Google account — without granting access to your personal Google account.
See docs/superpowers/specs/2026-04-23-hermes-google-design.md
for the full design.
Install
1. Register the MCP server with Claude Code
Pick the scope that fits your use case:
# Project scope — shared via .mcp.json, committed to git (recommended for teams)
claude mcp add -s project hermes-google -- uvx hermes-google-mcp
# User scope — available in all your projects
claude mcp add -s user hermes-google -- uvx hermes-google-mcp
# Local scope — private to you in this project only (default if -s is omitted)
claude mcp add hermes-google -- uvx hermes-google-mcp
2. Create a Hermes Google account (one-time)
- Sign up for a plain Gmail account (e.g.,
hermes-yourname@gmail.com) - In Google Cloud Console: create a project, enable Gmail, Calendar, and Drive APIs
- Create an OAuth 2.0 Client ID (type: Desktop application) and download
client_secret.json - Place it at
~/.config/hermes-google/client_secret.json
3. Run setup
# Clone and run the setup script
git clone https://github.com/jimmy-larsson/hermes-google.git
cd hermes-google
./scripts/setup.sh
The setup script creates the config, runs the OAuth flow, and prints the remaining manual steps (Gmail filters, Calendar/Drive sharing).
Usage
Once installed, the following tools are available to Hermes in every session:
mail_list_pending,mail_search,mail_get,mail_send_draft,mail_mark_read,mail_archivecal_list_calendars,cal_list_events,cal_create_event,cal_update_event,cal_delete_eventdrive_search,drive_list,drive_get,drive_upload,drive_update,drive_move,drive_deleteauth_status
All write operations require user confirmation. mail_send_draft is
structurally restricted to your own email; it cannot send to external
recipients.
Debug CLI
Same operations via shell:
hermes-google auth status
hermes-google mail list --limit 10
hermes-google mail get <message_id>
hermes-google cal list --start 2026-04-24T00:00:00+09:00 --end 2026-04-25T00:00:00+09:00
hermes-google drive search "Q1 report"
Revocation
Any one of these fully cuts an integration surface:
- Delete the
label:hermes-review → forwardfilter in your personal Gmail - Unshare your calendar with the Hermes account
- Unshare a Drive file or folder
hermes-google auth revoke— removes the refresh token locallyclaude mcp remove hermes-google— Hermes loses the tools; Google data untouched- Delete the Hermes Google account entirely
Development
conda activate hermes-google
pytest
ruff check src tests
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_google_mcp-0.1.1.tar.gz.
File metadata
- Download URL: hermes_google_mcp-0.1.1.tar.gz
- Upload date:
- Size: 59.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a24f42d4507150bb01f2ac1eeaad2612a172f272903f000ff480eb7694be8f3
|
|
| MD5 |
44b8b26c92f3738b2ed6936739098016
|
|
| BLAKE2b-256 |
22cc61671c4dcdd48cbbf75a9f93243f6748861326e968f2f4146d8524a29b52
|
Provenance
The following attestation bundles were made for hermes_google_mcp-0.1.1.tar.gz:
Publisher:
release.yml on jimmy-larsson/hermes-google
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_google_mcp-0.1.1.tar.gz -
Subject digest:
2a24f42d4507150bb01f2ac1eeaad2612a172f272903f000ff480eb7694be8f3 - Sigstore transparency entry: 1397370529
- Sigstore integration time:
-
Permalink:
jimmy-larsson/hermes-google@182bd35d44934f09d3e6c5907c23d34d8cf884f6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/jimmy-larsson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@182bd35d44934f09d3e6c5907c23d34d8cf884f6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hermes_google_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: hermes_google_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b6ba922aac6e3b1e1c5f543a536dc5018f14c6bf1b4792ee20d5d2df174e5e9
|
|
| MD5 |
650bcbf034f60a159ec200c6b7606a14
|
|
| BLAKE2b-256 |
d519951bc7ff353aa10569efd19dfaaa8ee67868b8d6984dcd126672376d2670
|
Provenance
The following attestation bundles were made for hermes_google_mcp-0.1.1-py3-none-any.whl:
Publisher:
release.yml on jimmy-larsson/hermes-google
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hermes_google_mcp-0.1.1-py3-none-any.whl -
Subject digest:
8b6ba922aac6e3b1e1c5f543a536dc5018f14c6bf1b4792ee20d5d2df174e5e9 - Sigstore transparency entry: 1397370560
- Sigstore integration time:
-
Permalink:
jimmy-larsson/hermes-google@182bd35d44934f09d3e6c5907c23d34d8cf884f6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/jimmy-larsson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@182bd35d44934f09d3e6c5907c23d34d8cf884f6 -
Trigger Event:
push
-
Statement type: