此 MCP 可以做什么
Reads and edits formula-backed workbook documents, validates formulas, recalculates dependent cells, and exports WorkPaper JSON.
工具
输入模式
{'type': 'object', 'properties': {'includeConfig': {'type': 'boolean', 'default': True, 'description': 'Include workbook configuration metadata in the exported JSON. Defaults to true.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['document', 'serializedBytes'], 'properties': {'document': {'type': 'object', 'description': 'Persisted WorkPaper JSON document.'}, 'sourcePath': {'type': 'string'}, 'serializedBytes': {'type': 'number'}}, 'additionalProperties': False}
输入模式
{'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}
输出模式
{'type': 'object', 'required': ['address', 'displayValue'], 'properties': {'address': {'type': 'string'}, 'displayValue': {'type': 'string'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['writable', 'sheets'], 'properties': {'sheets': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'dimensions'], 'properties': {'id': {'type': 'number'}, 'name': {'type': 'string'}, 'dimensions': {'type': 'object', 'description': 'Current used rows and columns for the sheet.'}}}}, 'writable': {'type': 'boolean', 'description': 'Whether set_cell_contents persists edits back to the source JSON file.'}, 'sourcePath': {'type': 'string', 'description': 'Absolute JSON file path when the server was started with --workpaper.'}}, 'additionalProperties': False}
输入模式
{'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}
输出模式
{'type': 'object', 'required': ['address', 'value', 'serialized', 'formula', 'displayValue', 'formulaDiagnostics'], 'properties': {'value': {'description': 'Calculated cell value.'}, 'address': {'type': 'string', 'description': 'Canonical sheet-qualified A1 address.'}, 'formula': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Formula text without losing the original calculated value context, or null for literal cells.'}, 'serialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'displayValue': {'type': 'string', 'description': 'Formatted value as a user would see it.'}, 'formulaDiagnostics': {'type': 'array', 'description': 'Structured formula diagnostics. Empty when the cell has no formula error.'}}, 'additionalProperties': False}
输入模式
{'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}
输出模式
{'type': 'object', 'required': ['range', 'values', 'serialized'], 'properties': {'range': {'type': 'string', 'description': 'Canonical A1 range including the sheet name.'}, 'values': {'type': 'array', 'description': 'Two-dimensional array of evaluated cell values.'}, 'serialized': {'type': 'array', 'description': 'Two-dimensional array of raw serialized cell contents, including formulas.'}}, 'additionalProperties': False}
输入模式
{'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}
输出模式
{'type': 'object', 'required': ['editedCell', 'before', 'after', 'restored', 'persistence', 'checks'], 'properties': {'after': {'type': 'object', 'required': ['address', 'value', 'serialized', 'formula', 'displayValue', 'formulaDiagnostics'], 'properties': {'value': {'description': 'Calculated cell value.'}, 'address': {'type': 'string', 'description': 'Canonical sheet-qualified A1 address.'}, 'formula': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Formula text without losing the original calculated value context, or null for literal cells.'}, 'serialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'displayValue': {'type': 'string', 'description': 'Formatted value as a user would see it.'}, 'formulaDiagnostics': {'type': 'array', 'description': 'Structured formula diagnostics. Empty when the cell has no formula error.'}}, 'additionalProperties': False}, 'before': {'type': 'object', 'required': ['address', 'value', 'serialized', 'formula', 'displayValue', 'formulaDiagnostics'], 'properties': {'value': {'description': 'Calculated cell value.'}, 'address': {'type': 'string', 'description': 'Canonical sheet-qualified A1 address.'}, 'formula': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Formula text without losing the original calculated value context, or null for literal cells.'}, 'serialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'displayValue': {'type': 'string', 'description': 'Formatted value as a user would see it.'}, 'formulaDiagnostics': {'type': 'array', 'description': 'Structured formula diagnostics. Empty when the cell has no formula error.'}}, 'additionalProperties': False}, 'checks': {'type': 'object', 'required': ['persisted', 'restoredMatchesAfter', 'previousSerialized', 'newSerialized'], 'properties': {'persisted': {'type': 'boolean'}, 'newSerialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'previousSerialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'restoredMatchesAfter': {'type': 'boolean', 'description': 'True when exported and re-imported JSON preserves the edited cell readback.'}}}, 'restored': {'type': 'object', 'required': ['address', 'value', 'serialized', 'formula', 'displayValue', 'formulaDiagnostics'], 'properties': {'value': {'description': 'Calculated cell value.'}, 'address': {'type': 'string', 'description': 'Canonical sheet-qualified A1 address.'}, 'formula': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Formula text without losing the original calculated value context, or null for literal cells.'}, 'serialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'displayValue': {'type': 'string', 'description': 'Formatted value as a user would see it.'}, 'formulaDiagnostics': {'type': 'array', 'description': 'Structured formula diagnostics. Empty when the cell has no formula error.'}}, 'additionalProperties': False}, 'editedCell': {'type': 'string', 'description': 'Canonical sheet-qualified address that was edited.'}, 'persistence': {'type': 'object', 'required': ['persisted', 'serializedBytes'], 'properties': {'path': {'type': 'string'}, 'persisted': {'type': 'boolean'}, 'serializedBytes': {'type': 'number'}}}}, 'additionalProperties': False}
输入模式
{'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}
输出模式
{'type': 'object', 'required': ['editedCell', 'readbackRange', 'before', 'after', 'beforeReadback', 'afterReadback', 'restoredReadback', 'persistence', 'checks'], 'properties': {'after': {'type': 'object', 'required': ['address', 'value', 'serialized', 'formula', 'displayValue', 'formulaDiagnostics'], 'properties': {'value': {'description': 'Calculated cell value.'}, 'address': {'type': 'string', 'description': 'Canonical sheet-qualified A1 address.'}, 'formula': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Formula text without losing the original calculated value context, or null for literal cells.'}, 'serialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'displayValue': {'type': 'string', 'description': 'Formatted value as a user would see it.'}, 'formulaDiagnostics': {'type': 'array', 'description': 'Structured formula diagnostics. Empty when the cell has no formula error.'}}, 'additionalProperties': False}, 'before': {'type': 'object', 'required': ['address', 'value', 'serialized', 'formula', 'displayValue', 'formulaDiagnostics'], 'properties': {'value': {'description': 'Calculated cell value.'}, 'address': {'type': 'string', 'description': 'Canonical sheet-qualified A1 address.'}, 'formula': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Formula text without losing the original calculated value context, or null for literal cells.'}, 'serialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'displayValue': {'type': 'string', 'description': 'Formatted value as a user would see it.'}, 'formulaDiagnostics': {'type': 'array', 'description': 'Structured formula diagnostics. Empty when the cell has no formula error.'}}, 'additionalProperties': False}, 'checks': {'type': 'object', 'required': ['persisted', 'readbackChanged', 'restoredReadbackMatchesAfter', 'previousSerialized', 'newSerialized'], 'properties': {'persisted': {'type': 'boolean'}, 'newSerialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'readbackChanged': {'type': 'boolean', 'description': 'True when the dependent readback values differ after the edit.'}, 'previousSerialized': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'null'}], 'description': 'Raw serialized cell content; formulas are strings that start with =.'}, 'restoredReadbackMatchesAfter': {'type': 'boolean', 'description': 'True when exported and re-imported JSON preserves the dependent readback range.'}}}, 'editedCell': {'type': 'string', 'description': 'Canonical sheet-qualified address that was edited.'}, 'persistence': {'type': 'object', 'required': ['persisted', 'serializedBytes'], 'properties': {'path': {'type': 'string'}, 'persisted': {'type': 'boolean'}, 'serializedBytes': {'type': 'number'}}}, 'afterReadback': {'type': 'object', 'required': ['range', 'values', 'serialized'], 'properties': {'range': {'type': 'string', 'description': 'Canonical A1 range including the sheet name.'}, 'values': {'type': 'array', 'description': 'Two-dimensional array of evaluated cell values.'}, 'serialized': {'type': 'array', 'description': 'Two-dimensional array of raw serialized cell contents, including formulas.'}}, 'additionalProperties': False}, 'readbackRange': {'type': 'string', 'description': 'Canonical sheet-qualified range read before and after the edit.'}, 'beforeReadback': {'type': 'object', 'required': ['range', 'values', 'serialized'], 'properties': {'range': {'type': 'string', 'description': 'Canonical A1 range including the sheet name.'}, 'values': {'type': 'array', 'description': 'Two-dimensional array of evaluated cell values.'}, 'serialized': {'type': 'array', 'description': 'Two-dimensional array of raw serialized cell contents, including formulas.'}}, 'additionalProperties': False}, 'restoredReadback': {'type': 'object', 'required': ['range', 'values', 'serialized'], 'properties': {'range': {'type': 'string', 'description': 'Canonical A1 range including the sheet name.'}, 'values': {'type': 'array', 'description': 'Two-dimensional array of evaluated cell values.'}, 'serialized': {'type': 'array', 'description': 'Two-dimensional array of raw serialized cell contents, including formulas.'}}, 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['formula'], 'properties': {'formula': {'type': 'string', 'description': 'Formula string including the leading =, for example =SUM(Inputs!B2:B4).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['formula', 'valid'], 'properties': {'valid': {'type': 'boolean'}, 'formula': {'type': 'string'}}, 'additionalProperties': False}
近期工具变更
类似的 MCP 服务器
AIOProductOS MCP
Combines customer records, support conversations, feedback, product analytics, roadmaps, tasks, experiments, releases, and retent…
Wakatime
Provides WakaTime coding-activity data, including durations, projects, commits, goals, heartbeats, editor usage, leaders, and use…
Timeapi Io
Provides timezone and date utilities, along with routed access to structured research and data sources.
roadflow
Creates and shares roadmap graphs, and manages structured model registers containing parameters, observations, formulas, dictiona…
DeskMonitor
Supports workforce attendance, timesheets, employee management, team hours, productivity reporting, workload alerts, approvals, a…
netcafe-docs
Extracts and validates data from PDFs, invoices, bank statements, tables, and CSVs; also supports web research, document conversi…
SumOffice — real Word and Excel for agents
Reads and edits Word documents and Excel workbooks while preserving document structure, formulas, macros, comments, tracked chang…
Ouro Tools
Creates charts and PDFs, extracts tables and webpage text, manages forms and feeds, and provides temporary document and webhook s…