Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Export the current WorkPaper JSON document for persistence, review, or handoff to another agent. Does not write files by itself.
Include workbook configuration metadata in the exported JSON. Defaults to true.
Export the current WorkPaper JSON document for persistence, review, or handoff to another agent. Does not write files by itself.
| Argument | Type | Description |
|---|---|---|
| includeConfig | boolean | Include workbook configuration metadata in the exported JSON. Defaults to true. |
{
"type": "object",
"properties": {
"includeConfig": {
"type": "boolean",
"default": true,
"description": "Include workbook configuration metadata in the exported JSON. Defaults to true."
}
},
"additionalProperties": false
}Return the formatted display string for one cell. Use when an agent needs what a user would see, not the raw numeric value.
| Argument | Type | Description |
|---|---|---|
| address* | string | Single A1 cell address such as B3. |
| sheetName* | string | Existing sheet name. |
{
"type": "object",
"required": [
"sheetName",
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Single A1 cell address such as B3."
},
"sheetName": {
"type": "string",
"description": "Existing sheet name."
}
},
"additionalProperties": false
}Discover sheet names and used dimensions before reading or editing a WorkPaper. Returns metadata only; use read_range or read_cell for values.
No arguments.
{
"type": "object",
"additionalProperties": false
}Read one cell with calculated value, display text, formula text, formula diagnostics, and serialized content. Use after set_cell_contents to verify readback.
| Argument | Type | Description |
|---|---|---|
| address* | string | Single A1 cell address such as B3. |
| sheetName* | string | Existing sheet name. |
{
"type": "object",
"required": [
"sheetName",
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Single A1 cell address such as B3."
},
"sheetName": {
"type": "string",
"description": "Existing sheet name."
}
},
"additionalProperties": false
}Read calculated values plus serialized formulas/inputs for an A1 range. Use for audit readback after edits; use read_cell for one address.
| Argument | Type | Description |
|---|---|---|
| range* | string | A1 range such as Summary!A1:B5. If omitted from the range, pass sheetName separately. |
| sheetName | string | Default sheet name when range omits a sheet name, for example Summary. |
{
"type": "object",
"required": [
"range"
],
"properties": {
"range": {
"type": "string",
"description": "A1 range such as Summary!A1:B5. If omitted from the range, pass sheetName separately."
},
"sheetName": {
"type": "string",
"description": "Default sheet name when range omits a sheet name, for example Summary."
}
},
"additionalProperties": false
}Write raw content to one cell and recalculate dependents in memory only. Start with --writable when the edit should persist to JSON.
| Argument | Type | Description |
|---|---|---|
| value* | string | Raw cell content. Formula strings must start with =; plain strings are stored as literals. Strict MCP hosts such as Semantic Kernel require a single parameter type, so pass evaluated numbers/booleans as formulas such as =0.4 or =TRUE(). The server still accepts JSON number, boolean, or null arguments from clients that support them. |
| address* | string | Single A1 cell address such as B3. Ranges are not accepted. |
| sheetName* | string | Existing sheet name, for example Inputs. |
{
"type": "object",
"required": [
"sheetName",
"address",
"value"
],
"properties": {
"value": {
"type": "string",
"description": "Raw cell content. Formula strings must start with =; plain strings are stored as literals. Strict MCP hosts such as Semantic Kernel require a single parameter type, so pass evaluated numbers/booleans as formulas such as =0.4 or =TRUE(). The server still accepts JSON number, boolean, or null arguments from clients that support them."
},
"address": {
"type": "string",
"description": "Single A1 cell address such as B3. Ranges are not accepted."
},
"sheetName": {
"type": "string",
"description": "Existing sheet name, for example Inputs."
}
},
"additionalProperties": false
}Write raw content to one cell, recalculate dependents, read a dependent range in the same tool call, and return persistence proof. Use this for stateless MCP clients such as hosted Open WebUI integrations.
| Argument | Type | Description |
|---|---|---|
| value* | string | Raw cell content. Formula strings must start with =; plain strings are stored as literals. Strict MCP hosts require a single parameter type, so pass evaluated numbers/booleans as formulas such as =0.4 or =TRUE(). The server still accepts JSON number, boolean, or null arguments from clients that support them. |
| address* | string | Single A1 cell address to edit, such as B3. Ranges are not accepted. |
| sheetName* | string | Existing sheet name for the cell to edit, for example Inputs. |
| readbackRange* | string | Dependent A1 range to read before and after the edit, for example Summary!A1:B5. |
| readbackSheetName | string | Default sheet name when readbackRange omits a sheet name. |
{
"type": "object",
"required": [
"sheetName",
"address",
"value",
"readbackRange"
],
"properties": {
"value": {
"type": "string",
"description": "Raw cell content. Formula strings must start with =; plain strings are stored as literals. Strict MCP hosts require a single parameter type, so pass evaluated numbers/booleans as formulas such as =0.4 or =TRUE(). The server still accepts JSON number, boolean, or null arguments from clients that support them."
},
"address": {
"type": "string",
"description": "Single A1 cell address to edit, such as B3. Ranges are not accepted."
},
"sheetName": {
"type": "string",
"description": "Existing sheet name for the cell to edit, for example Inputs."
},
"readbackRange": {
"type": "string",
"description": "Dependent A1 range to read before and after the edit, for example Summary!A1:B5."
},
"readbackSheetName": {
"type": "string",
"description": "Default sheet name when readbackRange omits a sheet name."
}
},
"additionalProperties": false
}Validate formula syntax with the WorkPaper parser before writing it to a cell. This checks syntax only; use set_cell_contents plus readback to evaluate.
| Argument | Type | Description |
|---|---|---|
| formula* | string | Formula string including the leading =, for example =SUM(Inputs!B2:B4). |
{
"type": "object",
"required": [
"formula"
],
"properties": {
"formula": {
"type": "string",
"description": "Formula string including the leading =, for example =SUM(Inputs!B2:B4)."
}
},
"additionalProperties": false
}