GRID Agent Tools

is.grid由 grid.is 發布v0.5.0更新於 Oct 30, 2026

無需 Excel,即可在無介面環境下載入、讀取、編輯並重新計算 .xlsx 工作簿。

AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。

原文描述

Load, read, edit, and recalculate .xlsx workbooks headlessly — no Excel required.

已驗證STDIO僅桌面資料與分析

概覽

GRID Agent Tools 的本機 MCP 服務,由 grid.is 發布;無需登入;STDIO;28 個工具。

暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。

發布者
grid.is

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 GRID Agent Tools,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

工具

28

loadWorkbook

Load an .xlsx file into memory and make it the active workbook. A session starts with this or createWorkbook. Returns the sheet names.

輸入參數path必填

createWorkbook

Create a blank single-sheet workbook in memory and make it the active workbook. Nothing is written to disk until saveWorkbook.

輸入參數path必填

saveWorkbook

Save the active workbook to an .xlsx file. Provide a new path, or set overwrite: true to write over an existing file (including the source).

輸入參數pathoverwrite

listWorkbooks

List all loaded workbooks and their sheet names.

無需輸入參數。

selectWorkbook

Make a previously loaded workbook the active one for all other spreadsheet tools. Switching keeps in-memory state, so unsaved edits survive. Use listWorkbooks to see what is loaded; use loadWorkbook to (re)load from disk.

輸入參數path必填

describeStructure

Analyzes the spreadsheet and returns a structured description of all data regions, headers, and labels. This helps you understand: - Where data tables are located (islands/regions) - Which rows are headers vs data - Column and row labels for each data region - Sheet names and their contents - Whether iterative calculation is on (needed for intentional circular references) Labels are limited to 50 per sheet. Use totalLabels to check if more exist, and labelOffset to paginate. Use this information to write accurate formulas that reference the correct cells and ranges.

輸入參數sheetslabelOffset

readCalculatedValues

Read cell values, formula results, and lookups from spreadsheets, and optionally apply temporary values for what-if calculations. The 'read' array accepts cell references, ranges, and formulas. Use formulas like XLOOKUP, QUERY, AVERAGE, etc. directly in 'read' to find and compute values in a single call. Examples: - Read cells: { "read": ["A1", "B1:B10", "Sheet2!C5"] } - Lookup: { "read": ["=XLOOKUP(\"Revenue\", A1:A10, B1:B10)"] } - Filtered average: { "read": ["=QUERY(Sheet1!A1:D100, \"SELECT AVG(D) WHERE A = 'Category1'\")"] } - What-if: { "read": ["C8"], "apply": [{ "cell": "B1", "value": 100 }] } Large ranges are automatically truncated. When a range entry is truncated the response includes `nextOffset` — call again with `cursors: { "<same expression>": <nextOffset> }` to read the next page.

輸入參數read必填applycursors

editCells

Permanently write values or formulas to cells. Merge or unmerge cells. IMPORTANT: After editing, you MUST call readCalculatedValues to see the resulting changes. The tool returns a delta showing changes, but you should verify formulas propagated correctly. Writing text over a cell that held a number or date is reported in `warnings` (level "high" or "low"). A "high" warning usually means a real value was turned into a text string that only looks the same — write the value itself, not its displayed text. Examples: - Set value: { "apply": [{ "target": "A1", "value": 100 }], "note": "Set initial value" } - Set formula: { "apply": [{ "target": "B1", "value": "=A1*2" }], "note": "Add formula" } - With style: { "apply": [{ "target": "A1", "value": 100, "styleIndex": 0 }], "styles": [{ "bold": true }], "note": "Bold value" } - Merge cells: { "apply": [], "merge": ["A1:B2"], "note": "Merge header" } - Unmerge: { "apply": [], "unmerge": ["A1:B2"], "note": "Unmerge cells" } Formulas must start with "=". Values are auto-detected as number, boolean, or string.

輸入參數noteapply必填mergestylesunmerge

fillCells

Extend a selection by filling cells with auto-detected patterns (numbers, dates, formulas). Similar to Excel's fill handle - detects sequences and continues them. Fill direction is inferred from selection and extend_to: the dimension that changes determines the fill axis. IMPORTANT: After filling, you MUST call editCellStyles to apply formatting to the filled cells. Examples: - Fill down: { "sheet": "Sheet1", "selection": "A1:A3", "extend_to": "A1:A10", "note": "Extend series" } - Fill right: { "sheet": "Sheet1", "selection": "A1:C1", "extend_to": "A1:F1", "note": "Extend headers" } - Fill up: { "sheet": "Sheet1", "selection": "A8:B10", "extend_to": "A1:B10", "note": "Extend upward" }

輸入參數notesheet必填extend_to必填selection必填

editCellStyles

Apply formatting styles to cells without changing values. IMPORTANT: After using fillCells, you MUST call this to apply formatting to the filled range.

輸入參數noteapply必填sheet必填

manageSheets

Add, remove, rename, or change visibility of sheets. Operations are executed in order: add → rename → setVisibility → remove.

輸入參數addnoteremoverenamesetVisibility

manageRowsAndColumns

Insert, delete, or auto-size rows and columns. Operations are executed in order: column insert → column delete → row insert → row delete → column autosize → row autosize.

輸入參數noterowssheet必填columns

runFormula

Run one or more formulas without writing to any cell. Returns the calculated results. Useful for testing formulas or computing values without modifying the workbook. Examples: - Single: { "formula": "=SUM(A1:A10)" } - Batch: { "formulas": ["=SUM(A1:A10)", "=AVERAGE(B1:B10)", "=COUNT(C1:C10)"] } - With temp values: { "formula": "=A1*B1", "apply": [{ "cell": "A1", "value": 5 }] } - Against a specific sheet: { "formula": "=SUM(A:A)", "sheet": "Sheet2" } Use "formulas" array to test multiple formulas in one call (more efficient than multiple calls). Bare cell references (e.g. A1, SUM(A:A)) resolve against the primary workbook's first sheet by default. Use the "sheet" parameter when you need them to resolve against a different sheet. The response includes a "_note" field identifying the sheet bare references resolved against, so you can verify they resolved where you intended. Sheets in external (linked) workbooks can be read with workbook-qualified references inside the formula itself, e.g. ='[external.xlsx]Sheet1'!A1. If an external sheet shares its name with a sheet in the primary workbook, the primary workbook's sheet always wins for plain references — only the workbook-qualified form reaches the external one.

輸入參數applysheetformulaformulas

goalSeek

Find the input value needed to achieve a target result (like Excel's Goal Seek). Iteratively adjusts the control cell until the target cell reaches the desired value.

輸入參數write必填persistgoalSeek必填

whatIf

Test hypothetical value changes and see which formula cells are affected. Applies temporary changes, recalculates, shows before/after diff of affected formula cells, then restores the original state. A string value starting with "=" is applied as a temporary formula. Max 20 changes, max 100 affected cells reported. Example: { "changes": { "A1": 50, "B1": "=A1*2" } }

輸入參數changes必填

getStyles

Get the workbook's style definitions. Returns styles where each index corresponds to a style_index in cell data. Use this to understand what formatting (colors, fonts, borders, etc.) is applied to cells. If no indices are provided, returns all styles as an array. If indices are provided, returns only those styles as an object keyed by index.

輸入參數indices

getComment

Read the full text of the comment or note on a specific cell, including all replies for threaded comments. Returns kind="none" if the cell has neither. Use after `getComments` to see the body of an entry whose preview was truncated, or when an agent message refers to a specific cell with a TODO/question on it.

輸入參數address必填

getComments

List the cells in the workbook that have a comment or note attached, with author, kind (threaded comment vs. legacy note), reply count, and a short text preview. Comments are how a reviewer flags TODOs, justifies a number, or asks a question on a specific cell — read them when auditing, debugging, or completing a partly-built workbook. Returns up to 25 entries; pass `offset` to page. Use `getComment` to read the full text or thread for a specific cell.

輸入參數sheetoffset

dependents

Trace downstream dependents — the cells that read from a given cell, transitively. Default mode 'grouped': cells sharing a formula pattern are collapsed into labeled chunks, labeled from nearby headers. This provides a token-efficient structural view that shows how values flow from parameters through intermediate calculations to outputs. Switch to mode: "cells" to drill into individual cells: each node carries the formula, value, and error of the dependent cell so you can see exactly how a value propagates through the sheet. When a formula uses a range, Apiary resolves range containment internally; the dependent formula appears as a direct child of the queried cell rather than via an intermediate range node. "grouped" response shape — each node carries: - type: "output" (computed, no dependents), "inter" (computed, has dependents), "data" (value range), "param" (single value cell) - labels: human-readable names derived from nearby headers - formula: the formula pattern for this chunk (with relative references) - rootHeight: dependency distance from graph roots (parameters/data) - leafDepth: dependency distance from graph leaves (outputs) - dependents: dict of downstream chunk nodes keyed by their ref (omitted for terminal outputs) - alreadyVisited: true when this chunk was expanded elsewhere in the tree (diamond/cycle cut) - truncated: present when traversal stopped early; reason is "maxDepth" or "maxNodes"; totalChildren reports the real count when children were cut short "cells" response shape — each node carries: - kind: "cell" or "name" - formula: the formula string, or null for value cells - value: the calculated value - errorValue: present only when the cell evaluates to a formula error - dependents: a dict of child nodes keyed by their own ref (omitted for leaves with no downstream consumers) - alreadyVisited: true when this node has been fully expanded elsewhere in the tree (diamond/cycle cut) - truncated: present when traversal stopped early; reason is "

輸入參數modemaxDepthmaxNodesreference必填

precedents

Trace upstream dependencies — the cells a formula reads from, transitively. Default mode 'grouped': cells sharing a formula pattern are collapsed into labeled chunks, labeled from nearby headers. This provides a token-efficient structural view that surfaces which parameters feed into which outputs. Switch to mode: "cells" to drill into individual cells: each node carries the formula, calculated value, and error (e.g. #DIV/0!) so you can follow error propagation to its source. Ranges referenced by formulas appear as 'range' nodes. If every range member is a leaf value cell, the range is collapsed into a single node with no further children. "grouped" response shape — each node carries: - type: "output" (computed, no dependents), "inter" (computed, has dependents), "data" (value range), "param" (single value cell) - labels: human-readable names derived from nearby headers - formula: the formula pattern for this chunk (with relative references) - rootHeight: dependency distance from graph roots (parameters/data) - leafDepth: dependency distance from graph leaves (outputs) - precedents: dict of upstream chunk nodes keyed by their ref (omitted for leaves) - alreadyVisited: true when this chunk was expanded elsewhere in the tree (diamond/cycle cut) - truncated: present when traversal stopped early; reason is "maxDepth" or "maxNodes"; totalChildren reports the real count when children were cut short "cells" response shape — each node carries: - kind: "cell", "range", or "name" - formula: the formula string, or null for value cells and range vertices - value: the calculated value (cell and name nodes) - errorValue: present only when the cell evaluates to a formula error - precedents: a dict of child nodes keyed by their own ref (omitted for leaves) - alreadyVisited: true when this node has been fully expanded elsewhere in the tree (diamond/cycle cut) - truncated: present when traversal stopped early; reason is "maxDepth" or "maxNodes"; totalChildren reports the real coun

輸入參數modemaxDepthmaxNodesreference必填

inspect

Inspect detailed per-cell information including value, formula, number format, style, and hyperlink. Returns up to 20 cells per call. When the range is larger, the response is truncated and includes `nextOffset` — call again with the same `reference` and `offset: <nextOffset>` to continue. Examples: - Single cell: { "reference": "A1" } - Range: { "reference": "B2:C5" } - Cross-sheet: { "reference": "Sheet2!A1" } - Next page: { "reference": "A1:K10", "offset": 20 }

輸入參數offsetreference必填

listErrors

List all formula errors and model errors in a workbook, grouped by error, detail and origin (the cell where the error arose). Errors saved in the file are recalculated to find their origin and detail. Results are scoped to a sheet or range when provided, and truncated per group when the default cell limit is exceeded.

輸入參數maxrangesheet

symbols

Get workbook structural metadata: sheet dimensions, named ranges, tables, and dependency graph stats. Complements describeStructure (which provides labels and data regions) with structural/entity information. Use this to understand the workbook's overall shape before inspecting specific cells.

無需輸入參數。

viewRange

Render a worksheet rectangle as a compact text grid — by default the displayed (number-formatted) values, what a human sees in the cells — with column letters and row numbers. Use this FIRST to scan or orient in an area (a financial statement, a block, a table): one call returns the whole rectangle instead of reading it cell-by-cell. Pass `show` to audit other layers of the same grid: raw unformatted values, a style property ('-' marks unset cells), or the formula structure — formula cells get a legend key, identical fills share one key, so a miscolored cell, a wrong format, or a hardcoded override stands out against the value grid you just read. For precedents/dependents or error provenance, use `inspect`. Returns at most 500 cells; a larger rectangle marks the cut with *** TRUNCATED *** and ends with a note naming the rows or columns that remain — request those in a follow-up call. Examples: - Range: { "reference": "B40:N80" } - Sheet-qualified: { "reference": "'LBO Model'!B40:N80" } - Single cell: { "reference": "C12" } - Font colors: { "reference": "B40:N80", "show": "fontColor" } - Formula structure: { "reference": "B40:N80", "show": "formula" }

輸入參數showreference必填

findCells

Search for cells matching specified criteria within a sheet or range. Returns up to 200 matches. Use matchMode to control whether all criteria must match (AND, default) or any (OR). Range iteration is limited to 10,000 cells — use sheet scope for larger searches.

輸入參數rangesheetfillColorfontColormatchModehasFormulavalueWithinvalueContainsformulaContains

captureRange

Render a range as a PNG image and return its raw bytes (Uint8Array). Use this when the formatting itself is the information — fills, font colors, borders, merged cells, number formats — that the text-grid tools (viewRange) can't convey, or when the user asks to *see* part of the workbook. The bytes are ready to attach to a multimodal message or write to a file; this tool does no LLM wiring itself. Gridlines and row/column headers render as Excel shows them. Renders against the browser's native canvas when available, and skia-canvas in Node.

輸入參數scaleheadersreference必填

generateWorkbookContext

Generate a comprehensive natural-language description of the active workbook: sheet structures, data regions, labels, and relationships. More detailed than describeStructure.

無需輸入參數。

executeOfficeJs

Execute an Office.js code snippet directly against the active workbook. Returns any error plus the list of Office.js APIs the code used that are not yet implemented. Edits synced before a script error remain applied.

輸入參數code必填

版本歷史

1
  1. v0.5.0最新Oct 23, 2026

評分

已滿足適用檢查項的 65%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。