Server definition
- Hash
- sha256:204cf74380be16e70bb74b430c8762a994b3512f5e80810f219a3ef644a46f79
- What it is
- What a remote MCP server returned when asked what it offers: 8 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Export the current WorkPaper JSON document for persistence, review, or handoff to another agent. Does not write files by itself.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"includeConfig": {
"default": true,
"description": "Include workbook configuration metadata in the exported JSON. Defaults to true.",
"type": "boolean"
}
},
"type": "object"
},
"name": "export_workpaper_document",
"outputSchema": {
"additionalProperties": false,
"properties": {
"document": {
"description": "Persisted WorkPaper JSON document.",
"type": "object"
},
"serializedBytes": {
"type": "number"
},
"sourcePath": {
"type": "string"
}
},
"required": [
"document",
"serializedBytes"
],
"type": "object"
}
},
{
"description": "Return the formatted display string for one cell. Use when an agent needs what a user would see, not the raw numeric value.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Single A1 cell address such as B3.",
"type": "string"
},
"sheetName": {
"description": "Existing sheet name.",
"type": "string"
}
},
"required": [
"sheetName",
"address"
],
"type": "object"
},
"name": "get_cell_display_value",
"outputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"type": "string"
},
"displayValue": {
"type": "string"
}
},
"required": [
"address",
"displayValue"
],
"type": "object"
}
},
{
"description": "Discover sheet names and used dimensions before reading or editing a WorkPaper. Returns metadata only; use read_range or read_cell for values.",
"inputSchema": {
"additionalProperties": false,
"type": "object"
},
"name": "list_sheets",
"outputSchema": {
"additionalProperties": false,
"properties": {
"sheets": {
"items": {
"properties": {
"dimensions": {
"description": "Current used rows and columns for the sheet.",
"type": "object"
},
"id": {
"type": "number"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name",
"dimensions"
],
"type": "object"
},
"type": "array"
},
"sourcePath": {
"description": "Absolute JSON file path when the server was started with --workpaper.",
"type": "string"
},
"writable": {
"description": "Whether set_cell_contents persists edits back to the source JSON file.",
"type": "boolean"
}
},
"required": [
"writable",
"sheets"
],
"type": "object"
}
},
{
"description": "Read one cell with calculated value, display text, formula text, formula diagnostics, and serialized content. Use after set_cell_contents to verify readback.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Single A1 cell address such as B3.",
"type": "string"
},
"sheetName": {
"description": "Existing sheet name.",
"type": "string"
}
},
"required": [
"sheetName",
"address"
],
"type": "object"
},
"name": "read_cell",
"outputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Canonical sheet-qualified A1 address.",
"type": "string"
},
"displayValue": {
"description": "Formatted value as a user would see it.",
"type": "string"
},
"formula": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Formula text without losing the original calculated value context, or null for literal cells."
},
"formulaDiagnostics": {
"description": "Structured formula diagnostics. Empty when the cell has no formula error.",
"type": "array"
},
"serialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"value": {
"description": "Calculated cell value."
}
},
"required": [
"address",
"value",
"serialized",
"formula",
"displayValue",
"formulaDiagnostics"
],
"type": "object"
}
},
{
"description": "Read calculated values plus serialized formulas/inputs for an A1 range. Use for audit readback after edits; use read_cell for one address.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"range": {
"description": "A1 range such as Summary!A1:B5. If omitted from the range, pass sheetName separately.",
"type": "string"
},
"sheetName": {
"description": "Default sheet name when range omits a sheet name, for example Summary.",
"type": "string"
}
},
"required": [
"range"
],
"type": "object"
},
"name": "read_range",
"outputSchema": {
"additionalProperties": false,
"properties": {
"range": {
"description": "Canonical A1 range including the sheet name.",
"type": "string"
},
"serialized": {
"description": "Two-dimensional array of raw serialized cell contents, including formulas.",
"type": "array"
},
"values": {
"description": "Two-dimensional array of evaluated cell values.",
"type": "array"
}
},
"required": [
"range",
"values",
"serialized"
],
"type": "object"
}
},
{
"description": "Write raw content to one cell and recalculate dependents in memory only. Start with --writable when the edit should persist to JSON.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Single A1 cell address such as B3. Ranges are not accepted.",
"type": "string"
},
"sheetName": {
"description": "Existing sheet name, for example Inputs.",
"type": "string"
},
"value": {
"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.",
"type": "string"
}
},
"required": [
"sheetName",
"address",
"value"
],
"type": "object"
},
"name": "set_cell_contents",
"outputSchema": {
"additionalProperties": false,
"properties": {
"after": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Canonical sheet-qualified A1 address.",
"type": "string"
},
"displayValue": {
"description": "Formatted value as a user would see it.",
"type": "string"
},
"formula": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Formula text without losing the original calculated value context, or null for literal cells."
},
"formulaDiagnostics": {
"description": "Structured formula diagnostics. Empty when the cell has no formula error.",
"type": "array"
},
"serialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"value": {
"description": "Calculated cell value."
}
},
"required": [
"address",
"value",
"serialized",
"formula",
"displayValue",
"formulaDiagnostics"
],
"type": "object"
},
"before": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Canonical sheet-qualified A1 address.",
"type": "string"
},
"displayValue": {
"description": "Formatted value as a user would see it.",
"type": "string"
},
"formula": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Formula text without losing the original calculated value context, or null for literal cells."
},
"formulaDiagnostics": {
"description": "Structured formula diagnostics. Empty when the cell has no formula error.",
"type": "array"
},
"serialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"value": {
"description": "Calculated cell value."
}
},
"required": [
"address",
"value",
"serialized",
"formula",
"displayValue",
"formulaDiagnostics"
],
"type": "object"
},
"checks": {
"properties": {
"newSerialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"persisted": {
"type": "boolean"
},
"previousSerialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"restoredMatchesAfter": {
"description": "True when exported and re-imported JSON preserves the edited cell readback.",
"type": "boolean"
}
},
"required": [
"persisted",
"restoredMatchesAfter",
"previousSerialized",
"newSerialized"
],
"type": "object"
},
"editedCell": {
"description": "Canonical sheet-qualified address that was edited.",
"type": "string"
},
"persistence": {
"properties": {
"path": {
"type": "string"
},
"persisted": {
"type": "boolean"
},
"serializedBytes": {
"type": "number"
}
},
"required": [
"persisted",
"serializedBytes"
],
"type": "object"
},
"restored": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Canonical sheet-qualified A1 address.",
"type": "string"
},
"displayValue": {
"description": "Formatted value as a user would see it.",
"type": "string"
},
"formula": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Formula text without losing the original calculated value context, or null for literal cells."
},
"formulaDiagnostics": {
"description": "Structured formula diagnostics. Empty when the cell has no formula error.",
"type": "array"
},
"serialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"value": {
"description": "Calculated cell value."
}
},
"required": [
"address",
"value",
"serialized",
"formula",
"displayValue",
"formulaDiagnostics"
],
"type": "object"
}
},
"required": [
"editedCell",
"before",
"after",
"restored",
"persistence",
"checks"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Single A1 cell address to edit, such as B3. Ranges are not accepted.",
"type": "string"
},
"readbackRange": {
"description": "Dependent A1 range to read before and after the edit, for example Summary!A1:B5.",
"type": "string"
},
"readbackSheetName": {
"description": "Default sheet name when readbackRange omits a sheet name.",
"type": "string"
},
"sheetName": {
"description": "Existing sheet name for the cell to edit, for example Inputs.",
"type": "string"
},
"value": {
"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.",
"type": "string"
}
},
"required": [
"sheetName",
"address",
"value",
"readbackRange"
],
"type": "object"
},
"name": "set_cell_contents_and_readback",
"outputSchema": {
"additionalProperties": false,
"properties": {
"after": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Canonical sheet-qualified A1 address.",
"type": "string"
},
"displayValue": {
"description": "Formatted value as a user would see it.",
"type": "string"
},
"formula": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Formula text without losing the original calculated value context, or null for literal cells."
},
"formulaDiagnostics": {
"description": "Structured formula diagnostics. Empty when the cell has no formula error.",
"type": "array"
},
"serialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"value": {
"description": "Calculated cell value."
}
},
"required": [
"address",
"value",
"serialized",
"formula",
"displayValue",
"formulaDiagnostics"
],
"type": "object"
},
"afterReadback": {
"additionalProperties": false,
"properties": {
"range": {
"description": "Canonical A1 range including the sheet name.",
"type": "string"
},
"serialized": {
"description": "Two-dimensional array of raw serialized cell contents, including formulas.",
"type": "array"
},
"values": {
"description": "Two-dimensional array of evaluated cell values.",
"type": "array"
}
},
"required": [
"range",
"values",
"serialized"
],
"type": "object"
},
"before": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Canonical sheet-qualified A1 address.",
"type": "string"
},
"displayValue": {
"description": "Formatted value as a user would see it.",
"type": "string"
},
"formula": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Formula text without losing the original calculated value context, or null for literal cells."
},
"formulaDiagnostics": {
"description": "Structured formula diagnostics. Empty when the cell has no formula error.",
"type": "array"
},
"serialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"value": {
"description": "Calculated cell value."
}
},
"required": [
"address",
"value",
"serialized",
"formula",
"displayValue",
"formulaDiagnostics"
],
"type": "object"
},
"beforeReadback": {
"additionalProperties": false,
"properties": {
"range": {
"description": "Canonical A1 range including the sheet name.",
"type": "string"
},
"serialized": {
"description": "Two-dimensional array of raw serialized cell contents, including formulas.",
"type": "array"
},
"values": {
"description": "Two-dimensional array of evaluated cell values.",
"type": "array"
}
},
"required": [
"range",
"values",
"serialized"
],
"type": "object"
},
"checks": {
"properties": {
"newSerialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"persisted": {
"type": "boolean"
},
"previousSerialized": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Raw serialized cell content; formulas are strings that start with =."
},
"readbackChanged": {
"description": "True when the dependent readback values differ after the edit.",
"type": "boolean"
},
"restoredReadbackMatchesAfter": {
"description": "True when exported and re-imported JSON preserves the dependent readback range.",
"type": "boolean"
}
},
"required": [
"persisted",
"readbackChanged",
"restoredReadbackMatchesAfter",
"previousSerialized",
"newSerialized"
],
"type": "object"
},
"editedCell": {
"description": "Canonical sheet-qualified address that was edited.",
"type": "string"
},
"persistence": {
"properties": {
"path": {
"type": "string"
},
"persisted": {
"type": "boolean"
},
"serializedBytes": {
"type": "number"
}
},
"required": [
"persisted",
"serializedBytes"
],
"type": "object"
},
"readbackRange": {
"description": "Canonical sheet-qualified range read before and after the edit.",
"type": "string"
},
"restoredReadback": {
"additionalProperties": false,
"properties": {
"range": {
"description": "Canonical A1 range including the sheet name.",
"type": "string"
},
"serialized": {
"description": "Two-dimensional array of raw serialized cell contents, including formulas.",
"type": "array"
},
"values": {
"description": "Two-dimensional array of evaluated cell values.",
"type": "array"
}
},
"required": [
"range",
"values",
"serialized"
],
"type": "object"
}
},
"required": [
"editedCell",
"readbackRange",
"before",
"after",
"beforeReadback",
"afterReadback",
"restoredReadback",
"persistence",
"checks"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"formula": {
"description": "Formula string including the leading =, for example =SUM(Inputs!B2:B4).",
"type": "string"
}
},
"required": [
"formula"
],
"type": "object"
},
"name": "validate_formula",
"outputSchema": {
"additionalProperties": false,
"properties": {
"formula": {
"type": "string"
},
"valid": {
"type": "boolean"
}
},
"required": [
"formula",
"valid"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:204cf74380be16e70bb74b430c8762a994b3512f5e80810f219a3ef644a46f79 | sha256sum