@aaronsb/google-workspace-mcp 2.6.1 → 2.7.0
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 +2 -2
- package/build/__tests__/factory/calendar-patch.test.js +79 -0
- package/build/__tests__/factory/calendar-patch.test.js.map +1 -1
- package/build/__tests__/factory/drive-patch.test.js +224 -0
- package/build/__tests__/factory/drive-patch.test.js.map +1 -1
- package/build/__tests__/factory/sheets-patch.test.js +71 -6
- package/build/__tests__/factory/sheets-patch.test.js.map +1 -1
- package/build/__tests__/server/formatting/html-sanitize.test.d.ts +7 -0
- package/build/__tests__/server/formatting/html-sanitize.test.js +174 -0
- package/build/__tests__/server/formatting/html-sanitize.test.js.map +1 -0
- package/build/__tests__/server/formatting/markdown.test.js +55 -0
- package/build/__tests__/server/formatting/markdown.test.js.map +1 -1
- package/build/__tests__/server/handlers/calendar.test.js +2 -1
- package/build/__tests__/server/handlers/calendar.test.js.map +1 -1
- package/build/executor/gws.js +41 -20
- package/build/executor/gws.js.map +1 -1
- package/build/factory/generator.d.ts +11 -3
- package/build/factory/generator.js +41 -16
- package/build/factory/generator.js.map +1 -1
- package/build/factory/manifest/README.md +12 -0
- package/build/factory/manifest/calendar.yaml +204 -0
- package/build/factory/manifest/docs.yaml +77 -0
- package/build/factory/manifest/drive.yaml +314 -0
- package/build/factory/manifest/gmail.yaml +272 -0
- package/build/factory/manifest/meet.yaml +159 -0
- package/build/factory/manifest/sheets.yaml +225 -0
- package/build/factory/manifest/tasks.yaml +137 -0
- package/build/factory/registry.d.ts +3 -3
- package/build/factory/registry.js +5 -5
- package/build/factory/registry.js.map +1 -1
- package/build/factory/types.d.ts +6 -0
- package/build/server/formatting/html-sanitize.d.ts +40 -0
- package/build/server/formatting/html-sanitize.js +146 -0
- package/build/server/formatting/html-sanitize.js.map +1 -0
- package/build/server/formatting/markdown.d.ts +13 -3
- package/build/server/formatting/markdown.js +33 -6
- package/build/server/formatting/markdown.js.map +1 -1
- package/build/server/handlers/calendar.js +1 -1
- package/build/server/handlers/calendar.js.map +1 -1
- package/build/server/scratchpad/__tests__/docs-sync-integration.test.d.ts +11 -0
- package/build/server/scratchpad/__tests__/docs-sync-integration.test.js +187 -0
- package/build/server/scratchpad/__tests__/docs-sync-integration.test.js.map +1 -0
- package/build/server/scratchpad/__tests__/docs-sync.test.d.ts +16 -0
- package/build/server/scratchpad/__tests__/docs-sync.test.js +213 -0
- package/build/server/scratchpad/__tests__/docs-sync.test.js.map +1 -0
- package/build/server/scratchpad/adapters/import-doc.js +6 -3
- package/build/server/scratchpad/adapters/import-doc.js.map +1 -1
- package/build/server/scratchpad/adapters/send-calendar.js +1 -1
- package/build/server/scratchpad/adapters/send-calendar.js.map +1 -1
- package/build/server/scratchpad/docs-sync.d.ts +65 -0
- package/build/server/scratchpad/docs-sync.js +191 -0
- package/build/server/scratchpad/docs-sync.js.map +1 -0
- package/build/server/scratchpad/handler.js +95 -14
- package/build/server/scratchpad/handler.js.map +1 -1
- package/build/server/scratchpad/manager.d.ts +7 -0
- package/build/server/scratchpad/manager.js.map +1 -1
- package/build/services/calendar/patch.js +72 -1
- package/build/services/calendar/patch.js.map +1 -1
- package/build/services/drive/patch.js +170 -0
- package/build/services/drive/patch.js.map +1 -1
- package/build/services/gmail/patch.js +7 -2
- package/build/services/gmail/patch.js.map +1 -1
- package/build/services/sheets/patch.js +57 -6
- package/build/services/sheets/patch.js.map +1 -1
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/package.json +4 -2
- package/build/factory/manifest.yaml +0 -1383
|
@@ -1,1383 +0,0 @@
|
|
|
1
|
-
# Service manifest — declarative registry for the tool factory (ADR-300).
|
|
2
|
-
# Each entry produces one MCP tool via the generator.
|
|
3
|
-
# gws 0.13.3 — 7 services, 63 operations
|
|
4
|
-
#
|
|
5
|
-
# Note: People (contacts) are supported by gws but excluded here
|
|
6
|
-
# because gws auth login doesn't offer contacts.readonly scope.
|
|
7
|
-
# See https://github.com/googleworkspace/cli/issues/556
|
|
8
|
-
# Meet scopes resolved — use `gws auth login -s ...,meet` to authorize.
|
|
9
|
-
|
|
10
|
-
services:
|
|
11
|
-
gmail:
|
|
12
|
-
tool_name: manage_email
|
|
13
|
-
description: "Search, read, send, forward, or manage emails in a Google Workspace account. Supports Gmail search syntax."
|
|
14
|
-
requires_email: true
|
|
15
|
-
gws_service: gmail
|
|
16
|
-
operations:
|
|
17
|
-
|
|
18
|
-
# --- Core message operations ---
|
|
19
|
-
|
|
20
|
-
search:
|
|
21
|
-
type: list
|
|
22
|
-
description: "find emails by query"
|
|
23
|
-
resource: users.messages.list
|
|
24
|
-
params:
|
|
25
|
-
query:
|
|
26
|
-
type: string
|
|
27
|
-
description: 'Gmail search query (e.g. "from:alice subject:meeting has:attachment")'
|
|
28
|
-
maps_to: q
|
|
29
|
-
maxResults:
|
|
30
|
-
type: number
|
|
31
|
-
description: "Max results (default: 10, max: 50)"
|
|
32
|
-
default: 10
|
|
33
|
-
max: 50
|
|
34
|
-
defaults:
|
|
35
|
-
userId: me
|
|
36
|
-
hydration:
|
|
37
|
-
resource: users.messages.get
|
|
38
|
-
format: metadata
|
|
39
|
-
headers: [From, Subject, Date]
|
|
40
|
-
|
|
41
|
-
read:
|
|
42
|
-
type: detail
|
|
43
|
-
description: "get full email by ID"
|
|
44
|
-
resource: users.messages.get
|
|
45
|
-
params:
|
|
46
|
-
messageId:
|
|
47
|
-
type: string
|
|
48
|
-
description: "Email message ID"
|
|
49
|
-
required: true
|
|
50
|
-
maps_to: id
|
|
51
|
-
defaults:
|
|
52
|
-
userId: me
|
|
53
|
-
|
|
54
|
-
send:
|
|
55
|
-
type: action
|
|
56
|
-
description: "compose and send a new email (creates draft when attachments present, 35MB attachment limit via upload endpoint)"
|
|
57
|
-
helper: "+send"
|
|
58
|
-
params:
|
|
59
|
-
to:
|
|
60
|
-
type: string
|
|
61
|
-
description: "Recipient email(s), comma-separated"
|
|
62
|
-
required: true
|
|
63
|
-
subject:
|
|
64
|
-
type: string
|
|
65
|
-
description: "Email subject line"
|
|
66
|
-
required: true
|
|
67
|
-
body:
|
|
68
|
-
type: string
|
|
69
|
-
description: "Email body text"
|
|
70
|
-
required: true
|
|
71
|
-
cc:
|
|
72
|
-
type: string
|
|
73
|
-
description: "CC email(s), comma-separated"
|
|
74
|
-
bcc:
|
|
75
|
-
type: string
|
|
76
|
-
description: "BCC email(s), comma-separated"
|
|
77
|
-
attachments:
|
|
78
|
-
type: string
|
|
79
|
-
description: "Workspace filenames to attach, comma-separated (files must exist in workspace via manage_workspace). Creates draft when present."
|
|
80
|
-
html:
|
|
81
|
-
type: boolean
|
|
82
|
-
description: "Treat body as HTML content (default: plain text)"
|
|
83
|
-
draft:
|
|
84
|
-
type: boolean
|
|
85
|
-
description: "Save as draft instead of sending (default: false, forced true when attachments present)"
|
|
86
|
-
cli_args:
|
|
87
|
-
to: "--to"
|
|
88
|
-
subject: "--subject"
|
|
89
|
-
body: "--body"
|
|
90
|
-
cc: "--cc"
|
|
91
|
-
bcc: "--bcc"
|
|
92
|
-
|
|
93
|
-
reply:
|
|
94
|
-
type: action
|
|
95
|
-
description: "reply to a message (thread-aware)"
|
|
96
|
-
helper: "+reply"
|
|
97
|
-
params:
|
|
98
|
-
messageId:
|
|
99
|
-
type: string
|
|
100
|
-
description: "Message ID to reply to"
|
|
101
|
-
required: true
|
|
102
|
-
body:
|
|
103
|
-
type: string
|
|
104
|
-
description: "Reply body text"
|
|
105
|
-
required: true
|
|
106
|
-
cli_args:
|
|
107
|
-
messageId: "--message-id"
|
|
108
|
-
body: "--body"
|
|
109
|
-
|
|
110
|
-
replyAll:
|
|
111
|
-
type: action
|
|
112
|
-
description: "reply-all to a message (thread-aware, includes all recipients)"
|
|
113
|
-
helper: "+reply-all"
|
|
114
|
-
params:
|
|
115
|
-
messageId:
|
|
116
|
-
type: string
|
|
117
|
-
description: "Message ID to reply to"
|
|
118
|
-
required: true
|
|
119
|
-
body:
|
|
120
|
-
type: string
|
|
121
|
-
description: "Reply body text"
|
|
122
|
-
required: true
|
|
123
|
-
cc:
|
|
124
|
-
type: string
|
|
125
|
-
description: "Additional CC email(s), comma-separated"
|
|
126
|
-
cli_args:
|
|
127
|
-
messageId: "--message-id"
|
|
128
|
-
body: "--body"
|
|
129
|
-
cc: "--cc"
|
|
130
|
-
|
|
131
|
-
forward:
|
|
132
|
-
type: action
|
|
133
|
-
description: "forward a message to new recipients (includes original attachments by default)"
|
|
134
|
-
helper: "+forward"
|
|
135
|
-
params:
|
|
136
|
-
messageId:
|
|
137
|
-
type: string
|
|
138
|
-
description: "Message ID to forward"
|
|
139
|
-
required: true
|
|
140
|
-
to:
|
|
141
|
-
type: string
|
|
142
|
-
description: "Recipient email(s), comma-separated"
|
|
143
|
-
required: true
|
|
144
|
-
body:
|
|
145
|
-
type: string
|
|
146
|
-
description: "Optional note to prepend above forwarded message"
|
|
147
|
-
cli_args:
|
|
148
|
-
messageId: "--message-id"
|
|
149
|
-
to: "--to"
|
|
150
|
-
body: "--body"
|
|
151
|
-
|
|
152
|
-
# --- Inbox management ---
|
|
153
|
-
|
|
154
|
-
triage:
|
|
155
|
-
type: list
|
|
156
|
-
description: "unread inbox summary (sender, subject, date)"
|
|
157
|
-
helper: "+triage"
|
|
158
|
-
|
|
159
|
-
trash:
|
|
160
|
-
type: action
|
|
161
|
-
description: "move a message to trash"
|
|
162
|
-
resource: users.messages.trash
|
|
163
|
-
params:
|
|
164
|
-
messageId:
|
|
165
|
-
type: string
|
|
166
|
-
description: "Message ID to trash"
|
|
167
|
-
required: true
|
|
168
|
-
maps_to: id
|
|
169
|
-
defaults:
|
|
170
|
-
userId: me
|
|
171
|
-
|
|
172
|
-
untrash:
|
|
173
|
-
type: action
|
|
174
|
-
description: "restore a message from trash"
|
|
175
|
-
resource: users.messages.untrash
|
|
176
|
-
params:
|
|
177
|
-
messageId:
|
|
178
|
-
type: string
|
|
179
|
-
description: "Message ID to restore"
|
|
180
|
-
required: true
|
|
181
|
-
maps_to: id
|
|
182
|
-
defaults:
|
|
183
|
-
userId: me
|
|
184
|
-
|
|
185
|
-
getAttachment:
|
|
186
|
-
type: detail
|
|
187
|
-
description: "download an email attachment to workspace directory (use read first to see attachment list)"
|
|
188
|
-
resource: users.messages.attachments.get
|
|
189
|
-
params:
|
|
190
|
-
messageId:
|
|
191
|
-
type: string
|
|
192
|
-
description: "Message ID containing the attachment"
|
|
193
|
-
required: true
|
|
194
|
-
filename:
|
|
195
|
-
type: string
|
|
196
|
-
description: "Filename to save as (from the read response, e.g. 'invoice_template.md')"
|
|
197
|
-
required: true
|
|
198
|
-
defaults:
|
|
199
|
-
userId: me
|
|
200
|
-
|
|
201
|
-
viewAttachment:
|
|
202
|
-
type: detail
|
|
203
|
-
description: "view an image attachment inline without saving to workspace (png, jpg, gif, webp). Use for quick preview — use getAttachment to save."
|
|
204
|
-
resource: users.messages.attachments.get
|
|
205
|
-
params:
|
|
206
|
-
messageId:
|
|
207
|
-
type: string
|
|
208
|
-
description: "Message ID containing the attachment"
|
|
209
|
-
required: true
|
|
210
|
-
filename:
|
|
211
|
-
type: string
|
|
212
|
-
description: "Image filename from the read response"
|
|
213
|
-
required: true
|
|
214
|
-
defaults:
|
|
215
|
-
userId: me
|
|
216
|
-
|
|
217
|
-
modify:
|
|
218
|
-
type: action
|
|
219
|
-
description: "add or remove labels on a message (e.g. archive, mark read/unread)"
|
|
220
|
-
resource: users.messages.modify
|
|
221
|
-
params:
|
|
222
|
-
messageId:
|
|
223
|
-
type: string
|
|
224
|
-
description: "Message ID to modify"
|
|
225
|
-
required: true
|
|
226
|
-
maps_to: id
|
|
227
|
-
addLabelIds:
|
|
228
|
-
type: string
|
|
229
|
-
description: "Comma-separated label IDs to add (e.g. STARRED, IMPORTANT, Label_123)"
|
|
230
|
-
removeLabelIds:
|
|
231
|
-
type: string
|
|
232
|
-
description: "Comma-separated label IDs to remove (e.g. UNREAD, INBOX to archive)"
|
|
233
|
-
defaults:
|
|
234
|
-
userId: me
|
|
235
|
-
|
|
236
|
-
# --- Labels ---
|
|
237
|
-
|
|
238
|
-
labels:
|
|
239
|
-
type: list
|
|
240
|
-
description: "list all labels in the mailbox"
|
|
241
|
-
resource: users.labels.list
|
|
242
|
-
defaults:
|
|
243
|
-
userId: me
|
|
244
|
-
|
|
245
|
-
# --- Threads ---
|
|
246
|
-
|
|
247
|
-
threads:
|
|
248
|
-
type: list
|
|
249
|
-
description: "list email threads by query"
|
|
250
|
-
resource: users.threads.list
|
|
251
|
-
params:
|
|
252
|
-
query:
|
|
253
|
-
type: string
|
|
254
|
-
description: "Gmail search query to filter threads"
|
|
255
|
-
maps_to: q
|
|
256
|
-
maxResults:
|
|
257
|
-
type: number
|
|
258
|
-
description: "Max threads to return (default: 10, max: 50)"
|
|
259
|
-
default: 10
|
|
260
|
-
max: 50
|
|
261
|
-
defaults:
|
|
262
|
-
userId: me
|
|
263
|
-
|
|
264
|
-
getThread:
|
|
265
|
-
type: detail
|
|
266
|
-
description: "get all messages in a thread"
|
|
267
|
-
resource: users.threads.get
|
|
268
|
-
params:
|
|
269
|
-
threadId:
|
|
270
|
-
type: string
|
|
271
|
-
description: "Thread ID to retrieve"
|
|
272
|
-
required: true
|
|
273
|
-
maps_to: id
|
|
274
|
-
defaults:
|
|
275
|
-
userId: me
|
|
276
|
-
format: metadata
|
|
277
|
-
metadataHeaders: "From,Subject,Date,To"
|
|
278
|
-
|
|
279
|
-
calendar:
|
|
280
|
-
tool_name: manage_calendar
|
|
281
|
-
description: "List events, view agenda, check availability, or manage calendar events."
|
|
282
|
-
requires_email: true
|
|
283
|
-
gws_service: calendar
|
|
284
|
-
operations:
|
|
285
|
-
|
|
286
|
-
# --- Event viewing ---
|
|
287
|
-
|
|
288
|
-
list:
|
|
289
|
-
type: list
|
|
290
|
-
description: "upcoming events — defaults to primary calendar, use calendarId to target a specific calendar (use 'calendars' operation to discover IDs)"
|
|
291
|
-
resource: events.list
|
|
292
|
-
params:
|
|
293
|
-
calendarId:
|
|
294
|
-
type: string
|
|
295
|
-
description: "Calendar ID to query (default: 'primary'). Use 'calendars' operation to list available IDs."
|
|
296
|
-
timeMin:
|
|
297
|
-
type: string
|
|
298
|
-
description: "Start of range (ISO 8601) — defaults to today"
|
|
299
|
-
timeMax:
|
|
300
|
-
type: string
|
|
301
|
-
description: "End of range (ISO 8601)"
|
|
302
|
-
maxResults:
|
|
303
|
-
type: number
|
|
304
|
-
description: "Max events (default: 10, max: 50)"
|
|
305
|
-
default: 10
|
|
306
|
-
max: 50
|
|
307
|
-
query:
|
|
308
|
-
type: string
|
|
309
|
-
description: "Free-text search terms to filter events"
|
|
310
|
-
maps_to: q
|
|
311
|
-
defaults:
|
|
312
|
-
calendarId: primary
|
|
313
|
-
singleEvents: true
|
|
314
|
-
orderBy: startTime
|
|
315
|
-
|
|
316
|
-
agenda:
|
|
317
|
-
type: list
|
|
318
|
-
description: "today's schedule at a glance (all calendars). Returns calendarId per event for follow-up get calls."
|
|
319
|
-
helper: "+agenda"
|
|
320
|
-
params:
|
|
321
|
-
calendarId:
|
|
322
|
-
type: string
|
|
323
|
-
description: "Filter to a specific calendar name or ID"
|
|
324
|
-
days:
|
|
325
|
-
type: number
|
|
326
|
-
description: "Number of days ahead to show (default: today only)"
|
|
327
|
-
tomorrow:
|
|
328
|
-
type: boolean
|
|
329
|
-
description: "Show tomorrow's events instead of today"
|
|
330
|
-
week:
|
|
331
|
-
type: boolean
|
|
332
|
-
description: "Show this week's events"
|
|
333
|
-
|
|
334
|
-
get:
|
|
335
|
-
type: detail
|
|
336
|
-
description: "full event details by ID. For shared calendar events, calendarId is required (use agenda or list to discover it)."
|
|
337
|
-
resource: events.get
|
|
338
|
-
params:
|
|
339
|
-
calendarId:
|
|
340
|
-
type: string
|
|
341
|
-
description: "Calendar ID (default: 'primary'). Required for events on shared calendars."
|
|
342
|
-
eventId:
|
|
343
|
-
type: string
|
|
344
|
-
description: "Event ID"
|
|
345
|
-
required: true
|
|
346
|
-
defaults:
|
|
347
|
-
calendarId: primary
|
|
348
|
-
|
|
349
|
-
# --- Event management ---
|
|
350
|
-
|
|
351
|
-
create:
|
|
352
|
-
type: action
|
|
353
|
-
description: "create a new calendar event"
|
|
354
|
-
helper: "+insert"
|
|
355
|
-
params:
|
|
356
|
-
calendarId:
|
|
357
|
-
type: string
|
|
358
|
-
description: "Calendar ID (default: 'primary')"
|
|
359
|
-
summary:
|
|
360
|
-
type: string
|
|
361
|
-
description: "Event title"
|
|
362
|
-
required: true
|
|
363
|
-
start:
|
|
364
|
-
type: string
|
|
365
|
-
description: "Start time (ISO 8601)"
|
|
366
|
-
required: true
|
|
367
|
-
end:
|
|
368
|
-
type: string
|
|
369
|
-
description: "End time (ISO 8601)"
|
|
370
|
-
required: true
|
|
371
|
-
description:
|
|
372
|
-
type: string
|
|
373
|
-
description: "Event description or notes"
|
|
374
|
-
location:
|
|
375
|
-
type: string
|
|
376
|
-
description: "Event location"
|
|
377
|
-
attendees:
|
|
378
|
-
type: string
|
|
379
|
-
description: "Comma-separated attendee emails"
|
|
380
|
-
meet:
|
|
381
|
-
type: boolean
|
|
382
|
-
description: "Add a Google Meet video conference link to the event"
|
|
383
|
-
cli_args:
|
|
384
|
-
calendarId: "--calendar"
|
|
385
|
-
summary: "--summary"
|
|
386
|
-
start: "--start"
|
|
387
|
-
end: "--end"
|
|
388
|
-
description: "--description"
|
|
389
|
-
location: "--location"
|
|
390
|
-
attendees: "--attendees"
|
|
391
|
-
|
|
392
|
-
quickAdd:
|
|
393
|
-
type: action
|
|
394
|
-
description: "create event from natural language (e.g. 'Lunch with Alice tomorrow at noon')"
|
|
395
|
-
resource: events.quickAdd
|
|
396
|
-
params:
|
|
397
|
-
calendarId:
|
|
398
|
-
type: string
|
|
399
|
-
description: "Calendar ID (default: 'primary')"
|
|
400
|
-
text:
|
|
401
|
-
type: string
|
|
402
|
-
description: "Natural language event description"
|
|
403
|
-
required: true
|
|
404
|
-
defaults:
|
|
405
|
-
calendarId: primary
|
|
406
|
-
|
|
407
|
-
update:
|
|
408
|
-
type: action
|
|
409
|
-
description: "update an existing event (patch semantics — only changed fields needed)"
|
|
410
|
-
resource: events.patch
|
|
411
|
-
params:
|
|
412
|
-
calendarId:
|
|
413
|
-
type: string
|
|
414
|
-
description: "Calendar ID (default: 'primary')"
|
|
415
|
-
eventId:
|
|
416
|
-
type: string
|
|
417
|
-
description: "Event ID to update"
|
|
418
|
-
required: true
|
|
419
|
-
summary:
|
|
420
|
-
type: string
|
|
421
|
-
description: "Updated event title"
|
|
422
|
-
start:
|
|
423
|
-
type: string
|
|
424
|
-
description: "Updated start time (ISO 8601)"
|
|
425
|
-
end:
|
|
426
|
-
type: string
|
|
427
|
-
description: "Updated end time (ISO 8601)"
|
|
428
|
-
description:
|
|
429
|
-
type: string
|
|
430
|
-
description: "Updated description"
|
|
431
|
-
location:
|
|
432
|
-
type: string
|
|
433
|
-
description: "Updated location"
|
|
434
|
-
defaults:
|
|
435
|
-
calendarId: primary
|
|
436
|
-
|
|
437
|
-
delete:
|
|
438
|
-
type: action
|
|
439
|
-
description: "delete an event"
|
|
440
|
-
resource: events.delete
|
|
441
|
-
params:
|
|
442
|
-
calendarId:
|
|
443
|
-
type: string
|
|
444
|
-
description: "Calendar ID (default: 'primary')"
|
|
445
|
-
eventId:
|
|
446
|
-
type: string
|
|
447
|
-
description: "Event ID to delete"
|
|
448
|
-
required: true
|
|
449
|
-
defaults:
|
|
450
|
-
calendarId: primary
|
|
451
|
-
|
|
452
|
-
# --- Calendar management ---
|
|
453
|
-
|
|
454
|
-
calendars:
|
|
455
|
-
type: list
|
|
456
|
-
description: "list all calendars the user has access to"
|
|
457
|
-
resource: calendarList.list
|
|
458
|
-
|
|
459
|
-
freebusy:
|
|
460
|
-
type: detail
|
|
461
|
-
description: "check availability (free/busy) for a time range. Automatically includes own calendar; add attendees to check others."
|
|
462
|
-
resource: freebusy.query
|
|
463
|
-
params:
|
|
464
|
-
timeMin:
|
|
465
|
-
type: string
|
|
466
|
-
description: "Start of range (ISO 8601)"
|
|
467
|
-
required: true
|
|
468
|
-
timeMax:
|
|
469
|
-
type: string
|
|
470
|
-
description: "End of range (ISO 8601)"
|
|
471
|
-
required: true
|
|
472
|
-
attendees:
|
|
473
|
-
type: string
|
|
474
|
-
description: "Comma-separated email addresses to check availability for"
|
|
475
|
-
calendarId:
|
|
476
|
-
type: string
|
|
477
|
-
description: "Comma-separated calendar IDs to check (in addition to own calendar)"
|
|
478
|
-
|
|
479
|
-
drive:
|
|
480
|
-
tool_name: manage_drive
|
|
481
|
-
description: "Search, upload, download, share, comment on, or manage files in Google Drive."
|
|
482
|
-
requires_email: true
|
|
483
|
-
gws_service: drive
|
|
484
|
-
operations:
|
|
485
|
-
|
|
486
|
-
# --- File discovery ---
|
|
487
|
-
|
|
488
|
-
search:
|
|
489
|
-
type: list
|
|
490
|
-
description: "find files by query"
|
|
491
|
-
resource: files.list
|
|
492
|
-
params:
|
|
493
|
-
query:
|
|
494
|
-
type: string
|
|
495
|
-
description: "Drive search query (e.g. \"name contains 'budget'\" or \"mimeType='application/pdf'\")"
|
|
496
|
-
maps_to: q
|
|
497
|
-
maxResults:
|
|
498
|
-
type: number
|
|
499
|
-
description: "Max results (default: 10, max: 50)"
|
|
500
|
-
default: 10
|
|
501
|
-
max: 50
|
|
502
|
-
maps_to: pageSize
|
|
503
|
-
defaults:
|
|
504
|
-
fields: "files(id, name, mimeType, modifiedTime, size, webViewLink)"
|
|
505
|
-
supportsAllDrives: true
|
|
506
|
-
includeItemsFromAllDrives: true
|
|
507
|
-
|
|
508
|
-
get:
|
|
509
|
-
type: detail
|
|
510
|
-
description: "get file metadata"
|
|
511
|
-
resource: files.get
|
|
512
|
-
params:
|
|
513
|
-
fileId:
|
|
514
|
-
type: string
|
|
515
|
-
description: "File ID"
|
|
516
|
-
required: true
|
|
517
|
-
defaults:
|
|
518
|
-
fields: "id, name, mimeType, modifiedTime, size, webViewLink, owners, shared, parents"
|
|
519
|
-
supportsAllDrives: true
|
|
520
|
-
|
|
521
|
-
# --- File operations ---
|
|
522
|
-
|
|
523
|
-
upload:
|
|
524
|
-
type: action
|
|
525
|
-
description: "upload a local file to Drive"
|
|
526
|
-
helper: "+upload"
|
|
527
|
-
params:
|
|
528
|
-
filePath:
|
|
529
|
-
type: string
|
|
530
|
-
description: "Local file path to upload"
|
|
531
|
-
required: true
|
|
532
|
-
name:
|
|
533
|
-
type: string
|
|
534
|
-
description: "File name in Drive (defaults to local name)"
|
|
535
|
-
parentFolderId:
|
|
536
|
-
type: string
|
|
537
|
-
description: "Destination folder ID"
|
|
538
|
-
cli_args:
|
|
539
|
-
name: "--name"
|
|
540
|
-
parentFolderId: "--parent"
|
|
541
|
-
|
|
542
|
-
viewImage:
|
|
543
|
-
type: detail
|
|
544
|
-
description: "view an image file inline without saving to workspace (png, jpg, gif, webp). Use for quick preview — use download to save."
|
|
545
|
-
resource: files.get
|
|
546
|
-
params:
|
|
547
|
-
fileId:
|
|
548
|
-
type: string
|
|
549
|
-
description: "File ID of the image to view"
|
|
550
|
-
required: true
|
|
551
|
-
defaults:
|
|
552
|
-
supportsAllDrives: true
|
|
553
|
-
|
|
554
|
-
download:
|
|
555
|
-
type: detail
|
|
556
|
-
description: "download file content to local path"
|
|
557
|
-
resource: files.get
|
|
558
|
-
params:
|
|
559
|
-
fileId:
|
|
560
|
-
type: string
|
|
561
|
-
description: "File ID to download"
|
|
562
|
-
required: true
|
|
563
|
-
outputPath:
|
|
564
|
-
type: string
|
|
565
|
-
description: "Local path to save the file"
|
|
566
|
-
defaults:
|
|
567
|
-
alt: media
|
|
568
|
-
supportsAllDrives: true
|
|
569
|
-
|
|
570
|
-
copy:
|
|
571
|
-
type: action
|
|
572
|
-
description: "create a copy of a file"
|
|
573
|
-
resource: files.copy
|
|
574
|
-
params:
|
|
575
|
-
fileId:
|
|
576
|
-
type: string
|
|
577
|
-
description: "File ID to copy"
|
|
578
|
-
required: true
|
|
579
|
-
name:
|
|
580
|
-
type: string
|
|
581
|
-
description: "Name for the copy"
|
|
582
|
-
defaults:
|
|
583
|
-
supportsAllDrives: true
|
|
584
|
-
|
|
585
|
-
delete:
|
|
586
|
-
type: action
|
|
587
|
-
description: "permanently delete a file (cannot be undone)"
|
|
588
|
-
resource: files.delete
|
|
589
|
-
params:
|
|
590
|
-
fileId:
|
|
591
|
-
type: string
|
|
592
|
-
description: "File ID to delete"
|
|
593
|
-
required: true
|
|
594
|
-
defaults:
|
|
595
|
-
supportsAllDrives: true
|
|
596
|
-
|
|
597
|
-
export:
|
|
598
|
-
type: action
|
|
599
|
-
description: "export a Google Workspace document (Docs, Sheets, Slides) to a file format"
|
|
600
|
-
resource: files.export
|
|
601
|
-
params:
|
|
602
|
-
fileId:
|
|
603
|
-
type: string
|
|
604
|
-
description: "File ID to export"
|
|
605
|
-
required: true
|
|
606
|
-
mimeType:
|
|
607
|
-
type: string
|
|
608
|
-
description: "Target format (e.g. application/pdf, text/csv, text/plain, application/vnd.openxmlformats-officedocument.wordprocessingml.document)"
|
|
609
|
-
required: true
|
|
610
|
-
outputPath:
|
|
611
|
-
type: string
|
|
612
|
-
description: "Local path to save exported file"
|
|
613
|
-
defaults:
|
|
614
|
-
supportsAllDrives: true
|
|
615
|
-
|
|
616
|
-
# --- Sharing ---
|
|
617
|
-
|
|
618
|
-
listPermissions:
|
|
619
|
-
type: list
|
|
620
|
-
description: "list sharing permissions on a file"
|
|
621
|
-
resource: permissions.list
|
|
622
|
-
params:
|
|
623
|
-
fileId:
|
|
624
|
-
type: string
|
|
625
|
-
description: "File ID"
|
|
626
|
-
required: true
|
|
627
|
-
defaults:
|
|
628
|
-
supportsAllDrives: true
|
|
629
|
-
|
|
630
|
-
share:
|
|
631
|
-
type: action
|
|
632
|
-
description: "share a file with a user or group"
|
|
633
|
-
resource: permissions.create
|
|
634
|
-
params:
|
|
635
|
-
fileId:
|
|
636
|
-
type: string
|
|
637
|
-
description: "File ID to share"
|
|
638
|
-
required: true
|
|
639
|
-
shareEmail:
|
|
640
|
-
type: string
|
|
641
|
-
description: "Email address to share with"
|
|
642
|
-
required: true
|
|
643
|
-
role:
|
|
644
|
-
type: string
|
|
645
|
-
description: "Permission level"
|
|
646
|
-
enum: [reader, commenter, writer, organizer]
|
|
647
|
-
default: reader
|
|
648
|
-
defaults:
|
|
649
|
-
supportsAllDrives: true
|
|
650
|
-
|
|
651
|
-
unshare:
|
|
652
|
-
type: action
|
|
653
|
-
description: "remove sharing permission from a file"
|
|
654
|
-
resource: permissions.delete
|
|
655
|
-
params:
|
|
656
|
-
fileId:
|
|
657
|
-
type: string
|
|
658
|
-
description: "File ID"
|
|
659
|
-
required: true
|
|
660
|
-
permissionId:
|
|
661
|
-
type: string
|
|
662
|
-
description: "Permission ID to remove (from listPermissions)"
|
|
663
|
-
required: true
|
|
664
|
-
defaults:
|
|
665
|
-
supportsAllDrives: true
|
|
666
|
-
|
|
667
|
-
# --- Comments ---
|
|
668
|
-
|
|
669
|
-
listComments:
|
|
670
|
-
type: list
|
|
671
|
-
description: "list comments on a file"
|
|
672
|
-
resource: comments.list
|
|
673
|
-
params:
|
|
674
|
-
fileId:
|
|
675
|
-
type: string
|
|
676
|
-
description: "File ID"
|
|
677
|
-
required: true
|
|
678
|
-
includeDeleted:
|
|
679
|
-
type: boolean
|
|
680
|
-
description: "Include deleted comments (default: false)"
|
|
681
|
-
defaults:
|
|
682
|
-
fields: "comments(id, content, htmlContent, author(displayName, emailAddress), createdTime, modifiedTime, resolved, quotedFileContent, replies(id, content, htmlContent, author(displayName), createdTime)), nextPageToken"
|
|
683
|
-
supportsAllDrives: true
|
|
684
|
-
|
|
685
|
-
getComment:
|
|
686
|
-
type: detail
|
|
687
|
-
description: "get a specific comment by ID"
|
|
688
|
-
resource: comments.get
|
|
689
|
-
params:
|
|
690
|
-
fileId:
|
|
691
|
-
type: string
|
|
692
|
-
description: "File ID"
|
|
693
|
-
required: true
|
|
694
|
-
commentId:
|
|
695
|
-
type: string
|
|
696
|
-
description: "Comment ID"
|
|
697
|
-
required: true
|
|
698
|
-
defaults:
|
|
699
|
-
fields: "id, content, htmlContent, author(displayName, emailAddress), createdTime, modifiedTime, resolved, quotedFileContent, replies(id, content, htmlContent, author(displayName), createdTime)"
|
|
700
|
-
supportsAllDrives: true
|
|
701
|
-
|
|
702
|
-
addComment:
|
|
703
|
-
type: action
|
|
704
|
-
description: "add a comment to a file (optionally anchored to quoted text)"
|
|
705
|
-
resource: comments.create
|
|
706
|
-
params:
|
|
707
|
-
fileId:
|
|
708
|
-
type: string
|
|
709
|
-
description: "File ID"
|
|
710
|
-
required: true
|
|
711
|
-
content:
|
|
712
|
-
type: string
|
|
713
|
-
description: "Comment text"
|
|
714
|
-
required: true
|
|
715
|
-
quotedText:
|
|
716
|
-
type: string
|
|
717
|
-
description: "Text to anchor the comment to (optional — if provided, comment is anchored to first occurrence)"
|
|
718
|
-
defaults:
|
|
719
|
-
fields: "id, content, htmlContent, author(displayName), createdTime, quotedFileContent"
|
|
720
|
-
supportsAllDrives: true
|
|
721
|
-
|
|
722
|
-
resolveComment:
|
|
723
|
-
type: action
|
|
724
|
-
description: "resolve or reopen a comment"
|
|
725
|
-
resource: comments.update
|
|
726
|
-
params:
|
|
727
|
-
fileId:
|
|
728
|
-
type: string
|
|
729
|
-
description: "File ID"
|
|
730
|
-
required: true
|
|
731
|
-
commentId:
|
|
732
|
-
type: string
|
|
733
|
-
description: "Comment ID"
|
|
734
|
-
required: true
|
|
735
|
-
resolved:
|
|
736
|
-
type: boolean
|
|
737
|
-
description: "true to resolve, false to reopen"
|
|
738
|
-
required: true
|
|
739
|
-
defaults:
|
|
740
|
-
fields: "id, content, resolved"
|
|
741
|
-
supportsAllDrives: true
|
|
742
|
-
|
|
743
|
-
replyToComment:
|
|
744
|
-
type: action
|
|
745
|
-
description: "reply to an existing comment"
|
|
746
|
-
resource: replies.create
|
|
747
|
-
params:
|
|
748
|
-
fileId:
|
|
749
|
-
type: string
|
|
750
|
-
description: "File ID"
|
|
751
|
-
required: true
|
|
752
|
-
commentId:
|
|
753
|
-
type: string
|
|
754
|
-
description: "Comment ID to reply to"
|
|
755
|
-
required: true
|
|
756
|
-
content:
|
|
757
|
-
type: string
|
|
758
|
-
description: "Reply text"
|
|
759
|
-
required: true
|
|
760
|
-
defaults:
|
|
761
|
-
fields: "id, content, htmlContent, author(displayName), createdTime"
|
|
762
|
-
supportsAllDrives: true
|
|
763
|
-
|
|
764
|
-
# ========================================================================
|
|
765
|
-
# Sheets
|
|
766
|
-
# ========================================================================
|
|
767
|
-
|
|
768
|
-
sheets:
|
|
769
|
-
tool_name: manage_sheets
|
|
770
|
-
description: "Read, write, and manage Google Sheets spreadsheets."
|
|
771
|
-
requires_email: true
|
|
772
|
-
gws_service: sheets
|
|
773
|
-
operations:
|
|
774
|
-
|
|
775
|
-
get:
|
|
776
|
-
type: detail
|
|
777
|
-
description: "get spreadsheet metadata and sheet names"
|
|
778
|
-
resource: spreadsheets.get
|
|
779
|
-
params:
|
|
780
|
-
spreadsheetId:
|
|
781
|
-
type: string
|
|
782
|
-
description: "Spreadsheet ID"
|
|
783
|
-
required: true
|
|
784
|
-
|
|
785
|
-
create:
|
|
786
|
-
type: action
|
|
787
|
-
description: "create a new empty spreadsheet"
|
|
788
|
-
resource: spreadsheets.create
|
|
789
|
-
|
|
790
|
-
read:
|
|
791
|
-
type: detail
|
|
792
|
-
description: "read cell values from a range"
|
|
793
|
-
helper: "+read"
|
|
794
|
-
params:
|
|
795
|
-
spreadsheetId:
|
|
796
|
-
type: string
|
|
797
|
-
description: "Spreadsheet ID"
|
|
798
|
-
required: true
|
|
799
|
-
range:
|
|
800
|
-
type: string
|
|
801
|
-
description: "Range to read (e.g. 'Sheet1!A1:D10' or just 'Sheet1')"
|
|
802
|
-
required: true
|
|
803
|
-
cli_args:
|
|
804
|
-
spreadsheetId: "--spreadsheet"
|
|
805
|
-
range: "--range"
|
|
806
|
-
|
|
807
|
-
append:
|
|
808
|
-
type: action
|
|
809
|
-
description: "append rows to a spreadsheet (rows land after the last row of existing data in the target range)"
|
|
810
|
-
resource: spreadsheets.values.append
|
|
811
|
-
params:
|
|
812
|
-
spreadsheetId:
|
|
813
|
-
type: string
|
|
814
|
-
description: "Spreadsheet ID"
|
|
815
|
-
required: true
|
|
816
|
-
range:
|
|
817
|
-
type: string
|
|
818
|
-
description: "Target range; defaults to 'Sheet1'. Use 'MyTab' or 'MyTab!A:Z' to append to a specific tab."
|
|
819
|
-
values:
|
|
820
|
-
type: string
|
|
821
|
-
description: "Comma-separated values for a single row (e.g. 'Alice,100,true')"
|
|
822
|
-
jsonValues:
|
|
823
|
-
type: string
|
|
824
|
-
description: "JSON 2D array of rows for bulk insert (e.g. '[[\"a\",\"b\"],[\"c\",\"d\"]]')"
|
|
825
|
-
valueInputOption:
|
|
826
|
-
type: string
|
|
827
|
-
description: "How input is interpreted: USER_ENTERED (default, parses formulas/types) or RAW"
|
|
828
|
-
enum: [USER_ENTERED, RAW]
|
|
829
|
-
default: USER_ENTERED
|
|
830
|
-
|
|
831
|
-
getValues:
|
|
832
|
-
type: detail
|
|
833
|
-
description: "get values from a specific range (raw API)"
|
|
834
|
-
resource: spreadsheets.values.get
|
|
835
|
-
params:
|
|
836
|
-
spreadsheetId:
|
|
837
|
-
type: string
|
|
838
|
-
description: "Spreadsheet ID"
|
|
839
|
-
required: true
|
|
840
|
-
range:
|
|
841
|
-
type: string
|
|
842
|
-
description: "A1 notation range (e.g. 'Sheet1!A1:B10')"
|
|
843
|
-
required: true
|
|
844
|
-
|
|
845
|
-
updateValues:
|
|
846
|
-
type: action
|
|
847
|
-
description: "write values to a specific range"
|
|
848
|
-
resource: spreadsheets.values.update
|
|
849
|
-
params:
|
|
850
|
-
spreadsheetId:
|
|
851
|
-
type: string
|
|
852
|
-
description: "Spreadsheet ID"
|
|
853
|
-
required: true
|
|
854
|
-
range:
|
|
855
|
-
type: string
|
|
856
|
-
description: "A1 notation range to write to"
|
|
857
|
-
required: true
|
|
858
|
-
values:
|
|
859
|
-
type: string
|
|
860
|
-
description: "Comma-separated values for a single row (e.g. 'Alice,100,true')"
|
|
861
|
-
jsonValues:
|
|
862
|
-
type: string
|
|
863
|
-
description: "JSON 2D array of rows (e.g. '[[\"a\",\"b\"],[\"c\",\"d\"]]'). Use for multi-row writes."
|
|
864
|
-
valueInputOption:
|
|
865
|
-
type: string
|
|
866
|
-
description: "How input is interpreted: USER_ENTERED (default, parses formulas/types) or RAW"
|
|
867
|
-
enum: [USER_ENTERED, RAW]
|
|
868
|
-
default: USER_ENTERED
|
|
869
|
-
|
|
870
|
-
clearValues:
|
|
871
|
-
type: action
|
|
872
|
-
description: "clear cell values from a range (structure preserved)"
|
|
873
|
-
resource: spreadsheets.values.clear
|
|
874
|
-
params:
|
|
875
|
-
spreadsheetId:
|
|
876
|
-
type: string
|
|
877
|
-
description: "Spreadsheet ID"
|
|
878
|
-
required: true
|
|
879
|
-
range:
|
|
880
|
-
type: string
|
|
881
|
-
description: "A1 notation range to clear"
|
|
882
|
-
required: true
|
|
883
|
-
|
|
884
|
-
addSheet:
|
|
885
|
-
type: action
|
|
886
|
-
description: "add a new tab (sheet) to the spreadsheet"
|
|
887
|
-
resource: spreadsheets.batchUpdate
|
|
888
|
-
params:
|
|
889
|
-
spreadsheetId:
|
|
890
|
-
type: string
|
|
891
|
-
description: "Spreadsheet ID"
|
|
892
|
-
required: true
|
|
893
|
-
title:
|
|
894
|
-
type: string
|
|
895
|
-
description: "Name of the new sheet tab"
|
|
896
|
-
required: true
|
|
897
|
-
index:
|
|
898
|
-
type: number
|
|
899
|
-
description: "Position among tabs (0-based). Appended at the end if omitted."
|
|
900
|
-
rowCount:
|
|
901
|
-
type: number
|
|
902
|
-
description: "Initial row count (default 1000)"
|
|
903
|
-
columnCount:
|
|
904
|
-
type: number
|
|
905
|
-
description: "Initial column count (default 26)"
|
|
906
|
-
|
|
907
|
-
renameSheet:
|
|
908
|
-
type: action
|
|
909
|
-
description: "rename a tab (sheet) within a spreadsheet"
|
|
910
|
-
resource: spreadsheets.batchUpdate
|
|
911
|
-
params:
|
|
912
|
-
spreadsheetId:
|
|
913
|
-
type: string
|
|
914
|
-
description: "Spreadsheet ID"
|
|
915
|
-
required: true
|
|
916
|
-
sheetId:
|
|
917
|
-
type: number
|
|
918
|
-
description: "Sheet ID of the tab to rename (from manage_sheets get)"
|
|
919
|
-
required: true
|
|
920
|
-
title:
|
|
921
|
-
type: string
|
|
922
|
-
description: "New title for the tab"
|
|
923
|
-
required: true
|
|
924
|
-
|
|
925
|
-
deleteSheet:
|
|
926
|
-
type: action
|
|
927
|
-
description: "delete a tab (sheet) from the spreadsheet — irreversible"
|
|
928
|
-
resource: spreadsheets.batchUpdate
|
|
929
|
-
params:
|
|
930
|
-
spreadsheetId:
|
|
931
|
-
type: string
|
|
932
|
-
description: "Spreadsheet ID"
|
|
933
|
-
required: true
|
|
934
|
-
sheetId:
|
|
935
|
-
type: number
|
|
936
|
-
description: "Sheet ID of the tab to delete"
|
|
937
|
-
required: true
|
|
938
|
-
|
|
939
|
-
duplicateSheet:
|
|
940
|
-
type: action
|
|
941
|
-
description: "duplicate a tab within the same spreadsheet"
|
|
942
|
-
resource: spreadsheets.batchUpdate
|
|
943
|
-
params:
|
|
944
|
-
spreadsheetId:
|
|
945
|
-
type: string
|
|
946
|
-
description: "Spreadsheet ID"
|
|
947
|
-
required: true
|
|
948
|
-
sheetId:
|
|
949
|
-
type: number
|
|
950
|
-
description: "Source sheet ID (the tab to copy)"
|
|
951
|
-
required: true
|
|
952
|
-
title:
|
|
953
|
-
type: string
|
|
954
|
-
description: "Name for the duplicated sheet (defaults to 'Copy of <source>')"
|
|
955
|
-
index:
|
|
956
|
-
type: number
|
|
957
|
-
description: "Position to insert the duplicate (0-based)"
|
|
958
|
-
|
|
959
|
-
renameSpreadsheet:
|
|
960
|
-
type: action
|
|
961
|
-
description: "rename the spreadsheet (the document title, not a tab)"
|
|
962
|
-
resource: spreadsheets.batchUpdate
|
|
963
|
-
params:
|
|
964
|
-
spreadsheetId:
|
|
965
|
-
type: string
|
|
966
|
-
description: "Spreadsheet ID"
|
|
967
|
-
required: true
|
|
968
|
-
title:
|
|
969
|
-
type: string
|
|
970
|
-
description: "New spreadsheet title"
|
|
971
|
-
required: true
|
|
972
|
-
|
|
973
|
-
copySheetTo:
|
|
974
|
-
type: action
|
|
975
|
-
description: "copy a tab from this spreadsheet into another spreadsheet"
|
|
976
|
-
resource: spreadsheets.sheets.copyTo
|
|
977
|
-
params:
|
|
978
|
-
spreadsheetId:
|
|
979
|
-
type: string
|
|
980
|
-
description: "Source spreadsheet ID"
|
|
981
|
-
required: true
|
|
982
|
-
sheetId:
|
|
983
|
-
type: number
|
|
984
|
-
description: "Source sheet ID (the tab to copy)"
|
|
985
|
-
required: true
|
|
986
|
-
destinationSpreadsheetId:
|
|
987
|
-
type: string
|
|
988
|
-
description: "Destination spreadsheet ID"
|
|
989
|
-
required: true
|
|
990
|
-
|
|
991
|
-
# ========================================================================
|
|
992
|
-
# Docs
|
|
993
|
-
# ========================================================================
|
|
994
|
-
|
|
995
|
-
docs:
|
|
996
|
-
tool_name: manage_docs
|
|
997
|
-
description: "Read, write, insert, and find-replace text in Google Docs documents."
|
|
998
|
-
requires_email: true
|
|
999
|
-
gws_service: docs
|
|
1000
|
-
operations:
|
|
1001
|
-
|
|
1002
|
-
get:
|
|
1003
|
-
type: detail
|
|
1004
|
-
description: "get document content and metadata"
|
|
1005
|
-
resource: documents.get
|
|
1006
|
-
params:
|
|
1007
|
-
documentId:
|
|
1008
|
-
type: string
|
|
1009
|
-
description: "Document ID"
|
|
1010
|
-
required: true
|
|
1011
|
-
|
|
1012
|
-
create:
|
|
1013
|
-
type: action
|
|
1014
|
-
description: "create a new blank document"
|
|
1015
|
-
resource: documents.create
|
|
1016
|
-
|
|
1017
|
-
write:
|
|
1018
|
-
type: action
|
|
1019
|
-
description: "append text to the end of a document"
|
|
1020
|
-
helper: "+write"
|
|
1021
|
-
params:
|
|
1022
|
-
documentId:
|
|
1023
|
-
type: string
|
|
1024
|
-
description: "Document ID"
|
|
1025
|
-
required: true
|
|
1026
|
-
text:
|
|
1027
|
-
type: string
|
|
1028
|
-
description: "Text to append (plain text)"
|
|
1029
|
-
required: true
|
|
1030
|
-
cli_args:
|
|
1031
|
-
documentId: "--document"
|
|
1032
|
-
text: "--text"
|
|
1033
|
-
|
|
1034
|
-
insertText:
|
|
1035
|
-
type: action
|
|
1036
|
-
description: "insert text at a specific position in a document"
|
|
1037
|
-
resource: documents.batchUpdate
|
|
1038
|
-
params:
|
|
1039
|
-
documentId:
|
|
1040
|
-
type: string
|
|
1041
|
-
description: "Document ID"
|
|
1042
|
-
required: true
|
|
1043
|
-
text:
|
|
1044
|
-
type: string
|
|
1045
|
-
description: "Text to insert"
|
|
1046
|
-
required: true
|
|
1047
|
-
index:
|
|
1048
|
-
type: number
|
|
1049
|
-
description: "Character index to insert at (1 = start of document body)"
|
|
1050
|
-
required: true
|
|
1051
|
-
|
|
1052
|
-
replaceText:
|
|
1053
|
-
type: action
|
|
1054
|
-
description: "find and replace text in a document"
|
|
1055
|
-
resource: documents.batchUpdate
|
|
1056
|
-
params:
|
|
1057
|
-
documentId:
|
|
1058
|
-
type: string
|
|
1059
|
-
description: "Document ID"
|
|
1060
|
-
required: true
|
|
1061
|
-
findText:
|
|
1062
|
-
type: string
|
|
1063
|
-
description: "Text to find"
|
|
1064
|
-
required: true
|
|
1065
|
-
replaceWith:
|
|
1066
|
-
type: string
|
|
1067
|
-
description: "Replacement text"
|
|
1068
|
-
required: true
|
|
1069
|
-
matchCase:
|
|
1070
|
-
type: boolean
|
|
1071
|
-
description: "Case-sensitive match (default: true)"
|
|
1072
|
-
default: true
|
|
1073
|
-
|
|
1074
|
-
# ========================================================================
|
|
1075
|
-
# Tasks
|
|
1076
|
-
# ========================================================================
|
|
1077
|
-
|
|
1078
|
-
tasks:
|
|
1079
|
-
tool_name: manage_tasks
|
|
1080
|
-
description: "Manage task lists and tasks in Google Tasks."
|
|
1081
|
-
requires_email: true
|
|
1082
|
-
gws_service: tasks
|
|
1083
|
-
operations:
|
|
1084
|
-
|
|
1085
|
-
# --- Task lists ---
|
|
1086
|
-
|
|
1087
|
-
listTaskLists:
|
|
1088
|
-
type: list
|
|
1089
|
-
description: "list all task lists"
|
|
1090
|
-
resource: tasklists.list
|
|
1091
|
-
|
|
1092
|
-
getTaskList:
|
|
1093
|
-
type: detail
|
|
1094
|
-
description: "get a task list by ID"
|
|
1095
|
-
resource: tasklists.get
|
|
1096
|
-
params:
|
|
1097
|
-
taskListId:
|
|
1098
|
-
type: string
|
|
1099
|
-
description: "Task list ID"
|
|
1100
|
-
required: true
|
|
1101
|
-
maps_to: tasklist
|
|
1102
|
-
|
|
1103
|
-
createTaskList:
|
|
1104
|
-
type: action
|
|
1105
|
-
description: "create a new task list"
|
|
1106
|
-
resource: tasklists.insert
|
|
1107
|
-
|
|
1108
|
-
deleteTaskList:
|
|
1109
|
-
type: action
|
|
1110
|
-
description: "delete a task list and all its tasks"
|
|
1111
|
-
resource: tasklists.delete
|
|
1112
|
-
params:
|
|
1113
|
-
taskListId:
|
|
1114
|
-
type: string
|
|
1115
|
-
description: "Task list ID to delete"
|
|
1116
|
-
required: true
|
|
1117
|
-
maps_to: tasklist
|
|
1118
|
-
|
|
1119
|
-
# --- Tasks ---
|
|
1120
|
-
|
|
1121
|
-
list:
|
|
1122
|
-
type: list
|
|
1123
|
-
description: "list tasks in a task list"
|
|
1124
|
-
resource: tasks.list
|
|
1125
|
-
params:
|
|
1126
|
-
taskListId:
|
|
1127
|
-
type: string
|
|
1128
|
-
description: "Task list ID (use listTaskLists to find)"
|
|
1129
|
-
required: true
|
|
1130
|
-
maps_to: tasklist
|
|
1131
|
-
showCompleted:
|
|
1132
|
-
type: boolean
|
|
1133
|
-
description: "Include completed tasks (default: true)"
|
|
1134
|
-
maxResults:
|
|
1135
|
-
type: number
|
|
1136
|
-
description: "Max tasks to return (default: 20, max: 100)"
|
|
1137
|
-
default: 20
|
|
1138
|
-
max: 100
|
|
1139
|
-
|
|
1140
|
-
get:
|
|
1141
|
-
type: detail
|
|
1142
|
-
description: "get a specific task"
|
|
1143
|
-
resource: tasks.get
|
|
1144
|
-
params:
|
|
1145
|
-
taskListId:
|
|
1146
|
-
type: string
|
|
1147
|
-
description: "Task list ID"
|
|
1148
|
-
required: true
|
|
1149
|
-
maps_to: tasklist
|
|
1150
|
-
taskId:
|
|
1151
|
-
type: string
|
|
1152
|
-
description: "Task ID"
|
|
1153
|
-
required: true
|
|
1154
|
-
maps_to: task
|
|
1155
|
-
|
|
1156
|
-
create:
|
|
1157
|
-
type: action
|
|
1158
|
-
description: "create a new task"
|
|
1159
|
-
resource: tasks.insert
|
|
1160
|
-
params:
|
|
1161
|
-
taskListId:
|
|
1162
|
-
type: string
|
|
1163
|
-
description: "Task list ID"
|
|
1164
|
-
required: true
|
|
1165
|
-
maps_to: tasklist
|
|
1166
|
-
|
|
1167
|
-
update:
|
|
1168
|
-
type: action
|
|
1169
|
-
description: "update a task (patch semantics)"
|
|
1170
|
-
resource: tasks.patch
|
|
1171
|
-
params:
|
|
1172
|
-
taskListId:
|
|
1173
|
-
type: string
|
|
1174
|
-
description: "Task list ID"
|
|
1175
|
-
required: true
|
|
1176
|
-
maps_to: tasklist
|
|
1177
|
-
taskId:
|
|
1178
|
-
type: string
|
|
1179
|
-
description: "Task ID"
|
|
1180
|
-
required: true
|
|
1181
|
-
maps_to: task
|
|
1182
|
-
|
|
1183
|
-
complete:
|
|
1184
|
-
type: action
|
|
1185
|
-
description: "mark a task as completed"
|
|
1186
|
-
resource: tasks.patch
|
|
1187
|
-
params:
|
|
1188
|
-
taskListId:
|
|
1189
|
-
type: string
|
|
1190
|
-
description: "Task list ID"
|
|
1191
|
-
required: true
|
|
1192
|
-
maps_to: tasklist
|
|
1193
|
-
taskId:
|
|
1194
|
-
type: string
|
|
1195
|
-
description: "Task ID"
|
|
1196
|
-
required: true
|
|
1197
|
-
maps_to: task
|
|
1198
|
-
defaults:
|
|
1199
|
-
status: completed
|
|
1200
|
-
|
|
1201
|
-
delete:
|
|
1202
|
-
type: action
|
|
1203
|
-
description: "delete a task"
|
|
1204
|
-
resource: tasks.delete
|
|
1205
|
-
params:
|
|
1206
|
-
taskListId:
|
|
1207
|
-
type: string
|
|
1208
|
-
description: "Task list ID"
|
|
1209
|
-
required: true
|
|
1210
|
-
maps_to: tasklist
|
|
1211
|
-
taskId:
|
|
1212
|
-
type: string
|
|
1213
|
-
description: "Task ID to delete"
|
|
1214
|
-
required: true
|
|
1215
|
-
maps_to: task
|
|
1216
|
-
|
|
1217
|
-
# ========================================================================
|
|
1218
|
-
# Meet
|
|
1219
|
-
# ========================================================================
|
|
1220
|
-
|
|
1221
|
-
meet:
|
|
1222
|
-
tool_name: manage_meet
|
|
1223
|
-
description: "Browse past Google Meet conferences, participants, transcripts, recordings, and AI-generated smart notes. Requires Workspace Business Standard+ for transcripts/recordings."
|
|
1224
|
-
requires_email: true
|
|
1225
|
-
gws_service: meet
|
|
1226
|
-
operations:
|
|
1227
|
-
|
|
1228
|
-
# --- Conference records ---
|
|
1229
|
-
|
|
1230
|
-
listConferences:
|
|
1231
|
-
type: list
|
|
1232
|
-
description: "list recent meeting conferences (default: descending by start time)"
|
|
1233
|
-
resource: conferenceRecords.list
|
|
1234
|
-
params:
|
|
1235
|
-
filter:
|
|
1236
|
-
type: string
|
|
1237
|
-
description: "EBNF filter (e.g. 'space.meeting_code = \"abc-mnop-xyz\"' or 'start_time>=\"2026-01-01T00:00:00Z\"')"
|
|
1238
|
-
maxResults:
|
|
1239
|
-
type: number
|
|
1240
|
-
description: "Max conferences to return (default: 25, max: 100)"
|
|
1241
|
-
default: 25
|
|
1242
|
-
max: 100
|
|
1243
|
-
maps_to: pageSize
|
|
1244
|
-
|
|
1245
|
-
getConference:
|
|
1246
|
-
type: detail
|
|
1247
|
-
description: "get details of a specific conference"
|
|
1248
|
-
resource: conferenceRecords.get
|
|
1249
|
-
params:
|
|
1250
|
-
conferenceId:
|
|
1251
|
-
type: string
|
|
1252
|
-
description: "Conference record ID (from listConferences)"
|
|
1253
|
-
required: true
|
|
1254
|
-
maps_to: name
|
|
1255
|
-
|
|
1256
|
-
# --- Participants ---
|
|
1257
|
-
|
|
1258
|
-
listParticipants:
|
|
1259
|
-
type: list
|
|
1260
|
-
description: "list who attended a conference"
|
|
1261
|
-
resource: conferenceRecords.participants.list
|
|
1262
|
-
params:
|
|
1263
|
-
conferenceId:
|
|
1264
|
-
type: string
|
|
1265
|
-
description: "Conference record ID"
|
|
1266
|
-
required: true
|
|
1267
|
-
maps_to: parent
|
|
1268
|
-
filter:
|
|
1269
|
-
type: string
|
|
1270
|
-
description: "Filter (e.g. 'latest_end_time IS NULL' for active participants)"
|
|
1271
|
-
maxResults:
|
|
1272
|
-
type: number
|
|
1273
|
-
description: "Max participants (default: 100, max: 250)"
|
|
1274
|
-
default: 100
|
|
1275
|
-
max: 250
|
|
1276
|
-
maps_to: pageSize
|
|
1277
|
-
|
|
1278
|
-
# --- Transcripts ---
|
|
1279
|
-
|
|
1280
|
-
listTranscripts:
|
|
1281
|
-
type: list
|
|
1282
|
-
description: "list transcripts for a conference (requires Workspace Business Standard+)"
|
|
1283
|
-
resource: conferenceRecords.transcripts.list
|
|
1284
|
-
params:
|
|
1285
|
-
conferenceId:
|
|
1286
|
-
type: string
|
|
1287
|
-
description: "Conference record ID"
|
|
1288
|
-
required: true
|
|
1289
|
-
maps_to: parent
|
|
1290
|
-
|
|
1291
|
-
getTranscript:
|
|
1292
|
-
type: detail
|
|
1293
|
-
description: "get transcript metadata including Google Docs destination"
|
|
1294
|
-
resource: conferenceRecords.transcripts.get
|
|
1295
|
-
params:
|
|
1296
|
-
transcriptName:
|
|
1297
|
-
type: string
|
|
1298
|
-
description: "Transcript resource name (from listTranscripts)"
|
|
1299
|
-
required: true
|
|
1300
|
-
maps_to: name
|
|
1301
|
-
|
|
1302
|
-
listTranscriptEntries:
|
|
1303
|
-
type: list
|
|
1304
|
-
description: "get structured transcript text — who said what, with timestamps"
|
|
1305
|
-
resource: conferenceRecords.transcripts.entries.list
|
|
1306
|
-
params:
|
|
1307
|
-
transcriptName:
|
|
1308
|
-
type: string
|
|
1309
|
-
description: "Transcript resource name (e.g. conferenceRecords/.../transcripts/...)"
|
|
1310
|
-
required: true
|
|
1311
|
-
maps_to: parent
|
|
1312
|
-
maxResults:
|
|
1313
|
-
type: number
|
|
1314
|
-
description: "Max entries per page (default: 10, max: 100)"
|
|
1315
|
-
default: 100
|
|
1316
|
-
max: 100
|
|
1317
|
-
maps_to: pageSize
|
|
1318
|
-
|
|
1319
|
-
# --- Recordings ---
|
|
1320
|
-
|
|
1321
|
-
listRecordings:
|
|
1322
|
-
type: list
|
|
1323
|
-
description: "list recordings for a conference (saved as MP4 in Drive)"
|
|
1324
|
-
resource: conferenceRecords.recordings.list
|
|
1325
|
-
params:
|
|
1326
|
-
conferenceId:
|
|
1327
|
-
type: string
|
|
1328
|
-
description: "Conference record ID"
|
|
1329
|
-
required: true
|
|
1330
|
-
maps_to: parent
|
|
1331
|
-
|
|
1332
|
-
getRecording:
|
|
1333
|
-
type: detail
|
|
1334
|
-
description: "get recording metadata including Drive file ID and playback link"
|
|
1335
|
-
resource: conferenceRecords.recordings.get
|
|
1336
|
-
params:
|
|
1337
|
-
recordingName:
|
|
1338
|
-
type: string
|
|
1339
|
-
description: "Recording resource name (from listRecordings)"
|
|
1340
|
-
required: true
|
|
1341
|
-
maps_to: name
|
|
1342
|
-
|
|
1343
|
-
# --- Composite operations ---
|
|
1344
|
-
|
|
1345
|
-
getFullTranscript:
|
|
1346
|
-
type: detail
|
|
1347
|
-
description: "get the full who-said-what transcript for a conference (chains transcripts + entries + participant names automatically). Use pageToken to continue reading."
|
|
1348
|
-
resource: conferenceRecords.transcripts.list
|
|
1349
|
-
params:
|
|
1350
|
-
conferenceId:
|
|
1351
|
-
type: string
|
|
1352
|
-
description: "Conference record ID (from listConferences)"
|
|
1353
|
-
required: true
|
|
1354
|
-
pageToken:
|
|
1355
|
-
type: string
|
|
1356
|
-
description: "Page token from a previous getFullTranscript call to continue reading"
|
|
1357
|
-
|
|
1358
|
-
# --- Smart Notes (Gemini) ---
|
|
1359
|
-
|
|
1360
|
-
listSmartNotes:
|
|
1361
|
-
type: list
|
|
1362
|
-
description: "list Gemini-generated smart notes for a conference"
|
|
1363
|
-
resource: conferenceRecords.smartNotes.list
|
|
1364
|
-
params:
|
|
1365
|
-
conferenceId:
|
|
1366
|
-
type: string
|
|
1367
|
-
description: "Conference record ID"
|
|
1368
|
-
required: true
|
|
1369
|
-
maps_to: parent
|
|
1370
|
-
|
|
1371
|
-
getSmartNote:
|
|
1372
|
-
type: detail
|
|
1373
|
-
description: "get smart note metadata including Google Docs destination"
|
|
1374
|
-
resource: conferenceRecords.smartNotes.get
|
|
1375
|
-
params:
|
|
1376
|
-
smartNoteName:
|
|
1377
|
-
type: string
|
|
1378
|
-
description: "Smart note resource name (from listSmartNotes)"
|
|
1379
|
-
required: true
|
|
1380
|
-
maps_to: name
|
|
1381
|
-
|
|
1382
|
-
# People (contacts) excluded pending gws auth scope support for contacts.readonly.
|
|
1383
|
-
# See https://github.com/googleworkspace/cli/issues/556
|