proompteng avatar

Bilig WorkPaper

proompteng/bilig

Brings formula-backed workbook logic into your MCP workflow without launching Excel or scraping a UI. You get tools to read cell values, edit inputs, recalculate formulas, and serialize the entire model to JSON so state persists across sessions. The underlying Bilig engine catches stale cached formula values that SheetJS and ExcelJS leave behind, then recomputes them in Node. Reach for this when your agent needs to own a pricing sheet, approval workbook, or quote calculator and you want exact cell addresses plus reliable readback instead of passing XLSX files around. Supports both stdio and streamable HTTP transports, so you can run it locally or expose it as a remote service.

GitHub stars
35
tools
8
transport
STDIO, HTTP
last updated
Oct 4, 2026

Install

From registry metadata
$ npx add-mcp https://bilig.proompteng.ai/mcp --name bilig-workpaper

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http bilig-workpaper https://bilig.proompteng.ai/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 8 tools

Verified live against the running server on Nov 6, 2026.

list_sheetsDiscover sheet names and used dimensions before reading or editing a WorkPaper. Returns metadata only; use read_range or read_cell for values.

Discover sheet names and used dimensions before reading or editing a WorkPaper. Returns metadata only; use read_range or read_cell for values.

No parameters. Call it with no arguments.

read_rangeRead calculated values plus serialized formulas/inputs for an A1 range. Use for audit readback after edits; use read_cell for one address.2 params

Read calculated values plus serialized formulas/inputs for an A1 range. Use for audit readback after edits; use read_cell for one address.

Parameters* required
range*string
A1 range such as Summary!A1:B5. If omitted from the range, pass sheetName separately.
sheetNamestring
Default sheet name when range omits a sheet name, for example Summary.
read_cellRead one cell with calculated value, display text, formula text, formula diagnostics, and serialized content. Use after set_cell_contents to verify readback.2 params

Read one cell with calculated value, display text, formula text, formula diagnostics, and serialized content. Use after set_cell_contents to verify readback.

Parameters* required
address*string
Single A1 cell address such as B3.
sheetName*string
Existing sheet name.
set_cell_contentsWrite raw content to one cell and recalculate dependents in memory only. Start with --writable when the edit should persist to JSON.3 params

Write raw content to one cell and recalculate dependents in memory only. Start with --writable when the edit should persist to JSON.

Parameters* required
address*string
Single A1 cell address such as B3. Ranges are not accepted.
sheetName*string
Existing sheet name, for example Inputs.
value*string
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/boolea...
set_cell_contents_and_readbackWrite 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.5 params

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.

Parameters* required
address*string
Single A1 cell address to edit, such as B3. Ranges are not accepted.
readbackRange*string
Dependent A1 range to read before and after the edit, for example Summary!A1:B5.
readbackSheetNamestring
Default sheet name when readbackRange omits a sheet name.
sheetName*string
Existing sheet name for the cell to edit, for example Inputs.
value*string
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 =...
get_cell_display_valueReturn the formatted display string for one cell. Use when an agent needs what a user would see, not the raw numeric value.2 params

Return the formatted display string for one cell. Use when an agent needs what a user would see, not the raw numeric value.

Parameters* required
address*string
Single A1 cell address such as B3.
sheetName*string
Existing sheet name.
export_workpaper_documentExport the current WorkPaper JSON document for persistence, review, or handoff to another agent. Does not write files by itself.1 params

Export the current WorkPaper JSON document for persistence, review, or handoff to another agent. Does not write files by itself.

Parameters* required
includeConfigboolean
Include workbook configuration metadata in the exported JSON. Defaults to true.default: true
validate_formulaValidate formula syntax with the WorkPaper parser before writing it to a cell. This checks syntax only; use set_cell_contents plus readback to evaluate.1 params

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.

Parameters* required
formula*string
Formula string including the leading =, for example =SUM(Inputs!B2:B4).

Sponsors

Readme

Bilig

CI npm Node.js OpenSSF Scorecard License: MIT

Keep the workbook model. Run the rule in Node.

Bilig is a TypeScript-native, headless WorkPaper runtime for Node.js services, tests, and AI agents. Set inputs, recalculate formulas, read computed outputs, persist WorkPaper JSON, restore it, and verify the result—without driving Excel or a browser grid.

Docs · Quick start · TypeScript API · MCP · Examples · Discussions


View the full README on GitHub

Details

Repository
github.com/proompteng/bilig
Category
Data & Analytics
Package
@bilig/workpaper
Transport
STDIO, HTTP
Registry
MCP registry, active
Resources
4
Prompts
2
Tools verified
Nov 6, 2026

Related Data & Analytics MCP servers

View all
1kirbah avatarYouTube Datakirbah/mcp-youtubeYouTube MCP server for token-optimized, structured data using the YouTube Data API v3.33stars
2nirholas avatarDeFi Trading Agentsnirholas/defi-agentsDeFi agent definitions JSON API - crypto trading portfolio management bots32stars
3pixelx-jp avatarPlateau Creative Mcppixelx-jp/plateau-creative-mcpPLATEAU 3D city data as scene-editing and glTF export tools for creative LLM agents.29stars
4roomi-fields avatarRTFMroomi-fields/rtfmLocal retrieval for AI agents: index code, docs, PDFs, data in SQLite; 24 parsers, served via MCP.27stars
5xt765 avatarMCP Document Readerxt765/mcp_documents_readerAn MCP enabled multi-format document reader supporting DOCX, PDF, TXT, and Excel files21stars
6kirbah avatarKirbah Mcp Youtubekirbah/mcp-youtubeProvide token-optimized, structured YouTube data to enhance your LLM applications. Access efficien…19stars