Skip to content

Commit 07ee185

Browse files
committed
step 5: promote Google Drive to option 10 (real MCP install) + step 7 trim
- step-5-install.sh: add install_gdrive() wiring the official Google-hosted MCP at drivemcp.googleapis.com/mcp/v1 (OAuth on first use, no key needed) - Option 10 added to menu + case dispatch + self-test + summary row + pre-existing detection + INSTALLED_GDRIVE flag - README Step 5: Google Drive now a proper row 10 with simple "Google Drive" label (no more "local or claude.ai hosted" hedging); numbered list bumped 9 → 10 tools - README Step 7 GitHub: trim detail paragraphs to single-line bullets; collapse table rows to terse form; keep PAT setup + scopes + /gitfix explanation intact
1 parent f294387 commit 07ee185

2 files changed

Lines changed: 60 additions & 20 deletions

File tree

README.md

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ Connects Claude to the productivity tools you already use. Everything's optional
439439
440440
Claude picks the right tool automatically based on what you ask. Pick whichever apply:
441441

442-
1. **Notion** · 2. **Granola** · 3. **n8n** · 4. **Google Calendar** · 5. **Morgen** ⭐ · 6. **Motion Calendar** · 7. **Playwright** · 8. **SwiftKit** · 9. **Superhuman**
442+
1. **Notion** · 2. **Granola** · 3. **n8n** · 4. **Google Calendar** · 5. **Morgen** ⭐ · 6. **Motion Calendar** · 7. **Playwright** · 8. **SwiftKit** · 9. **Superhuman** · 10. **Google Drive**
443443

444444
> **Morgen (5) is the recommended default** — it unifies Google, Outlook, iCloud, and native calendars + tasks behind a single API key. Google Calendar (4) and Motion (6) are secondary — install only if you need those accounts directly.
445445
>
@@ -469,7 +469,7 @@ The script asks which tools you want, then walks you through each one's credenti
469469
| 7 | **Playwright** ([Microsoft](https://github.com/microsoft/playwright-mcp)) | Lets Claude log into and operate web apps with no API. Runs its own Chromium (not your real browser), reads via accessibility-tree snapshots — fast + reliable. | Node 18+ (from Step 1) + ~hundreds of MB disk for Chromium. No credentials. |
470470
| 8 | **SwiftKit** ([swiftkit.sh](https://swiftkit.sh)) | Hosted MCP toolkit for **iOS / macOS / Swift development** — 100+ tools for writing, building, and shipping Apple-platform code behind one HTTP endpoint. Default for anything iPhone/iOS/Swift-related. Nothing to install locally. | Account + API key (`sk_live_` or `sk_test_`). |
471471
| 9 | **Superhuman** ([superhuman.com](https://superhuman.com)) | Email triage + drafting from Claude via Superhuman's official remote MCP. | Active Superhuman subscription. One-time browser OAuth on first use. |
472-
| | **Google Drive** (MCP — local or claude.ai hosted) | Browse, search, and read Google Drive files — Docs, Sheets, PDFs, shared folders. | **Easiest path:** enable the claude.ai-hosted MCP (claude.ai → avatar → **Settings** → **Connectors** → **Google Drive** → **Connect**). **Local-MCP path:** set up Google Cloud OAuth creds (same flow as Google Calendar) and run `claude mcp add gdrive -- npx -y @modelcontextprotocol/server-gdrive`. Not auto-installed by this script yet. |
472+
| 10 | **Google Drive** | Browse, search, and read Google Drive files — Docs, Sheets, PDFs, shared folders — via Google's official hosted MCP at `drivemcp.googleapis.com`. | Google account. One-time browser OAuth on first use. |
473473
474474
> **Playwright scope note:** Microsoft explicitly says "Playwright MCP is not a security boundary." Treat anything Claude loads through it the same as any browser session you'd drive manually.
475475
>
@@ -525,45 +525,38 @@ Open a new terminal and run `ctg` to launch Claude with Telegram connected. Insi
525525
526526
[Back to top](#quick-navigation)
527527
528-
This step is the GitHub bundle — for developers who want Claude to have direct access to their repos + a skill that keeps every repo's docs in sync with its code. It's completely optional. Skip it if you don't use GitHub with Claude, and everything else still works.
528+
The GitHub bundle — optional, for devs. Installs two things:
529529
530-
### What It Installs
531-
532-
Two things:
533-
534-
- **GitHub MCP server** ([`@modelcontextprotocol/server-github`](https://github.com/modelcontextprotocol/servers/tree/main/src/github)) — Claude gets a structured tool interface for reading and writing GitHub resources: repos, issues, PRs, files, code search, branches, commits. Once it's installed, you can ask Claude things like *"list open PRs on lorecraft-io/cli-maxxing"*, *"create an issue for this bug"*, or *"search my repos for any file that uses `MORGEN_API_KEY`"* and it just works.
535-
- **`/gitfix` skill** — a Claude Code skill that does a full-repo doc sync. Type `/gitfix` inside any Claude session and it reads every install script, skill file, and documentation file in the repo, finds every gap between the code and the docs, and fixes all of it. Use it any time you've made changes and need the README, cheatsheet, and all other docs to reflect reality.
530+
- **GitHub MCP** ([`@modelcontextprotocol/server-github`](https://github.com/modelcontextprotocol/servers/tree/main/src/github)) — Claude gets direct access to your repos: issues, PRs, files, code search, branches, commits. *"List open PRs on cli-maxxing"*, *"search my repos for any file that uses MORGEN_API_KEY"* — it just works.
531+
- **`/gitfix` skill** — full-repo doc sync. Reads every install script, skill file, and doc, finds drift between code and docs, fixes it. Run it after any significant change so the README stops lying.
536532
537533
### Before You Run It
538534
539-
You need a GitHub Personal Access Token (classic PAT) for the MCP part. Create one at [github.com/settings/tokens/new](https://github.com/settings/tokens/new):
540-
541-
- **Token name:** `claude-github-mcp`
542-
- **Expiration:** No expiration (or pick whatever you're comfortable with)
543-
- **Scopes:** check only `repo`, `read:org` (under `admin:org`), and `gist`
535+
You need a **GitHub Personal Access Token (classic PAT)** for the MCP. Create one at [github.com/settings/tokens/new](https://github.com/settings/tokens/new):
544536
545-
Click **Generate token** and copy the `ghp_...` value. You'll paste it into the install script.
537+
- **Name:** `claude-github-mcp`
538+
- **Scopes:** `repo`, `read:org` (under `admin:org`), `gist`
546539
547-
The `/gitfix` skill needs no token — it runs locally against whatever repo you point Claude at.
540+
Copy the `ghp_...` value. `/gitfix` needs no token — it runs locally.
548541
549542
### Run Step 7
550543
551544
```
552545
bash <(curl -fsSL https://raw.githubusercontent.com/lorecraft-io/cli-maxxing/main/step-7/step-7-install.sh)
553546
```
554547
555-
The script prompts for your PAT, registers the GitHub MCP with Claude Code, injects the token into `~/.claude.json` (same place every other MCP credential lives), and drops the `/gitfix` skill into `~/.claude/skills/gitfix/`.
548+
Script prompts for your PAT, registers the GitHub MCP (token stored in `~/.claude.json` alongside every other MCP credential), and drops `/gitfix` into `~/.claude/skills/gitfix/`.
556549
557550
### What This Step Installs
558551
559552
| Component | What it does |
560553
|-----------|-------------|
561-
| GitHub MCP (`@modelcontextprotocol/server-github`) | Claude Code MCP server that exposes GitHub API operations as tools — read/write repos, issues, PRs, code search, branches, commits. |
562-
| `/gitfix` skill | Claude Code skill — full-repo doc sync. Reads every file, fixes drift between code and docs. Works on any repo, no token needed. |
554+
| GitHub MCP | Exposes GitHub API ops as Claude tools — read/write repos, issues, PRs, code search, branches, commits. |
555+
| `/gitfix` skill | Full-repo doc sync. Fixes drift between code and docs. Works on any repo, no token needed. |
563556
564557
### After Step 7
565558
566-
Ask Claude to *"list my open GitHub issues"* or *"create a PR on cli-maxxing"* and the MCP tools kick in automatically. Type `/gitfix` (or just ask *"sync the repo"* / *"fix the github"* in plain English) after any significant change to make the docs match the code again. If you ever need to rotate the PAT, re-run Step 7 — it'll overwrite the entry in your MCP config.
559+
Ask *"list my open GitHub issues"* or *"create a PR on cli-maxxing"* and the MCP kicks in automatically. Type `/gitfix` (or say *"sync the repo"* / *"fix the github"* in plain English) after any major change to realign the docs. To rotate the PAT, re-run Step 7 — it overwrites the token in place.
567560
568561
---
569562

step-5/step-5-install.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ INSTALLED_MOTION=false
3333
INSTALLED_PLAYWRIGHT=false
3434
INSTALLED_SWIFTKIT=false
3535
INSTALLED_SUPERHUMAN=false
36+
INSTALLED_GDRIVE=false
3637
# Pre-existing installs (credentials managed outside this script).
3738
# Only Motion tracks this because Motion persists credentials to a local .env
3839
# the self-test checks for; Morgen/Notion/n8n credentials live inside Claude's
@@ -142,6 +143,10 @@ choose_tools() {
142143
CHOICES="$CHOICES 9"
143144
INSTALLED_SUPERHUMAN=true
144145
fi
146+
if claude mcp list 2>/dev/null | grep -q "gdrive" 2>/dev/null; then
147+
CHOICES="$CHOICES 10"
148+
INSTALLED_GDRIVE=true
149+
fi
145150

146151
if [ -n "$CHOICES" ]; then
147152
info "Found already-installed tools — verifying configuration"
@@ -171,6 +176,7 @@ choose_tools() {
171176
echo " 7) Playwright — browser automation for web apps with no API"
172177
echo " 8) SwiftKit — hosted MCP toolkit (100+ tools across services)"
173178
echo " 9) Superhuman — email triage + drafting via the official Superhuman MCP"
179+
echo " 10) Google Drive — browse, search, read Docs/Sheets/PDFs via Google's official MCP"
174180
echo ""
175181
echo -e "${YELLOW} Note: Morgen (5) is the recommended calendar+task tool.${NC}"
176182
echo -e "${YELLOW} Motion (6) and Google Calendar (4) are secondary —${NC}"
@@ -674,6 +680,40 @@ install_superhuman() {
674680
fi
675681
}
676682

683+
# -----------------------------------------------------------------------------
684+
# Install Google Drive MCP (official Google-hosted remote MCP — OAuth on first use)
685+
# URL: https://drivemcp.googleapis.com/mcp/v1
686+
# -----------------------------------------------------------------------------
687+
install_gdrive() {
688+
info "Installing Google Drive MCP server..."
689+
690+
if claude mcp list 2>/dev/null | grep -q "gdrive"; then
691+
success "Google Drive MCP already installed"
692+
INSTALLED_GDRIVE=true
693+
return
694+
fi
695+
696+
echo ""
697+
echo -e "${BLUE} Google Drive has an official hosted MCP at${NC}"
698+
echo -e "${BLUE} drivemcp.googleapis.com — Claude gets read/search access${NC}"
699+
echo -e "${BLUE} to your Drive files (Docs, Sheets, PDFs, shared folders).${NC}"
700+
echo ""
701+
echo -e "${BLUE} Auth: OAuth flow on first tool use. Your default browser${NC}"
702+
echo -e "${BLUE} will open — approve Claude against your Google account.${NC}"
703+
echo ""
704+
705+
claude mcp add --scope user --transport http \
706+
gdrive https://drivemcp.googleapis.com/mcp/v1 2>/dev/null \
707+
|| claude mcp add --transport http gdrive https://drivemcp.googleapis.com/mcp/v1 2>/dev/null
708+
709+
if claude mcp list 2>/dev/null | grep -q "gdrive"; then
710+
success "Google Drive MCP installed (authorize on first use)"
711+
INSTALLED_GDRIVE=true
712+
else
713+
soft_fail "Google Drive MCP installation could not be verified — try manually: claude mcp add --transport http gdrive https://drivemcp.googleapis.com/mcp/v1"
714+
fi
715+
}
716+
677717
# -----------------------------------------------------------------------------
678718
# Self-test — check each installed tool is registered
679719
# -----------------------------------------------------------------------------
@@ -709,6 +749,7 @@ run_self_test() {
709749
if $INSTALLED_PLAYWRIGHT; then check_registered "Playwright" "playwright"; else info "TEST: Playwright — skipped"; TEST_SKIP=$((TEST_SKIP + 1)); fi
710750
if $INSTALLED_SWIFTKIT; then check_registered "SwiftKit" "swiftkit"; else info "TEST: SwiftKit — skipped"; TEST_SKIP=$((TEST_SKIP + 1)); fi
711751
if $INSTALLED_SUPERHUMAN; then check_registered "Superhuman" "superhuman"; else info "TEST: Superhuman — skipped"; TEST_SKIP=$((TEST_SKIP + 1)); fi
752+
if $INSTALLED_GDRIVE; then check_registered "Google Drive" "gdrive"; else info "TEST: Google Drive — skipped"; TEST_SKIP=$((TEST_SKIP + 1)); fi
712753

713754
# Credential-file checks for tools that persist a local .env
714755
if $INSTALLED_GCAL; then
@@ -765,6 +806,7 @@ print_summary() {
765806
if $INSTALLED_PLAYWRIGHT; then echo " Playwright — browser automation for web apps with no API (Microsoft @playwright/mcp)"; INSTALLED_COUNT=$((INSTALLED_COUNT + 1)); fi
766807
if $INSTALLED_SWIFTKIT; then echo " SwiftKit — hosted MCP toolkit with 100+ tools across services (swiftkit.sh)"; INSTALLED_COUNT=$((INSTALLED_COUNT + 1)); fi
767808
if $INSTALLED_SUPERHUMAN; then echo " Superhuman — email triage + drafting from Claude (superhuman.com)"; INSTALLED_COUNT=$((INSTALLED_COUNT + 1)); fi
809+
if $INSTALLED_GDRIVE; then echo " Google Drive — read Drive files (Docs, Sheets, PDFs) via Google's official MCP"; INSTALLED_COUNT=$((INSTALLED_COUNT + 1)); fi
768810

769811
if [ "$INSTALLED_COUNT" -eq 0 ]; then
770812
echo " No tools were installed."
@@ -808,6 +850,10 @@ print_summary() {
808850
echo " - Ask Claude \"triage my inbox\" or \"draft a reply to the last email from X\""
809851
echo " - Browser opens on first use for one-time OAuth against your Superhuman account"
810852
fi
853+
if $INSTALLED_GDRIVE; then
854+
echo " - Ask Claude \"find the doc about X in my Drive\" or \"summarize this shared sheet\""
855+
echo " - Browser opens on first use for one-time OAuth against your Google account"
856+
fi
811857
fi
812858

813859
echo ""
@@ -851,6 +897,7 @@ main() {
851897
7) if ! $INSTALLED_PLAYWRIGHT; then install_playwright; else success "Playwright already configured"; fi ;;
852898
8) if ! $INSTALLED_SWIFTKIT; then install_swiftkit; else success "SwiftKit already configured"; fi ;;
853899
9) if ! $INSTALLED_SUPERHUMAN; then install_superhuman; else success "Superhuman already configured"; fi ;;
900+
10) if ! $INSTALLED_GDRIVE; then install_gdrive; else success "Google Drive already configured"; fi ;;
854901
*) warn "Unknown choice: $CHOICE (skipping)" ;;
855902
esac
856903
done

0 commit comments

Comments
 (0)