← litejira-mcp

litejira-mcp 2.12.2

npm · litejira-mcp · current release

18
Tools
4
Resources
2
Templates
4
Prompts

Observation

Observed 2026-08-22T16:49:52.442Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  }
}

Tools 18

ToolCategoryAnnotationsRisk
litejira.addCommentPost a comment on a ticket WITHOUT status transition. For comment + status change use replyFeedback instead.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "content": {
      "type": "string",
      "description": "留言內容(Markdown 支援)"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "content",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "新增留言"
}
— · —
litejira.attachLinkAttach a reference URL (doc, design, external page) to a ticket's attachment list. NOT for MR/PR links — use updateField(field='mrUrl') for code review links.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "url": {
      "type": "string",
      "description": "參考連結 URL,必須 http:// 或 https:// 開頭"
    },
    "name": {
      "type": "string",
      "description": "顯示名稱(省略則用 url)"
    },
    "kind": {
      "type": "string",
      "description": "連結分類提示(server 端不限制,free-form)如 doc / design / external"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "url",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "附加 URL 連結"
}
— · —
litejira.batchReassignBatch reassign MANY tickets to the SAME new assignee in ONE call, with a shared reason comment. Triggers a notification per ticket. Returns { success:[id], failed:[{id,error}] }. For a single ticket use litejira.reassignTicket.
Input schema
{
  "type": "object",
  "properties": {
    "ids": {
      "type": "array",
      "description": "工單 ID 陣列(1-100 張,皆 PREFIX-NNN)。一發呼叫由伺服器內部迴圈處理全部,取代逐張單獨呼叫。",
      "items": {
        "type": "string",
        "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
      },
      "minItems": 1,
      "maxItems": 100
    },
    "newAssignee": {
      "type": "string",
      "description": "新 assignee 顯示名稱(不是 email)。動態值,請先讀 litejira://members。"
    },
    "reason": {
      "type": "string",
      "description": "轉派原因(會作為留言寫入每張工單)"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ids",
    "newAssignee",
    "reason",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "批量轉派工單"
}
— · —
litejira.batchSetFieldBatch set ONE field to the SAME value across MANY tickets in ONE call. Whitelist: priority / version / module / parentId (NOT status — for status use litejira.batchTransition). Goes through the same updateTicket path (workflow/member validation per field). Returns { success:[id], failed:[{id,error}] }.
Input schema
{
  "type": "object",
  "properties": {
    "ids": {
      "type": "array",
      "description": "工單 ID 陣列(1-100 張,皆 PREFIX-NNN)。一發呼叫由伺服器內部迴圈處理全部,取代逐張單獨呼叫。",
      "items": {
        "type": "string",
        "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
      },
      "minItems": 1,
      "maxItems": 100
    },
    "field": {
      "type": "string",
      "description": "批量改的欄位(白名單 4 個)。status 不在此 — 改狀態請用 litejira.batchTransition。",
      "enum": [
        "priority",
        "version",
        "module",
        "parentId"
      ]
    },
    "value": {
      "type": [
        "string",
        "number",
        "null"
      ],
      "description": "新值(全批共用)。priority 用 P0-緊急/P1-高/P2-中/P3-低;version 動態值請先讀 litejira://versions(GH-229:meta 已不含版本清單);module 動態值請先讀 litejira://meta;parentId 為 PREFIX-NNN 或 null 解除掛載。"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ids",
    "field",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "destructiveHint": true,
  "openWorldHint": true,
  "title": "批量改工單欄位"
}
— · Destructive
litejira.batchTransitionBatch status transition for MANY tickets in ONE call, by action-button label, WITH automatic role-based reassignment (same semantics as litejira.transitionTicket, applied to every id). All tickets SHOULD currently be at the same status so the action label is valid for each — call litejira.searchTickets to filter a same-status batch first. Tickets where the action is not valid (or not found) land in failed[] without aborting the rest (partial success). NO optimistic lock (batch status changes intentionally skip it to avoid concurrent-write conflicts). Returns { success:[{id,status,assignee}], failed:[{id,error}] }. 退回類動作(direction=back)須帶 reason,否則每張落 failed[](GH-215)。
Input schema
{
  "type": "object",
  "properties": {
    "ids": {
      "type": "array",
      "description": "工單 ID 陣列(1-100 張,皆 PREFIX-NNN)。一發呼叫由伺服器內部迴圈處理全部,取代逐張單獨呼叫。",
      "items": {
        "type": "string",
        "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
      },
      "minItems": 1,
      "maxItems": 100
    },
    "action": {
      "type": "string",
      "description": "動作標籤(如「送release測試」「alpha不通過」),對全批工單當前狀態須合法;不合法的工單落在 failed[]。合法值依當前狀態而定,請先 litejira.getTransitions 取得。"
    },
    "extraFields": {
      "type": "object",
      "description": "連帶欄位(全批共用,不覆蓋 status/assignee)。LJ-188 送測三欄必備,缺項在此帶入:{ fixMethod: \"修復方式\", verifyMethod: \"驗證方式\", releaseMethod: \"熱更/換包/停服\" }。"
    },
    "reason": {
      "type": "string",
      "description": "GH-215:退回類動作(direction=back)必填的原因,批次共用;會記入每張工單歷程。前進類動作可省略。"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ids",
    "action",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "批量流轉工單狀態(含自動轉派)"
}
— · —
litejira.convertTicketTypeConvert ticket type (e.g. BUG→REQ, IDEA→TASK). Allowed conversions: any of BUG/REQ/IDEA/TASK/EPIC can convert to any other. STD type is NOT convertible.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "newType": {
      "type": "string",
      "description": "目標類型(STD 不可轉,故只 5 選 1)",
      "enum": [
        "EPIC",
        "REQ",
        "BUG",
        "IDEA",
        "TASK"
      ]
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "newType",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "destructiveHint": true,
  "openWorldHint": true,
  "title": "轉換工單類型"
}
— · Destructive
litejira.createTicketCreate a new ticket. Required: type (BUG/REQ/EPIC/IDEA/TASK/STD), title. Optional: priority, assignee, version, description, subtype, module, releaseMethod, etc. BUG type also accepts reproSteps, expectedResult, foundVersion. STD type (LJ-106 客服申訴) also accepts stdLevel2 (二級類目) + stdLevel3 (三級類目); 不支援 subtype / module / parentId。
Input schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "工單類型",
      "enum": [
        "EPIC",
        "REQ",
        "BUG",
        "IDEA",
        "TASK",
        "STD"
      ]
    },
    "title": {
      "type": "string",
      "description": "工單標題"
    },
    "priority": {
      "type": "string",
      "description": "優先級(含中文後綴)",
      "enum": [
        "P0-緊急",
        "P1-高",
        "P2-中",
        "P3-低"
      ]
    },
    "assignee": {
      "type": "string",
      "description": "Member 顯示名稱(不是 email);省略則自動指派(處理人)"
    },
    "owner": {
      "type": "string",
      "description": "GH-242 負責人(最終負責人,固定)顯示名稱(不是 email);省略留空,之後首次進入開發/進行中類狀態自動補為推進者"
    },
    "version": {
      "type": "string",
      "description": "目標版本。動態值請先讀 litejira://versions(GH-229:合法版本清單只在此資源,meta 不含版本;後端不會擋臆造字串,寫錯不會報錯)"
    },
    "description": {
      "type": "string",
      "description": "工單描述 / body(Markdown 支援)"
    },
    "subtype": {
      "type": "string",
      "description": "子類型。動態值依 type 而定,請先讀 litejira://meta。"
    },
    "module": {
      "type": "string",
      "description": "模塊。動態值,請先讀 litejira://meta。"
    },
    "releaseMethod": {
      "type": "string",
      "description": "發布方式(熱更=能上現役熱修線含純後端修復/換包=需重新打包發版/停服=需停機維護),送測必填非待定",
      "enum": [
        "待定",
        "熱更",
        "換包",
        "停服"
      ]
    },
    "notes": {
      "type": "string",
      "description": "內部備註"
    },
    "reproSteps": {
      "type": "string",
      "description": "BUG 重現步驟(BUG type 專用)"
    },
    "expectedResult": {
      "type": "string",
      "description": "BUG 預期結果(BUG type 專用)"
    },
    "foundVersion": {
      "type": "string",
      "description": "BUG 發現版本(BUG type 專用)"
    },
    "parentId": {
      "type": "string",
      "description": "父工單 ID(REQ/BUG → EPIC)",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "dueDate": {
      "type": "string",
      "description": "到期日(YYYY-MM-DD)"
    },
    "startDate": {
      "type": "string",
      "description": "開始日(YYYY-MM-DD)"
    },
    "stdLevel2": {
      "type": "string",
      "description": "STD 客服申訴二級類目。動態值,請先讀 litejira://meta(STD type 專用)。"
    },
    "stdLevel3": {
      "type": "string",
      "description": "STD 客服申訴三級類目。動態值(依 stdLevel2 cascade),請先讀 litejira://meta。"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "type",
    "title",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "建立工單"
}
— · —
litejira.getActivityLogGet full activity timeline (comments + system events like status changes, reassignments). Paginated.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "limit": {
      "type": "integer",
      "description": "Max results (1-100). 超過上限請改用 cursor 分頁。",
      "minimum": 1,
      "maximum": 100
    },
    "cursor": {
      "type": "string",
      "description": "分頁 cursor(從前一次回應的 nextCursor 帶入)"
    },
    "includeComments": {
      "type": "boolean",
      "description": "是否含留言事件(預設 true)"
    },
    "includeSystemEvents": {
      "type": "boolean",
      "description": "是否含系統事件如狀態變更 / 轉派(預設 true)"
    }
  },
  "required": [
    "ticketId"
  ],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "title": "取工單時間軸"
}
Read only · —
litejira.getTransitionsGet the currently available action-button transitions for a ticket (by its current status). Returns { group, status, transitions, actions: [{ label, toStatus, direction }], isFinal }. ONLY actions[].label is a valid "action" arg for litejira.transitionTicket / litejira.batchTransition. GH-253: the "transitions" array is NOT an action list — it is the backend validation whitelist of target STATUS names (non-final states always include 廢單/退單 even when no such button exists for that type), and its values differ from action labels (e.g. BUG at 待開發 → transitions = 開發中/已取消/廢單/退單, actions = 開始開發/取消). Sending a transitions[] value as "action" will be rejected.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    }
  },
  "required": [
    "ticketId"
  ],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "title": "查工單當前可用流轉動作"
}
Read only · —
litejira.linkTicketsSet or remove parent-child relationship between tickets (e.g. link BUG to EPIC). Pass parentId=null to unlink.
Input schema
{
  "type": "object",
  "properties": {
    "childId": {
      "type": "string",
      "description": "子工單 ID",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "parentId": {
      "type": [
        "string",
        "null"
      ],
      "description": "父工單 ID;傳 null 解除關聯"
    },
    "expectedUpdatedAt": {
      "type": "number",
      "description": "樂觀鎖:上一次讀到的 updatedAt(ms timestamp),用於偵測併寫衝突"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "childId",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "destructiveHint": true,
  "openWorldHint": true,
  "title": "關聯/解除工單父子"
}
— · Destructive
litejira.listCommentsList comments for a ticket (paginated). Returns comment content + author + timestamps.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "limit": {
      "type": "integer",
      "description": "Max results (1-100). 超過上限請改用 cursor 分頁。",
      "minimum": 1,
      "maximum": 100
    },
    "cursor": {
      "type": "string",
      "description": "分頁 cursor(從前一次回應的 nextCursor 帶入)"
    },
    "order": {
      "type": "string",
      "description": "Sort order:asc 或 desc",
      "enum": [
        "asc",
        "desc"
      ]
    }
  },
  "required": [
    "ticketId"
  ],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "title": "列出工單留言"
}
Read only · —
litejira.reassignTicketReassign a ticket to a different member with an optional reason comment. Triggers notification to new assignee. For changing assignee without comment use updateField(field='assignee').
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "newAssignee": {
      "type": "string",
      "description": "新 assignee 顯示名稱(不是 email)。動態值,請先讀 litejira://members。"
    },
    "reason": {
      "type": "string",
      "description": "轉派原因(會作為留言寫入工單)"
    },
    "expectedUpdatedAt": {
      "type": "number",
      "description": "樂觀鎖:上一次讀到的 updatedAt(ms timestamp),用於偵測併寫衝突"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "newAssignee",
    "reason",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "轉派工單"
}
— · —
litejira.removeAttachmentRemove a previously attached reference URL from a ticket's attachment list, matched by url. Idempotent: removing a url that is not attached returns removed:false without error. NOT for MR/PR links — those live in the mrUrl field.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "url": {
      "type": "string",
      "description": "要移除的附件 URL(以 attachLink 當初附上的 url 為準)"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "url",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "destructiveHint": true,
  "openWorldHint": true,
  "title": "移除附件連結"
}
— · Destructive
litejira.replyFeedbackPost a comment AND optionally transition ticket status in one call. Use this when the comment is paired with a status change. For comment-only use addComment instead.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "content": {
      "type": "string",
      "description": "留言內容(Markdown 支援)"
    },
    "transition": {
      "type": "object",
      "description": "可選的狀態轉換。Shape: { toStatus: string }。server 端只看 toStatus 欄。"
    },
    "expectedUpdatedAt": {
      "type": "number",
      "description": "樂觀鎖:上一次讀到的 updatedAt(ms timestamp),用於偵測併寫衝突"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "content",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "回覆反饋(含可選狀態轉換)"
}
— · —
litejira.searchTicketsSearch and filter tickets. Defaults to compact 12-field items; use responseMode=count for totals, responseMode=full only when list-level full fields are required, or litejira://ticket/{id} for one complete ticket.
Input schema
{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Keyword search across title + description"
    },
    "type": {
      "type": "string",
      "description": "Filter by ticket type",
      "enum": [
        "EPIC",
        "REQ",
        "BUG",
        "IDEA",
        "TASK",
        "STD"
      ]
    },
    "status": {
      "type": "string",
      "description": "Filter by status. 動態值依工單 type 而定,請先讀 litejira://workflow/{type}。"
    },
    "assignee": {
      "type": "string",
      "description": "Filter by assignee 處理人顯示名稱(不是 email)"
    },
    "owner": {
      "type": "string",
      "description": "GH-242 Filter by owner 負責人(最終負責人)顯示名稱(不是 email)"
    },
    "creator": {
      "type": "string",
      "description": "Filter by creator 顯示名稱"
    },
    "version": {
      "type": "string",
      "description": "Filter by 目標版本(version name)"
    },
    "module": {
      "type": "string",
      "description": "Filter by module 模塊。動態值,請先讀 litejira://meta。"
    },
    "subtype": {
      "type": "string",
      "description": "Filter by subtype 子類型。動態值依 type 而定,請先讀 litejira://meta。"
    },
    "responseMode": {
      "type": "string",
      "description": "Response size: count=只回總數,compact=12 個核心欄位(MCP 預設),full=既有完整清單欄位",
      "enum": [
        "count",
        "compact",
        "full"
      ],
      "default": "compact"
    },
    "limit": {
      "type": "integer",
      "description": "Max results (1-100). 超過上限請改用 cursor 分頁。",
      "minimum": 1,
      "maximum": 100
    },
    "cursor": {
      "type": "string",
      "description": "分頁 cursor(從前一次回應的 nextCursor 帶入)"
    },
    "sort": {
      "type": "string",
      "description": "Sort field",
      "enum": [
        "createdAt",
        "updatedAt",
        "priority",
        "dueDate"
      ]
    },
    "order": {
      "type": "string",
      "description": "Sort order:asc 或 desc",
      "enum": [
        "asc",
        "desc"
      ]
    }
  },
  "required": [],
  "additionalProperties": false
}
Annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "title": "搜尋工單"
}
Read only · —
litejira.toggleWatchToggle watch/unwatch on a ticket. Watched tickets appear in "我關注的" sidebar filter.
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "切換工單關注"
}
— · —
litejira.transitionTicketOne-shot status transition by action-button label, WITH automatic role-based reassignment (首次認領→點按者 / 回流→上一手開發者 / 前進→目標 role 預設人). Equivalent to the webapp Drawer action buttons. The "action" label must be one currently available for the ticket — call litejira.getTransitions FIRST to get valid labels. To set status WITHOUT auto-reassign use updateField(field='status') instead. 退回類動作(getTransitions 回傳 direction=back,如 alpha不通過/release不通過/MR打回/退回/退單)必須帶 reason,否則後端拒絕(GH-215:原因會記入工單歷程供被打回的開發者查看)。
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "action": {
      "type": "string",
      "description": "動作標籤(如「開始開發」「送alpha測試」「alpha不通過」)。合法值依工單當前狀態而定,請先呼叫 litejira.getTransitions 取得。"
    },
    "expectedUpdatedAt": {
      "type": "number",
      "description": "樂觀鎖:上一次讀到的 updatedAt(ms timestamp),用於偵測併寫衝突"
    },
    "extraFields": {
      "type": "object",
      "description": "連帶欄位(不覆蓋 status/assignee)。LJ-188 送測(進 alpha/release 測試 / 熱修待合 release)三欄必備,缺項在此帶入:{ fixMethod: \"修復方式\", verifyMethod: \"驗證方式\", releaseMethod: \"熱更/換包/停服\" }。"
    },
    "reason": {
      "type": "string",
      "description": "GH-215:退回類動作(direction=back)必填的原因,說明測試哪裡不通過;會記入工單歷程。前進類動作可省略。"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "action",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "idempotentHint": true,
  "openWorldHint": true,
  "title": "流轉工單狀態(動作按鈕,含自動轉派)"
}
— · —
litejira.updateFieldUpdate a single ticket field. Whitelist: title, priority, version, dueDate, startDate, description, notes, subtype, tags, mrUrl, reproSteps, expectedResult, verifyMethod, fixMethod, verifiableVersionAlpha, verifiableVersionRelease, foundVersion, module, parentId, stdLevel2, stdLevel3, releaseMethod, status, assignee, owner. For MR/PR links: field='mrUrl'. Assignee (處理人) follows member validation; LJ-188/GH-249: changing assignee here also notifies old+new assignee via team Chat (same as reassignTicket, without a reason comment). GH-242: field='owner'(負責人 / 最終負責人,固定,不隨狀態流轉變化)可設成員名或清空(value=null / "");與 assignee 處理人區分。releaseMethod(發布方式)值域受控 待定/熱更/換包/停服(送測必填非待定). LJ-188 WELDED: field='status' WITHOUT force is REJECTED (use_transitionTicket) — all normal transitions MUST go through litejira.transitionTicket (carries send-test 3-field gate 發布方式/修復方式/驗證方式 + role auto-reassign + notification). ADMIN ONLY escape hatch: pass force=true with field='status' to bypass workflow path validation (LJ-153) — target must still be a defined status of the ticket's flow group; the audit comment is marked 「(管理者強制)」. field='version' 改為不同值時必帶 reason(後端 version_reason_required 守衛,LJ-168)。
Input schema
{
  "type": "object",
  "properties": {
    "ticketId": {
      "type": "string",
      "description": "Ticket ID with prefix (FB/BUG/REQ/EPIC/IDEA/TASK/STD)-NNN,例如 BUG-481 / REQ-205。注意:LJ/DEV 是 LiteJira 自身開發編號(住 BACKLOG.md),非試算表工單,不接受。",
      "pattern": "^(FB|BUG|REQ|EPIC|IDEA|TASK|STD)-\\d+$"
    },
    "field": {
      "type": "string",
      "description": "Whitelist 欄位名(25 個合法值)",
      "enum": [
        "title",
        "priority",
        "version",
        "dueDate",
        "startDate",
        "description",
        "notes",
        "subtype",
        "tags",
        "mrUrl",
        "reproSteps",
        "expectedResult",
        "verifyMethod",
        "fixMethod",
        "verifiableVersionAlpha",
        "verifiableVersionRelease",
        "foundVersion",
        "module",
        "parentId",
        "stdLevel2",
        "stdLevel3",
        "releaseMethod",
        "status",
        "assignee",
        "owner"
      ]
    },
    "value": {
      "type": [
        "string",
        "number",
        "null"
      ],
      "description": "新值。型別依 field 而定:status/subtype/module 等動態值請先讀 litejira://meta;version 動態值請先讀 litejira://versions(GH-229:合法版本清單只在此資源,meta 不含版本;後端不會擋臆造字串,寫錯不會報錯);priority 用 P0-緊急/P1-高/P2-中/P3-低;releaseMethod 用 待定/熱更/換包/停服(發布方式,送測必填非待定);null 代表清空。"
    },
    "force": {
      "type": "boolean",
      "description": "LJ-153 管理者強制改狀態:true 時繞過工作流路徑驗證(僅 field=status 可用、僅 admin 放行;目標仍須是該流程組已定義的狀態)。一般流轉請不要帶此參數。"
    },
    "reason": {
      "type": "string",
      "description": "GH-234:改 field=version 且新舊版本不同時必填(後端 version_reason_required 守衛,LJ-168),說明為何改版本;會記入工單歷程。其他欄位可省略。"
    },
    "expectedUpdatedAt": {
      "type": "number",
      "description": "樂觀鎖:上一次讀到的 updatedAt(ms timestamp),用於偵測併寫衝突"
    },
    "idempotencyKey": {
      "type": "string",
      "description": "Idempotency key(16-64 字元 alphanumeric / _ / -),retry 同語意操作請傳同一個 key。注意:server 端未真正去重,純 client 契約紀律。",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9_-]{16,64}$"
    }
  },
  "required": [
    "ticketId",
    "field",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
Annotations
{
  "destructiveHint": true,
  "openWorldHint": true,
  "title": "更新工單欄位"
}
— · Destructive

Resources 4

Resource templates 2

Prompts 4

Let’s talk about MCP security.

Share your details and our security team will contact you.