gogcli-mcp 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -125
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5340 -5393
- package/dist/lib.d.ts +6 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +30837 -0
- package/dist/runner.d.ts +12 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/tools/auth.d.ts +3 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/calendar.d.ts +3 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/contacts.d.ts +3 -0
- package/dist/tools/contacts.d.ts.map +1 -0
- package/dist/tools/docs.d.ts +3 -0
- package/dist/tools/docs.d.ts.map +1 -0
- package/dist/tools/drive.d.ts +3 -0
- package/dist/tools/drive.d.ts.map +1 -0
- package/dist/tools/gmail.d.ts +3 -0
- package/dist/tools/gmail.d.ts.map +1 -0
- package/dist/tools/sheets.d.ts +3 -0
- package/dist/tools/sheets.d.ts.map +1 -0
- package/dist/tools/tasks.d.ts +3 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/utils.d.ts +14 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/manifest.json +1 -1
- package/package.json +6 -2
- package/src/index.ts +2 -23
- package/src/lib.ts +5 -0
- package/src/server.ts +31 -0
- package/src/tools/docs.ts +10 -76
- package/tests/tools/docs.test.ts +19 -163
- package/tsconfig.json +2 -8
- package/.github/workflows/ci.yml +0 -22
- package/.github/workflows/release.yml +0 -76
- package/.github/workflows/tag-and-bump.yml +0 -67
- package/.mcp.json +0 -13
- package/CLAUDE.md +0 -61
- package/docs/superpowers/plans/2026-04-12-gogcli-mcp.md +0 -758
- package/docs/superpowers/plans/2026-04-13-browser-auth.md +0 -450
- package/docs/superpowers/specs/2026-04-12-gogcli-mcp-design.md +0 -102
- package/docs/superpowers/specs/2026-04-13-browser-auth-design.md +0 -88
- package/gogcli-mcp-1.0.5.skill +0 -0
package/README.md
CHANGED
|
@@ -1,64 +1,34 @@
|
|
|
1
1
|
# gogcli-mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Base [Model Context Protocol](https://modelcontextprotocol.io) server that gives Claude access to Google Workspace via [gogcli](https://github.com/steipete/gogcli). Includes 53 tools across 8 services: Sheets, Docs, Gmail, Calendar, Drive, Tasks, Contacts, and Auth.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
> **AI-developed project.** This codebase was entirely built and is actively maintained by [Claude Sonnet 4.6](https://www.anthropic.com/claude). No human has audited the implementation. Review all code and tool permissions before use.
|
|
7
|
-
|
|
8
|
-
## What you can do
|
|
9
|
-
|
|
10
|
-
Ask Claude things like:
|
|
11
|
-
|
|
12
|
-
- *"Read the data in Sheet1!A1:D20 of my budget spreadsheet"*
|
|
13
|
-
- *"Append this week's expenses to my tracking sheet"*
|
|
14
|
-
- *"Create a new spreadsheet called Q2 Planning"*
|
|
15
|
-
- *"Find all instances of 'TBD' in my project sheet and replace with 'Done'"*
|
|
16
|
-
- *"What tabs are in spreadsheet ID xyz?"*
|
|
5
|
+
For extended Sheets or Docs support, see [gogcli-mcp-sheets](https://www.npmjs.com/package/gogcli-mcp-sheets) and [gogcli-mcp-docs](https://www.npmjs.com/package/gogcli-mcp-docs).
|
|
17
6
|
|
|
18
7
|
## Requirements
|
|
19
8
|
|
|
20
|
-
- [gogcli](https://github.com/steipete/gogcli) installed and authenticated
|
|
21
|
-
-
|
|
22
|
-
- Node.js 18 or later
|
|
23
|
-
|
|
24
|
-
Install gogcli via Homebrew:
|
|
9
|
+
- [gogcli](https://github.com/steipete/gogcli) installed and authenticated
|
|
10
|
+
- Node.js 18+
|
|
25
11
|
|
|
26
12
|
```bash
|
|
27
13
|
brew install gogcli
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
Then authenticate:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
gog auth add <your-email> --services sheets
|
|
14
|
+
gog auth add your@gmail.com
|
|
34
15
|
```
|
|
35
16
|
|
|
36
17
|
## Installation
|
|
37
18
|
|
|
38
|
-
### 1. Clone and build
|
|
39
|
-
|
|
40
19
|
```bash
|
|
41
|
-
|
|
42
|
-
cd gogcli-mcp
|
|
43
|
-
npm install
|
|
44
|
-
npm run build
|
|
20
|
+
npm install -g gogcli-mcp
|
|
45
21
|
```
|
|
46
22
|
|
|
47
|
-
###
|
|
48
|
-
|
|
49
|
-
Edit your Claude Desktop config file:
|
|
50
|
-
|
|
51
|
-
- **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
52
|
-
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
23
|
+
### Claude Desktop
|
|
53
24
|
|
|
54
|
-
Add
|
|
25
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
55
26
|
|
|
56
27
|
```json
|
|
57
28
|
{
|
|
58
29
|
"mcpServers": {
|
|
59
30
|
"gogcli": {
|
|
60
|
-
"command": "
|
|
61
|
-
"args": ["/absolute/path/to/gogcli-mcp/dist/index.js"],
|
|
31
|
+
"command": "gogcli-mcp",
|
|
62
32
|
"env": {
|
|
63
33
|
"GOG_ACCOUNT": "you@gmail.com"
|
|
64
34
|
}
|
|
@@ -67,98 +37,26 @@ Add the `gogcli` entry inside `"mcpServers"`:
|
|
|
67
37
|
}
|
|
68
38
|
```
|
|
69
39
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
`GOG_ACCOUNT` is optional — omit it to use gogcli's configured default account.
|
|
73
|
-
|
|
74
|
-
### 3. Add to Claude Code
|
|
75
|
-
|
|
76
|
-
The repo includes `.mcp.json`. From the project directory:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
# The .mcp.json is already configured — just set your account
|
|
80
|
-
export GOG_ACCOUNT=you@gmail.com
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Or add `GOG_ACCOUNT` to your shell profile.
|
|
84
|
-
|
|
85
|
-
## Tools
|
|
86
|
-
|
|
87
|
-
Read-only tools run automatically. Write tools ask for confirmation first.
|
|
88
|
-
|
|
89
|
-
| Tool | What it does | Permission |
|
|
90
|
-
|------|-------------|------------|
|
|
91
|
-
| `gog_sheets_get` | Read values from a range | Auto |
|
|
92
|
-
| `gog_sheets_metadata` | Get title, tabs, and named ranges | Auto |
|
|
93
|
-
| `gog_sheets_update` | Write values to a range | Confirm |
|
|
94
|
-
| `gog_sheets_append` | Append rows after existing data | Confirm |
|
|
95
|
-
| `gog_sheets_clear` | Clear values in a range | Confirm |
|
|
96
|
-
| `gog_sheets_create` | Create a new spreadsheet | Confirm |
|
|
97
|
-
| `gog_sheets_find_replace` | Find and replace across a spreadsheet | Confirm |
|
|
98
|
-
| `gog_sheets_run` | Run any `gog sheets` subcommand (escape hatch) | Confirm |
|
|
99
|
-
|
|
100
|
-
All tools accept an optional `account` parameter to target a specific Google account for that call, overriding `GOG_ACCOUNT`.
|
|
101
|
-
|
|
102
|
-
## Multiple Accounts
|
|
103
|
-
|
|
104
|
-
If you use multiple Google accounts with gogcli, you can target a specific account per-call:
|
|
105
|
-
|
|
106
|
-
```
|
|
107
|
-
Read Sheet1!A1:D10 from spreadsheet abc123 using my work account work@company.com
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Claude will pass `account: "work@company.com"` to the tool, which adds `--account work@company.com` to the gogcli command.
|
|
111
|
-
|
|
112
|
-
## Troubleshooting
|
|
113
|
-
|
|
114
|
-
**"gog not found"** — gogcli is not installed or not in your PATH. Run `gog --help` in your terminal to verify. Install with `brew install gogcli`.
|
|
115
|
-
|
|
116
|
-
**"not authenticated"** — run `gog auth add <your-email> --services sheets` to authenticate. Run `gog auth list` to see configured accounts.
|
|
117
|
-
|
|
118
|
-
**"Spreadsheet not found"** — verify the spreadsheet ID (the long string in the URL between `/d/` and `/edit`).
|
|
119
|
-
|
|
120
|
-
**Tools not appearing in Claude Desktop** — go to **Settings → Developer** to see connected servers. Fully quit and relaunch after editing the config.
|
|
121
|
-
|
|
122
|
-
**Can't find the config file on Mac** — in Finder press Cmd+Shift+G and paste `~/Library/Application Support/Claude/`.
|
|
123
|
-
|
|
124
|
-
## Security
|
|
125
|
-
|
|
126
|
-
- `GOG_ACCOUNT` is optional and only selects which authenticated account to use
|
|
127
|
-
- No credentials are stored or passed by this server — authentication is handled entirely by gogcli's own keyring
|
|
128
|
-
- All gogcli invocations use `--no-input` to prevent interactive prompts
|
|
129
|
-
- All arguments are passed as arrays to `child_process.spawn` — no shell injection risk
|
|
130
|
-
|
|
131
|
-
## Development
|
|
40
|
+
### Claude Code
|
|
132
41
|
|
|
133
42
|
```bash
|
|
134
|
-
|
|
135
|
-
npm run build # compile TypeScript → dist/index.js
|
|
136
|
-
npm run test:coverage # run with coverage report
|
|
43
|
+
claude mcp add gogcli-mcp -- gogcli-mcp
|
|
137
44
|
```
|
|
138
45
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
src/
|
|
143
|
-
runner.ts gog CLI executor (auth injection, timeout, error handling)
|
|
144
|
-
index.ts MCP server entry point
|
|
145
|
-
tools/
|
|
146
|
-
sheets.ts 8 Google Sheets tools
|
|
147
|
-
tests/
|
|
148
|
-
runner.test.ts
|
|
149
|
-
tools/
|
|
150
|
-
sheets.test.ts
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### Adding more Google services
|
|
154
|
-
|
|
155
|
-
gogcli supports Gmail, Calendar, Drive, Contacts, Tasks, Docs, Slides, Chat, and more. To add a service:
|
|
46
|
+
## Tools (53)
|
|
156
47
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
48
|
+
| Service | Tools | Includes |
|
|
49
|
+
|---------|-------|----------|
|
|
50
|
+
| **Sheets** | 8 | get, update, append, clear, metadata, create, find-replace, run |
|
|
51
|
+
| **Docs** | 8 | info, cat, create, write, find-replace, structure, comments (generic), run |
|
|
52
|
+
| **Gmail** | 4 | search, get, send, run |
|
|
53
|
+
| **Calendar** | 7 | events, get, create, update, delete, respond, run |
|
|
54
|
+
| **Drive** | 9 | ls, search, get, mkdir, rename, move, delete, share, run |
|
|
55
|
+
| **Tasks** | 7 | lists, list, get, add, done, delete, run |
|
|
56
|
+
| **Contacts** | 5 | search, list, get, create, run |
|
|
57
|
+
| **Auth** | 5 | list, status, services, add, run |
|
|
160
58
|
|
|
161
|
-
|
|
59
|
+
All tools accept an optional `account` parameter to target a specific Google account.
|
|
162
60
|
|
|
163
61
|
## License
|
|
164
62
|
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|