Jira Tool
Connection Setup GuideThe 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
Name | Type | Description |
---|---|---|
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
Name | Type | Description |
---|---|---|
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
Name | Type | Description |
---|---|---|
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
Name | Type | Description |
---|---|---|
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
Name | Type | Description |
---|---|---|
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)