Skip to main content
Glama

hedwigai

Save what you changed in your shell

commit_workbook

Reads back the checkout in your shell session and writes it as a new version. Send the version the checkout reported as base_version, and the same session if the checkout named one.

A workbook made from a spreadsheet commits from current.xlsx: its tabs are derived from the file again, and the edited file becomes what the workbook is made of, so the formulas, formats and charts around your change survive. A markdown workbook commits from tabs/*.md — a file left alone keeps its tab, and a file deleted removes it.

Refused if the workbook has moved past base_version, if a run is writing it, or if nothing in the checkout changed. The version before is kept either way.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoOne line on what changed, e.g. 'Rent raised to 2,400'.
contextNoExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."
sessionNoOptional: the shell the checkout was put in, if it named one.
workbookYesThe workbook id.
llm_modelNoThe exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess.
base_versionYesThe version the checkout reported.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
      +  "type": "string"
      +}
    • addedInput schema / properties / llm_model
      Added value: +{
      +  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly=false, destructive=false, non-idempotent, closed-world. The description adds substantial behavior beyond that: the spreadsheet vs markdown commit mechanics, what survives ('formulas, formats and charts'), deletion semantics, and that the prior version is retained either way. This materially shapes invocation expectations.

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

Conciseness4/5

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

Three tight paragraphs, front-loaded with the core action, then format-specific mechanics, then refusal conditions. Every sentence carries weight, though the format-specific detail is lengthy for an agent that may only need the core contract.

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 mutation tool with no output schema, the description covers the essential contract: required inputs, cross-tool parameter sourcing, format-dependent behavior, failure modes, and version-retention outcome. Nothing an agent needs to call it correctly is missing.

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 coverage is 100%, so baseline would be 3, but the description adds semantics the schema does not: `base_version` must be the version the checkout reported and `session` must match the checkout's shell. That cross-tool parameter linkage is genuine added meaning.

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?

States a specific verb and resource ('Reads back the checkout ... and writes it as a new version') and implicitly pairs with the checkout sibling by referencing 'the checkout in your shell session'. An agent can distinguish this from checkout_workbook and restore_version without opening schemas.

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?

Gives clear operational conditions: pass the `version` the checkout reported as `base_version` and the same `session`. Explicit refusal conditions (workbook moved past base_version, a run writing it, nothing changed) tell the agent when the call will fail. It stops short of naming an alternative tool to use instead in those cases.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.