New Your team’s decisions, in one playbook every coding agent works from. Never answer your agent twice

superdoc_table

Create and modify table structure, content, and styling. Find table/row/cell nodeIds via superdoc_get_content({action:"blocks"}) or superdoc_search. ACTIONS: • Structure: delete, insert_row, delete_row, insert_column, delete_column, merge_cells, unmerge_cells. • Cell content: set_cell_text (text)...

SERVERSuperdoc SOURCE@superdoc/mcp
Critical RISK CLASS
Category Destructive
Parameters 121 required
Recommended Hiddensee the rule below
Registry record Grade F, identity unverified Pull the record →

This record as markdown: /tools/superdoc-mcp/superdoc-table.md

What superdoc_table does on Superdoc

AI agents call superdoc_table to permanently remove resources in Superdoc, typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.

ParameterTypeRequiredDescription
end object — Required for action 'merge_cells'.
mode object — Required for action 'set_borders'.
rule string — Only for action 'set_row'. Omit for other actions.
text string — Required for action 'set_cell_text'.
color object — Required for action 'set_shading'.
count integer — Only for actions 'insert_row', 'insert_column'. Omit for other actions.
edges object — Only for action 'set_borders'. Omit for other actions.
force boolean — Bypass confirmation checks.
start object — Required for action 'merge_cells'.
action string Yes The action to perform. One of: delete, delete_column, delete_row, insert_column, insert_row, merge_cells, move_column, move_row, set_borders, set_cell, set_cell
border object — Only for action 'set_borders'. Omit for other actions.
dryRun boolean — Preview the result without applying changes.

Parameters from the server's own tool schema.

Why superdoc_table is rated Critical

An AI agent that decides to call superdoc_table doesn't hesitate, doesn't double-check, and doesn't stop at one. Whatever it removes from Superdoc is gone. There is no undo for destructive operations.

Risk signalsAccepts file system path (destination) · High parameter count (68 properties)

Questions about superdoc_table

What does the superdoc_table tool do? +

Create and modify table structure, content, and styling. Find table/row/cell nodeIds via superdoc_get_content({action:"blocks"}) or superdoc_search. ACTIONS: • Structure: delete, insert_row, delete_row, insert_column, delete_column, merge_cells, unmerge_cells. • Cell content: set_cell_text (text). set_cell (vAlign / wrap / fit / preferred width). • Row / column: set_row (height + rule), set_row_options (repeat-header, allow-break), set_column (widthPt). • Table styling: set_borders, set_shading, set_style_options (headerRow / bandedRows / firstColumn / lastColumn / lastRow / bandedColumns), set_layout (autofit / alignment / direction / preferredWidth), set_options (default cell margins + cell spacing). LOCATORS (the shapes ops accept): • insert_row append shorthand: { nodeId: "<tableId>" } with no rowIndex/position appends at the end. Three other forms: target a row + position, table + rowIndex + position, or any of the above with count:N for multiple. • insert_column shorthand: position:"first"|"last" with no columnIndex. Otherwise columnIndex + position:"left"|"right". • merge_cells: table target + start:{rowIndex, columnIndex} + end:{rowIndex, columnIndex}. • set_cell_text: table target + rowIndex + columnIndex (preferred) OR cell target. • set_cell: cell target only. Does NOT accept table+rowIndex+columnIndex. • set_borders / set_shading: table OR cell target. NOT a row target. COLOR FORMAT: Hex strings accept #RRGGBB, RRGGBB, #RGB, or 3-digit RGB; also "auto"; also null to clear (where supported). Stored canonically as uppercase RRGGBB. Always pass a concrete color when one is implied. Never call set_borders with auto for a "make it look [X]" ask. STYLING (TWO MODES): A. STRUCTURAL CHANGE → re-apply the existing styling. Triggers: insert_row / insert_column / delete_row / delete_column / merge_cells / unmerge_cells. (NOT set_cell_text or set_cell: those don't disturb borders/shading.) Recipe: read the current borders/shading/cnf flags via superdoc_get_content({action:"blocks"}) before the change, then re-apply the SAME values after with set_borders + set_shading + set_style_options. The goal is consistency, not a redesign. Skip on a freshly created table. A new table starts un-styled. B. STYLE-CHANGE REQUEST ("make it look [X]" / "style the whole table") → apply the FULL set with concrete colors. Touch every axis: borders, shading, text alignment, font color/weight, cnf flags, spacing. A single set_borders call without shading and font tweaks always looks half-finished. That's the #1 cause of "no visual change" complaints. Color palette: discover the document's palette by reading superdoc_get_content({action:"blocks"}) and reusing the colors on existing tables/headings. When no palette is obvious, default to corporate blue "1F3864" or dark grey "444444" for accents and "F2F2F2" / "E7E6E6" for banding. Recipe (call ALL of these): 1. set_borders applyTo:"all" with an explicit color and weight. 2. set_shading on the header row cells with the accent color. Add banding on alternate body rows if appropriate. 3. set_style_options { headerRow: true, bandedRows?: true } so cnf regions are recognized. 4. Cell-text alignment via superdoc_format action:"set_alignment". Center the header, left-align body, right-align numeric columns. Paragraph-level: target the paragraph inside each cell. 5. Font color + weight via superdoc_format action:"inline". Header gets a contrasting color (white on dark fill, accent on light fill) plus bold:true. 6. set_options if the user asks for tighter or looser spacing. Steps 4–5 cross to superdoc_format. Use superdoc_mutations to batch many format.apply steps in one call. AFTER set_cell_text, match the new cell to its siblings: set_cell_text writes plain text with the document's default font/size/color and no weight. Always follow up with one superdoc_format inline call copying fontFamily/fontSize/color/bold from a sibling cell (or any non-empty body paragraph if the table is fresh and has no sibling content). If sibling cells show a bold-prefix pattern like "Label: value", replicate it on the new cell via superdoc_search + superdoc_format inline (or one superdoc_mutations batch with format.apply steps). LIST-TO-TABLE: (1) superdoc_create action:"table" with the desired rows/columns. (2) Populate cells with set_cell_text using rowIndex/columnIndex (one call per cell). (3) DELETE THE WHOLE LIST in one call: superdoc_list({action:"delete", target:{kind:"block", nodeType:"listItem", nodeId:"<any-item-id>"}}). The op walks the contiguous list and removes all items. Wrong paths for list deletion (all leave bullets/empty paragraphs behind): text.delete, superdoc_edit action:"delete" on text refs, lists.detach, lists.convertToText. EXAMPLES: 1. {"action":"insert_row","nodeId":"<tableNodeId>"} 2. {"action":"insert_column","nodeId":"<tableNodeId>","position":"last"} 3. {"action":"merge_cells","nodeId":"<tableNodeId>","start":{"rowIndex":0,"columnIndex":0},"end":{"rowIndex":1,"columnIndex":1}} 4. {"action":"set_cell_text","nodeId":"<tableNodeId>","rowIndex":0,"columnIndex":0,"text":"Q1 Revenue"} 5. {"action":"set_row","nodeId":"<tableNodeId>","rowIndex":0,"heightPt":24,"rule":"atLeast"} 6. {"action":"set_borders","nodeId":"<tableNodeId>","mode":"applyTo","applyTo":"all","border":{"lineStyle":"single","lineWeightPt":1,"color":"#000000"}} 7. {"action":"set_shading","target":{"kind":"block","nodeType":"tableCell","nodeId":"<cellNodeId>"},"color":"#E3F2FD"} 8. {"action":"set_style_options","nodeId":"<tableNodeId>","styleOptions":{"headerRow":true,"bandedRows":true}}. It is categorised as a Destructive tool in the Superdoc MCP Server, which means it can permanently delete or destroy data. Block by default and require explicit approval.

What parameters does superdoc_table accept? +

superdoc_table accepts 12 parameters: end, mode, rule, text, color, count, edges, force, start, action, border, dryRun. Required: action. The full parameter table on this page comes from the server's own tool schema.

How do I enforce a policy on superdoc_table? +

Register the Superdoc MCP server in PolicyLayer and add a rule for superdoc_table: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Superdoc. Nothing to install.

What risk level is superdoc_table? +

superdoc_table is a Destructive tool with critical risk. Critical-risk tools should be blocked by default and only enabled with explicit human approval.

Can I rate-limit superdoc_table? +

Yes. Add a rate_limit block to the superdoc_table rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block superdoc_table completely? +

Set action: deny in the PolicyLayer policy for superdoc_table. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides superdoc_table? +

superdoc_table is provided by the Superdoc MCP server (@superdoc/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

More on Superdoc, and thousands of servers like it.

// THE MCP REGISTRY

PolicyLayer tracks 44,603 MCP servers and 515,000+ tools.

Every server has a live record: who publishes it, whether it answers without auth, its risk grade, every tool classified, the recommended policy. This page is one line of Superdoc's. Pull the full record:

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.