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.
Quick install
# 1. Clone
git clone <repo-url> ~/repositories/private/hermes-google
cd ~/repositories/private/hermes-google
# 2. Create the Hermes Google account (manual step, one-time)
# - Sign up for a plain Gmail account
# - In Google Cloud Console: create a project, enable Gmail/Calendar/Drive
# APIs, create an OAuth 2.0 Client ID (type: Desktop application),
# download as client_secret.json
# - Place client_secret.json at ~/.config/hermes-google/client_secret.json
# 3. Run setup
./scripts/setup.sh
# 4. Gmail filters + Calendar/Drive sharing (printed by setup.sh)
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.0.tar.gz.
File metadata
- Download URL: hermes_google_mcp-0.1.0.tar.gz
- Upload date:
- Size: 58.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
874423b7b7a44bf1b9648982cfb5085813ae7be132eff7f5ccda789c5d088c76
|
|
| MD5 |
c853cf9592e854f1ded96b7250657fd5
|
|
| BLAKE2b-256 |
a75103f2d67a9179b0c5305ba55862aff77e6284dccfe2d42013b6e771e06e50
|
Provenance
The following attestation bundles were made for hermes_google_mcp-0.1.0.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.0.tar.gz -
Subject digest:
874423b7b7a44bf1b9648982cfb5085813ae7be132eff7f5ccda789c5d088c76 - Sigstore transparency entry: 1396797127
- Sigstore integration time:
-
Permalink:
jimmy-larsson/hermes-google@7b9f6ebfd4b6db087a993ad1be01d8a892540e88 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/jimmy-larsson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7b9f6ebfd4b6db087a993ad1be01d8a892540e88 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hermes_google_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hermes_google_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.2 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 |
cdf41b3b2dfea3ac769e8c14e6e420fb72dec7911b6b3e20f049e0d1d1c5a374
|
|
| MD5 |
28e9ca4486bc403d98fb2a8ff94164a3
|
|
| BLAKE2b-256 |
d346e2bd9b6ec674ebac22a75bb702ebc408420dc68665647070a14178adc849
|
Provenance
The following attestation bundles were made for hermes_google_mcp-0.1.0-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.0-py3-none-any.whl -
Subject digest:
cdf41b3b2dfea3ac769e8c14e6e420fb72dec7911b6b3e20f049e0d1d1c5a374 - Sigstore transparency entry: 1396797148
- Sigstore integration time:
-
Permalink:
jimmy-larsson/hermes-google@7b9f6ebfd4b6db087a993ad1be01d8a892540e88 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/jimmy-larsson
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7b9f6ebfd4b6db087a993ad1be01d8a892540e88 -
Trigger Event:
push
-
Statement type: