apple-numbers-mcp 1.2.0 → 1.2.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/build/index.js +23 -21
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -22623,6 +22623,8 @@ var MAX_NAME_LEN = 1024;
|
|
|
22623
22623
|
var MAX_QUERY_LEN = 1e4;
|
|
22624
22624
|
var MAX_HEADER_LEN = 1024;
|
|
22625
22625
|
var headerCellSchema = external_exports.string().max(MAX_HEADER_LEN);
|
|
22626
|
+
var PATH_BOUNDARY_NOTE = `
|
|
22627
|
+
Paths: the file must resolve \u2014 after ~ expansion and symlink resolution \u2014 to a location under ${ALLOWED_EXPORT_ROOTS_TEXT}; anything else is rejected with an error naming those roots. Add directories with the ${EXTRA_ROOTS_ENV} environment variable.`;
|
|
22626
22628
|
var server = new McpServer({
|
|
22627
22629
|
name: "apple-numbers",
|
|
22628
22630
|
version: version2,
|
|
@@ -22677,7 +22679,7 @@ registerTool(
|
|
|
22677
22679
|
registerTool(
|
|
22678
22680
|
"get-file-info",
|
|
22679
22681
|
{
|
|
22680
|
-
description: "Use when: you need to discover the structure of a .numbers file before reading or writing \u2014 the exact sheet and table names, their dimensions, and header rows. Call this first when sheet/table names are unknown.\nReturns: each sheet with its tables, per-table row\xD7col counts, and the header row (row 0) cells.\nDo not use when: you want the actual cell data \u2014 use read-table; or a single cell \u2014 use get-cell.",
|
|
22682
|
+
description: "Use when: you need to discover the structure of a .numbers file before reading or writing \u2014 the exact sheet and table names, their dimensions, and header rows. Call this first when sheet/table names are unknown.\nReturns: each sheet with its tables, per-table row\xD7col counts, and the header row (row 0) cells.\nDo not use when: you want the actual cell data \u2014 use read-table; or a single cell \u2014 use get-cell." + PATH_BOUNDARY_NOTE,
|
|
22681
22683
|
inputSchema: {
|
|
22682
22684
|
path: external_exports.string().describe("Absolute or ~-relative path to the .numbers file")
|
|
22683
22685
|
},
|
|
@@ -22721,7 +22723,7 @@ ${summary}`,
|
|
|
22721
22723
|
registerTool(
|
|
22722
22724
|
"read-table",
|
|
22723
22725
|
{
|
|
22724
|
-
description: "Use when: you want the data from a table \u2014 headers plus rows, optionally limited to a row range (0-based inclusive indices; header is row 0, so data starts at row 1) and/or a subset of columns. Defaults to the first sheet and first table if sheet/table are omitted.\nReturns: sheet name, table name, the headers and rows selected, and numRows/numCols describing the SELECTION \u2014 not the table. Use get-file-info for the table's full dimensions.\nDo not use when: you only need one cell \u2014 use get-cell; you need the file's structure/names \u2014 use get-file-info; or you want to find a value's location \u2014 use search.",
|
|
22726
|
+
description: "Use when: you want the data from a table \u2014 headers plus rows, optionally limited to a row range (0-based inclusive indices; header is row 0, so data starts at row 1) and/or a subset of columns. Defaults to the first sheet and first table if sheet/table are omitted.\nReturns: sheet name, table name, the headers and rows selected, and numRows/numCols describing the SELECTION \u2014 not the table. Use get-file-info for the table's full dimensions.\nDo not use when: you only need one cell \u2014 use get-cell; you need the file's structure/names \u2014 use get-file-info; or you want to find a value's location \u2014 use search." + PATH_BOUNDARY_NOTE,
|
|
22725
22727
|
inputSchema: {
|
|
22726
22728
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
22727
22729
|
sheet: external_exports.string().optional().describe("Sheet name (default: first sheet)"),
|
|
@@ -22757,7 +22759,7 @@ ${dataRows}`,
|
|
|
22757
22759
|
registerTool(
|
|
22758
22760
|
"search",
|
|
22759
22761
|
{
|
|
22760
|
-
description: "Use when: you need to locate where a text value appears across every cell in a .numbers file (case-insensitive partial match), optionally limited to one sheet.\nReturns: a match count and each match's sheet, table, row, column header, and value.\nDo not use when: you already know the cell's coordinates \u2014 use get-cell; or you want a whole table's contents \u2014 use read-table.",
|
|
22762
|
+
description: "Use when: you need to locate where a text value appears across every cell in a .numbers file (case-insensitive partial match), optionally limited to one sheet.\nReturns: a match count and each match's sheet, table, row, column header, and value.\nDo not use when: you already know the cell's coordinates \u2014 use get-cell; or you want a whole table's contents \u2014 use read-table." + PATH_BOUNDARY_NOTE,
|
|
22761
22763
|
inputSchema: {
|
|
22762
22764
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
22763
22765
|
query: external_exports.string().max(MAX_QUERY_LEN).describe("Text to search for (case-insensitive)"),
|
|
@@ -22823,7 +22825,7 @@ registerTool(
|
|
|
22823
22825
|
registerTool(
|
|
22824
22826
|
"get-cell",
|
|
22825
22827
|
{
|
|
22826
|
-
description: "Use when: you need a single cell's value by 0-based row and column index (header is row 0). Set verbose=true to also get the formula, formatted value, and merge info.\nReturns: the cell's value and type, plus formula/formatted-value/merge details when verbose.\nDo not use when: you want many cells or whole rows \u2014 use read-table; or you don't know the coordinates \u2014 use search.",
|
|
22828
|
+
description: "Use when: you need a single cell's value by 0-based row and column index (header is row 0). Set verbose=true to also get the formula, formatted value, and merge info.\nReturns: the cell's value and type, plus formula/formatted-value/merge details when verbose.\nDo not use when: you want many cells or whole rows \u2014 use read-table; or you don't know the coordinates \u2014 use search." + PATH_BOUNDARY_NOTE,
|
|
22827
22829
|
inputSchema: {
|
|
22828
22830
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
22829
22831
|
sheet: external_exports.string().describe("Sheet name"),
|
|
@@ -22892,7 +22894,7 @@ registerTool(
|
|
|
22892
22894
|
description: `Use when: you need to write a computed value to one cell in an existing .numbers file, addressed by 0-based row and column (header is row 0). Defaults to the first sheet/table if omitted.
|
|
22893
22895
|
Returns: the written coordinates, value, and the sheet/table affected.
|
|
22894
22896
|
Do not use when: you're writing many cells \u2014 use set-cells-batch; replacing whole rows \u2014 use update-rows; or writing a live formula \u2014 use set-formula (passing "=SUM(...)" here writes literal text, not a formula).
|
|
22895
|
-
Safety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app) and OVERWRITES any existing data in the target cell
|
|
22897
|
+
Safety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app) and OVERWRITES any existing data in the target cell.` + PATH_BOUNDARY_NOTE,
|
|
22896
22898
|
inputSchema: {
|
|
22897
22899
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
22898
22900
|
row: external_exports.number().int().min(0).max(MAX_INDEX).describe("Row index (0-based)"),
|
|
@@ -22924,7 +22926,7 @@ Safety: modifies the .numbers file in place via the numbers-parser sidecar (does
|
|
|
22924
22926
|
registerTool(
|
|
22925
22927
|
"set-cells-batch",
|
|
22926
22928
|
{
|
|
22927
|
-
description: "Use when: you need to write computed values to multiple cells at once (each with 0-based row/col); more efficient than many set-cell calls. Defaults to the first sheet/table if omitted.\nReturns: the number of cells written and the sheet/table affected.\nDo not use when: replacing whole rows by index \u2014 use update-rows; appending new rows \u2014 use add-rows; or writing live formulas \u2014 use set-formulas-batch.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app) and OVERWRITES any existing data in the targeted cells.",
|
|
22929
|
+
description: "Use when: you need to write computed values to multiple cells at once (each with 0-based row/col); more efficient than many set-cell calls. Defaults to the first sheet/table if omitted.\nReturns: the number of cells written and the sheet/table affected.\nDo not use when: replacing whole rows by index \u2014 use update-rows; appending new rows \u2014 use add-rows; or writing live formulas \u2014 use set-formulas-batch.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app) and OVERWRITES any existing data in the targeted cells." + PATH_BOUNDARY_NOTE,
|
|
22928
22930
|
inputSchema: {
|
|
22929
22931
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
22930
22932
|
updates: external_exports.array(
|
|
@@ -22958,7 +22960,7 @@ registerTool(
|
|
|
22958
22960
|
registerTool(
|
|
22959
22961
|
"add-rows",
|
|
22960
22962
|
{
|
|
22961
|
-
description: "Use when: you want to append new rows of data to the end of an existing table; rows are added after the last existing row. Defaults to the first sheet/table if omitted.\nReturns: the number of rows added, the starting row index, and the new total row count.\nDo not use when: overwriting existing rows by index \u2014 use update-rows; setting individual cells \u2014 use set-cell / set-cells-batch.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app). Additive (appends rows) and does not overwrite existing data, but still mutates the file.",
|
|
22963
|
+
description: "Use when: you want to append new rows of data to the end of an existing table; rows are added after the last existing row. Defaults to the first sheet/table if omitted.\nReturns: the number of rows added, the starting row index, and the new total row count.\nDo not use when: overwriting existing rows by index \u2014 use update-rows; setting individual cells \u2014 use set-cell / set-cells-batch.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app). Additive (appends rows) and does not overwrite existing data, but still mutates the file." + PATH_BOUNDARY_NOTE,
|
|
22962
22964
|
inputSchema: {
|
|
22963
22965
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
22964
22966
|
rows: external_exports.array(external_exports.array(external_exports.union([external_exports.string(), external_exports.number(), external_exports.boolean(), external_exports.null()]))).min(1).max(MAX_BATCH).describe(
|
|
@@ -22987,7 +22989,7 @@ registerTool(
|
|
|
22987
22989
|
registerTool(
|
|
22988
22990
|
"delete-rows",
|
|
22989
22991
|
{
|
|
22990
|
-
description: "Use when: you need to permanently remove a contiguous range of rows from a table; both startRow and endRow are 0-based inclusive indices (header is row 0). Defaults to the first sheet/table if omitted.\nReturns: the number of rows deleted and the new total row count.\nDo not use when: you only want to clear values while keeping the rows \u2014 use set-cells-batch with empty values; or overwrite rows in place \u2014 use update-rows.\nSafety: DESTRUCTIVE \u2014 requires explicit user confirmation; not undoable; the .numbers file is modified in place via the numbers-parser sidecar (does not require Numbers.app) and the deleted rows cannot be recovered. Double-check the 0-based inclusive range before calling.",
|
|
22992
|
+
description: "Use when: you need to permanently remove a contiguous range of rows from a table; both startRow and endRow are 0-based inclusive indices (header is row 0). Defaults to the first sheet/table if omitted.\nReturns: the number of rows deleted and the new total row count.\nDo not use when: you only want to clear values while keeping the rows \u2014 use set-cells-batch with empty values; or overwrite rows in place \u2014 use update-rows.\nSafety: DESTRUCTIVE \u2014 requires explicit user confirmation; not undoable; the .numbers file is modified in place via the numbers-parser sidecar (does not require Numbers.app) and the deleted rows cannot be recovered. Double-check the 0-based inclusive range before calling." + PATH_BOUNDARY_NOTE,
|
|
22991
22993
|
inputSchema: {
|
|
22992
22994
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
22993
22995
|
startRow: external_exports.number().int().min(0).max(MAX_INDEX).describe("First row to delete (0-based, inclusive)"),
|
|
@@ -23014,7 +23016,7 @@ registerTool(
|
|
|
23014
23016
|
registerTool(
|
|
23015
23017
|
"add-sheet",
|
|
23016
23018
|
{
|
|
23017
|
-
description: "Use when: you want to add a new sheet to an existing .numbers file, optionally naming its default table and providing its headers. Geometry depends on headers: with headers the table is created 1 row x headers.length columns; without them it is a 12 x 8 grid of empty cells (not overridable through MCP).\nReturns: the new sheet name, its default table name, and the table's dimensions.\nDo not use when: adding a table to an existing sheet \u2014 use add-table; or creating a whole new file \u2014 use create-spreadsheet.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app). Additive (adds a new sheet) and does not overwrite existing data, but still mutates the file.",
|
|
23019
|
+
description: "Use when: you want to add a new sheet to an existing .numbers file, optionally naming its default table and providing its headers. Geometry depends on headers: with headers the table is created 1 row x headers.length columns; without them it is a 12 x 8 grid of empty cells (not overridable through MCP).\nReturns: the new sheet name, its default table name, and the table's dimensions.\nDo not use when: adding a table to an existing sheet \u2014 use add-table; or creating a whole new file \u2014 use create-spreadsheet.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app). Additive (adds a new sheet) and does not overwrite existing data, but still mutates the file." + PATH_BOUNDARY_NOTE,
|
|
23018
23020
|
inputSchema: {
|
|
23019
23021
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23020
23022
|
sheetName: external_exports.string().max(MAX_NAME_LEN).describe("Name for the new sheet"),
|
|
@@ -23040,7 +23042,7 @@ registerTool(
|
|
|
23040
23042
|
registerTool(
|
|
23041
23043
|
"add-table",
|
|
23042
23044
|
{
|
|
23043
|
-
description: "Use when: you want to add a new table to an existing sheet, optionally naming it and providing its headers. Defaults to the first sheet if omitted. Geometry depends on headers: with headers the table is created 1 row x headers.length columns; without them it is a 12 x 8 grid of empty cells (not overridable through MCP).\nReturns: the new table name, the sheet it was added to, and the table's dimensions.\nDo not use when: adding a whole new sheet \u2014 use add-sheet; or creating a new file \u2014 use create-spreadsheet.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app). Additive (adds a new table) and does not overwrite existing data, but still mutates the file.",
|
|
23045
|
+
description: "Use when: you want to add a new table to an existing sheet, optionally naming it and providing its headers. Defaults to the first sheet if omitted. Geometry depends on headers: with headers the table is created 1 row x headers.length columns; without them it is a 12 x 8 grid of empty cells (not overridable through MCP).\nReturns: the new table name, the sheet it was added to, and the table's dimensions.\nDo not use when: adding a whole new sheet \u2014 use add-sheet; or creating a new file \u2014 use create-spreadsheet.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app). Additive (adds a new table) and does not overwrite existing data, but still mutates the file." + PATH_BOUNDARY_NOTE,
|
|
23044
23046
|
inputSchema: {
|
|
23045
23047
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23046
23048
|
sheet: external_exports.string().optional().describe("Sheet name (default: first sheet)"),
|
|
@@ -23098,7 +23100,7 @@ Sheet: "${result.sheetName}" | Table: "${result.tableName}"`,
|
|
|
23098
23100
|
registerTool(
|
|
23099
23101
|
"update-rows",
|
|
23100
23102
|
{
|
|
23101
|
-
description: "Use when: you need to replace whole rows by 0-based index in an existing file; each update carries a row index and a complete array of column values. Carrying multiple {row, values} entries is more efficient than per-row writes. Defaults to the first sheet/table if omitted.\nReturns: the number of rows updated and the sheet/table affected.\nDo not use when: appending new rows \u2014 use add-rows; writing individual cells \u2014 use set-cell / set-cells-batch; or writing live formulas \u2014 use set-formulas-batch.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app) and OVERWRITES the entire contents of each targeted row.",
|
|
23103
|
+
description: "Use when: you need to replace whole rows by 0-based index in an existing file; each update carries a row index and a complete array of column values. Carrying multiple {row, values} entries is more efficient than per-row writes. Defaults to the first sheet/table if omitted.\nReturns: the number of rows updated and the sheet/table affected.\nDo not use when: appending new rows \u2014 use add-rows; writing individual cells \u2014 use set-cell / set-cells-batch; or writing live formulas \u2014 use set-formulas-batch.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app) and OVERWRITES the entire contents of each targeted row." + PATH_BOUNDARY_NOTE,
|
|
23102
23104
|
inputSchema: {
|
|
23103
23105
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23104
23106
|
updates: external_exports.array(
|
|
@@ -23130,7 +23132,7 @@ registerTool(
|
|
|
23130
23132
|
registerTool(
|
|
23131
23133
|
"rename-sheet",
|
|
23132
23134
|
{
|
|
23133
|
-
description: "Use when: you want to change a sheet's name in a .numbers file. Defaults to the first sheet if the current name is omitted.\nReturns: the old and new sheet names.\nDo not use when: renaming a table \u2014 use rename-table.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app).",
|
|
23135
|
+
description: "Use when: you want to change a sheet's name in a .numbers file. Defaults to the first sheet if the current name is omitted.\nReturns: the old and new sheet names.\nDo not use when: renaming a table \u2014 use rename-table.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app)." + PATH_BOUNDARY_NOTE,
|
|
23134
23136
|
inputSchema: {
|
|
23135
23137
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23136
23138
|
newName: external_exports.string().max(MAX_NAME_LEN).describe("New name for the sheet"),
|
|
@@ -23153,7 +23155,7 @@ registerTool(
|
|
|
23153
23155
|
registerTool(
|
|
23154
23156
|
"rename-table",
|
|
23155
23157
|
{
|
|
23156
|
-
description: "Use when: you want to change a table's name in a .numbers file. Defaults to the first sheet/table if omitted.\nReturns: the old and new table names and the sheet it belongs to.\nDo not use when: renaming a sheet \u2014 use rename-sheet.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app).",
|
|
23158
|
+
description: "Use when: you want to change a table's name in a .numbers file. Defaults to the first sheet/table if omitted.\nReturns: the old and new table names and the sheet it belongs to.\nDo not use when: renaming a sheet \u2014 use rename-sheet.\nSafety: modifies the .numbers file in place via the numbers-parser sidecar (does not require Numbers.app)." + PATH_BOUNDARY_NOTE,
|
|
23157
23159
|
inputSchema: {
|
|
23158
23160
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23159
23161
|
newName: external_exports.string().max(MAX_NAME_LEN).describe("New name for the table"),
|
|
@@ -23178,7 +23180,7 @@ registerTool(
|
|
|
23178
23180
|
registerTool(
|
|
23179
23181
|
"set-formula",
|
|
23180
23182
|
{
|
|
23181
|
-
description: 'Use when: you need to write a live formula (e.g. "=SUM(A2:A10)") into a cell so it computes in Numbers, addressed by 0-based row/col. Requires explicit sheet and table.\nReturns: the cell, the formula set, and its computed value.\nDo not use when: writing a plain computed value \u2014 use set-cell (this tool is for live formulas); or setting many formulas \u2014 use set-formulas-batch.\nSafety: drives Numbers.app via AppleScript and requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. The file is opened in Numbers.app if not already open, launching the app; the formula OVERWRITES any existing content in the target cell; the WHOLE document is saved, which commits any unsaved edits the user has open in it; and the document is left open afterwards.',
|
|
23183
|
+
description: 'Use when: you need to write a live formula (e.g. "=SUM(A2:A10)") into a cell so it computes in Numbers, addressed by 0-based row/col. Requires explicit sheet and table.\nReturns: the cell, the formula set, and its computed value.\nDo not use when: writing a plain computed value \u2014 use set-cell (this tool is for live formulas); or setting many formulas \u2014 use set-formulas-batch.\nSafety: drives Numbers.app via AppleScript and requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. The file is opened in Numbers.app if not already open, launching the app; the formula OVERWRITES any existing content in the target cell; the WHOLE document is saved, which commits any unsaved edits the user has open in it; and the document is left open afterwards.' + PATH_BOUNDARY_NOTE,
|
|
23182
23184
|
inputSchema: {
|
|
23183
23185
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23184
23186
|
sheet: external_exports.string().describe("Sheet name"),
|
|
@@ -23209,7 +23211,7 @@ Computed value: ${result.computedValue}`,
|
|
|
23209
23211
|
registerTool(
|
|
23210
23212
|
"set-formulas-batch",
|
|
23211
23213
|
{
|
|
23212
|
-
description: "Use when: you need to write live formulas to multiple cells at once (each with 0-based row/col); more efficient than many set-formula calls. Requires explicit sheet and table.\nReturns: the number of formulas set and the sheet/table affected.\nDo not use when: writing plain computed values \u2014 use set-cells-batch; or setting a single formula \u2014 use set-formula.\nSafety: drives Numbers.app via AppleScript and requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; OVERWRITES any existing content in the targeted cells; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards.",
|
|
23214
|
+
description: "Use when: you need to write live formulas to multiple cells at once (each with 0-based row/col); more efficient than many set-formula calls. Requires explicit sheet and table.\nReturns: the number of formulas set and the sheet/table affected.\nDo not use when: writing plain computed values \u2014 use set-cells-batch; or setting a single formula \u2014 use set-formula.\nSafety: drives Numbers.app via AppleScript and requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; OVERWRITES any existing content in the targeted cells; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards." + PATH_BOUNDARY_NOTE,
|
|
23213
23215
|
inputSchema: {
|
|
23214
23216
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23215
23217
|
sheet: external_exports.string().describe("Sheet name"),
|
|
@@ -23267,7 +23269,7 @@ var cellStyleSchema = external_exports.object({
|
|
|
23267
23269
|
registerTool(
|
|
23268
23270
|
"set-cell-style",
|
|
23269
23271
|
{
|
|
23270
|
-
description: "Use when: you need to format one cell \u2014 font, text/background color, number format, alignment, text wrap \u2014 addressed by 0-based row/col. Requires explicit sheet and table.\nReturns: the styled cell and the sheet/table affected.\nDo not use when: styling many cells \u2014 use set-cells-style-batch; or writing a value/formula rather than formatting \u2014 use set-cell / set-formula.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards.",
|
|
23272
|
+
description: "Use when: you need to format one cell \u2014 font, text/background color, number format, alignment, text wrap \u2014 addressed by 0-based row/col. Requires explicit sheet and table.\nReturns: the styled cell and the sheet/table affected.\nDo not use when: styling many cells \u2014 use set-cells-style-batch; or writing a value/formula rather than formatting \u2014 use set-cell / set-formula.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards." + PATH_BOUNDARY_NOTE,
|
|
23271
23273
|
inputSchema: {
|
|
23272
23274
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23273
23275
|
sheet: external_exports.string().describe("Sheet name"),
|
|
@@ -23294,7 +23296,7 @@ registerTool(
|
|
|
23294
23296
|
registerTool(
|
|
23295
23297
|
"set-cells-style-batch",
|
|
23296
23298
|
{
|
|
23297
|
-
description: "Use when: you need to format multiple cells at once (each with 0-based row/col); more efficient than many set-cell-style calls. Requires explicit sheet and table.\nReturns: the number of cells styled and the sheet/table affected.\nDo not use when: styling a single cell \u2014 use set-cell-style; or writing values/formulas rather than formatting \u2014 use set-cells-batch / set-formulas-batch.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards.",
|
|
23299
|
+
description: "Use when: you need to format multiple cells at once (each with 0-based row/col); more efficient than many set-cell-style calls. Requires explicit sheet and table.\nReturns: the number of cells styled and the sheet/table affected.\nDo not use when: styling a single cell \u2014 use set-cell-style; or writing values/formulas rather than formatting \u2014 use set-cells-batch / set-formulas-batch.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards." + PATH_BOUNDARY_NOTE,
|
|
23298
23300
|
inputSchema: {
|
|
23299
23301
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23300
23302
|
sheet: external_exports.string().describe("Sheet name"),
|
|
@@ -23325,7 +23327,7 @@ registerTool(
|
|
|
23325
23327
|
registerTool(
|
|
23326
23328
|
"set-column-width",
|
|
23327
23329
|
{
|
|
23328
|
-
description: "Use when: you need to set a column's width in pixels, addressed by 0-based column index. Requires explicit sheet and table.\nReturns: the column index and the width applied.\nDo not use when: setting a row's height \u2014 use set-row-height.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards.",
|
|
23330
|
+
description: "Use when: you need to set a column's width in pixels, addressed by 0-based column index. Requires explicit sheet and table.\nReturns: the column index and the width applied.\nDo not use when: setting a row's height \u2014 use set-row-height.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards." + PATH_BOUNDARY_NOTE,
|
|
23329
23331
|
inputSchema: {
|
|
23330
23332
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23331
23333
|
sheet: external_exports.string().describe("Sheet name"),
|
|
@@ -23355,7 +23357,7 @@ registerTool(
|
|
|
23355
23357
|
registerTool(
|
|
23356
23358
|
"set-row-height",
|
|
23357
23359
|
{
|
|
23358
|
-
description: "Use when: you need to set a row's height in pixels, addressed by 0-based row index. Requires explicit sheet and table.\nReturns: the row index and the height applied.\nDo not use when: setting a column's width \u2014 use set-column-width.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards.",
|
|
23360
|
+
description: "Use when: you need to set a row's height in pixels, addressed by 0-based row index. Requires explicit sheet and table.\nReturns: the row index and the height applied.\nDo not use when: setting a column's width \u2014 use set-column-width.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards." + PATH_BOUNDARY_NOTE,
|
|
23359
23361
|
inputSchema: {
|
|
23360
23362
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23361
23363
|
sheet: external_exports.string().describe("Sheet name"),
|
|
@@ -23385,7 +23387,7 @@ registerTool(
|
|
|
23385
23387
|
registerTool(
|
|
23386
23388
|
"merge-cells",
|
|
23387
23389
|
{
|
|
23388
|
-
description: "Use when: you need to merge a rectangular range of cells into one, given 0-based inclusive top-left and bottom-right coordinates. Requires explicit sheet and table.\nReturns: the merged range and the sheet/table affected.\nDo not use when: undoing a merge \u2014 use unmerge-cells.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards. Merging keeps only the top-left cell's content and can DROP the values in the other cells of the range.",
|
|
23390
|
+
description: "Use when: you need to merge a rectangular range of cells into one, given 0-based inclusive top-left and bottom-right coordinates. Requires explicit sheet and table.\nReturns: the merged range and the sheet/table affected.\nDo not use when: undoing a merge \u2014 use unmerge-cells.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards. Merging keeps only the top-left cell's content and can DROP the values in the other cells of the range." + PATH_BOUNDARY_NOTE,
|
|
23389
23391
|
inputSchema: {
|
|
23390
23392
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23391
23393
|
sheet: external_exports.string().describe("Sheet name"),
|
|
@@ -23412,7 +23414,7 @@ registerTool(
|
|
|
23412
23414
|
registerTool(
|
|
23413
23415
|
"unmerge-cells",
|
|
23414
23416
|
{
|
|
23415
|
-
description: "Use when: you need to split a previously merged range back into individual cells, given 0-based inclusive top-left and bottom-right coordinates. Requires explicit sheet and table.\nReturns: the unmerged range and the sheet/table affected.\nDo not use when: creating a merge \u2014 use merge-cells.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards. Previously merged cells stay empty (the original non-top-left values are not restored).",
|
|
23417
|
+
description: "Use when: you need to split a previously merged range back into individual cells, given 0-based inclusive top-left and bottom-right coordinates. Requires explicit sheet and table.\nReturns: the unmerged range and the sheet/table affected.\nDo not use when: creating a merge \u2014 use merge-cells.\nSafety: drives Numbers.app via AppleScript \u2014 requires Numbers.app INSTALLED (it need not already be running) plus Automation permission. Opens the file in Numbers.app if it isn't open already, launching the app; modifies it in place; saves the WHOLE document, which commits any unsaved edits the user has open in it; and leaves the document open afterwards. Previously merged cells stay empty (the original non-top-left values are not restored)." + PATH_BOUNDARY_NOTE,
|
|
23416
23418
|
inputSchema: {
|
|
23417
23419
|
path: external_exports.string().describe("Path to the .numbers file"),
|
|
23418
23420
|
sheet: external_exports.string().describe("Sheet name"),
|
package/package.json
CHANGED