Excel Agent Skills

25 Excel ops two ways: full server (all tool schemas in context) or minimal path (one short doc + runner). Token numbers measured; same capabilities, way less context when you need it.

logologo

Excel Agent Skills


  • 25 Excel ops (workbook/sheet/data/format/chart/pivot/validation). No Microsoft Excel required (openpyxl).
  • Two ways to run: full server (stdio/SSE/HTTP) with all tool schemas in context, or the minimal path (slate docs plus run/xl_cli.py or run/*.sh) where you only load one op doc and the runner's stdout.

Token numbers

Full (all 25 tools)Minimal (slate + runner)
Baseline~2379 tokens~446 total, ~18 per op
Example (3 ops)293 tokens~54 tokens

Minimal path uses about 5× fewer tokens for the tool surface in that scenario. Full surface = discoverability and full param docs; minimal = less context, deterministic, easier to debug. When to use which: notes/when-full-surface.md.

Full methodology, per-tool table, and how to reproduce: analysis/CONTEXT-REPORT.md.


Minimal path (slate + runners)

  • Python 3.10+. Paths must be absolute.
./run/create_workbook.sh /tmp/my.xlsx
./run/create_worksheet.sh /tmp/my.xlsx Sheet2
# or
python3 run/xl_cli.py create_workbook /path/to/file.xlsx
python3 run/xl_cli.py create_worksheet /path/to/file.xlsx Sheet2
  • Each op has a short doc in slate/*.md. The scripts in run/ (run/<op>.sh and run/xl_cli.py) use the same logic as the server, just no server process.

Full server

  • Runs over stdio, SSE, or streamable HTTP. See TOOLS.md for how to wire it up.

Operations (25 total)

create_workbookcreate_worksheet
get_workbook_metadatawrite_data_to_excel
read_data_from_excelformat_range
merge_cellsunmerge_cells
get_merged_cellsapply_formula
validate_formula_syntaxcreate_chart
create_pivot_tablecreate_table
copy_worksheetdelete_worksheet
rename_worksheetcopy_range
delete_rangevalidate_excel_range
get_data_validation_infoinsert_rows
insert_columnsdelete_sheet_rows
delete_sheet_columns

Layout

PathPurpose
slate/~18 tokens per op, one .md per tool
run/xl_cli.py + run/<op>.sh
analysis/token counts, baselines, CONTEXT-REPORT
notes/when full vs minimal makes sense