@apteva/integrations 0.3.48 → 0.3.60

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.
@@ -2,7 +2,7 @@
2
2
  "slug": "google-docs",
3
3
  "name": "Google Docs",
4
4
  "description": "MCP server for Google Docs - documents, formatting, collaboration",
5
- "logo": "https://www.google.com/s2/favicons?domain=docs.google.com&sz=128",
5
+ "logo": "https://upload.wikimedia.org/wikipedia/commons/0/01/Google_Docs_logo_%282014-2020%29.svg",
6
6
  "categories": [
7
7
  "documents",
8
8
  "writing",
@@ -53,16 +53,40 @@
53
53
  }
54
54
  },
55
55
  "tools": [
56
+ {
57
+ "name": "get_document",
58
+ "description": "Get the full content and metadata of a Google Doc by its document ID. Returns the document title, body content, headers, footers, footnotes, and all structural elements.",
59
+ "method": "GET",
60
+ "path": "/documents/{documentId}",
61
+ "input_schema": {
62
+ "type": "object",
63
+ "properties": {
64
+ "documentId": {
65
+ "type": "string",
66
+ "description": "The ID of the document to retrieve"
67
+ },
68
+ "includeTabsContent": {
69
+ "type": "boolean",
70
+ "description": "Whether to include content from all tabs. Default false returns only the first tab.",
71
+ "default": false
72
+ }
73
+ },
74
+ "required": [
75
+ "documentId"
76
+ ]
77
+ }
78
+ },
56
79
  {
57
80
  "name": "create_document",
58
- "description": "Create a new document",
81
+ "description": "Create a new blank Google Doc with a title",
59
82
  "method": "POST",
60
- "path": "/create-document",
83
+ "path": "/documents",
61
84
  "input_schema": {
62
85
  "type": "object",
63
86
  "properties": {
64
87
  "title": {
65
- "type": "string"
88
+ "type": "string",
89
+ "description": "The title of the new document"
66
90
  }
67
91
  },
68
92
  "required": [
@@ -71,83 +95,116 @@
71
95
  }
72
96
  },
73
97
  {
74
- "name": "copy_document",
75
- "description": "Copy an existing document",
76
- "method": "GET",
77
- "path": "/copy-document",
98
+ "name": "insert_text",
99
+ "description": "Insert text at a specific position in a document. Use index 1 to insert at the beginning of the document body.",
100
+ "method": "POST",
101
+ "path": "/documents/{documentId}:batchUpdate",
78
102
  "input_schema": {
79
103
  "type": "object",
80
104
  "properties": {
81
- "document_id": {
82
- "type": "string"
105
+ "documentId": {
106
+ "type": "string",
107
+ "description": "The ID of the document"
83
108
  },
84
- "title": {
85
- "type": "string"
109
+ "text": {
110
+ "type": "string",
111
+ "description": "The text to insert"
112
+ },
113
+ "index": {
114
+ "type": "integer",
115
+ "description": "The zero-based index in the document body to insert at. Use 1 for the start of the body."
116
+ },
117
+ "segment_id": {
118
+ "type": "string",
119
+ "description": "Optional segment ID (header, footer, or footnote ID). Omit for the main document body."
86
120
  }
87
121
  },
88
122
  "required": [
89
- "document_id"
123
+ "documentId",
124
+ "text",
125
+ "index"
90
126
  ]
91
127
  }
92
128
  },
93
129
  {
94
- "name": "delete_document",
95
- "description": "Delete a document",
96
- "method": "DELETE",
97
- "path": "/delete-document",
130
+ "name": "append_text",
131
+ "description": "Append text to the end of a document",
132
+ "method": "POST",
133
+ "path": "/documents/{documentId}:batchUpdate",
98
134
  "input_schema": {
99
135
  "type": "object",
100
136
  "properties": {
101
- "document_id": {
102
- "type": "string"
137
+ "documentId": {
138
+ "type": "string",
139
+ "description": "The ID of the document"
140
+ },
141
+ "text": {
142
+ "type": "string",
143
+ "description": "The text to append"
103
144
  }
104
145
  },
105
146
  "required": [
106
- "document_id"
147
+ "documentId",
148
+ "text"
107
149
  ]
108
150
  }
109
151
  },
110
152
  {
111
- "name": "append_text",
112
- "description": "Append text to a document",
113
- "method": "GET",
114
- "path": "/append-text",
153
+ "name": "replace_text",
154
+ "description": "Find and replace all occurrences of a text string in the document",
155
+ "method": "POST",
156
+ "path": "/documents/{documentId}:batchUpdate",
115
157
  "input_schema": {
116
158
  "type": "object",
117
159
  "properties": {
118
- "document_id": {
119
- "type": "string"
160
+ "documentId": {
161
+ "type": "string",
162
+ "description": "The ID of the document"
120
163
  },
121
- "text": {
122
- "type": "string"
164
+ "find": {
165
+ "type": "string",
166
+ "description": "The text to search for"
167
+ },
168
+ "replace": {
169
+ "type": "string",
170
+ "description": "The text to replace with"
171
+ },
172
+ "match_case": {
173
+ "type": "boolean",
174
+ "description": "Whether the search should be case-sensitive",
175
+ "default": true
123
176
  }
124
177
  },
125
178
  "required": [
126
- "document_id",
127
- "text"
179
+ "documentId",
180
+ "find",
181
+ "replace"
128
182
  ]
129
183
  }
130
184
  },
131
185
  {
132
186
  "name": "delete_text",
133
- "description": "Delete text from a document",
134
- "method": "DELETE",
135
- "path": "/delete-text",
187
+ "description": "Delete text from a document by specifying a start and end index range",
188
+ "method": "POST",
189
+ "path": "/documents/{documentId}:batchUpdate",
136
190
  "input_schema": {
137
191
  "type": "object",
138
192
  "properties": {
139
- "document_id": {
140
- "type": "string"
193
+ "documentId": {
194
+ "type": "string",
195
+ "description": "The ID of the document"
141
196
  },
142
197
  "start_index": {
143
- "type": "number"
198
+ "type": "integer",
199
+ "description": "The start index of the range to delete"
144
200
  },
145
201
  "end_index": {
146
- "type": "number"
202
+ "type": "integer",
203
+ "description": "The end index of the range to delete (exclusive)"
147
204
  }
148
205
  },
149
206
  "required": [
150
- "document_id",
207
+ "documentId",
151
208
  "start_index",
152
209
  "end_index"
153
210
  ]
@@ -155,27 +212,31 @@
155
212
  },
156
213
  {
157
214
  "name": "format_text",
158
- "description": "Format text in a document",
159
- "method": "GET",
160
- "path": "/format-text",
215
+ "description": "Apply text styling (bold, italic, underline, font size, color, etc.) to a range of text in a document",
216
+ "method": "POST",
217
+ "path": "/documents/{documentId}:batchUpdate",
161
218
  "input_schema": {
162
219
  "type": "object",
163
220
  "properties": {
164
- "document_id": {
165
- "type": "string"
221
+ "documentId": {
222
+ "type": "string",
223
+ "description": "The ID of the document"
166
224
  },
167
225
  "start_index": {
168
- "type": "number"
226
+ "type": "integer",
227
+ "description": "The start index of the text range"
169
228
  },
170
229
  "end_index": {
171
- "type": "number"
230
+ "type": "integer",
231
+ "description": "The end index of the text range (exclusive)"
172
232
  },
173
233
  "style": {
174
- "type": "object"
234
+ "type": "object",
235
+ "description": "Text style properties: bold, italic, underline, strikethrough, fontSize (object with magnitude/unit), foregroundColor (object with color.rgbColor), link (object with url), fontFamily, baselineOffset (SUPERSCRIPT, SUBSCRIPT, NONE)"
175
236
  }
176
237
  },
177
238
  "required": [
178
- "document_id",
239
+ "documentId",
179
240
  "start_index",
180
241
  "end_index",
181
242
  "style"
@@ -184,99 +245,342 @@
184
245
  },
185
246
  {
186
247
  "name": "format_paragraph",
187
- "description": "Format paragraphs",
188
- "method": "GET",
189
- "path": "/format-paragraph",
248
+ "description": "Apply paragraph styling (alignment, heading style, spacing, indentation) to a range in a document",
249
+ "method": "POST",
250
+ "path": "/documents/{documentId}:batchUpdate",
190
251
  "input_schema": {
191
252
  "type": "object",
192
253
  "properties": {
193
- "document_id": {
194
- "type": "string"
254
+ "documentId": {
255
+ "type": "string",
256
+ "description": "The ID of the document"
195
257
  },
196
258
  "start_index": {
197
- "type": "number"
259
+ "type": "integer",
260
+ "description": "The start index of the paragraph range"
198
261
  },
199
262
  "end_index": {
200
- "type": "number"
263
+ "type": "integer",
264
+ "description": "The end index of the paragraph range (exclusive)"
201
265
  },
202
266
  "style": {
203
- "type": "object"
267
+ "type": "object",
268
+ "description": "Paragraph style: namedStyleType (HEADING_1 through HEADING_6, TITLE, SUBTITLE, NORMAL_TEXT), alignment (START, CENTER, END, JUSTIFIED), lineSpacing, spaceAbove/spaceBelow (magnitude/unit), indentFirstLine, indentStart, indentEnd, direction (LEFT_TO_RIGHT, RIGHT_TO_LEFT)"
204
269
  }
205
270
  },
206
271
  "required": [
207
- "document_id",
272
+ "documentId",
208
273
  "start_index",
209
274
  "end_index",
210
275
  "style"
211
276
  ]
212
277
  }
213
278
  },
279
+ {
280
+ "name": "insert_table",
281
+ "description": "Insert a table at a specific position in the document",
282
+ "method": "POST",
283
+ "path": "/documents/{documentId}:batchUpdate",
284
+ "input_schema": {
285
+ "type": "object",
286
+ "properties": {
287
+ "documentId": {
288
+ "type": "string",
289
+ "description": "The ID of the document"
290
+ },
291
+ "rows": {
292
+ "type": "integer",
293
+ "description": "Number of rows in the table"
294
+ },
295
+ "columns": {
296
+ "type": "integer",
297
+ "description": "Number of columns in the table"
298
+ },
299
+ "index": {
300
+ "type": "integer",
301
+ "description": "The index in the document body to insert the table at"
302
+ }
303
+ },
304
+ "required": [
305
+ "documentId",
306
+ "rows",
307
+ "columns",
308
+ "index"
309
+ ]
310
+ }
311
+ },
312
+ {
313
+ "name": "insert_image",
314
+ "description": "Insert an inline image into the document from a URL",
315
+ "method": "POST",
316
+ "path": "/documents/{documentId}:batchUpdate",
317
+ "input_schema": {
318
+ "type": "object",
319
+ "properties": {
320
+ "documentId": {
321
+ "type": "string",
322
+ "description": "The ID of the document"
323
+ },
324
+ "uri": {
325
+ "type": "string",
326
+ "description": "The URL of the image to insert. Must be publicly accessible."
327
+ },
328
+ "index": {
329
+ "type": "integer",
330
+ "description": "The index in the document body to insert the image at"
331
+ },
332
+ "width": {
333
+ "type": "number",
334
+ "description": "Optional width in points (1 inch = 72 points)"
335
+ },
336
+ "height": {
337
+ "type": "number",
338
+ "description": "Optional height in points (1 inch = 72 points)"
339
+ }
340
+ },
341
+ "required": [
342
+ "documentId",
343
+ "uri",
344
+ "index"
345
+ ]
346
+ }
347
+ },
348
+ {
349
+ "name": "insert_page_break",
350
+ "description": "Insert a page break at a specific position in the document",
351
+ "method": "POST",
352
+ "path": "/documents/{documentId}:batchUpdate",
353
+ "input_schema": {
354
+ "type": "object",
355
+ "properties": {
356
+ "documentId": {
357
+ "type": "string",
358
+ "description": "The ID of the document"
359
+ },
360
+ "index": {
361
+ "type": "integer",
362
+ "description": "The index in the document body to insert the page break at"
363
+ }
364
+ },
365
+ "required": [
366
+ "documentId",
367
+ "index"
368
+ ]
369
+ }
370
+ },
214
371
  {
215
372
  "name": "create_list",
216
- "description": "Create a list in document",
373
+ "description": "Create a bulleted or numbered list from paragraphs in a document",
217
374
  "method": "POST",
218
- "path": "/create-list",
375
+ "path": "/documents/{documentId}:batchUpdate",
219
376
  "input_schema": {
220
377
  "type": "object",
221
378
  "properties": {
222
- "document_id": {
223
- "type": "string"
379
+ "documentId": {
380
+ "type": "string",
381
+ "description": "The ID of the document"
224
382
  },
225
- "items": {
226
- "type": "array"
383
+ "start_index": {
384
+ "type": "integer",
385
+ "description": "The start index of the paragraph range to convert to a list"
386
+ },
387
+ "end_index": {
388
+ "type": "integer",
389
+ "description": "The end index of the paragraph range to convert to a list"
227
390
  },
228
- "ordered": {
229
- "type": "boolean"
391
+ "bullet_preset": {
392
+ "type": "string",
393
+ "description": "The bullet/numbering style",
394
+ "enum": [
395
+ "BULLET_DISC_CIRCLE_SQUARE",
396
+ "BULLET_DIAMONDX_ARROW3D_SQUARE",
397
+ "BULLET_CHECKBOX",
398
+ "BULLET_ARROW_DIAMOND_DISC",
399
+ "BULLET_STAR_CIRCLE_SQUARE",
400
+ "BULLET_ARROW3D_CIRCLE_SQUARE",
401
+ "BULLET_LEFTTRIANGLE_DIAMOND_DISC",
402
+ "NUMBERED_DECIMAL_ALPHA_ROMAN",
403
+ "NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS",
404
+ "NUMBERED_DECIMAL_NESTED",
405
+ "NUMBERED_UPPERALPHA_ALPHA_ROMAN",
406
+ "NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL",
407
+ "NUMBERED_ZERODECIMAL_ALPHA_ROMAN"
408
+ ],
409
+ "default": "BULLET_DISC_CIRCLE_SQUARE"
230
410
  }
231
411
  },
232
412
  "required": [
233
- "document_id",
234
- "items"
413
+ "documentId",
414
+ "start_index",
415
+ "end_index"
416
+ ]
417
+ }
418
+ },
419
+ {
420
+ "name": "remove_list",
421
+ "description": "Remove bullet/numbering from paragraphs, converting them back to normal text",
422
+ "method": "POST",
423
+ "path": "/documents/{documentId}:batchUpdate",
424
+ "input_schema": {
425
+ "type": "object",
426
+ "properties": {
427
+ "documentId": {
428
+ "type": "string",
429
+ "description": "The ID of the document"
430
+ },
431
+ "start_index": {
432
+ "type": "integer",
433
+ "description": "The start index of the paragraph range"
434
+ },
435
+ "end_index": {
436
+ "type": "integer",
437
+ "description": "The end index of the paragraph range"
438
+ }
439
+ },
440
+ "required": [
441
+ "documentId",
442
+ "start_index",
443
+ "end_index"
235
444
  ]
236
445
  }
237
446
  },
238
447
  {
239
448
  "name": "add_header_footer",
240
- "description": "Add header or footer",
241
- "method": "GET",
242
- "path": "/add-header-footer",
449
+ "description": "Add a header or footer to the document",
450
+ "method": "POST",
451
+ "path": "/documents/{documentId}:batchUpdate",
243
452
  "input_schema": {
244
453
  "type": "object",
245
454
  "properties": {
246
- "document_id": {
247
- "type": "string"
455
+ "documentId": {
456
+ "type": "string",
457
+ "description": "The ID of the document"
248
458
  },
249
459
  "type": {
250
460
  "type": "string",
251
461
  "enum": [
252
462
  "header",
253
463
  "footer"
254
- ]
464
+ ],
465
+ "description": "Whether to add a header or footer"
255
466
  },
256
467
  "content": {
257
- "type": "string"
468
+ "type": "string",
469
+ "description": "The text content for the header or footer"
258
470
  }
259
471
  },
260
472
  "required": [
261
- "document_id",
473
+ "documentId",
262
474
  "type",
263
475
  "content"
264
476
  ]
265
477
  }
266
478
  },
479
+ {
480
+ "name": "delete_header_footer",
481
+ "description": "Remove a header or footer from the document",
482
+ "method": "POST",
483
+ "path": "/documents/{documentId}:batchUpdate",
484
+ "input_schema": {
485
+ "type": "object",
486
+ "properties": {
487
+ "documentId": {
488
+ "type": "string",
489
+ "description": "The ID of the document"
490
+ },
491
+ "header_id": {
492
+ "type": "string",
493
+ "description": "The ID of the header to delete (from get_document response). Provide either header_id or footer_id."
494
+ },
495
+ "footer_id": {
496
+ "type": "string",
497
+ "description": "The ID of the footer to delete (from get_document response). Provide either header_id or footer_id."
498
+ }
499
+ },
500
+ "required": [
501
+ "documentId"
502
+ ]
503
+ }
504
+ },
505
+ {
506
+ "name": "create_named_range",
507
+ "description": "Create a named range in the document for programmatic content anchoring and template placeholders",
508
+ "method": "POST",
509
+ "path": "/documents/{documentId}:batchUpdate",
510
+ "input_schema": {
511
+ "type": "object",
512
+ "properties": {
513
+ "documentId": {
514
+ "type": "string",
515
+ "description": "The ID of the document"
516
+ },
517
+ "name": {
518
+ "type": "string",
519
+ "description": "The name of the range (e.g. 'customer_name', 'address_block')"
520
+ },
521
+ "start_index": {
522
+ "type": "integer",
523
+ "description": "The start index of the range"
524
+ },
525
+ "end_index": {
526
+ "type": "integer",
527
+ "description": "The end index of the range"
528
+ }
529
+ },
530
+ "required": [
531
+ "documentId",
532
+ "name",
533
+ "start_index",
534
+ "end_index"
535
+ ]
536
+ }
537
+ },
538
+ {
539
+ "name": "replace_named_range",
540
+ "description": "Replace the content of a named range. Useful for filling in templates with dynamic data.",
541
+ "method": "POST",
542
+ "path": "/documents/{documentId}:batchUpdate",
543
+ "input_schema": {
544
+ "type": "object",
545
+ "properties": {
546
+ "documentId": {
547
+ "type": "string",
548
+ "description": "The ID of the document"
549
+ },
550
+ "named_range_id": {
551
+ "type": "string",
552
+ "description": "The ID of the named range to replace. Use either named_range_id or name."
553
+ },
554
+ "name": {
555
+ "type": "string",
556
+ "description": "The name of the named range to replace. Use either named_range_id or name."
557
+ },
558
+ "text": {
559
+ "type": "string",
560
+ "description": "The replacement text"
561
+ }
562
+ },
563
+ "required": [
564
+ "documentId",
565
+ "text"
566
+ ]
567
+ }
568
+ },
267
569
  {
268
570
  "name": "export_document",
269
- "description": "Export document to different format",
571
+ "description": "Export a Google Doc to a different format (PDF, DOCX, TXT, HTML). Uses the Drive API export endpoint.",
270
572
  "method": "GET",
271
573
  "path": "/export-document",
272
574
  "input_schema": {
273
575
  "type": "object",
274
576
  "properties": {
275
- "document_id": {
276
- "type": "string"
577
+ "documentId": {
578
+ "type": "string",
579
+ "description": "The ID of the document to export"
277
580
  },
278
581
  "format": {
279
582
  "type": "string",
583
+ "description": "The export format",
280
584
  "enum": [
281
585
  "pdf",
282
586
  "docx",
@@ -286,7 +590,7 @@
286
590
  }
287
591
  },
288
592
  "required": [
289
- "document_id",
593
+ "documentId",
290
594
  "format"
291
595
  ]
292
596
  }