bilig

Evaluate Bilig as an agent MCP workbook tool

Use this when an agent is about to drive a spreadsheet UI by screenshots or clicks. The narrower contract is better: list workbook tools, write one input cell, read the dependent formula output, export WorkPaper JSON, restart from the persisted file, and return proof.

One command

npm exec --package @bilig/workpaper@latest -- bilig-mcp-challenge --json

Expected proof

The current challenge prints this shape:

{
  "transport": "stdio-json-rpc",
  "serverName": "bilig-headless-workpaper",
  "tools": [
    "list_sheets",
    "read_range",
    "read_cell",
    "set_cell_contents",
    "get_cell_display_value",
    "export_workpaper_document",
    "validate_formula"
  ],
  "editedCell": "Inputs!B3",
  "dependentCell": "Summary!B3",
  "before": 60000,
  "after": 96000,
  "afterRestart": 96000,
  "displayValue": "96000",
  "persistence": {
    "persisted": true,
    "serializedBytes": 1162
  },
  "checks": {
    "listedFileBackedTools": true,
    "listedResourcesAndPrompts": true,
    "formulaValidationPassed": true,
    "dependentCellChanged": true,
    "persistedToDisk": true,
    "exportContainsWorkPaperDocument": true,
    "restartReadbackMatchesAfter": true,
    "displayValueRead": true
  },
  "verified": true,
  "star": "https://github.com/proompteng/bilig/stargazers",
  "watchReleases": "https://github.com/proompteng/bilig/subscription",
  "adoptionBlocker": "https://github.com/proompteng/bilig/discussions/new?category=general"
}

The exact byte count can change. The invariants are dependentCellChanged, persistedToDisk, restartReadbackMatchesAfter, and verified: true.

What this proves

What this does not prove

This does not prove arbitrary workbook compatibility, macros, pivots, charts, external links, unsupported formulas, or desktop Excel parity. It proves the agent tool contract: no screenshot truth, no blind write-only success, and no missing persistence proof.

After the proof