gogcli-mcp-sheets 4.2.2 → 4.2.4
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/index.js +16 -4
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/tools/sheets-extra.ts +14 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "Extended Google Sheets for Claude via gogcli — auth + full Sheets support",
|
|
10
|
-
"version": "4.2.
|
|
10
|
+
"version": "4.2.4"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "gogcli (Sheets)",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "Extended Google Sheets for Claude via gogcli — auth + full Sheets support",
|
|
18
|
-
"version": "4.2.
|
|
18
|
+
"version": "4.2.4",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
package/dist/index.js
CHANGED
|
@@ -35584,7 +35584,7 @@ function registerSheetsTools(server) {
|
|
|
35584
35584
|
});
|
|
35585
35585
|
server.registerTool("gog_sheets_create", {
|
|
35586
35586
|
description: "Create a new Google Spreadsheet. Returns JSON with the new spreadsheetId and URL.",
|
|
35587
|
-
annotations: { destructiveHint:
|
|
35587
|
+
annotations: { destructiveHint: true },
|
|
35588
35588
|
inputSchema: external_exports.object({
|
|
35589
35589
|
title: external_exports.string().describe("Title for the new spreadsheet"),
|
|
35590
35590
|
account: accountParam
|
|
@@ -35608,7 +35608,7 @@ function registerSheetsTools(server) {
|
|
|
35608
35608
|
}
|
|
35609
35609
|
|
|
35610
35610
|
// ../gogcli-mcp/src/server.ts
|
|
35611
|
-
var VERSION = true ? "4.2.
|
|
35611
|
+
var VERSION = true ? "4.2.4" : "0.0.0";
|
|
35612
35612
|
|
|
35613
35613
|
// ../gogcli-mcp/src/bootstrap-auth.ts
|
|
35614
35614
|
import { join as join2 } from "node:path";
|
|
@@ -35741,6 +35741,7 @@ function registerExtraSheetsTools(server) {
|
|
|
35741
35741
|
});
|
|
35742
35742
|
server.registerTool("gog_sheets_add_tab", {
|
|
35743
35743
|
description: "Add a new sheet tab to a spreadsheet.",
|
|
35744
|
+
annotations: { destructiveHint: false },
|
|
35744
35745
|
inputSchema: external_exports.object({
|
|
35745
35746
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID (from the URL)"),
|
|
35746
35747
|
tabName: external_exports.string().describe("Name for the new tab"),
|
|
@@ -35762,7 +35763,7 @@ function registerExtraSheetsTools(server) {
|
|
|
35762
35763
|
});
|
|
35763
35764
|
server.registerTool("gog_sheets_rename_tab", {
|
|
35764
35765
|
description: "Rename a sheet tab.",
|
|
35765
|
-
annotations: { destructiveHint:
|
|
35766
|
+
annotations: { destructiveHint: false },
|
|
35766
35767
|
inputSchema: external_exports.object({
|
|
35767
35768
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
35768
35769
|
oldName: external_exports.string().describe("Current tab name"),
|
|
@@ -35774,6 +35775,7 @@ function registerExtraSheetsTools(server) {
|
|
|
35774
35775
|
});
|
|
35775
35776
|
server.registerTool("gog_sheets_copy", {
|
|
35776
35777
|
description: "Copy a spreadsheet to a new spreadsheet with the given title.",
|
|
35778
|
+
annotations: { destructiveHint: true },
|
|
35777
35779
|
inputSchema: external_exports.object({
|
|
35778
35780
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID to copy"),
|
|
35779
35781
|
title: external_exports.string().describe("Title for the new copy"),
|
|
@@ -36188,6 +36190,7 @@ ${resultText2(result) ?? ""}` }] };
|
|
|
36188
36190
|
});
|
|
36189
36191
|
server.registerTool("gog_sheets_named_ranges_add", {
|
|
36190
36192
|
description: "Create a new named range.",
|
|
36193
|
+
annotations: { destructiveHint: true },
|
|
36191
36194
|
inputSchema: external_exports.object({
|
|
36192
36195
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36193
36196
|
name: external_exports.string().describe("Name for the range"),
|
|
@@ -36282,6 +36285,7 @@ ${resultText2(result) ?? ""}` }] };
|
|
|
36282
36285
|
});
|
|
36283
36286
|
server.registerTool("gog_sheets_chart_create", {
|
|
36284
36287
|
description: "Create an embedded chart from a JSON spec. specJson is a Sheets API ChartSpec (or full EmbeddedChart) \u2014 inline or @/path/to/file.json. Anchor the chart with sheet + anchor (A1 cell), and optionally size it with width/height pixels.",
|
|
36288
|
+
annotations: { destructiveHint: false },
|
|
36285
36289
|
inputSchema: external_exports.object({
|
|
36286
36290
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36287
36291
|
specJson: external_exports.string().describe("ChartSpec or EmbeddedChart JSON (inline or @file)"),
|
|
@@ -36301,7 +36305,7 @@ ${resultText2(result) ?? ""}` }] };
|
|
|
36301
36305
|
});
|
|
36302
36306
|
server.registerTool("gog_sheets_chart_update", {
|
|
36303
36307
|
description: "Replace a chart spec by chart ID. specJson is a Sheets API ChartSpec (or full EmbeddedChart) \u2014 inline or @/path/to/file.json.",
|
|
36304
|
-
annotations: { destructiveHint:
|
|
36308
|
+
annotations: { destructiveHint: false },
|
|
36305
36309
|
inputSchema: external_exports.object({
|
|
36306
36310
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36307
36311
|
chartId: external_exports.string().describe("Numeric chart ID to update"),
|
|
@@ -36348,6 +36352,7 @@ ${resultText2(result) ?? ""}` }] };
|
|
|
36348
36352
|
});
|
|
36349
36353
|
server.registerTool("gog_sheets_table_create", {
|
|
36350
36354
|
description: "Create a Google Sheets table over a range. columnsJson is a JSON array of column definitions (each {columnName, columnType?}); valid columnType values: TEXT, DOUBLE, BOOLEAN, DATE, DROPDOWN. Inline JSON or @/path/to/file.json.",
|
|
36355
|
+
annotations: { destructiveHint: false },
|
|
36351
36356
|
inputSchema: external_exports.object({
|
|
36352
36357
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36353
36358
|
range: external_exports.string().describe("Range the table covers (e.g. Sheet1!A1:D20)"),
|
|
@@ -36363,6 +36368,7 @@ ${resultText2(result) ?? ""}` }] };
|
|
|
36363
36368
|
});
|
|
36364
36369
|
server.registerTool("gog_sheets_table_append", {
|
|
36365
36370
|
description: "Append data rows to a table. valuesJson is a JSON 2D array of row values.",
|
|
36371
|
+
annotations: { destructiveHint: false },
|
|
36366
36372
|
inputSchema: external_exports.object({
|
|
36367
36373
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36368
36374
|
tableId: external_exports.string().describe("Table ID to append to"),
|
|
@@ -36448,6 +36454,7 @@ ${errorText(err)}`
|
|
|
36448
36454
|
});
|
|
36449
36455
|
server.registerTool("gog_sheets_banding_set", {
|
|
36450
36456
|
description: "Apply alternating colors to a range. Provide rowPropertiesJson and/or columnPropertiesJson \u2014 each a Sheets API BandingProperties JSON object ({headerColor, firstBandColor, secondBandColor, footerColor}). At least one is required.",
|
|
36457
|
+
annotations: { destructiveHint: false },
|
|
36451
36458
|
inputSchema: external_exports.object({
|
|
36452
36459
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36453
36460
|
range: external_exports.string().describe("Range to band (e.g. Sheet1!A1:D20)"),
|
|
@@ -36481,6 +36488,7 @@ ${errorText(err)}`
|
|
|
36481
36488
|
});
|
|
36482
36489
|
server.registerTool("gog_sheets_filter_set", {
|
|
36483
36490
|
description: "Set a basic filter on a range (the filter/sort header Sheets shows on a data range). A sheet can hold one basic filter; replacing an existing one requires replace=true \u2014 without it, gog refuses rather than silently overwriting.",
|
|
36491
|
+
annotations: { destructiveHint: false },
|
|
36484
36492
|
inputSchema: external_exports.object({
|
|
36485
36493
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36486
36494
|
range: external_exports.string().describe("Range to filter (A1 notation with sheet name, e.g. Sheet1!A1:C100, or a named range name)"),
|
|
@@ -36507,6 +36515,7 @@ ${errorText(err)}`
|
|
|
36507
36515
|
});
|
|
36508
36516
|
server.registerTool("gog_sheets_conditional_format_add", {
|
|
36509
36517
|
description: 'Add a conditional formatting rule to a range. Boolean rules: type picks the condition, expr is its value/formula (omit for blank/not-blank), formatJson is the CellFormat to apply when the condition matches (inline or @file); use formatFields to force-send zero/false fields (e.g. backgroundColor,textFormat.bold). Gradient rules (color scales): pass gradientRuleJson instead \u2014 a GradientRule JSON with minpoint/maxpoint (and optional midpoint), each {"color":{...},"type":"MIN|MAX|NUMBER|PERCENT|PERCENTILE","value":"..."}. The two modes are mutually exclusive.',
|
|
36518
|
+
annotations: { destructiveHint: false },
|
|
36510
36519
|
inputSchema: external_exports.object({
|
|
36511
36520
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36512
36521
|
range: external_exports.string().describe("Range the rule applies to (e.g. Sheet1!A1:A100)"),
|
|
@@ -36558,6 +36567,7 @@ ${errorText(err)}`
|
|
|
36558
36567
|
});
|
|
36559
36568
|
server.registerTool("gog_sheets_snapshot", {
|
|
36560
36569
|
description: "Make a backup copy of an entire spreadsheet \u2014 a one-call safety snapshot to take BEFORE a risky or destructive edit (table delete, bulk clear, large rewrite). Returns the new copy's file ID and URL; if the edit goes wrong, restore by copying the backup back or sharing it. The copy is independent \u2014 later edits to the original do not affect it.",
|
|
36570
|
+
annotations: { destructiveHint: false },
|
|
36561
36571
|
inputSchema: external_exports.object({
|
|
36562
36572
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID to back up"),
|
|
36563
36573
|
name: external_exports.string().describe('Name for the backup copy, e.g. "Budget \u2014 backup before table delete"'),
|
|
@@ -36634,6 +36644,7 @@ ${errorText(err)}`
|
|
|
36634
36644
|
const bigQueryChargeNote = " COSTS MONEY AND RUNS ASYNCHRONOUSLY: this starts a BigQuery execution billed to the billing project, and returns once the execution has been REQUESTED \u2014 not once it has finished. Poll gog_sheets_datasource_describe until its dataExecutionStatus state is SUCCEEDED or FAILED before treating the data as current.";
|
|
36635
36645
|
server.registerTool("gog_sheets_datasource_add", {
|
|
36636
36646
|
description: "Add a BigQuery Connected Sheets data source to a spreadsheet, creating its linked DATA_SOURCE sheet. Point it at EITHER a custom SQL query (query) OR an existing native table (dataset + table) \u2014 never both. billingProject is the BigQuery project charged for the query; tableProject only names which project OWNS the table, and defaults to the billing project. Returns the new dataSourceId, which every other datasource tool takes." + bigQueryChargeNote + bigQueryScopeNote,
|
|
36647
|
+
annotations: { destructiveHint: false },
|
|
36637
36648
|
inputSchema: external_exports.object({
|
|
36638
36649
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36639
36650
|
billingProject: external_exports.string().describe("Billing-enabled BigQuery project charged for this source's queries"),
|
|
@@ -36689,6 +36700,7 @@ ${errorText(err)}`
|
|
|
36689
36700
|
});
|
|
36690
36701
|
server.registerTool("gog_sheets_datasource_refresh", {
|
|
36691
36702
|
description: "Re-run a Connected Sheets data source so its sheet and extracts pick up current BigQuery data. Google refuses to refresh a source whose previous execution FAILED; forceRefresh overrides that, which is what you want after fixing the underlying query or permissions." + bigQueryChargeNote + bigQueryScopeNote,
|
|
36703
|
+
annotations: { destructiveHint: true },
|
|
36692
36704
|
inputSchema: external_exports.object({
|
|
36693
36705
|
spreadsheetId: external_exports.string().describe("Spreadsheet ID"),
|
|
36694
36706
|
dataSourceId: external_exports.string().describe("Data source ID, as reported by gog_sheets_datasource_list"),
|
package/manifest.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"manifest_version": "0.3",
|
|
4
4
|
"name": "gogcli-mcp-sheets",
|
|
5
5
|
"display_name": "gogcli (Sheets)",
|
|
6
|
-
"version": "4.2.
|
|
6
|
+
"version": "4.2.4",
|
|
7
7
|
"description": "Extended Google Sheets for Claude via gogcli — auth + full Sheets support",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Chris Hall",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gogcli-mcp-sheets",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.4",
|
|
4
4
|
"mcpName": "io.github.chrischall/gogcli-mcp-sheets",
|
|
5
5
|
"description": "Extended Google Sheets MCP server via gogcli — all base tools plus full Sheets support",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/gogcli-mcp-sheets"
|
|
9
9
|
},
|
|
10
|
-
"version": "4.2.
|
|
10
|
+
"version": "4.2.4",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "gogcli-mcp-sheets",
|
|
15
|
-
"version": "4.2.
|
|
15
|
+
"version": "4.2.4",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|
|
@@ -95,6 +95,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
95
95
|
|
|
96
96
|
server.registerTool('gog_sheets_add_tab', {
|
|
97
97
|
description: 'Add a new sheet tab to a spreadsheet.',
|
|
98
|
+
annotations: { destructiveHint: false },
|
|
98
99
|
inputSchema: z.object({
|
|
99
100
|
spreadsheetId: z.string().describe('Spreadsheet ID (from the URL)'),
|
|
100
101
|
tabName: z.string().describe('Name for the new tab'),
|
|
@@ -118,7 +119,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
118
119
|
|
|
119
120
|
server.registerTool('gog_sheets_rename_tab', {
|
|
120
121
|
description: 'Rename a sheet tab.',
|
|
121
|
-
annotations: { destructiveHint:
|
|
122
|
+
annotations: { destructiveHint: false },
|
|
122
123
|
inputSchema: z.object({
|
|
123
124
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
124
125
|
oldName: z.string().describe('Current tab name'),
|
|
@@ -131,6 +132,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
131
132
|
|
|
132
133
|
server.registerTool('gog_sheets_copy', {
|
|
133
134
|
description: 'Copy a spreadsheet to a new spreadsheet with the given title.',
|
|
135
|
+
annotations: { destructiveHint: true },
|
|
134
136
|
inputSchema: z.object({
|
|
135
137
|
spreadsheetId: z.string().describe('Spreadsheet ID to copy'),
|
|
136
138
|
title: z.string().describe('Title for the new copy'),
|
|
@@ -579,6 +581,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
579
581
|
|
|
580
582
|
server.registerTool('gog_sheets_named_ranges_add', {
|
|
581
583
|
description: 'Create a new named range.',
|
|
584
|
+
annotations: { destructiveHint: true },
|
|
582
585
|
inputSchema: z.object({
|
|
583
586
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
584
587
|
name: z.string().describe('Name for the range'),
|
|
@@ -682,6 +685,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
682
685
|
|
|
683
686
|
server.registerTool('gog_sheets_chart_create', {
|
|
684
687
|
description: 'Create an embedded chart from a JSON spec. specJson is a Sheets API ChartSpec (or full EmbeddedChart) — inline or @/path/to/file.json. Anchor the chart with sheet + anchor (A1 cell), and optionally size it with width/height pixels.',
|
|
688
|
+
annotations: { destructiveHint: false },
|
|
685
689
|
inputSchema: z.object({
|
|
686
690
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
687
691
|
specJson: z.string().describe('ChartSpec or EmbeddedChart JSON (inline or @file)'),
|
|
@@ -702,7 +706,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
702
706
|
|
|
703
707
|
server.registerTool('gog_sheets_chart_update', {
|
|
704
708
|
description: 'Replace a chart spec by chart ID. specJson is a Sheets API ChartSpec (or full EmbeddedChart) — inline or @/path/to/file.json.',
|
|
705
|
-
annotations: { destructiveHint:
|
|
709
|
+
annotations: { destructiveHint: false },
|
|
706
710
|
inputSchema: z.object({
|
|
707
711
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
708
712
|
chartId: z.string().describe('Numeric chart ID to update'),
|
|
@@ -755,6 +759,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
755
759
|
|
|
756
760
|
server.registerTool('gog_sheets_table_create', {
|
|
757
761
|
description: 'Create a Google Sheets table over a range. columnsJson is a JSON array of column definitions (each {columnName, columnType?}); valid columnType values: TEXT, DOUBLE, BOOLEAN, DATE, DROPDOWN. Inline JSON or @/path/to/file.json.',
|
|
762
|
+
annotations: { destructiveHint: false },
|
|
758
763
|
inputSchema: z.object({
|
|
759
764
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
760
765
|
range: z.string().describe('Range the table covers (e.g. Sheet1!A1:D20)'),
|
|
@@ -771,6 +776,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
771
776
|
|
|
772
777
|
server.registerTool('gog_sheets_table_append', {
|
|
773
778
|
description: 'Append data rows to a table. valuesJson is a JSON 2D array of row values.',
|
|
779
|
+
annotations: { destructiveHint: false },
|
|
774
780
|
inputSchema: z.object({
|
|
775
781
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
776
782
|
tableId: z.string().describe('Table ID to append to'),
|
|
@@ -881,6 +887,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
881
887
|
|
|
882
888
|
server.registerTool('gog_sheets_banding_set', {
|
|
883
889
|
description: 'Apply alternating colors to a range. Provide rowPropertiesJson and/or columnPropertiesJson — each a Sheets API BandingProperties JSON object ({headerColor, firstBandColor, secondBandColor, footerColor}). At least one is required.',
|
|
890
|
+
annotations: { destructiveHint: false },
|
|
884
891
|
inputSchema: z.object({
|
|
885
892
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
886
893
|
range: z.string().describe('Range to band (e.g. Sheet1!A1:D20)'),
|
|
@@ -918,6 +925,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
918
925
|
|
|
919
926
|
server.registerTool('gog_sheets_filter_set', {
|
|
920
927
|
description: 'Set a basic filter on a range (the filter/sort header Sheets shows on a data range). A sheet can hold one basic filter; replacing an existing one requires replace=true — without it, gog refuses rather than silently overwriting.',
|
|
928
|
+
annotations: { destructiveHint: false },
|
|
921
929
|
inputSchema: z.object({
|
|
922
930
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
923
931
|
range: z.string().describe('Range to filter (A1 notation with sheet name, e.g. Sheet1!A1:C100, or a named range name)'),
|
|
@@ -948,6 +956,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
948
956
|
|
|
949
957
|
server.registerTool('gog_sheets_conditional_format_add', {
|
|
950
958
|
description: 'Add a conditional formatting rule to a range. Boolean rules: type picks the condition, expr is its value/formula (omit for blank/not-blank), formatJson is the CellFormat to apply when the condition matches (inline or @file); use formatFields to force-send zero/false fields (e.g. backgroundColor,textFormat.bold). Gradient rules (color scales): pass gradientRuleJson instead — a GradientRule JSON with minpoint/maxpoint (and optional midpoint), each {"color":{...},"type":"MIN|MAX|NUMBER|PERCENT|PERCENTILE","value":"..."}. The two modes are mutually exclusive.',
|
|
959
|
+
annotations: { destructiveHint: false },
|
|
951
960
|
inputSchema: z.object({
|
|
952
961
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
953
962
|
range: z.string().describe('Range the rule applies to (e.g. Sheet1!A1:A100)'),
|
|
@@ -994,6 +1003,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
994
1003
|
description:
|
|
995
1004
|
'Make a backup copy of an entire spreadsheet — a one-call safety snapshot to take BEFORE a risky or destructive edit (table delete, bulk clear, large rewrite). ' +
|
|
996
1005
|
'Returns the new copy\'s file ID and URL; if the edit goes wrong, restore by copying the backup back or sharing it. The copy is independent — later edits to the original do not affect it.',
|
|
1006
|
+
annotations: { destructiveHint: false },
|
|
997
1007
|
inputSchema: z.object({
|
|
998
1008
|
spreadsheetId: z.string().describe('Spreadsheet ID to back up'),
|
|
999
1009
|
name: z.string().describe('Name for the backup copy, e.g. "Budget — backup before table delete"'),
|
|
@@ -1138,6 +1148,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
1138
1148
|
'BigQuery project charged for the query; tableProject only names which project OWNS the table, and defaults to the ' +
|
|
1139
1149
|
'billing project. Returns the new dataSourceId, which every other datasource tool takes.' +
|
|
1140
1150
|
bigQueryChargeNote + bigQueryScopeNote,
|
|
1151
|
+
annotations: { destructiveHint: false },
|
|
1141
1152
|
inputSchema: z.object({
|
|
1142
1153
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
1143
1154
|
billingProject: z.string().describe('Billing-enabled BigQuery project charged for this source\'s queries'),
|
|
@@ -1218,6 +1229,7 @@ export function registerExtraSheetsTools(server: McpServer): void {
|
|
|
1218
1229
|
'Re-run a Connected Sheets data source so its sheet and extracts pick up current BigQuery data. Google refuses to ' +
|
|
1219
1230
|
'refresh a source whose previous execution FAILED; forceRefresh overrides that, which is what you want after fixing ' +
|
|
1220
1231
|
'the underlying query or permissions.' + bigQueryChargeNote + bigQueryScopeNote,
|
|
1232
|
+
annotations: { destructiveHint: true },
|
|
1221
1233
|
inputSchema: z.object({
|
|
1222
1234
|
spreadsheetId: z.string().describe('Spreadsheet ID'),
|
|
1223
1235
|
dataSourceId: z.string().describe('Data source ID, as reported by gog_sheets_datasource_list'),
|