The Jira tool empowers your AI agent to interact with your Jira projects for seamless project and task management. It can fetch issue details, search for tasks, and update them.

Key Use Cases:

  • Task Summarization: Ask the agent for the status and description of a specific ticket (e.g., "What's the status of PROF-123?").
  • Intelligent Search: Use natural language to find issues (e.g., "Find all open high-priority bugs in the PROF project").
  • Automated Workflows: Create a new bug report based on a user's description or add a comment to a ticket after another tool has completed a task.

jira_tool.get_task

Get details of a Jira task (issue) by its key (e.g., 'PROF-5661').

Parameters

NameTypeDescription
task_key string The key of the Jira task, like 'PROJ-123'.
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.get_task",
    "arguments": {
      "task_key": {
        "type": "string",
        "description": "The key of the Jira task, like 'PROJ-123'."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.get_task",
    "arguments": {
      "task_key": {
        "type": "string",
        "description": "The key of the Jira task, like 'PROJ-123'."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)

jira_tool.search_issues

Searches for Jira issues using a Jira Query Language (JQL) string.

Parameters

NameTypeDescription
jql_query string The JQL query string. Example: 'project = PROF AND status = Open ORDER BY priority DESC'
max_results integer The maximum number of issues to return. Defaults to 20.
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.search_issues",
    "arguments": {
      "jql_query": {
        "type": "string",
        "description": "The JQL query string. Example: 'project = PROF AND status = Open ORDER BY priority DESC'"
      },
      "max_results": {
        "type": "integer",
        "description": "The maximum number of issues to return. Defaults to 20."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.search_issues",
    "arguments": {
      "jql_query": {
        "type": "string",
        "description": "The JQL query string. Example: 'project = PROF AND status = Open ORDER BY priority DESC'"
      },
      "max_results": {
        "type": "integer",
        "description": "The maximum number of issues to return. Defaults to 20."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)

jira_tool.create_issue

Creates a new issue (task, bug, story, etc.) in a Jira project.

Parameters

NameTypeDescription
project_key string The key of the project where the issue will be created (e.g., 'PROF').
summary string The title or summary of the new issue.
description string The detailed description of the issue.
issue_type string The type of the issue, e.g., 'Bug', 'Task', 'Story'. Defaults to 'Task'.
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.create_issue",
    "arguments": {
      "project_key": {
        "type": "string",
        "description": "The key of the project where the issue will be created (e.g., 'PROF')."
      },
      "summary": {
        "type": "string",
        "description": "The title or summary of the new issue."
      },
      "description": {
        "type": "string",
        "description": "The detailed description of the issue."
      },
      "issue_type": {
        "type": "string",
        "description": "The type of the issue, e.g., 'Bug', 'Task', 'Story'. Defaults to 'Task'."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.create_issue",
    "arguments": {
      "project_key": {
        "type": "string",
        "description": "The key of the project where the issue will be created (e.g., 'PROF')."
      },
      "summary": {
        "type": "string",
        "description": "The title or summary of the new issue."
      },
      "description": {
        "type": "string",
        "description": "The detailed description of the issue."
      },
      "issue_type": {
        "type": "string",
        "description": "The type of the issue, e.g., 'Bug', 'Task', 'Story'. Defaults to 'Task'."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)

jira_tool.add_comment

Adds a comment to an existing Jira task.

Parameters

NameTypeDescription
task_key string The key of the Jira task to comment on, like 'PROJ-123'.
body string The content of the comment to add.
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.add_comment",
    "arguments": {
      "task_key": {
        "type": "string",
        "description": "The key of the Jira task to comment on, like 'PROJ-123'."
      },
      "body": {
        "type": "string",
        "description": "The content of the comment to add."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.add_comment",
    "arguments": {
      "task_key": {
        "type": "string",
        "description": "The key of the Jira task to comment on, like 'PROJ-123'."
      },
      "body": {
        "type": "string",
        "description": "The content of the comment to add."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)

jira_tool.transition_issue

Changes the status of a Jira issue by applying a workflow transition.

Parameters

NameTypeDescription
task_key string The key of the Jira task to transition, like 'PROJ-123'.
transition_name string The exact name of the workflow transition to apply (e.g., 'Start Progress', 'Resolve Issue', 'Done'). This is case-sensitive.
curl -X POST https://toolstream.dev/v1/tools/execute \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.transition_issue",
    "arguments": {
      "task_key": {
        "type": "string",
        "description": "The key of the Jira task to transition, like 'PROJ-123'."
      },
      "transition_name": {
        "type": "string",
        "description": "The exact name of the workflow transition to apply (e.g., 'Start Progress', 'Resolve Issue', 'Done'). This is case-sensitive."
      }
    }
  }
}'
import requests
import json

API_KEY = "YOUR_API_KEY"
TOOLSTREAM_URL = "https://toolstream.dev/v1/tools/execute"

payload = {
  "connection_name": "YOUR_CONNECTION_NAME",
  "tool_call": {
    "name": "jira_tool.transition_issue",
    "arguments": {
      "task_key": {
        "type": "string",
        "description": "The key of the Jira task to transition, like 'PROJ-123'."
      },
      "transition_name": {
        "type": "string",
        "description": "The exact name of the workflow transition to apply (e.g., 'Start Progress', 'Resolve Issue', 'Done'). This is case-sensitive."
      }
    }
  }
}

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

response = requests.post(TOOLSTREAM_URL, headers=headers, data=json.dumps(payload))

if response.status_code == 200:
    result = response.json()
    print(json.dumps(result, indent=2))
else:
    print(f"Error: {response.status_code}")
    print(response.text)