用途
JIRA Skill 用于编排和集成 Jira 自动化,通过 atlassian MCP 服务器对 Jira 的事务、项目和元数据进行程序化访问。适用于需要以命令行方式搜索 Jira 事务、获取事务详情、获取拉取请求链接或管理工作流状态的场景。
主要能力
- 搜索事务:使用 searchJiraIssuesUsingJql 通过 JQL 查询事务,支持指定字段与分页。
- 获取事务详情:使用 getJiraIssue 获取单个事务的完整信息,支持指定字段与 expand 参数。
- 查看事务可用状态转换:使用 getTransitionsForJiraIssue 获取当前状态下可用的转换列表(含 ID 与名称)。
- 切换事务状态:使用 transitionJiraIssue 将事务转换到新状态,可同时更新字段。
- 获取项目元数据:使用 getJiraProjectIssueTypesMetadata 获取项目的事务类型元数据。
- 添加评论:使用 addCommentToJiraIssue 为事务添加评论,支持附带 GitHub 永久链接。
- 获取远程关联链接:使用 getJiraIssueRemoteIssueLinks 获取 PR、Confluence 等关联资源,并可用 jq 过滤 GitHub PR。
- 获取事务类型元数据:使用 getJiraIssueTypeMetaWithFields 获取指定项目与事务类型的字段元数据。
使用方式
快速设置
获取工单摘要(一次性):
mise x node@20 -- ./scripts/get_ticket_summary.sh TICKET-123
返回可读摘要,包含 Key、summary、type、status、priority、assignee,创建/更新时间戳,完整描述,关联资源(PR 等),以及 Jira 直链。JSON 输出:
mise x node@20 -- ./scripts/get_ticket_summary.sh TICKET-123 --json
获取当前用户信息:
mise x node@20 -- ./scripts/get_current_user.sh
返回:accountId、displayName、email。或获取特定字段:
mise x node@20 -- ./scripts/get_current_user.sh --account-id
mise x node@20 -- ./scripts/get_current_user.sh --email
mise x node@20 -- ./scripts/get_current_user.sh --display-name
获取 Cloud ID(所有操作必需):
export JIRA_CLOUD_ID=$(mise x node@20 -- ./scripts/get_cloud_id.sh)
export JIRA_URL=$(mise x node@20 -- ./scripts/get_cloud_id.sh --url)
参数传递(重要)
使用函数调用语法(非 flag 语法)。参数放在函数调用内,而非作为 flag:
mcporter call 'atlassian.functionName(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", fields: ["key", "summary"])'
关键规则:参数在函数调用内使用 camelCase;字符串值使用双引号;数组值使用方括号写法;对象值使用对象写法;环境变量在引号外插值:"'$VAR'";不使用 --flag 语法,无需 JSON 字符串转义。
常用操作示例
搜索事务:
mise x node@20 -- mcporter call 'atlassian.searchJiraIssuesUsingJql(cloudId: "'$JIRA_CLOUD_ID'", jql: "assignee = currentUser() AND status = Open")'
获取事务详情:
mise x node@20 -- mcporter call 'atlassian.getJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123")'
获取事务转换:
mise x node@20 -- mcporter call 'atlassian.getTransitionsForJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123")'
切换事务状态:
mise x node@20 -- mcporter call 'atlassian.transitionJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", transition: {id: "11"})'
添加评论:
mise x node@20 -- mcporter call 'atlassian.addCommentToJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", commentBody: "Your comment here")'
获取关联链接:
mise x node@20 -- mcporter call 'atlassian.getJiraIssueRemoteIssueLinks(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123")'
数据中提供但标注为 TODO(暂未提供示例)的操作包括:编辑 Jira 事务字段、创建新事务。
常见 JQL 示例
- assignee = currentUser() —— 分配给你的事务
- status = Open —— 按状态过滤
- project = PROJ —— 指定项目
- updated >= -7d —— 最近 7 天更新
- issuetype = Bug —— 指定事务类型
辅助脚本
- ./scripts/get_ticket_summary.sh:一次性工单摘要,单次调用获取全部工单信息(人类可读或 JSON 格式)
- ./scripts/get_current_user.sh:获取已认证用户信息(accountId、displayName、email)
- ./scripts/get_cloud_id.sh:获取 Jira Cloud ID 和 URL
模式内省
可通过 mcporter CLI 内省 MCP 服务器模式以发现正确参数及类型:
mise x node@20 -- mcporter list atlassian --json | jq -r ".tools[].name"
检查特定工具模式:
mise x node@20 -- mcporter list atlassian --json | jq '.tools[] | select(.name == "addCommentToJiraIssue")'
返回完整 JSON schema,包括 inputSchema.properties、inputSchema.required 及各参数的 options。此内省方式适用于任意工具,只需修改 select() 过滤中的工具名。
可用工具列表
atlassianUserInfo、getAccessibleAtlassianResources、getConfluenceSpaces、getConfluencePage、getPagesInConfluenceSpace、getConfluencePageFooterComments、getConfluencePageInlineComments、getConfluencePageDescendants、createConfluencePage、updateConfluencePage、createConfluenceFooterComment、createConfluenceInlineComment、searchConfluenceUsingCql、getJiraIssue、editJiraIssue、createJiraIssue、getTransitionsForJiraIssue、transitionJiraIssue、lookupJiraAccountId、searchJiraIssuesUsingJql、addCommentToJiraIssue、addWorklogToJiraIssue、getJiraIssueRemoteIssueLinks、getVisibleJiraProjects、getJiraProjectIssueTypesMetadata、getJiraIssueTypeMetaWithFields、search、fetch。
适用场景
- 需要用 JQL 批量检索并筛选 Jira 事务。
- 需要以命令行方式获取单个事务详情、评论、状态与元数据。
- 需要查看并驱动事务在工作流中流转状态。
- 需要从 Jira 事务中获取 GitHub PR 等远程关联链接。
- 需要在脚本中通过 jq 解析 JSON 结果进行自动化处理。
限制与注意事项
- 所有操作需要 Cloud ID,需先通过脚本获取并导出。
- 必须使用函数调用语法而非 flag 语法,参数写在函数调用内。
- 数组使用方括号写法,对象使用对象写法,不要用 JSON 字符串转义。
- 环境变量需在引号外插值,形如 "'$VAR'"。
- 状态转换 ID 因项目工作流而异,转换前应先用 getTransitionsForJiraIssue 查询有效转换。
- 并非所有 PR 都会自动关联,若 remoteIssueLinks 中找不到 PR 链接,需检查是否在 GitHub/Jira 中创建了链接。
- 搜索返回 0 结果时,应验证 JQL 语法,可先在 Jira UI 中测试查询。
- 编辑事务字段与创建新事务两个操作在资料中标注为 TODO,暂未提供示例。
- 该技能涉及 Confluence 相关工具(如页面、评论、CQL 搜索等),但主要介绍聚焦于 Jira 操作。