Agent cannot reliably pass ~18KB body to MCP updateConfluencePage (truncation / never fires / prep loops)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

I use a daily workflow where a local script prepares Confluence upload args (~18KB markdown body) in /tmp/confluence-mcp-args.json, and the agent should call updateConfluencePage once with the full parsed JSON. The prep/validate step succeeds every time. The upload step often never runs, or fails silently / with Required at body when the agent tries workarounds.

Steps to Reproduce

  1. Prepare MCP args: python3 upload-confluence-mirror.py prep --write-mcp-args → writes /tmp/confluence-mcp-args.json (~18–22KB, body ~18KB)
  2. Ask agent to upload via CallDynamicTool → plugin-atlassian-atlassian → updateConfluencePage with entire parsed JSON object
  3. Observe: agent loops on prep/validate, reads .md via Read tool (adds line-number prefixes → corrupt body), spawns subagents, or never completes the MCP call

Expected Behavior

One MCP call with full body string updates the Confluence page.

Operating System

MacOS

Version Information

Version: 3.18.25 (Universal)
VS Code Extension API: 1.128.0
Commit: 280eca2911f1774689696e5f1efa5a4f97a87af0
Date: 2026-08-31T23:08:02.261Z
Layout: Agent Window
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin x64 23.6.0

For AI issues: which model did you use?

Default

For AI issues: add Request ID with privacy disabled

0f7e0163-2a4a-4310-9f8d-414b2b2296fe

Additional Information

Allow MCP tool parameters to reference a file path for large string fields, or document/enforce a safe inline size limit so agents don’t guess.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @Isaac_Guerrero1

Most reliable fix: keep the large body out of the agent. Your prep script already writes the full JSON to /tmp/confluence-mcp-args.json, so have that script (or a small companion) do the Confluence update itself via the REST API with an API token, and have the agent just run it. The body never passes through the model, so nothing can truncate it or add the line-number prefixes you saw.

If you’d rather keep the tool in the loop, pick a specific model (Claude or GPT) instead of Default and build the page up in chunks (a short body first, then section by section) rather than one ~18KB call.

One note on timing: there was a brief service degradation on our side on Sep 3 that cut agent turns off mid-run (now resolved, status.cursor.com), which likely explains the “never runs” you hit that day. Passing an ~18KB body in a single tool argument is also a known weak spot, and I’ve passed along your file-path idea. If it still fails after Sep 3, send a Request ID from a failing attempt plus the model you used (the one you shared is from a run that completed, so it doesn’t capture it), ideally with Share Data on for that run so we can see exactly what happened: how to copy a Request ID.