Skip to main content

Jira Connector

The Jira connector enables AxonFlow agents to interact with Atlassian Jira for issue tracking, project management, and workflow automation with full policy enforcement and audit logging.

Overview

PropertyValue
Typejira
EditionEnterprise
Auth MethodsAPI Token, OAuth 2.0 (3LO), Personal Access Token
Capabilitiesquery, execute, search, transitions, comments, attachments

Use Cases

  • Query and create issues for DevOps assistant agents
  • Automate ticket triage and assignment workflows
  • Generate sprint reports and project status summaries
  • Manage incident response tickets programmatically

Prerequisites

  • AxonFlow Enterprise license (requires Enterprise Edition)
  • Jira Cloud or Jira Data Center instance
  • One of the following authentication methods:
    • API Token (Jira Cloud, recommended for service accounts)
    • Personal Access Token (Jira Data Center)
    • OAuth 2.0 (3LO) (for user-context operations)
  • Service account with appropriate project permissions

Jira API Token Setup (Cloud)

  1. Go to Atlassian API Tokens
  2. Click Create API token
  3. Name the token (e.g., "AxonFlow Integration")
  4. Copy the generated token
  5. Use the token with the service account email as credentials

Configuration

Environment Variables

# Required
MCP_jira_BASE_URL="https://your-domain.atlassian.net"
MCP_jira_EMAIL="[email protected]"
MCP_jira_API_TOKEN="ATATT3xFfGF0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Optional
MCP_jira_TIMEOUT="30s"
MCP_jira_MAX_RETRIES="3"
MCP_jira_DEFAULT_PROJECT="PROJ"

Configuration Options

OptionTypeRequiredDefaultDescription
base_urlstringYes-Jira instance URL (e.g., https://your-domain.atlassian.net)
emailstringYes*-Atlassian account email (required for Cloud API Token auth)
api_tokenstringYes*-API Token or Personal Access Token
default_projectstringNo-Default project key for issue creation
timeoutstringNo30sRequest timeout
max_retriesintegerNo3Maximum retry attempts on transient failures

Connector Config (Customer Portal)

{
"name": "jira-project",
"type": "jira",
"options": {
"base_url": "https://your-domain.atlassian.net",
"default_project": "PROJ",
"timeout": 30,
"max_retries": 3
},
"credentials": {
"email": "[email protected]",
"api_token": "ATATT3xFfGF0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}

Installation

Install the Jira connector via the connector marketplace API:

curl -X POST http://localhost:8081/api/v1/connectors/jira/install \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"name": "jira-project",
"config": {
"base_url": "https://your-domain.atlassian.net",
"email": "[email protected]",
"api_token": "ATATT3xFfGF0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}'

Operations

Search Issues (JQL)

curl -X POST https://your-axonflow.example.com/mcp/resources/query \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"connector": "jira-project",
"statement": "issues.search",
"parameters": {
"jql": "project = PROJ AND status = \"In Progress\" AND assignee = currentUser() ORDER BY priority DESC",
"fields": ["summary", "status", "priority", "assignee", "created"],
"maxResults": 25
}
}'

Response:

{
"success": true,
"rows": [
{
"key": "PROJ-1234",
"fields": {
"summary": "API latency exceeding SLA threshold",
"status": {"name": "In Progress"},
"priority": {"name": "High"},
"assignee": {"displayName": "Alice Johnson"},
"created": "2025-12-01T10:30:00.000+0000"
}
}
],
"row_count": 1,
"duration_ms": 180,
"connector": "jira-project"
}

Create an Issue

curl -X POST https://your-axonflow.example.com/mcp/tools/execute \
-H "Content-Type: application/json" \
-d '{
"connector": "jira-project",
"action": "issues.create",
"parameters": {
"project": "PROJ",
"issuetype": "Bug",
"summary": "Login page returns 500 error on mobile",
"description": "Users on iOS Safari are getting a 500 error when attempting to log in. Affects version 2.1.0.",
"priority": "High",
"labels": ["mobile", "production"],
"assignee": "alice.johnson"
}
}'

Response:

{
"success": true,
"rows_affected": 1,
"message": "Issue created (key=PROJ-1235)",
"duration_ms": 210,
"connector": "jira-project"
}

Transition an Issue

curl -X POST https://your-axonflow.example.com/mcp/tools/execute \
-d '{
"connector": "jira-project",
"action": "issues.transition",
"parameters": {
"issue_key": "PROJ-1234",
"transition": "Done",
"comment": "Resolved in release v2.1.1. Verified in staging."
}
}'

Add a Comment

curl -X POST https://your-axonflow.example.com/mcp/tools/execute \
-d '{
"connector": "jira-project",
"action": "comments.add",
"parameters": {
"issue_key": "PROJ-1234",
"body": "Automated analysis: This issue correlates with deployment at 10:15 UTC. Root cause likely related to database connection pool exhaustion."
}
}'

List Projects

curl -X POST https://your-axonflow.example.com/mcp/resources/query \
-d '{
"connector": "jira-project",
"statement": "projects.list",
"parameters": {
"maxResults": 50
}
}'

Supported Operations

OperationDescription
issues.searchSearch issues using JQL (Jira Query Language)
issues.createCreate a new issue in a project
issues.updateUpdate issue fields (summary, description, priority, etc.)
issues.transitionMove an issue through workflow transitions
comments.addAdd a comment to an issue
projects.listList accessible projects
sprints.listList sprints for a board

Limitations

  • JQL complexity: Very complex JQL queries may time out. Break large queries into smaller filtered sets.
  • Rate limits: Jira Cloud enforces rate limits (varies by plan). The connector handles 429 responses with automatic backoff.
  • Attachment size: File attachments are limited by your Jira instance configuration (default 10 MB).
  • Bulk operations: Issue creation is limited to one issue per request. Use batch workflows for bulk creation.
  • Custom fields: Custom fields must be referenced by their field ID (e.g., customfield_10001), not display name.

Troubleshooting

Authentication Failed (401)

  • Verify the API token is valid and has not been revoked
  • For Jira Cloud: ensure the email matches the Atlassian account that generated the token
  • For Data Center: confirm the Personal Access Token has not expired
  • Check that the service account has access to the target project

Permission Denied (403)

  • Verify the service account has the required project role (e.g., "Developer" or "Administrator")
  • Check project permission scheme in Jira administration
  • Ensure the issue type is available in the target project

JQL Syntax Error (400)

  • Validate JQL syntax in Jira's issue search UI first
  • Ensure field names are correct (custom fields need cf[10001] format in some contexts)
  • Check that project keys and status names exist

Health Check

curl https://your-axonflow.example.com/mcp/connectors/jira-project/health

Response:

{
"healthy": true,
"latency_ms": 120,
"details": {
"base_url": "https://your-domain.atlassian.net",
"server_title": "Your Company Jira",
"auth_type": "api_token"
}
}