Back to Blog
Recipe

Automate Jira Tasks from Meeting Notes with AI (Notion + Jira MCP Recipe)

January 13, 202620 min readBy Nikhil Tiwari

🍳 MCP Recipe

  • What you'll build: An AI workflow that reads meeting notes from Notion and creates Jira tasks automatically
  • MCP servers used: Notion MCP, Atlassian MCP (Jira)
  • Time to complete: 60-90 minutes
  • Difficulty: Intermediate

How many times have you left a meeting with action items, only to forget to create Jira tickets? Or spent 30 minutes manually copying tasks from meeting notes into Jira?

This recipe solves that problem. You'll build an AI assistant that:

  • Reads meeting notes from your Notion workspace
  • Identifies action items, decisions, and follow-ups
  • Automatically creates Jira tickets with proper assignees, due dates, and descriptions
  • Links tickets back to the original meeting notes

By the end, you'll save hours every week on manual task creation.

What You'll Build

Here's the complete workflow:

1. Notion Page

Meeting notes stored in Notion

2. AI Reads

Extracts action items

3. AI Analyzes

Identifies tasks, owners, priorities

4. Jira Created

Tickets automatically created

Example Transformation

Input (Notion Meeting Notes) Output (Jira Tickets Created)
"John will update the API documentation by Friday" Ticket: "Update API Documentation"
Assignee: John
Due: Friday
Priority: Medium
"We need to fix the login bug - Sarah to investigate" Ticket: "Fix Login Bug"
Assignee: Sarah
Type: Bug
Priority: High
"Review the new design mockups before next sprint" Ticket: "Review Design Mockups"
Type: Task
Due: Before next sprint

Prerequisites

Notion Workspace

With meeting notes pages

Jira Account

Atlassian Cloud or Server

API Tokens

Notion integration + Jira API token

MCP Client

Claude Desktop or Cursor

Step 1: Set Up Notion MCP Server

Notion MCP is a hosted server, so no local installation needed. You can connect via OAuth through the Notion app or directly via your MCP client.

Option A: Connect via Notion App (Easiest)

  1. Open Notion app β†’ Settings
  2. Go to Connections β†’ Notion MCP
  3. Choose your AI tool (Claude Desktop or Cursor)
  4. Complete the OAuth flow to authorize access

Option B: Connect via MCP Client Config

For Claude Desktop, add to your config file:

{
  "mcpServers": {
    "notion": {
      "url": "https://mcp.notion.com/mcp"
    }
  }
}

For Cursor IDE, use Settings β†’ Tools & MCP:

Field Value
Name notion
Type streamableHttp
URL https://mcp.notion.com/mcp

Verify Notion Connection

After restarting your AI client, test the connection:

What Notion tools do you have access to?

You should see tools like:

  • notion_search β€” Search pages and databases
  • notion_read_page β€” Read page content
  • notion_create_page β€” Create new pages
  • notion_update_page β€” Update existing pages
  • notion_query_database β€” Query Notion databases

Step 2: Set Up Atlassian MCP Server (Jira)

The Atlassian MCP Server provides Jira integration. It's a local server that you need to run.

Installation

Install using uvx (recommended):

# Install uv if needed
curl -LsSf https://astral.sh/uv/install.sh | sh

# Run the Atlassian MCP server
uvx mcp-atlassian

Get Your Jira Credentials

  1. Go to Atlassian Account Settings β†’ Security β†’ API Tokens
  2. Click "Create API token"
  3. Give it a name like "MCP Jira Integration"
  4. Copy the token (starts with ATATT3xFfGF0...)
  5. Note your Jira site URL (e.g., https://yourcompany.atlassian.net)

Configure Atlassian MCP

For Claude Desktop, add to your config:

{
  "mcpServers": {
    "atlassian": {
      "command": "uvx",
      "args": ["mcp-atlassian"],
      "env": {
        "JIRA_API_TOKEN": "ATATT3xFfGF0...",
        "JIRA_SERVER_URL": "https://yourcompany.atlassian.net"
      }
    }
  }
}

For Cursor IDE, add via Settings β†’ Tools & MCP:

Field Value
Name atlassian
Type command
Command uvx mcp-atlassian
Environment Variables JIRA_API_TOKEN, JIRA_SERVER_URL

Verify Jira Connection

Restart your AI client and test:

What Jira tools do you have access to?

You should see tools like:

  • jira_search β€” Search Jira issues using JQL
  • jira_create_issue β€” Create new Jira tickets
  • jira_update_issue β€” Update existing issues
  • jira_get_issue β€” Get issue details
  • jira_add_comment β€” Add comments to issues
  • jira_transition_issue β€” Change issue status

βœ… Checkpoint

If you can see both Notion and Jira tools, you're ready to automate task creation!

Step 3: Prepare Your Meeting Notes Format

For best results, structure your Notion meeting notes consistently. Here's a recommended format:

# Weekly Team Sync - January 13, 2026

## Attendees
- Alice (Product Manager)
- Bob (Developer)
- Charlie (Designer)

## Discussion
- Reviewed Q1 roadmap
- Discussed new feature priorities
- Addressed performance concerns

## Action Items
- [ ] Alice: Update product roadmap by EOW
- [ ] Bob: Fix login bug - investigate by Tuesday
- [ ] Charlie: Review design mockups before sprint planning
- [ ] Team: Schedule follow-up meeting next week

## Decisions
- Prioritize mobile app improvements
- Defer analytics dashboard to Q2

## Follow-ups
- Check in on login bug status on Wednesday

Tips for better extraction:

  • Use clear section headers (Action Items, Decisions, Follow-ups)
  • Include assignee names when possible
  • Add due dates or timeframes
  • Use checkboxes for tasks: [ ]
  • Mention priorities if relevant

Step 4: Extract Action Items from Meeting Notes

Now let's have the AI read your meeting notes and extract action items. First, find your Notion page:

Search for meeting notes pages in my Notion workspace from the last week

Or if you know the page title:

Read the Notion page titled "Weekly Team Sync - January 13, 2026"

Once the AI has the page content, ask it to extract action items:

From the meeting notes you just read, extract all action items. For each action item, identify:
1. Task description
2. Assignee (if mentioned)
3. Due date or timeframe (if mentioned)
4. Priority level (if mentioned)
5. Related context from the meeting

Format the output as a structured list.

Example Output

The AI might return:

## Extracted Action Items

1. **Update Product Roadmap**
   - Assignee: Alice
   - Due: End of Week (EOW)
   - Priority: Medium
   - Context: Q1 roadmap review discussion

2. **Fix Login Bug**
   - Assignee: Bob
   - Due: Tuesday
   - Priority: High
   - Context: Performance concerns raised

3. **Review Design Mockups**
   - Assignee: Charlie
   - Due: Before sprint planning
   - Priority: Medium
   - Context: New feature priorities discussion

4. **Schedule Follow-up Meeting**
   - Assignee: Team
   - Due: Next week
   - Priority: Low
   - Context: General follow-up

Step 5: Create Jira Tickets from Action Items

Now have the AI create Jira tickets for each action item. Provide context about your Jira setup:

Create Jira tickets for each action item extracted above. Use these settings:

- Project: "ENG" (Engineering)
- Issue Type: "Task" (or "Bug" for bugs)
- Priority mapping:
  - High β†’ Highest
  - Medium β†’ High
  - Low β†’ Medium
- Default assignee: Use the assignee name from the action item, or leave unassigned if not specified
- Add a description that includes:
  - The original action item text
  - Context from the meeting
  - Link to the Notion meeting notes page

For each ticket, include the Notion page URL in the description so we can trace back to the meeting.

Advanced: Custom Field Mapping

If your Jira has custom fields, you can specify them:

When creating Jira tickets:
- Set "Epic Link" to "Q1 Roadmap" for roadmap-related tasks
- Set "Sprint" to "Current Sprint" if due within sprint timeframe
- Add label "meeting-action-item" to all tickets
- Set "Story Points" to 3 for high priority, 2 for medium, 1 for low

Step 6: Complete Workflow Example

Here's a complete prompt that does everything in one go:

I have a meeting notes page in Notion titled "Sprint Planning - Jan 13". 

Please:
1. Read the page content from Notion
2. Extract all action items, identifying:
   - Task description
   - Assignee
   - Due date/timeframe
   - Priority
   - Related context
3. For each action item, create a Jira ticket in project "ENG" with:
   - Appropriate issue type (Task, Bug, Story)
   - Correct priority level
   - Assignee if specified
   - Description including context and link to Notion page
   - Label "meeting-action-item"
4. After creating each ticket, provide a summary with:
   - Ticket key (e.g., ENG-123)
   - Title
   - Assignee
   - Status

Format the summary as a table for easy review.

Step 7: Automation Options

Option A: Manual Trigger (Current Setup)

Run the workflow manually after each meeting by asking the AI to process your meeting notes.

Option B: Scheduled Automation

Set up a scheduled job that:

  1. Queries Notion for new meeting notes (e.g., pages created today)
  2. Processes each page automatically
  3. Creates Jira tickets
  4. Sends a summary notification

You can use a service like Zapier, Make.com, or a custom script with cron.

Option C: Notion Database Trigger

If you store meeting notes in a Notion database:

Query the Notion database "Meeting Notes" for pages where:
- Status is "Ready for Processing"
- Created date is today

For each page found, extract action items and create Jira tickets.
After processing, update the Notion page status to "Processed".

Best Practices

Practice Why It Matters
Review before creating AI can misinterpret contextβ€”always review extracted items
Use consistent formatting Structured notes = better extraction accuracy
Include assignee names Helps AI match names to Jira users
Add due dates explicitly "By Friday" is clearer than "soon"
Link back to Notion Makes it easy to find original context
Use labels/tags Helps organize and filter tickets later

Advanced: Smart Task Extraction

You can improve extraction accuracy with custom instructions:

When extracting action items from meeting notes:

1. Look for these patterns:
   - "[Name] will [action]" β†’ Assignee: Name
   - "[Action] by [date]" β†’ Due: date
   - "Urgent" or "ASAP" β†’ Priority: High
   - "Nice to have" β†’ Priority: Low

2. Ignore:
   - General discussion points
   - Decisions without actions
   - Completed items (already checked off)

3. For ambiguous items:
   - If no assignee mentioned, mark as "Unassigned"
   - If no due date, set to "No due date"
   - Default priority to "Medium" unless specified

4. Extract related context:
   - What was discussed before the action item
   - Why the action is needed
   - Any dependencies mentioned

Troubleshooting

Notion MCP connection fails

Common issues:

  • OAuth not completed β€” Re-authorize through Notion app
  • Wrong workspace β€” Ensure you're connected to the correct Notion workspace
  • Permissions β€” Check that the integration has access to the pages you need
  • URL format β€” Verify the MCP URL is correct: https://mcp.notion.com/mcp
Jira tickets not creating

Check:

  • API token is valid and not expired
  • Jira server URL is correct (include https://)
  • User has permission to create issues in the project
  • Project key exists (e.g., "ENG" not "Engineering")
  • Issue type names match your Jira configuration
  • Assignee names match Jira usernames exactly
AI extracts wrong information

Improve accuracy:

  • Use clearer formatting in meeting notes
  • Provide examples: "Extract action items like this example: [example]"
  • Ask AI to show extracted items before creating tickets
  • Correct mistakes: "That's wrong, the assignee is actually John, not Jane"
  • Use structured sections in Notion (Action Items, Tasks, etc.)
Assignee names don't match Jira users

Solutions:

  • Create a mapping: "When you see 'Alice' in notes, use Jira username 'alice.smith'"
  • Use Jira usernames directly in meeting notes
  • Leave tickets unassigned and assign manually
  • Ask AI to search Jira users first: "Find Jira user matching 'Alice Smith'"

Real-World Use Cases

1. Daily Standup Notes

Automatically create tickets from blockers mentioned in standup:

Read today's standup notes from Notion and create Jira tickets for any blockers mentioned.

2. Client Meeting Follow-ups

Convert client requests into actionable tickets:

Extract all client requests from the meeting notes and create Jira tickets with label "client-request".

3. Retrospective Action Items

Turn retrospective improvements into tracked tasks:

Find action items from the latest retrospective and create tickets in the "Improvements" epic.

What You Built

Congratulations! You now have an automated workflow that:

  • βœ… Connects to Notion to read meeting notes
  • βœ… Extracts action items with assignees and due dates
  • βœ… Creates Jira tickets automatically
  • βœ… Links tickets back to original meeting notes
  • βœ… Handles priorities, labels, and custom fields
  • βœ… Can be automated or run on-demand

Next Steps

  • Add Slack notifications: Get notified when tickets are created
  • Create ticket templates: Standardize ticket formats for different meeting types
  • Add validation: Review tickets before auto-creating in production
  • Track metrics: Measure how many tickets come from meetings
  • Expand to other sources: Process emails, Slack messages, or Google Docs

Test MCP Servers Now

Try Notion and Jira MCP tools in our online playground

Open MCP Playground β†’

Related Recipes

Frequently Asked Questions

Can this work with other note-taking apps besides Notion?
Yes! You can adapt this workflow for Google Docs (via Google Drive MCP), Confluence (via Atlassian MCP), or any text-based source. The key is having an MCP server that can read the content, then extract and create tickets.
What if the meeting notes are in a different language?
Modern AI models like Claude handle multiple languages well. You can specify: "Extract action items from these Spanish meeting notes" and the AI will understand. However, Jira ticket creation will use your Jira's default language.
How accurate is the action item extraction?
For well-structured notes with clear action items, accuracy is 85-95%. For unstructured notes or ambiguous language, accuracy drops to 70-80%. Always review extracted items before creating tickets, especially in production workflows.
Can I customize the Jira ticket format?
Absolutely! You can specify any Jira fields in your prompt: custom fields, components, fix versions, labels, etc. The AI will include them when creating tickets. Example: "Set Component to 'Backend' for all API-related tasks."
What happens if an action item is already a Jira ticket?
The AI can check for duplicates by searching Jira first. Add to your prompt: "Before creating tickets, search Jira to see if similar tickets already exist. If found, skip creation and provide the existing ticket key."
Can this work with Jira Server/Data Center?
Yes! The Atlassian MCP server supports both Jira Cloud and Jira Server/Data Center. For Server/Data Center, use Personal Access Tokens (PAT) instead of API tokens. Set JIRA_PAT environment variable instead of JIRA_API_TOKEN.
NT

Nikhil Tiwari

15+ years of experience in product development, AI enthusiast, and passionate about building innovative solutions that bridge the gap between technology and real-world applications. Specializes in creating developer tools and platforms that make complex technologies accessible to everyone.