MCP server intelligence profile

litejira-mcp Server

A client-side MCP server that enables AI assistants to interact with the LiteJira issue tracking system for creating, searching, and managing issues via natural language

Local OnlyUNTAG-LAB
Awaiting current scanNpm · 2.12.2

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

1Distribution channel
18Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.

Install and connect

Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.

Install litejira-mcp from npm

Version 2.12.2 declares 1 executable entrypoint.

npm install --save-exact litejira-mcp@2.12.2
npx -y -p litejira-mcp@2.12.2 litejira-mcp
MCP client configuration example
{
  "mcpServers": {
    "litejira-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "litejira-mcp@2.12.2",
        "litejira-mcp"
      ]
    }
  }
}

Identity

Canonical sluglitejira-mcp-b7367dcfDeploymentLocal Only
Canonical packagenpm:litejira-mcpRepositoryUNTAG-LAB/litejira-mcp
First publishedLatest release
Last security verificationClassification confidence90%
PublicationDraftOfficial distributionNot verified

Distributions

ChannelIdentifierCurrent versionVersionsSource
npmlitejira-mcp2.12.21Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
npmlitejira-mcp2.12.2CurrentSep 5, 202618 toolsSucceeded · 4 resources · 4 promptsEvidence restricted
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

No public current-version evidence is available yet.

Current protocol inventory

2025-06-18Negotiated protocol
litejira-mcpServer-reported name
3Capability groups
Aug 22, 2026Observed

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": "新增留言"
}
IdempotentOpen world
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 連結"
}
IdempotentOpen world
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": "批量轉派工單"
}
IdempotentOpen world
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": "批量改工單欄位"
}
DestructiveOpen world
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": "批量流轉工單狀態(含自動轉派)"
}
IdempotentOpen world
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": "轉換工單類型"
}
DestructiveOpen world
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": "建立工單"
}
IdempotentOpen world
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 onlyOpen world
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 onlyOpen world
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": "關聯/解除工單父子"
}
DestructiveOpen world
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 onlyOpen world
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": "轉派工單"
}
IdempotentOpen world
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": "移除附件連結"
}
DestructiveOpen world
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": "回覆反饋(含可選狀態轉換)"
}
IdempotentOpen world
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 onlyOpen world
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": "切換工單關注"
}
IdempotentOpen world
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": "流轉工單狀態(動作按鈕,含自動轉派)"
}
IdempotentOpen world
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": "更新工單欄位"
}
DestructiveOpen world

Resources 4

  • Dashboard 統計litejira://dashboard

    各狀態計數、逾期數

  • LiteJira 元資料litejira://meta

    類型/優先級/狀態/子類型/模塊/STD類目清單(不含流轉規則,見 workflow 資源)

  • 成員清單litejira://members

    啟用成員(name/email/role)

  • 版本清單litejira://versions

    版本列表(name/status/dates)

Resource templates 2

  • 工作流規則litejira://workflow/{type}

    指定類型的狀態流轉規則

  • 工單詳情litejira://ticket/{id}

    單張工單完整資料(28 欄位)

Prompts 4

  • close-ticketclose-ticket

    關閉工單 — 檢查合法狀態轉換路徑,標記完成並附留言

  • report-bugreport-bug

    回報 BUG — 引導填寫標題/重現步驟/預期結果,自動判斷子類型+負責人+版本,建單

  • triage-tickettriage-ticket

    分類工單 — 讀取完整工單+工作流規則+成員清單,建議優先級/負責人/狀態

  • weekly-statusweekly-status

    本週進度報告 — 統計本週完成/進行中/新開/逾期工單,按版本分組

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

litejira-mcp Server questions

How do I install litejira-mcp Server?

Install the selected package version with: npm install --save-exact litejira-mcp@2.12.2

What tools does litejira-mcp Server provide?

litejira-mcp Server exposed 18 tools during independent protocol observation, including litejira.addComment, litejira.attachLink, litejira.batchReassign, litejira.batchSetField, litejira.batchTransition, litejira.convertTicketType, litejira.createTicket, litejira.getActivityLog, and others.

Is litejira-mcp Server secure?

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

Official vs Community MCP Servers

Let’s talk about MCP security.

Share your details and our security team will contact you.