Source Code:
src/gaia/agents/jira/agent.py · src/gaia/apps/jira/app.pyOverview
The GAIA Jira Agent provides a natural language interface for interacting with Atlassian Jira. The agent communicates directly with the Atlassian REST API - no intermediary services or MCP bridge required. It automatically discovers your Jira instance configuration and allows you to search, create, and update issues using plain English commands.First time here? Complete the Setup guide first to install GAIA and its dependencies.
Desktop WebUI: GAIA includes a JIRA WebUI as an Electron desktop application. See the WebUI Configuration section below for setup instructions.
Quick Start
Prerequisites
- GAIA Installation: Follow the Setup guide to install GAIA. The base installation includes all dependencies needed for the Jira agent.
-
Download Required Model:
The Jira agent uses the
Qwen3-Coder-30B-A3B-Instruct-GGUFmodel for reliable JSON parsing and JQL generation. Use the Lemonade server’s model manager to download it:- Start Lemonade server:
lemonade-server serve - Open the model manager in your browser (typically http://localhost:8000)
- Search for and download:
Qwen3-Coder-30B-A3B-Instruct-GGUF
- Start Lemonade server:
-
Set Jira Credentials:
Required - Your Jira credentials:
Or create a
.envfile in the project root (see.env.examplefor template)
Verify Installation
Check that GAIA is installed correctly:Basic Usage
Important Note
The Jira agent was developed and tested using a dummy Jira project. Different Jira projects may have varying configurations, custom fields, workflows, and permissions that could affect the agent’s behavior. You may encounter errors or unexpected results depending on your specific Jira instance setup. The agent’s auto-discovery feature helps adapt to different configurations, but some manual adjustments may be needed for complex or highly customized Jira environments.Architecture Overview
Key Components
-
JiraAgent (
src/gaia/agents/jira/agent.py)- Core agent that processes natural language queries
- Automatically discovers Jira instance configuration (projects, issue types, statuses, priorities)
- Uses LLM to translate natural language to JQL and execute operations
- Registers three main tools:
jira_search,jira_create,jira_update
-
JiraApp (
src/gaia/apps/jira/app.py)- Application wrapper for the JiraAgent
- Provides high-level methods for common operations
- Handles interactive mode
- Formats output for user display
-
GAIA Jira CLI (
gaia jiracommand)- Easy command-line interface for Jira operations
- Supports both direct queries and interactive mode
- Automatically manages agent lifecycle
- No coding required - just natural language commands
How It Works
- Automatic Discovery: On first use, the agent discovers your Jira instance configuration
- Dynamic Prompting: Uses discovered config to teach the LLM about your specific Jira setup
- Natural Language Processing: LLM converts queries to structured tool calls
- Tool Execution: Executes appropriate Jira operations via REST API
- Result Formatting: Returns user-friendly responses
Usage Examples
Natural Language Commands
Search Operations
Find your assigned issues:Creating Issues
Simple idea creation:Updating Issues
Change priority:Interactive Mode
Integration Methods
GAIA provides two methods for third-party applications to integrate with the Jira agent:1. Python API (Direct Integration)
Use the JiraAgent directly in your Python applications:2. MCP Server (HTTP/JSON-RPC Integration)
For non-Python applications, use the MCP bridge to access the Jira agent via HTTP. Start the MCP bridge (if needed for external integrations):- MCP Documentation - Complete MCP bridge reference
- n8n Integration Guide - Workflow automation examples
Key Features
Automatic Configuration Discovery
The agent automatically discovers your Jira instance configuration on first use. The agent learns about:- Available projects and their keys
- Issue types (Bug, Task, Story, Epic, etc.)
- Valid statuses (To Do, In Progress, Done, etc.)
- Priority levels (Highest, High, Medium, Low, Lowest)
- Custom fields and values specific to your instance
Intelligent Query Translation
The agent uses an LLM to understand context and intent:- “my issues” → Knows to use
assignee = currentUser() - “critical” → Maps to your instance’s priority values
- “this week” → Calculates correct date ranges
- “in progress” → Uses your actual status names (even if custom)
Robust Error Handling and Recovery
- Error Recovery: Automatically retries failed operations with exponential backoff
- Intelligent Fallbacks: When operations fail, the agent attempts alternative approaches
- Credential Validation: Validates credentials before operations to prevent unnecessary API calls
- Helpful Error Messages: Provides specific, actionable error messages for invalid queries
- Smart Suggestions: Suggests corrections for common mistakes (e.g., invalid issue types, wrong field names)
- Network Resilience: Handles network issues gracefully with automatic reconnection attempts
- State Recovery: Maintains conversation context even after errors, allowing users to continue without starting over
Configuration
Getting Your Jira API Token
- Log into your Atlassian account
- Go to Account Settings > Security > API tokens
- Click “Create API token”
- Give it a name (e.g., “GAIA Integration”)
- Copy the token and save it securely
Setting Environment Variables
Windows
Linux/Mac
Using .env file
Create a .env file in your project root:Advanced Usage
Custom Model Selection
Use a different LLM model for specific use cases:Saving Query History
Save query results to file for audit/analysis:Troubleshooting
Common Issues and Solutions
”Missing Jira credentials”
Check if environment variables are set:“No issues found” when you know they exist
Enable debug mode to see the generated JQL:“Invalid issue type” errors
Discover what issue types are available:MCP Bridge Connection Issues
Check if MCP bridge is running:Best Practices
1. Use Specific Queries
Good - specific and actionable:2. Leverage Auto-Discovery
Let the agent discover your setup first:3. Use Interactive Mode for Exploration
Best for iterative queries and exploration:4. Create Related Ideas
Create multiple related ideas efficiently:Testing Your Integration
Quick Test Script
Running Agent Tests
Run the test suite:Limitations
- API Rate Limits: Atlassian enforces rate limits on API calls
- Field Permissions: Can only access/modify fields you have permission for
- Bulk Operations: Currently processes items sequentially, not in parallel
- Attachment Support: Does not currently support file attachments
- Workflow Transitions: Limited support for complex workflow transitions
WebUI Configuration
The JIRA WebUI provides an in-app configuration screen where you can:- Enter your JIRA server URL
- Set your username/email
- Configure your API token
See Also
- GAIA CLI Documentation - Full command line interface guide
- MCP Server Documentation - External integration details
- Agent Development Guide - Build your own agents
- Features Overview - Complete GAIA capabilities