Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:49:50 +08:00
commit adc4b2be25
147 changed files with 24716 additions and 0 deletions

View File

@@ -0,0 +1,114 @@
mxcp: 1
tool:
name: get_issue
description: |
Get detailed information for a specific JIRA issue by its key.
Returns comprehensive issue information including all fields, assignee, reporter, etc.
type: tool
annotations:
title: Get Issue
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
language: python
source:
file: ../python/jira_endpoints.py
parameters:
- name: issue_key
type: string
description: |
The issue key (e.g., 'RD-123', 'TEST-456').
This is the unique identifier for the issue visible in the Jira UI.
examples: [
"RD-123",
"TEST-456",
"PROJ-789"
]
return:
type: object
properties:
key:
type: string
description: The issue key
id:
type: string
description: The issue ID
summary:
type: string
description: The issue summary
description:
type: string
description: The issue description
status:
type: string
description: The current status
assignee:
type: string
description: The assignee display name
assignee_account_id:
type: string
description: The assignee account ID
reporter:
type: string
description: The reporter display name
reporter_account_id:
type: string
description: The reporter account ID
issue_type:
type: string
description: The issue type
priority:
type: string
description: The priority level
resolution:
type: string
description: The resolution
resolution_date:
type: string
description: The resolution date
created:
type: string
description: The creation date
updated:
type: string
description: The last update date
due_date:
type: string
description: The due date
labels:
type: array
items:
type: string
description: The issue labels
components:
type: array
items:
type: string
description: The issue components
fix_versions:
type: array
items:
type: string
description: The fix versions
project:
type: object
properties:
key:
type: string
name:
type: string
description: The project information
parent:
type: string
description: The parent issue key
url:
type: string
description: The issue URL
tests:
- name: "Get issue by key"
description: "Verify issue retrieval returns expected structure"
arguments:
- key: issue_key
value: "RD-15333"

View File

@@ -0,0 +1,76 @@
mxcp: 1
tool:
name: get_project
description: |
Get details for a specific project by its key.
Returns comprehensive project information including description, settings, and lead.
type: tool
annotations:
title: Get Project
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
language: python
source:
file: ../python/jira_endpoints.py
parameters:
- name: project_key
type: string
description: |
The project key (e.g., 'TEST' for project TEST).
This is the short identifier for the project.
examples: [
"TEST",
"PROJ",
"DEV"
]
return:
type: object
properties:
key:
type: string
description: The project key
name:
type: string
description: The project name
description:
type: string
description: The project description
projectTypeKey:
type: string
description: The project type key
simplified:
type: boolean
description: Whether the project is simplified
style:
type: string
description: The project style
isPrivate:
type: boolean
description: Whether the project is private
archived:
type: boolean
description: Whether the project is archived
lead:
type: object
properties:
displayName:
type: string
emailAddress:
type: string
accountId:
type: string
active:
type: boolean
description: The project lead information
url:
type: string
description: The project URL
tests:
- name: "Get project by key"
description: "Verify project retrieval returns expected structure"
arguments:
- key: project_key
value: "RD"

View File

@@ -0,0 +1,78 @@
mxcp: 1
tool:
name: get_project_role_users
description: |
Get users and groups for a specific role in a project.
Returns detailed information about users and groups assigned to the role.
type: tool
annotations:
title: Get Project Role Users
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
language: python
source:
file: ../python/jira_endpoints.py
parameters:
- name: project_key
type: string
description: |
The project key (e.g., 'TEST' for project TEST).
This is the short identifier for the project.
examples: [
"TEST",
"PROJ",
"DEV"
]
- name: role_name
type: string
description: |
The name of the role to get users for.
Common roles include 'Administrators', 'Developers', 'Users'.
examples: [
"Administrators",
"Developers",
"Users"
]
return:
type: object
properties:
project_key:
type: string
description: The project key
role_name:
type: string
description: The role name
role_id:
type: string
description: The role ID
users:
type: array
items:
type: object
properties:
accountId:
type: string
displayName:
type: string
description: List of users in the role
groups:
type: array
items:
type: object
properties:
name:
type: string
groupId:
type: string
description: List of groups in the role
tests:
- name: "Get role users"
description: "Verify role users returns expected structure"
arguments:
- key: project_key
value: "RD"
- key: role_name
value: "Administrators"

View File

@@ -0,0 +1,45 @@
mxcp: 1
tool:
name: get_project_roles
description: |
Get all roles available in a project.
Returns a list of roles with their IDs and URLs.
type: tool
annotations:
title: Get Project Roles
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
language: python
source:
file: ../python/jira_endpoints.py
parameters:
- name: project_key
type: string
description: |
The project key (e.g., 'TEST' for project TEST).
This is the short identifier for the project.
examples: [
"TEST",
"PROJ",
"DEV"
]
return:
type: array
items:
type: object
properties:
name:
type: string
description: The role name
id:
type: string
description: The role ID
tests:
- name: "Get project roles"
description: "Verify project roles returns array of roles"
arguments:
- key: project_key
value: "RD"

View File

@@ -0,0 +1,53 @@
mxcp: 1
tool:
name: get_user
description: |
Get a specific user by their unique account ID.
Returns detailed user information including display name, email, and account status.
type: tool
annotations:
title: Get User
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
language: python
source:
file: ../python/jira_endpoints.py
parameters:
- name: account_id
type: string
description: |
The unique Atlassian account ID for the user.
This is typically in the format: "557058:ab168c94-8485-405c-88e6-6458375eb30b"
You can get account IDs from other API calls like get_issue or search_user.
examples: [
"557058:ab168c94-8485-405c-88e6-6458375eb30b",
"5b10ac8d82e05b22cc7d4ef5",
"712020:0e99e8b3-7b3a-4b7c-9a1f-9e5d8c7b4a3e"
]
return:
type: object
properties:
accountId:
type: string
description: The account ID
displayName:
type: string
description: The display name
emailAddress:
type: string
description: The email address
active:
type: boolean
description: Whether the user is active
timeZone:
type: string
description: The user's time zone
tests:
- name: "Get user by account ID"
description: "Just run the tool"
arguments:
- key: account_id
value: "557058:ab168c94-8485-405c-88e6-6458375eb30b"

View File

@@ -0,0 +1,84 @@
mxcp: 1
tool:
name: jql_query
description: |
Execute a JQL (Jira Query Language) query to search for issues in your Jira instance.
Returns a list of issues with their details.
Use the start and limit parameters to paginate through large result sets.
type: tool
annotations:
title: JQL Query
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
language: python
source:
file: ../python/jira_endpoints.py
parameters:
- name: query
type: string
description: |
The JQL query string to execute. Examples:
- "project = TEST" to find all issues in the TEST project
- "assignee = currentUser()" to find issues assigned to you
- "status = 'In Progress'" to find issues in progress
examples: [
"project = TEST",
"status = 'In Progress'",
"project = TEST AND status = 'Done'",
"created >= -30d ORDER BY created DESC"
]
- name: start
type: integer
description: |
The index of the first result to return (0-based).
Use this for pagination: start=0 for first page, start=50 for second page, etc.
Defaults to 0 if not specified.
default: 0
examples: [0, 50, 100]
- name: limit
type: integer
description: |
Maximum number of results to return.
If not specified, returns all matching results.
Recommended to use with start parameter for pagination.
examples: [50, 100, 200]
default: null
return:
type: array
items:
type: object
properties:
key:
type: string
summary:
type: string
status:
type: string
assignee:
type: string
reporter:
type: string
created:
type: string
updated:
type: string
url:
type: string
tests:
- name: "Basic project query"
description: "Verify JQL query returns array of issues"
arguments:
- key: query
value: "project = RD"
- key: limit
value: 1
- name: "Status filter query"
description: "Verify JQL query with status filter"
arguments:
- key: query
value: "status = 'In Progress'"
- key: limit
value: 1

View File

@@ -0,0 +1,42 @@
mxcp: 1
tool:
name: list_projects
description: |
Return a concise list of Jira projects.
Returns basic project information including key, name, type, and lead.
type: tool
annotations:
title: List Projects
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
language: python
source:
file: ../python/jira_endpoints.py
parameters: []
return:
type: array
items:
type: object
properties:
key:
type: string
description: The project key
name:
type: string
description: The project name
type:
type: string
description: The project type
lead:
type: string
description: The project lead
url:
type: string
description: The project URL
tests:
- name: "List all projects"
description: "Verify projects list returns array of projects"
arguments: []

View File

@@ -0,0 +1,56 @@
mxcp: 1
tool:
name: search_user
description: |
Search for users by query string (username, email, or display name).
Returns a list of matching users with their details.
type: tool
annotations:
title: Search User
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
language: python
source:
file: ../python/jira_endpoints.py
parameters:
- name: query
type: string
description: |
Search term - can be username, email, display name, or partial matches.
The search is case-insensitive and supports partial matching.
examples: [
"ben@raw-labs.com",
"Benjamin Gaidioz",
"ben",
"benjamin",
"gaidioz"
]
return:
type: array
items:
type: object
properties:
accountId:
type: string
description: The account ID
displayName:
type: string
description: The display name
emailAddress:
type: string
description: The email address
active:
type: boolean
description: Whether the user is active
timeZone:
type: string
description: The user's time zone
tests:
- name: "Search by name"
description: "Verify user search by name returns results"
arguments:
- key: query
value: "Ben"