Linear MCP save_issue fails: empty payload ("title is required") or invalid JSON when using parentId / ticket-style strings

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

With Linear MCP connected, read-only Linear tools work (e.g. fetch issue, user, teams). Creating an issue via the agent fails. Failures include: (1) title is required when creating an issue even when the assistant intends to pass title and team, suggesting arguments are missing or not forwarded; (2) JSON parse errors mentioning tokens like F and corrupted/truncated field names (e.g. arentId instead of parentId) when parameters such as parentId: “FND-34” or assignee: “me” are used—consistent with invalid JSON (unquoted strings) or mangled serialization of tool arguments. Result: automated flows that create a Linear ticket (e.g. PR setup) cannot complete without manual ticket creation.

Steps to Reproduce

  1. Enable Linear MCP in Cursor and confirm reads work (e.g. get issue FND-34, list teams).
  2. In Chat, use Model: Auto.
  3. Ask the agent to create a Linear issue with fields such as: title (string), team (e.g. Foundation), state (e.g. In Review), assignee (me or explicit user), parentId (e.g. FND-34), and a short markdown description.
  4. Observe tool result: either title is required or a JSON parse error referencing invalid tokens / broken parentId in the error text.

Expected Behavior

save_issue should receive a complete, valid JSON argument object (all string values properly quoted). Linear should create the issue and return success (issue id/URL), same as when creating via the Linear UI or a correctly formed API request.

Operating System

MacOS

Version Information

Cursor: 2.6.20
VS Code: 1.105.1
Commit: b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760
Date: 2026-03-17T01:50:02.404Z
Build type: Stable
Release track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
OS: macOS (Darwin arm64 24.6.0)

For AI issues: which model did you use?

Auto

Additional Information

Read operations succeeded in the same session; create did not—points to argument serialization or MCP handling for save_issue, not total loss of Linear access.
If helpful for debugging, compare MCP logs for a successful read tool vs save_issue in one session.
Optional: attach a screenshot of the exact error string from the chat tool output if you still have it.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report. This is a known issue. A few users have already run into it, including with GitHub MCP and other servers.

What’s happening: the CallMcpTool schema supports arguments, but the model sometimes doesn’t fill that field during automatic MCP tool calls. Your second case with corrupted JSON using “arentId” instead of “parentId” is also a known variant and seems related to serialization.

The team is aware. As a workaround:

  1. Add a clear instruction in your rules or skills about the call format:
When calling Linear MCP save_issue, ALWAYS include all arguments in the arguments object:
{"server": "linear", "toolName": "save_issue", "arguments": {"title": "...", "teamId": "...", ...}}
NEVER call save_issue without the arguments field.
  1. Try a different model instead of Auto. Behavior varies by model.

Related threads with more details:

Let me know if the workaround helps.

A post was merged into an existing topic: MCP tool called without required “key” arg during Agent auto-call, manual call works