Skip to main content
Glama

Update Table Cell

update_table_cell

Replace a single AFFiNE table cell by zero-based row and column while preserving rich-text attributes and header bold formatting.

Instructions

Replace one cell in an AFFiNE table by zero-based row and column while preserving rich-text attributes and the table's header bold formatting.

Input Schema

NameRequiredDescriptionDefault
rowYesZero-based table row.
textYesReplacement cell text as plain text or a delta array. For LinkedPage references, set insert to one ASCII space and pass the pageId in reference attributes; visible labels are resolved by AFFiNE.
docIdYesAFFiNE document id.
columnYesZero-based table column.
blockIdYesTable block id (flavour affine:table).
workspaceIdNoAFFiNE workspace id. Omit only when AFFINE_WORKSPACE_ID is configured.
expectedRevisionNoOptional read_doc revision of this primary document. Reject stale content before writing. Covers document content, not workspace metadata; requires all writers to share one MCP server.

Output Schema

NameRequiredDescriptionDefault
okNo
rowNo
cellNo
codeNo
errorNo
rowIdNo
columnNo
blockIdNo
detailsNo
updatedNo
columnIdNo
previousNo
causeCodeNo
retryableNo
recoveryGuidanceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.10.2

TDQS

A4/5.0
Behavior4/5

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

The description adds real behavioral context beyond annotations: it replaces the entire cell contents rather than editing in place, and it preserves rich-text attributes and header bold formatting. It doesn't mention any failure modes such as out-of-range row/column indices, and the expectedRevision staleness check is left entirely to the schema.

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?

One sentence, front-loaded with the verb and target, and every clause (zero-based addressing, rich-text preservation, header bold preservation) carries distinct information. No filler.

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?

For a 7-parameter mutation tool with an output schema and full schema coverage, the description covers the operation and its preservation guarantees. Remaining gaps are minor: out-of-bounds behavior and the concurrency/staleness contract are only in the schema.

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 schema already documents row, column, text (including the LinkedPage delta pattern), workspaceId, and expectedRevision. The description only restates the zero-based addressing and rich-text preservation, adding no new parameter-level detail. Baseline 3 applies.

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 pairs a specific verb ("Replace") with a precise resource (one cell in an AFFiNE table) and names the addressing scheme (zero-based row and column). It is clearly distinguishable from siblings like update_block, update_database_row, and update_table_column_widths.

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?

Usage is implied by the precise operation scope, but there is no explicit guidance on when to choose this over update_block or update_database_row, nor any prerequisite or when-not-to-use statement. An agent must infer the selection from the name and scope alone.

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

Deploy Server

Other Tools