Spreadsheet File Context Protocol — semantic spreadsheet operations for LLMs
Three tools with basic descriptions and partial schemas. All tools have descriptions (10-20 chars baseline met), but parameter schemas lack depth. 'set' and 'fill' have reasonable descriptions; 'clear' is terse. Parameters are typed but lack detailed constraints, ranges, or format guidance. No output schemas documented. Error handling guidance absent. Tool names are verb-based (set, fill, clear) but lack specificity, 'set' could mean many things in spreadsheet context. No parameter descriptions visible in schema definitions.
Clear cell contents and optionally formatting. Can clear values only or values and formatting together.
Fill/drag cell value or formula in a direction. For formulas, uses openpyxl's Translator for safe reference shifting with support for absolute refs ($A$1), relative refs (A1), and cross-sheet refs.
Set a single cell value. Values starting with = are formulas. Numeric strings are converted to numbers. Quoted strings stay as text.
Parameter descriptions missing from schema definitions. CELL, VALUE, fmt, SRC, dir, count, to, until, RANGE, all parameters lack descriptions in the JSON Schema shown. LLMs cannot infer parameter meaning from names alone.
No output schemas documented. Tools return results but LLMs have no visibility into response structure, field names, or types. Downstream tool chaining and result extraction are blind.
No error handling guidance. Tools do not document what errors can occur, how to recover, or what the LLM should do next. E.g., 'set' on an invalid cell reference will fail silently to the agent.
Parameter constraints not specified. 'count' and 'to' in 'fill' lack min/max bounds. 'fmt' in 'set' lacks enum of valid aliases (currency2, percent, date, etc.). Free-form strings invite hallucinated values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Tool name 'set' is generic and ambiguous. In spreadsheet context, does it set a value, a formula, a format, or a range? 'set_cell_value' or 'update_cell' would be clearer and match verb_noun convention.