jira_create_issue fails for subtasks with generic 'Error calling tool' in mcp-atlassian
I'm using mcp-atlassian (latest, Docker) with Claude Code on macOS against Jira Cloud. Calling jira_create_issue to create a subtask always fails with
Error calling tool 'create_issue'and no details are returned, so nothing is created. Why does this happen and how can I create subtasks?Originally asked on GitHub: https://github.com/sooperset/mcp-atlassian/issues/642
5 answers
Status: fixed — the maintainer closed this as completed on 2026-01-12, stating that PR #829 makes the server accept
additional_fieldsas both a dict and a JSON string, so subtask creation works with{"parent": "PARENT-KEY"}. The thread does not say which released version or Docker image contains the fix, so check the changelog of the version/image you run before relying on it (general advice).The generic
Error calling tool 'create_issue'comes from the MCP transport: per a user's investigation with Docker logs, Claude Code's MCP client serializes the optionaladditional_fieldsdict parameter as a JSON string, and the server rejects it withInput should be a valid dictionary [type=dict_type, input_value='{"parent": "ST-320"}', input_type=str]. PR #829 addresses exactly that failure mode.Before the fix, the confirmed workaround was to make the AI always send the parent story key inside
additional_fields:json{ "project_key": "<PROJECT-KEY>", "summary": "<sub-task title>", "issue_type": "Sub-task", "description": "<description>", "components": [], "assignee": null, "additional_fields": { "parent": "<STORY-KEY>" } }That schema was verified working in a comment on 2025-09-28. One caveat from the thread: batch subtask creation with this schema did not work; the commenter created subtasks one by one in a loop instead.
Did this work for you?What @JerrycheeMM tried on GitHub (Worked)
Changed the subtask payload to the schema suggested earlier in the thread, putting the parent story key inside
additional_fields(e.g.{"parent": "<STORY-KEY>"}). The commenter reported: "it works!"Source: https://github.com/sooperset/mcp-atlassian/issues/642#issuecomment-3342726997 (opens external site)
Did this work for you?What @gravity-api tried on GitHub (Partly worked)
Suggested enforcing the full subtask payload schema via an instructions prompt, with the story key passed as
additional_fields.parent. The same commenter noted batch subtask creation did not work with this schema; they worked around it by creating subtasks one by one in a loop.Source: https://github.com/sooperset/mcp-atlassian/issues/642#issuecomment-3255824954 (opens external site)
Did this work for you?What @JohnPlummer tried on GitHub (Outcome unclear)
Debugged with Docker logs and source analysis and concluded Claude Code's MCP client sends optional dict parameters like
additional_fieldsas a JSON string instead of a dict (server error:Input should be a valid dictionary). Proposed a server-side workaround to parse the string; it was not applied in the thread.Source: https://github.com/sooperset/mcp-atlassian/issues/642#issuecomment-3252250224 (opens external site)
Did this work for you?What a GitHub user tried on GitHub (Didn't work)
Reproduced via Claude Code with the Docker image (latest) on macOS against Jira Cloud: calling jira_create_issue to create a subtask returned the generic
Error calling tool 'create_issue'error and created nothing.Source: https://github.com/sooperset/mcp-atlassian/issues/642 (opens external site)
Did this work for you?
Related questions
- mcp-atlassian: 'JiraConfig' object has no attribute 'read_only' when calling create_issue
- mcp-atlassian Docker fails on startup with 'ValueError: I/O operation on closed file' — fixed?
- OAuth 2.0 for Confluence Data Center (on-prem) in mcp-atlassian?
- mcp-atlassian crashes with Pydantic 2.12.0: 'cannot specify both default and default_factory'
- mcp-atlassian Jira search_issues: 'requested API has been removed' error and total -1