Skip to main content
Glama

Server Details

Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
proompteng/bilig
GitHub Stars
30
Server Listing
Bilig WorkPaper

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 8 of 8 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct operation: export the whole document, read individual cells/ranges, write cells, validate formulas, and list sheets. No overlap in purpose prevents agent confusion.

Naming Consistency5/5

All tool names use consistent snake_case with a verb_noun pattern (e.g., export_workpaper_document, set_cell_contents). The pattern is uniform and predictable, making it easy for agents to infer functionality.

Tool Count5/5

With 8 tools, the set covers essential operations for working with a WorkPaper (read, write, validate, export, list sheets) without being too few or overly numerous. The count is well-scoped for the domain.

Completeness4/5

The tool set provides core CRUD-like functionality for cells and sheets, plus validation and export. A minor gap is the lack of a tool to create a new WorkPaper document, but the server likely operates on an existing document.

Available Tools

8 tools
export_workpaper_documentExport WorkPaper DocumentA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
includeConfigNoInclude workbook configuration metadata in the exported JSON. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentYesPersisted WorkPaper JSON document.
sourcePathNo
serializedBytesYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive nature. Description adds that the tool does not write files, reinforcing the read-only behavior and providing additional context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each serving a distinct purpose: stating the action and clarifying a key behavior. No redundancy or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple export tool with one boolean parameter and output schema, the description covers purpose and a critical behavioral constraint (no file writing), making it fully informative without excess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single boolean parameter, so description does not need to add semantics. It does not mention the parameter, which is acceptable given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb (export), resource (WorkPaper JSON document), and purpose (persistence, review, handoff). Distinguishes from file-writing tools via explicit clarification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use (persistence, review, handoff) and what it does not do (write files). Lacks explicit exclusions or alternatives, but siblings are sufficiently distinct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cell_display_valueGet WorkPaper Cell Display ValueA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSingle A1 cell address such as B3.
sheetNameYesExisting sheet name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYes
displayValueYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by specifying the output is a formatted display string, which goes beyond annotations. However, it does not detail potential error conditions or edge cases, which would elevate transparency further.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence stating the core function followed immediately by usage guidance. No wasted words; every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool, the rich annotations (readOnlyHint, idempotentHint, destructiveHint), and the existence of an output schema, the description provides the essential information: what it does and when to use it. No additional details are necessary for complete contextual understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for both parameters ('address' and 'sheetName'). The description does not add additional meaning to the parameters beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Return' and the resource 'formatted display string for one cell'. It distinguishes this from sibling read_cell by specifying it returns the user-perceived value, not the raw numeric value, which is a clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to use this tool: 'Use when an agent needs what a user would see, not the raw numeric value.' This provides clear guidance on the appropriate context and implicitly points to an alternative (likely read_cell) for raw values.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sheetsList WorkPaper SheetsA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
sheetsYes
writableYesWhether set_cell_contents persists edits back to the source JSON file.
sourcePathNoAbsolute JSON file path when the server was started with --workpaper.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds value by stating 'Returns metadata only' and directing to sibling tools for values, which goes beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy. First sentence states purpose and context; second contrasts with siblings. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 0 parameters and explicit annotations, the description fully covers what the tool does (discover metadata), its use case (before reading/editing), and what it does not do (no values). Output schema exists but its absence in description is acceptable per rules.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0 parameters, so schema coverage is 100%. Baseline is 4 per guidelines; description adds no parameter information as none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Discover' and resource 'sheet names and used dimensions', clearly distinguishing from sibling tools like read_range and read_cell that retrieve values instead of metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('before reading or editing a WorkPaper') and when not to ('use read_range or read_cell for values'), providing clear alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_cellRead WorkPaper CellA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesSingle A1 cell address such as B3.
sheetNameYesExisting sheet name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
valueYesCalculated cell value.
addressYesCanonical sheet-qualified A1 address.
formulaYesFormula text without losing the original calculated value context, or null for literal cells.
serializedYesRaw serialized cell content; formulas are strings that start with =.
displayValueYesFormatted value as a user would see it.
formulaDiagnosticsYesStructured formula diagnostics. Empty when the cell has no formula error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, destructiveHint, idempotentHint. The description adds value by detailing the returned content (calculated value, display text, formula text, diagnostics, serialized content), which annotations do not cover. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences clearly state what the tool does and a key usage hint. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present and annotations covering safety, the description provides sufficient operational context (use after set_cell_contents) and mentions the types of data returned. It does not cover error conditions, but that is acceptable for a simple read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for 'sheetName' and 'address'. The description does not add additional semantic meaning beyond what the schema provides, earning the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read one cell' with specific data components (calculated value, display text, formula text, diagnostics, serialized content). It distinguishes from siblings by implying a comprehensive read, though it doesn't explicitly contrast with get_cell_display_value or read_range.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly suggests using it 'after set_cell_contents to verify readback', providing a specific usage context. However, it does not mention when not to use it or compare with alternative tools like get_cell_display_value or read_range.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_rangeRead WorkPaper RangeA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesA1 range such as Summary!A1:B5. If omitted from the range, pass sheetName separately.
sheetNameNoDefault sheet name when range omits a sheet name, for example Summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rangeYesCanonical A1 range including the sheet name.
valuesYesTwo-dimensional array of evaluated cell values.
serializedYesTwo-dimensional array of raw serialized cell contents, including formulas.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds what the tool returns ('calculated values plus serialized formulas/inputs'), which is useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, functionally dense, no wasted words. Front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with output schema and clear annotations, the description covers purpose, usage, and parameter interaction without gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes both parameters with 100% coverage. Description adds clarifying interplay: 'If omitted from the range, pass sheetName separately', which adds value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Read' and resource 'WorkPaper Range', and distinguishes from sibling 'read_cell' by noting this is for ranges vs single cells.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises 'Use for audit readback after edits; use read_cell for one address', providing both use case and alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_cell_contentsSet WorkPaper Cell ContentsA
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesRaw 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.
addressYesSingle A1 cell address such as B3. Ranges are not accepted.
sheetNameYesExisting sheet name, for example Inputs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
afterYes
beforeYes
checksYes
restoredYes
editedCellYesCanonical sheet-qualified address that was edited.
persistenceYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (idempotentHint=true, readOnlyHint=false), the description adds behavioral details: recalculation is in memory only, and persistence requires a --writable flag. This helps the agent understand the tool's side effects and constraints, though error conditions or side effects could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence defines the core action and behavior, the second provides a key usage hint. Perfectly sized for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers the main action, recalculation behavior, and persistence condition. An output schema exists (not shown), so return values are covered. Could mention error handling or valid address formats, but adequate overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add parameter-specific meaning beyond the schema; it only introduces a non-schema flag (--writable). The schema already describes each parameter adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('write raw content to one cell') and the resource ('cell in workpaper'), with additional context about recalculation and persistence. It distinguishes from siblings like 'set_cell_contents_and_readback' by mentioning memory-only behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a usage hint ('Start with --writable when the edit should persist to JSON') but does not explicitly compare to sibling tools or provide when-to-use/when-not-to-use guidance. The context is clear but lacks exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_cell_contents_and_readbackSet WorkPaper Cell Contents And Read BackA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesRaw 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.
addressYesSingle A1 cell address to edit, such as B3. Ranges are not accepted.
sheetNameYesExisting sheet name for the cell to edit, for example Inputs.
readbackRangeYesDependent A1 range to read before and after the edit, for example Summary!A1:B5.
readbackSheetNameNoDefault sheet name when readbackRange omits a sheet name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
afterYes
beforeYes
checksYes
editedCellYesCanonical sheet-qualified address that was edited.
persistenceYes
afterReadbackYes
readbackRangeYesCanonical sheet-qualified range read before and after the edit.
beforeReadbackYes
restoredReadbackYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by mentioning recalculation of dependents and returning persistence proof. Annotations (idempotentHint=true, destructiveHint=false) are consistent; no contradictions. It could expand on error handling but is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each essential: the first describes the core functionality, the second provides usage context. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and full parameter coverage, the description is fairly complete. It could mention prerequisite validation (e.g., sheet existence) but is sufficient with the schema details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the tool description doesn't need to add much. The description's mention of 'raw content' aligns with schema details, but it doesn't significantly enhance understanding beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool writes raw content to one cell, recalculates dependents, reads a dependent range, and returns persistence proof. It distinguishes itself from sibling tools like set_cell_contents and read_range by combining these operations into a single call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly recommends using this tool for stateless MCP clients, providing clear context. It does not explicitly state when not to use it, but the recommendation implies alternatives for stateful clients.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_formulaValidate WorkPaper FormulaA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formulaYesFormula string including the leading =, for example =SUM(Inputs!B2:B4).

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
formulaYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description complements by stating it checks syntax only and does not evaluate, adding behavioral context beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences convey the tool's purpose, usage context, and limitation. No extraneous information; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input schema (one parameter), full annotations, and presence of an output schema, the description covers all necessary context: what it does, when to use it, and its limitation relative to sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (formula) with schema description covering 100%, including the leading = requirement. The tool description does not add additional parameter-specific context beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates formula syntax with the WorkPaper parser, providing a specific verb and resource. It distinguishes from sibling set_cell_contents by noting that actual evaluation requires readback.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using this tool before writing a formula to a cell, and contrasts with set_cell_contents plus readback for evaluation. This gives clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.