mcp-google-multi 5.3.0 → 5.4.0-beta.1
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 +1 -1
- package/dist/accounts.js +3 -8
- package/dist/auth.d.ts +1 -4
- package/dist/auth.js +16 -25
- package/dist/client.d.ts +2 -1
- package/dist/client.js +2 -2
- package/dist/executor.js +1 -5
- package/dist/services.js +2 -4
- package/dist/token-store.js +3 -8
- package/dist/tools/admin.d.ts +0 -6
- package/dist/tools/admin.js +8 -13
- package/dist/tools/calendar.js +12 -12
- package/dist/tools/chat.js +5 -5
- package/dist/tools/contacts.js +10 -10
- package/dist/tools/docs.js +28 -28
- package/dist/tools/drive.js +39 -41
- package/dist/tools/forms.js +8 -8
- package/dist/tools/gmail-mime.d.ts +7 -27
- package/dist/tools/gmail-mime.js +10 -36
- package/dist/tools/gmail.js +22 -22
- package/dist/tools/meet.js +6 -6
- package/dist/tools/searchconsole.js +12 -11
- package/dist/tools/sheets.js +30 -30
- package/dist/tools/slides.js +6 -6
- package/dist/tools/tasks.js +13 -13
- package/package.json +16 -4
package/dist/tools/sheets.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { coerceArray, coerceBoolean, coerceJson } from './_coerce.js';
|
|
3
|
-
import {
|
|
3
|
+
import { sheets as sheetsClient } from '@googleapis/sheets';
|
|
4
4
|
import { ACCOUNTS } from '../accounts.js';
|
|
5
5
|
import { getClient } from '../client.js';
|
|
6
6
|
import { handleGoogleApiError } from './_errors.js';
|
|
@@ -17,7 +17,7 @@ export function registerSheetsTools(server) {
|
|
|
17
17
|
}, async ({ account, title, sheetTitles }) => {
|
|
18
18
|
try {
|
|
19
19
|
const auth = await getClient(account);
|
|
20
|
-
const sheets =
|
|
20
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
21
21
|
const requestBody = {
|
|
22
22
|
properties: { title },
|
|
23
23
|
};
|
|
@@ -49,7 +49,7 @@ export function registerSheetsTools(server) {
|
|
|
49
49
|
}, async ({ account, spreadsheetId }) => {
|
|
50
50
|
try {
|
|
51
51
|
const auth = await getClient(account);
|
|
52
|
-
const sheets =
|
|
52
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
53
53
|
const res = await sheets.spreadsheets.get({
|
|
54
54
|
spreadsheetId,
|
|
55
55
|
fields: 'spreadsheetId,properties,sheets.properties,namedRanges,spreadsheetUrl',
|
|
@@ -86,7 +86,7 @@ export function registerSheetsTools(server) {
|
|
|
86
86
|
}, async ({ account, spreadsheetId, range, valueRenderOption }) => {
|
|
87
87
|
try {
|
|
88
88
|
const auth = await getClient(account);
|
|
89
|
-
const sheets =
|
|
89
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
90
90
|
const res = await sheets.spreadsheets.values.get({
|
|
91
91
|
spreadsheetId,
|
|
92
92
|
range,
|
|
@@ -116,7 +116,7 @@ export function registerSheetsTools(server) {
|
|
|
116
116
|
}, async ({ account, spreadsheetId, range, values, valueInputOption }) => {
|
|
117
117
|
try {
|
|
118
118
|
const auth = await getClient(account);
|
|
119
|
-
const sheets =
|
|
119
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
120
120
|
const res = await sheets.spreadsheets.values.update({
|
|
121
121
|
spreadsheetId,
|
|
122
122
|
range,
|
|
@@ -149,7 +149,7 @@ export function registerSheetsTools(server) {
|
|
|
149
149
|
}, async ({ account, spreadsheetId, range, values, valueInputOption }) => {
|
|
150
150
|
try {
|
|
151
151
|
const auth = await getClient(account);
|
|
152
|
-
const sheets =
|
|
152
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
153
153
|
const res = await sheets.spreadsheets.values.append({
|
|
154
154
|
spreadsheetId,
|
|
155
155
|
range,
|
|
@@ -180,7 +180,7 @@ export function registerSheetsTools(server) {
|
|
|
180
180
|
}, async ({ account, spreadsheetId, range }) => {
|
|
181
181
|
try {
|
|
182
182
|
const auth = await getClient(account);
|
|
183
|
-
const sheets =
|
|
183
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
184
184
|
const res = await sheets.spreadsheets.values.clear({
|
|
185
185
|
spreadsheetId,
|
|
186
186
|
range,
|
|
@@ -209,7 +209,7 @@ export function registerSheetsTools(server) {
|
|
|
209
209
|
}, async ({ account, spreadsheetId, ranges, valueRenderOption }) => {
|
|
210
210
|
try {
|
|
211
211
|
const auth = await getClient(account);
|
|
212
|
-
const sheets =
|
|
212
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
213
213
|
const res = await sheets.spreadsheets.values.batchGet({
|
|
214
214
|
spreadsheetId,
|
|
215
215
|
ranges,
|
|
@@ -242,7 +242,7 @@ export function registerSheetsTools(server) {
|
|
|
242
242
|
}, async ({ account, spreadsheetId, data, valueInputOption }) => {
|
|
243
243
|
try {
|
|
244
244
|
const auth = await getClient(account);
|
|
245
|
-
const sheets =
|
|
245
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
246
246
|
const res = await sheets.spreadsheets.values.batchUpdate({
|
|
247
247
|
spreadsheetId,
|
|
248
248
|
requestBody: {
|
|
@@ -278,7 +278,7 @@ export function registerSheetsTools(server) {
|
|
|
278
278
|
}, async ({ account, spreadsheetId, title, rowCount, columnCount }) => {
|
|
279
279
|
try {
|
|
280
280
|
const auth = await getClient(account);
|
|
281
|
-
const sheets =
|
|
281
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
282
282
|
const res = await sheets.spreadsheets.batchUpdate({
|
|
283
283
|
spreadsheetId,
|
|
284
284
|
requestBody: {
|
|
@@ -319,7 +319,7 @@ export function registerSheetsTools(server) {
|
|
|
319
319
|
}, async ({ account, spreadsheetId, sheetId }) => {
|
|
320
320
|
try {
|
|
321
321
|
const auth = await getClient(account);
|
|
322
|
-
const sheets =
|
|
322
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
323
323
|
await sheets.spreadsheets.batchUpdate({
|
|
324
324
|
spreadsheetId,
|
|
325
325
|
requestBody: { requests: [{ deleteSheet: { sheetId } }] },
|
|
@@ -344,7 +344,7 @@ export function registerSheetsTools(server) {
|
|
|
344
344
|
}, async ({ account, spreadsheetId, sourceSheetId, newSheetName, insertSheetIndex }) => {
|
|
345
345
|
try {
|
|
346
346
|
const auth = await getClient(account);
|
|
347
|
-
const sheets =
|
|
347
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
348
348
|
const res = await sheets.spreadsheets.batchUpdate({
|
|
349
349
|
spreadsheetId,
|
|
350
350
|
requestBody: {
|
|
@@ -384,7 +384,7 @@ export function registerSheetsTools(server) {
|
|
|
384
384
|
}, async ({ account, spreadsheetId, sheetId, title, index, hidden, tabColor, frozenRowCount, frozenColumnCount, rowCount, columnCount }) => {
|
|
385
385
|
try {
|
|
386
386
|
const auth = await getClient(account);
|
|
387
|
-
const sheets =
|
|
387
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
388
388
|
const properties = { sheetId };
|
|
389
389
|
const fields = [];
|
|
390
390
|
if (title !== undefined) {
|
|
@@ -479,7 +479,7 @@ export function registerSheetsTools(server) {
|
|
|
479
479
|
}, async ({ account, spreadsheetId, range, ...format }) => {
|
|
480
480
|
try {
|
|
481
481
|
const auth = await getClient(account);
|
|
482
|
-
const sheets =
|
|
482
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
483
483
|
const built = buildCellFormat(format);
|
|
484
484
|
if (built.fields.length === 0) {
|
|
485
485
|
return {
|
|
@@ -523,7 +523,7 @@ export function registerSheetsTools(server) {
|
|
|
523
523
|
}, async ({ account, spreadsheetId, range, top, bottom, left, right, innerHorizontal, innerVertical }) => {
|
|
524
524
|
try {
|
|
525
525
|
const auth = await getClient(account);
|
|
526
|
-
const sheets =
|
|
526
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
527
527
|
const borders = { range };
|
|
528
528
|
if (top)
|
|
529
529
|
borders.top = toBorder(top);
|
|
@@ -566,7 +566,7 @@ export function registerSheetsTools(server) {
|
|
|
566
566
|
}, async ({ account, spreadsheetId, range, mergeType }) => {
|
|
567
567
|
try {
|
|
568
568
|
const auth = await getClient(account);
|
|
569
|
-
const sheets =
|
|
569
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
570
570
|
await sheets.spreadsheets.batchUpdate({
|
|
571
571
|
spreadsheetId,
|
|
572
572
|
requestBody: {
|
|
@@ -591,7 +591,7 @@ export function registerSheetsTools(server) {
|
|
|
591
591
|
}, async ({ account, spreadsheetId, range }) => {
|
|
592
592
|
try {
|
|
593
593
|
const auth = await getClient(account);
|
|
594
|
-
const sheets =
|
|
594
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
595
595
|
await sheets.spreadsheets.batchUpdate({
|
|
596
596
|
spreadsheetId,
|
|
597
597
|
requestBody: { requests: [{ unmergeCells: { range } }] },
|
|
@@ -641,7 +641,7 @@ export function registerSheetsTools(server) {
|
|
|
641
641
|
};
|
|
642
642
|
}
|
|
643
643
|
const auth = await getClient(account);
|
|
644
|
-
const sheets =
|
|
644
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
645
645
|
const rule = { ranges };
|
|
646
646
|
if (booleanRule) {
|
|
647
647
|
const fmt = {};
|
|
@@ -705,7 +705,7 @@ export function registerSheetsTools(server) {
|
|
|
705
705
|
}, async ({ account, spreadsheetId, range, sortSpecs }) => {
|
|
706
706
|
try {
|
|
707
707
|
const auth = await getClient(account);
|
|
708
|
-
const sheets =
|
|
708
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
709
709
|
await sheets.spreadsheets.batchUpdate({
|
|
710
710
|
spreadsheetId,
|
|
711
711
|
requestBody: {
|
|
@@ -737,7 +737,7 @@ export function registerSheetsTools(server) {
|
|
|
737
737
|
}, async ({ account, spreadsheetId, range, sortSpecs, filterSpecs }) => {
|
|
738
738
|
try {
|
|
739
739
|
const auth = await getClient(account);
|
|
740
|
-
const sheets =
|
|
740
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
741
741
|
const filter = { range };
|
|
742
742
|
if (sortSpecs)
|
|
743
743
|
filter.sortSpecs = sortSpecs;
|
|
@@ -779,7 +779,7 @@ export function registerSheetsTools(server) {
|
|
|
779
779
|
}, async ({ account, spreadsheetId, sheetId }) => {
|
|
780
780
|
try {
|
|
781
781
|
const auth = await getClient(account);
|
|
782
|
-
const sheets =
|
|
782
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
783
783
|
await sheets.spreadsheets.batchUpdate({
|
|
784
784
|
spreadsheetId,
|
|
785
785
|
requestBody: { requests: [{ clearBasicFilter: { sheetId } }] },
|
|
@@ -810,7 +810,7 @@ export function registerSheetsTools(server) {
|
|
|
810
810
|
}, async ({ account, spreadsheetId, find, replacement, scope, sheetId, range, matchCase, matchEntireCell, searchByRegex, includeFormulas }) => {
|
|
811
811
|
try {
|
|
812
812
|
const auth = await getClient(account);
|
|
813
|
-
const sheets =
|
|
813
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
814
814
|
const findReplace = {
|
|
815
815
|
find,
|
|
816
816
|
replacement,
|
|
@@ -866,7 +866,7 @@ export function registerSheetsTools(server) {
|
|
|
866
866
|
}, async ({ account, spreadsheetId, sheetId, dimension, startIndex, endIndex }) => {
|
|
867
867
|
try {
|
|
868
868
|
const auth = await getClient(account);
|
|
869
|
-
const sheets =
|
|
869
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
870
870
|
const dimensions = { sheetId, dimension };
|
|
871
871
|
if (startIndex !== undefined)
|
|
872
872
|
dimensions.startIndex = startIndex;
|
|
@@ -898,7 +898,7 @@ export function registerSheetsTools(server) {
|
|
|
898
898
|
}, async ({ account, spreadsheetId, sheetId, dimension, startIndex, endIndex, inheritFromBefore }) => {
|
|
899
899
|
try {
|
|
900
900
|
const auth = await getClient(account);
|
|
901
|
-
const sheets =
|
|
901
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
902
902
|
await sheets.spreadsheets.batchUpdate({
|
|
903
903
|
spreadsheetId,
|
|
904
904
|
requestBody: {
|
|
@@ -931,7 +931,7 @@ export function registerSheetsTools(server) {
|
|
|
931
931
|
}, async ({ account, spreadsheetId, sheetId, dimension, startIndex, endIndex }) => {
|
|
932
932
|
try {
|
|
933
933
|
const auth = await getClient(account);
|
|
934
|
-
const sheets =
|
|
934
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
935
935
|
await sheets.spreadsheets.batchUpdate({
|
|
936
936
|
spreadsheetId,
|
|
937
937
|
requestBody: {
|
|
@@ -966,7 +966,7 @@ export function registerSheetsTools(server) {
|
|
|
966
966
|
}, async ({ account, spreadsheetId, range, conditionType, conditionValues, inputMessage, strict, showCustomUi }) => {
|
|
967
967
|
try {
|
|
968
968
|
const auth = await getClient(account);
|
|
969
|
-
const sheets =
|
|
969
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
970
970
|
const rule = {
|
|
971
971
|
condition: {
|
|
972
972
|
type: conditionType,
|
|
@@ -1004,7 +1004,7 @@ export function registerSheetsTools(server) {
|
|
|
1004
1004
|
}, async ({ account, spreadsheetId, name, range }) => {
|
|
1005
1005
|
try {
|
|
1006
1006
|
const auth = await getClient(account);
|
|
1007
|
-
const sheets =
|
|
1007
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
1008
1008
|
const res = await sheets.spreadsheets.batchUpdate({
|
|
1009
1009
|
spreadsheetId,
|
|
1010
1010
|
requestBody: {
|
|
@@ -1030,7 +1030,7 @@ export function registerSheetsTools(server) {
|
|
|
1030
1030
|
}, async ({ account, spreadsheetId, namedRangeId }) => {
|
|
1031
1031
|
try {
|
|
1032
1032
|
const auth = await getClient(account);
|
|
1033
|
-
const sheets =
|
|
1033
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
1034
1034
|
await sheets.spreadsheets.batchUpdate({
|
|
1035
1035
|
spreadsheetId,
|
|
1036
1036
|
requestBody: { requests: [{ deleteNamedRange: { namedRangeId } }] },
|
|
@@ -1054,7 +1054,7 @@ export function registerSheetsTools(server) {
|
|
|
1054
1054
|
}, async ({ account, spreadsheetId, ranges }) => {
|
|
1055
1055
|
try {
|
|
1056
1056
|
const auth = await getClient(account);
|
|
1057
|
-
const sheets =
|
|
1057
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
1058
1058
|
const res = await sheets.spreadsheets.values.batchClear({
|
|
1059
1059
|
spreadsheetId,
|
|
1060
1060
|
requestBody: { ranges },
|
|
@@ -1082,7 +1082,7 @@ export function registerSheetsTools(server) {
|
|
|
1082
1082
|
}, async ({ account, spreadsheetId, requests, includeSpreadsheetInResponse, responseRanges, responseIncludeGridData }) => {
|
|
1083
1083
|
try {
|
|
1084
1084
|
const auth = await getClient(account);
|
|
1085
|
-
const sheets =
|
|
1085
|
+
const sheets = sheetsClient({ version: 'v4', auth });
|
|
1086
1086
|
const res = await sheets.spreadsheets.batchUpdate({
|
|
1087
1087
|
spreadsheetId,
|
|
1088
1088
|
requestBody: {
|
package/dist/tools/slides.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { slides as slidesClient } from '@googleapis/slides';
|
|
3
3
|
import { ACCOUNTS } from '../accounts.js';
|
|
4
4
|
import { getClient } from '../client.js';
|
|
5
5
|
import { handleGoogleApiError } from './_errors.js';
|
|
@@ -17,7 +17,7 @@ export function registerSlidesTools(server) {
|
|
|
17
17
|
}, async ({ account, title }) => {
|
|
18
18
|
try {
|
|
19
19
|
const auth = await getClient(account);
|
|
20
|
-
const slides =
|
|
20
|
+
const slides = slidesClient({ version: 'v1', auth });
|
|
21
21
|
const res = await slides.presentations.create({ requestBody: { title } });
|
|
22
22
|
return {
|
|
23
23
|
content: [{ type: 'text', text: JSON.stringify({
|
|
@@ -42,7 +42,7 @@ export function registerSlidesTools(server) {
|
|
|
42
42
|
}, async ({ account, presentationId, full }) => {
|
|
43
43
|
try {
|
|
44
44
|
const auth = await getClient(account);
|
|
45
|
-
const slides =
|
|
45
|
+
const slides = slidesClient({ version: 'v1', auth });
|
|
46
46
|
const res = await slides.presentations.get({ presentationId });
|
|
47
47
|
const payload = full ? res.data : summarizePresentation(res.data);
|
|
48
48
|
return {
|
|
@@ -63,7 +63,7 @@ export function registerSlidesTools(server) {
|
|
|
63
63
|
}, async ({ account, presentationId, pageObjectId }) => {
|
|
64
64
|
try {
|
|
65
65
|
const auth = await getClient(account);
|
|
66
|
-
const slides =
|
|
66
|
+
const slides = slidesClient({ version: 'v1', auth });
|
|
67
67
|
const res = await slides.presentations.pages.get({ presentationId, pageObjectId });
|
|
68
68
|
return {
|
|
69
69
|
content: [{ type: 'text', text: JSON.stringify(res.data, null, 2) }],
|
|
@@ -86,7 +86,7 @@ export function registerSlidesTools(server) {
|
|
|
86
86
|
}, async ({ account, presentationId, pageObjectId, mimeType, thumbnailSize }) => {
|
|
87
87
|
try {
|
|
88
88
|
const auth = await getClient(account);
|
|
89
|
-
const slides =
|
|
89
|
+
const slides = slidesClient({ version: 'v1', auth });
|
|
90
90
|
const res = await slides.presentations.pages.getThumbnail({
|
|
91
91
|
presentationId,
|
|
92
92
|
pageObjectId,
|
|
@@ -115,7 +115,7 @@ export function registerSlidesTools(server) {
|
|
|
115
115
|
}, async ({ account, presentationId, requests, writeControl }) => {
|
|
116
116
|
try {
|
|
117
117
|
const auth = await getClient(account);
|
|
118
|
-
const slides =
|
|
118
|
+
const slides = slidesClient({ version: 'v1', auth });
|
|
119
119
|
const res = await slides.presentations.batchUpdate({
|
|
120
120
|
presentationId,
|
|
121
121
|
requestBody: {
|
package/dist/tools/tasks.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { coerceBoolean } from './_coerce.js';
|
|
3
|
-
import {
|
|
3
|
+
import { tasks as tasksClient } from '@googleapis/tasks';
|
|
4
4
|
import { ACCOUNTS } from '../accounts.js';
|
|
5
5
|
import { getClient } from '../client.js';
|
|
6
6
|
import { handleGoogleApiError } from './_errors.js';
|
|
@@ -17,7 +17,7 @@ export function registerTasksTools(server) {
|
|
|
17
17
|
}, async ({ account, maxResults, pageToken }) => {
|
|
18
18
|
try {
|
|
19
19
|
const auth = await getClient(account);
|
|
20
|
-
const tasks =
|
|
20
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
21
21
|
const res = await tasks.tasklists.list({
|
|
22
22
|
maxResults: maxResults ?? 100,
|
|
23
23
|
pageToken,
|
|
@@ -39,7 +39,7 @@ export function registerTasksTools(server) {
|
|
|
39
39
|
}, async ({ account, tasklistId }) => {
|
|
40
40
|
try {
|
|
41
41
|
const auth = await getClient(account);
|
|
42
|
-
const tasks =
|
|
42
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
43
43
|
const res = await tasks.tasklists.get({ tasklist: tasklistId });
|
|
44
44
|
return {
|
|
45
45
|
content: [{ type: 'text', text: JSON.stringify(res.data, null, 2) }],
|
|
@@ -58,7 +58,7 @@ export function registerTasksTools(server) {
|
|
|
58
58
|
}, async ({ account, title }) => {
|
|
59
59
|
try {
|
|
60
60
|
const auth = await getClient(account);
|
|
61
|
-
const tasks =
|
|
61
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
62
62
|
const res = await tasks.tasklists.insert({
|
|
63
63
|
requestBody: { title },
|
|
64
64
|
});
|
|
@@ -80,7 +80,7 @@ export function registerTasksTools(server) {
|
|
|
80
80
|
}, async ({ account, tasklistId, title }) => {
|
|
81
81
|
try {
|
|
82
82
|
const auth = await getClient(account);
|
|
83
|
-
const tasks =
|
|
83
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
84
84
|
const res = await tasks.tasklists.patch({
|
|
85
85
|
tasklist: tasklistId,
|
|
86
86
|
requestBody: { title },
|
|
@@ -102,7 +102,7 @@ export function registerTasksTools(server) {
|
|
|
102
102
|
}, async ({ account, tasklistId }) => {
|
|
103
103
|
try {
|
|
104
104
|
const auth = await getClient(account);
|
|
105
|
-
const tasks =
|
|
105
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
106
106
|
await tasks.tasklists.delete({ tasklist: tasklistId });
|
|
107
107
|
return {
|
|
108
108
|
content: [{ type: 'text', text: JSON.stringify({ deleted: true, tasklistId }, null, 2) }],
|
|
@@ -133,7 +133,7 @@ export function registerTasksTools(server) {
|
|
|
133
133
|
}, async ({ account, tasklistId, ...params }) => {
|
|
134
134
|
try {
|
|
135
135
|
const auth = await getClient(account);
|
|
136
|
-
const tasks =
|
|
136
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
137
137
|
const res = await tasks.tasks.list({
|
|
138
138
|
tasklist: tasklistId,
|
|
139
139
|
...params,
|
|
@@ -156,7 +156,7 @@ export function registerTasksTools(server) {
|
|
|
156
156
|
}, async ({ account, tasklistId, taskId }) => {
|
|
157
157
|
try {
|
|
158
158
|
const auth = await getClient(account);
|
|
159
|
-
const tasks =
|
|
159
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
160
160
|
const res = await tasks.tasks.get({ tasklist: tasklistId, task: taskId });
|
|
161
161
|
return {
|
|
162
162
|
content: [{ type: 'text', text: JSON.stringify(res.data, null, 2) }],
|
|
@@ -181,7 +181,7 @@ export function registerTasksTools(server) {
|
|
|
181
181
|
}, async ({ account, tasklistId, title, notes, due, status, parent, previous }) => {
|
|
182
182
|
try {
|
|
183
183
|
const auth = await getClient(account);
|
|
184
|
-
const tasks =
|
|
184
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
185
185
|
const requestBody = { title };
|
|
186
186
|
if (notes !== undefined)
|
|
187
187
|
requestBody.notes = notes;
|
|
@@ -217,7 +217,7 @@ export function registerTasksTools(server) {
|
|
|
217
217
|
}, async ({ account, tasklistId, taskId, title, notes, due, status }) => {
|
|
218
218
|
try {
|
|
219
219
|
const auth = await getClient(account);
|
|
220
|
-
const tasks =
|
|
220
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
221
221
|
const requestBody = {};
|
|
222
222
|
if (title !== undefined)
|
|
223
223
|
requestBody.title = title;
|
|
@@ -253,7 +253,7 @@ export function registerTasksTools(server) {
|
|
|
253
253
|
}, async ({ account, tasklistId, taskId }) => {
|
|
254
254
|
try {
|
|
255
255
|
const auth = await getClient(account);
|
|
256
|
-
const tasks =
|
|
256
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
257
257
|
await tasks.tasks.delete({ tasklist: tasklistId, task: taskId });
|
|
258
258
|
return {
|
|
259
259
|
content: [{ type: 'text', text: JSON.stringify({ deleted: true, taskId }, null, 2) }],
|
|
@@ -276,7 +276,7 @@ export function registerTasksTools(server) {
|
|
|
276
276
|
}, async ({ account, tasklistId, taskId, parent, previous, destinationTasklist }) => {
|
|
277
277
|
try {
|
|
278
278
|
const auth = await getClient(account);
|
|
279
|
-
const tasks =
|
|
279
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
280
280
|
const res = await tasks.tasks.move({
|
|
281
281
|
tasklist: tasklistId,
|
|
282
282
|
task: taskId,
|
|
@@ -301,7 +301,7 @@ export function registerTasksTools(server) {
|
|
|
301
301
|
}, async ({ account, tasklistId }) => {
|
|
302
302
|
try {
|
|
303
303
|
const auth = await getClient(account);
|
|
304
|
-
const tasks =
|
|
304
|
+
const tasks = tasksClient({ version: 'v1', auth });
|
|
305
305
|
await tasks.tasks.clear({ tasklist: tasklistId });
|
|
306
306
|
return {
|
|
307
307
|
content: [{ type: 'text', text: JSON.stringify({ cleared: true, tasklistId }, null, 2) }],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-google-multi",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0-beta.1",
|
|
4
4
|
"description": "Local MCP server for Google Workspace (Gmail, Drive, Calendar, Sheets, Docs, Contacts, Tasks, Meet, Search Console, +Forms/Chat/Admin) across multiple accounts — OAuth-only, encrypted token storage, deny-by-default writes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,19 +60,31 @@
|
|
|
60
60
|
"gen:coverage": "tsx scripts/gen-coverage.ts"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
+
"@googleapis/admin": "^32.0.0",
|
|
64
|
+
"@googleapis/calendar": "^16.0.0",
|
|
65
|
+
"@googleapis/chat": "^46.0.0",
|
|
66
|
+
"@googleapis/docs": "^10.0.0",
|
|
67
|
+
"@googleapis/drive": "^21.0.0",
|
|
68
|
+
"@googleapis/forms": "^7.0.0",
|
|
69
|
+
"@googleapis/gmail": "^18.0.0",
|
|
70
|
+
"@googleapis/meet": "^5.0.0",
|
|
71
|
+
"@googleapis/people": "^8.0.0",
|
|
72
|
+
"@googleapis/searchconsole": "^7.0.0",
|
|
73
|
+
"@googleapis/sheets": "^14.0.0",
|
|
74
|
+
"@googleapis/slides": "^6.0.0",
|
|
75
|
+
"@googleapis/tasks": "^13.0.0",
|
|
76
|
+
"@googleapis/webmasters": "^4.0.0",
|
|
63
77
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
64
78
|
"dotenv": "^17.4.0",
|
|
65
|
-
"googleapis": "^
|
|
79
|
+
"googleapis-common": "^8.0.3",
|
|
66
80
|
"mime-types": "^3.0.2",
|
|
67
81
|
"open": "^11.0.0",
|
|
68
|
-
"server-destroy": "^1.0.1",
|
|
69
82
|
"zod": "^4.3.6"
|
|
70
83
|
},
|
|
71
84
|
"devDependencies": {
|
|
72
85
|
"@eslint/js": "^10.0.1",
|
|
73
86
|
"@types/mime-types": "^3.0.1",
|
|
74
87
|
"@types/node": "^25.6.0",
|
|
75
|
-
"@types/server-destroy": "^1.0.3",
|
|
76
88
|
"eslint": "^10.2.1",
|
|
77
89
|
"semantic-release": "^25.0.3",
|
|
78
90
|
"tsx": "^4.23.1",
|