FRI, 17 JUL 2026
Live · Daily AI brief from inside the industry
14:14:36 UTC

CHAPTER 4 OF 7 · 10 min · 3 COPYABLE ASSETS

How to auto-create JIRA tickets from a PRD with Claude Code and MCP

Run /create-stories to split a PRD into JIRA tickets via the Atlassian MCP server: acceptance criteria, dependencies, and technical notes included automatically.

TL;DW

With a reviewed PRD, run /create-stories with three arguments: the PRD path, your JIRA project ID, and the epic ID. Claude Code breaks the document into user stories, then uses the Atlassian MCP server to create every ticket, complete with acceptance criteria and technical-note comments it researched from your codebase. The same flow works with the GitHub CLI or the Linear MCP server. Setup is a single .mcp.json file, and Claude can write that file for you.

Lesson · 9 parts

After the brain dump, Cole is barely typing anymore. 'I'm running commands, I'm answering questions, that's really all I have to do.' The stories command takes the PRD path plus the JIRA project and epic IDs. It can run in a fresh context window, though a short session like this one is fine to continue in place.

The command walks four phases. Load the PRD (all the context it needs). Break it into user stories in the format the command defines, acceptance criteria included. Self-check that every phase of the PRD became a story, so nothing silently drops. Then, if the JIRA arguments are present, push everything through the MCP server; if not, the stories stay as local markdown files, which is how many solo developers run their whole system.

Both IDs come straight from JIRA's interface: the project key sits in the project settings, and the epic ID shows on the epic itself.

The invocation. Find both IDs in JIRA's UI
/create-stories .agents/prd-phase-2.md <jira-project-id> <epic-id>

Using GitHub instead? The identical process runs through the GitHub CLI creating issues. Linear? The Linear MCP server. The tracker is an implementation detail. Once tickets exist, developers work in parallel, self-assigning through the MCP server or getting assigned the moment they pick up a piece of work.

Run /mcp in Claude Code and the connected Atlassian server appears, which covers Confluence as well as JIRA. The PRD can live in Confluence, tickets in JIRA, and agents shuttle context between them. All the CRUD grunt work of task management (creating, updating, assigning) becomes agent territory.

The whole integration is one .mcp.json file, and you do not configure it by hand. Claude Code has access to its own documentation, searches the web for the current Atlassian setup, knows to create the file, and wires everything. A PM or QA engineer can do this without a developer.

The .mcp.json file lives at the repo root and lists every MCP server the project can reach, so it ships with the codebase: a teammate who clones the repo inherits the same integrations. The Atlassian server covers JIRA and Confluence with one connection, and the first call triggers a browser login to authorize your Atlassian account.

If a tool call fails later, treat the agent as its own support engineer. Paste the exact error, ask it to check /mcp status, and let it search the Atlassian documentation. Connection issues are usually stale auth or a renamed cloud ID, and the agent finds both quickly.

The setup prompt. It works for any MCP server
Help me set up the Atlassian MCP server for JIRA and Confluence. Search the web for the current configuration if you need to, create the .mcp.json file, and verify the connection works. If it fails, debug it and search the Atlassian docs for fixes.

Cole did not hand-configure any of this. He pointed Claude Code at his personal repository of commands and skills and said: set up a new repo for the workshop, bring my resources in, and customize them to work with JIRA instead of GitHub. The agent did all of it. The tooling you are learning was assembled by the tooling.

As stories push to JIRA, the token counter climbs. That is the agent formulating MCP tool calls. Ctrl+O expands full visibility: the create-issue tool, the project and epic parameters, and a green circle when each call completes. Refresh JIRA and tickets materialize mid-run.

Click into any created ticket: story format, acceptance criteria, exactly what the command specified. Then the surprise. The agent added technical notes as comments, having researched the codebase for how it would implement each feature. A PM alone could not provide that context. The agent provides it to every developer up front.

An acceptance criterion worth copying
Given a poll with live mode enabled,
when a new vote is submitted,
then the presenter view updates within 2 seconds
and the total count matches the database exactly.

At an organization, the PM now takes this populated backlog to the development team, usually a scrum or sprint-planning session where wrong assumptions get fixed and tickets get refined. Solo developers: these are your GitHub issues, and you handle them one at a time. The agent keeps working in the background either way.

Cole picks the presenter projection page: full-screen live results with animated charts. The principle he lands on matters more than the pick. The input to writing code should always be an artifact, a JIRA ticket or a GitHub issue, never a vague memory of a conversation. That artifact is what enters the PIV loop next.

Key terms

MCP server
A Model Context Protocol connector that lets an agent operate external tools such as JIRA or Confluence.
Epic
JIRA's container for related tickets; the shelf a sprint's work sits on.
Acceptance criteria
Testable conditions that define when a ticket counts as done.

Key takeaways

  1. Three arguments drive the whole step: PRD path, JIRA project ID, epic ID. Swap the JIRA calls for the GitHub CLI or Linear MCP and nothing else changes.
  2. You never do JIRA admin again. Creating, assigning, and updating tickets is agent work now.
  3. Ctrl+O in Claude Code reveals the raw MCP tool calls: your visibility into what the agent is actually doing.
  4. The agent does more than create tickets. It researches the codebase and attaches technical implementation notes as comments.

Watch out

  • The epic must exist first. Creating it was the only manual JIRA work in the entire demo. /create-stories fills an epic; it does not create one.
  • If the MCP server refuses to connect, paste the error back to the agent and tell it to search the Atlassian docs. Coding agents debug their own tooling well.

Check your understanding

What three arguments does /create-stories need, and what must already exist in JIRA?

The PRD path, the JIRA project ID, and the epic ID. The epic itself must be created beforehand; it was the one piece of manual JIRA work in the demo.

Beyond creating tickets, what extra context does the agent attach?

Technical implementation notes as comments on each ticket, researched from the actual codebase before any developer picks up the work.