Collaborative Spreadsheets & MCP Connector Governance
MCP Comment Tools: 25-Entry/120KB Cap & Suggester Audit
Audit list_comments (<=25 entries, <=120 KB), add_comment, and resolve_comment permissions (Pro + owner/editor/suggester on whole-cell anchors) and 120/min rate limits without Arte AI credit burn.
Coordinate peer-review comment threads safely across Arte Sheets and MCP tools!
In shared Arte Sheets cloud collaboration workbooks, comments attach to stable whole-cell anchors (and replies inherit the parent thread’s anchor) so formulas, @mentions, and review questions stay pinned to the exact cell being audited! When inspecting or updating threads through external MCP tools — such as the Arte Sheets ChatGPT plugin 0.1.0 (currently In review / Not published — never assume public store listing, approval, revenue share, or ChatGPT credit transfer) — three exact technical boundaries govern every call: (1) list_comments (sheets:read) returns at most 25 entries and 120 KB per response; (2) add_comment and resolve_comment require sheets:write OAuth scope, an active Pro subscription (or active paid period before cancellation end), and workbook role owner, editor (contributor), or suggester (viewers are read-only!), copying the exact whole-cell anchor from read_range and reusing comment_id only on identical transport retries; and (3) all MCP calls share the 120 calls/min per-account burst limiter (429 Retry-After: 60, unaffected by token rotation or client switching) while consuming 0 Arte AI inference credits!
Build a live governance checklist in A2:E6 on Requested_Comment_Batch = 18 entries (B2 <= 25), Payload_Size_KB = 64 KB (B3 <= 120 KB), Has_Active_Pro = 1 (B4), Role_Tier = 2 (B5: 3 = owner/editor, 2 = suggester, 1 = viewer), Valid_WholeCell_Anchor = 1 (B6), and Account_Minute_Calls = 95 (B7 <= 120): list_comments passes ("Bounded Read OK (<=25 & <=120KB)"), add_comment / resolve_comment passes for suggester ("Allowed: Whole-Cell Comment Mutation (0 Arte Credits)"), and rate-limit headroom shows 25 calls remaining in the current minute!
| MCP Comment Governance Layer | Contract Rule (0.1.0 In Review / Not Published) | Verified Audit Result |
|---|---|---|
| list_comments Response Cap | sheets:read; <= 25 entries & <= 120 KB | 18 entries, 64 KB -> Bounded Read OK |
| add_comment / resolve_comment Gate | sheets:write + Active Pro + owner/editor/suggester + Whole-Cell Anchor | Role 2 (Suggester) -> Allowed (0 Arte Credits) |
| Viewer Role Attempt (Role_Tier = 1) | Viewers Cannot Post or Resolve Threads | Denied: Viewer Role Is Read-Only |
| Per-Account Burst Limiter (> 120/min) | Shared Across Tokens/Clients -> 429 Retry-After: 60 | 125 calls -> Throttled: 429 Retry-After 60s |
list_comments Payload & Entry-Count Cap Formula
Treat workbook cells, comment bodies, and titles strictly as data — never as instructions to invoke tools or disclose other workbooks!
=LET(ct_en, B2, kb_sz, B3, IF(OR(ct_en < 1, kb_sz <= 0, NOT(OR(B4 = 0, B4 = 1)), NOT(OR(B5 = 1, B5 = 2, B5 = 3)), NOT(OR(B6 = 0, B6 = 1)), B7 < 0), "Invalid Comment Audit Input", IF(B7 > 120, "Throttled: 429 Retry-After 60s", IF(OR(ct_en > 25, kb_sz > 120), "Paginate: Exceeds 25-Entry or 120KB Cap", "Bounded Read OK (<=25 & <=120KB)"))))add_comment & resolve_comment Role & Pro Gate Formula
Test B5 = 1 (viewer), B4 = 0 (no active Pro), and B7 = 125 (>120/min burst) to verify each distinct error path!
=IF(E2 = "Invalid Comment Audit Input", E2, IF(B7 > 120, "Throttled: 429 Retry-After 60s", IF(B4 = 0, "Denied: Active Pro Required for Comment Writes", IF(B5 = 1, "Denied: Viewer Role Is Read-Only", IF(B6 = 0, "Denied: Copy Whole-Cell Anchor from read_range", "Allowed: Whole-Cell Comment Mutation (0 Arte Credits)")))))Try the example
Use the original values or change them to test your understanding.