mcpField
J
jira

jira

github.com/zenobi-us生産性6848 回インストール今日更新
リポジトリ

jira について

atlassian MCP サーバーと mcporter を通じて Jira をプログラムから操作するスキルです。課題検索、詳細取得、ステータス遷移、コメント、メタデータ、関連リソースの確認手順とスクリプトを提供します。

主な機能

  1. 01JQLで課題を検索
  2. 02課題の概要と詳細を取得
  3. 03ワークフローの遷移を確認して実行
  4. 04コメントを追加し関連リソースを検索
  5. 05ユーザー情報とクラウド情報を取得
  6. 06mcporterでツールのスキーマを確認

活用シーン

  1. 01プロジェクトやステータスで課題を絞り込む
  2. 02チケットと関連するプルリクエストを確認
  3. 03課題をワークフロー上で次の状態へ進める
  4. 04Jiraチケットにコメントを追加

MCP 対応

mcporterを介してatlassian MCP サーバーを利用し、Jiraの課題、プロジェクト、メタデータにアクセスします。スキーマを調べて利用可能なツールとパラメーターを確認する方法も説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/zenobi-us/dotfiles --skill jira

インストール後、Claude Code で/jiraを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

scripts/
get_cloud_id.sh
get_current_user.sh
get_ticket_summary.sh

詳細

JIRA スキル

atlassian MCP サーバーを使用した Jira の自動化と統合を習得します。このスキルにより、Jira の課題、プロジェクト、メタデータへプログラムからアクセスできます。

[!CRITICAL] ⚠️ 重要 — パラメーターの渡し方:

関数呼び出し構文を使用してください(フラグ構文は使用しないでください)。パラメーターはフラグではなく、関数呼び出しの中に指定します。

mcporter call 'atlassian.functionName(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", fields: ["key", "summary"])'

主なルール:

  • 関数呼び出し内のパラメーターはキャメルケースにします
  • 文字列値は二重引用符で囲みます:"value"
  • 配列値には角括弧を使用します:["item1", "item2"]
  • オブジェクト値にはオブジェクト表記を使用します:{key: "value"}
  • 環境変数は引用符の外側で展開します:"'$VAR'"
  • --flag構文は使用しません。JSON 文字列のエスケープも不要です

クイックセットアップ

チケットの概要を取得する(ワンショット)

チケット情報を取得する最速の方法:

mise x node@20 -- ./scripts/get_ticket_summary.sh TICKET-123

人が読みやすい概要が返されます。内容は次のとおりです。

  • キー、概要、タイプ、ステータス、優先度、担当者
  • 作成日時と更新日時
  • 説明全文
  • 関連リソース(PR など)
  • Jira への直接リンク

解析用の JSON 出力:

mise x node@20 -- ./scripts/get_ticket_summary.sh TICKET-123 --json

ticketオブジェクトとremoteLinksオブジェクトを含む、構造化された 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)

これにより、以降のすべての mcporter 呼び出しで使用する環境変数が設定されます。

主な操作

課題を検索する
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.searchJiraIssuesUsingJql(cloudId: "'$JIRA_CLOUD_ID'", jql: "assignee = currentUser()", fields: ["key", "summary", "status", "assignee"])'

ページネーションを使用する場合:

mise x node@20 -- mcporter call 'atlassian.searchJiraIssuesUsingJql(cloudId: "'$JIRA_CLOUD_ID'", jql: "assignee = currentUser()", maxResults: 50)'

key、fields.summary、fields.status.nameを含むissues[]配列が返されます。

よく使用する JQL:

  • assignee = currentUser() - 自分に割り当てられた課題
  • status = Open - ステータスで絞り込む
  • project = PROJ - 特定のプロジェクト
  • updated >= -7d - 過去 7 日間に更新された課題
  • issuetype = Bug - 特定の課題タイプ
課題の詳細を取得する
mise x node@20 -- mcporter call 'atlassian.getJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123")'

特定のフィールドを指定する場合:

mise x node@20 -- mcporter call 'atlassian.getJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", fields: ["key", "summary", "status", "assignee", "description"])'

追加の詳細を取得するために expand を指定する場合:

mise x node@20 -- mcporter call 'atlassian.getJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", expand: ["changelog", "editmeta"])'

keyとfields(概要、ステータス、担当者、説明など)を含む課題オブジェクト全体が返されます。

課題のトランジションを取得する
mise x node@20 -- mcporter call 'atlassian.getTransitionsForJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123")'

ワークフローの状態を変更するために利用できるトランジションの ID と名前の一覧が返されます。

課題を新しいステータスに移行する
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.transitionJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", transition: {id: "11"}, fields: {assignee: {id: "USER_ID"}})'
プロジェクトのメタデータを取得する
mise x node@20 -- mcporter call 'atlassian.getJiraProjectIssueTypesMetadata(cloudId: "'$JIRA_CLOUD_ID'", projectIdOrKey: "PROJ")'
Jira 課題のフィールドを編集する

TODO: 課題のフィールドを更新する例を追加する

課題にコメントを追加する
mise x node@20 -- mcporter call 'atlassian.addCommentToJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", commentBody: "Your comment here")'

GitHub のパーマリンクを付ける場合:

mise x node@20 -- mcporter call 'atlassian.addCommentToJiraIssue(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123", commentBody: "See implementation details:\n\nhttps://github.com/owner/repo/blob/commit-hash/path/to/file.ts#L123")'

id、body、author、created、updatedを含むコメントオブジェクトが返されます。

新しい課題を作成する

TODO: 新しい課題を作成する例を追加する

課題タイプのメタデータを取得する
mise x node@20 -- mcporter call 'atlassian.getJiraIssueTypeMetaWithFields(cloudId: "'$JIRA_CLOUD_ID'", projectIdOrKey: "PROJ", issueTypeId: "10001")'
関連リンクを取得する(PR、Confluence など)
mise x node@20 -- mcporter call 'atlassian.getJiraIssueRemoteIssueLinks(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123")'

関連リソースを含むremoteIssueLinks[]配列が返されます。

GitHub PR に絞り込む場合:

mise x node@20 -- mcporter call 'atlassian.getJiraIssueRemoteIssueLinks(cloudId: "'$JIRA_CLOUD_ID'", issueIdOrKey: "PROJ-123")' | \
  jq '.[]? | select(.type.name == "GitHub" or (.globalId | contains("github"))) | .object.url'

ヘルパースクリプト

スクリプト用途
./scripts/get_ticket_summary.shワンショットでチケットの概要を取得 - 1 回の呼び出しですべてのチケット情報を取得します(人が読みやすい形式または JSON 形式)
./scripts/get_current_user.sh認証済みユーザーの情報を取得します(accountId、displayName、email)
./scripts/get_cloud_id.shJira Cloud ID と URL を取得します

よくある問題と解決策

問題解決策
利用可能なクラウド ID がない./scripts/get_cloud_id.sh を実行して取得し、エクスポートします
現在のユーザー情報が必要./scripts/get_current_user.sh を使って、accountId、displayName、email を取得します
検索結果が 0 件JQL の構文を確認してください。status = "To Do" ではなく、status = Open を試してください。まず Jira の UI でクエリをテストしてください。
remoteIssueLinks に PR リンクが見つからないすべての PR が自動でリンクされるわけではありません。GitHub または Jira で「リンク」が作成されたか確認してください。
「Cannot transition」でトランジションに失敗するトランジション ID が間違っています。現在のステータスで有効なトランジションを確認するため、必ず最初に getTransitionsForJiraIssue を実行してください。
「Invalid arguments」が表示される、またはコマンドが失敗するフラグ形式ではなく、関数呼び出し構文を使ってください。パラメーターは --param value ではなく、functionName(param: value) の中に指定します
配列が機能しない関数呼び出しの中で角括弧表記を使ってください:--fields '["key","summary"]' ではなく、fields: ["key", "summary"]
オブジェクトが機能しない関数呼び出しの中でオブジェクト表記を使ってください:--transition '{"id":"11"}' ではなく、transition: {id: "11"}

スキーマイントロスペクションによる関数パラメーターの確認

mcporter CLI は MCP サーバーのスキーマをイントロスペクションし、正しいパラメーターとその型を確認できます。

利用可能なすべてのツールを一覧表示する
mise x node@20 -- mcporter list atlassian --json | jq -r ".tools[].name"

戻り値:

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
特定のツールのスキーマを確認する
mise x node@20 -- mcporter list atlassian --json | jq '.tools[] | select(.name == "addCommentToJiraIssue")'

次の内容を含む完全な JSON スキーマが返されます:

  • inputSchema.properties - 型と説明を含む、利用可能なすべてのパラメーター
  • inputSchema.required - 必須パラメーター
  • options - 各パラメーターの CLI 固有のメタデータ

必須パラメーターのみを絞り込む:

mise x node@20 -- mcporter list atlassian --json | \
  jq '.tools[] | select(.name == "addCommentToJiraIssue") | .inputSchema.required[]'

パラメーターの説明を取得する:

mise x node@20 -- mcporter list atlassian --json | \
  jq '.tools[] | select(.name == "addCommentToJiraIssue") | .inputSchema.properties | to_entries[] | "\(.key): \(.value.description)"'

このイントロスペクション方法はどのツールでも利用できます。select() フィルターのツール名を変更してください。

ヒント

  • セッションごとに一度だけセットアップします:

    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)
    
  • 関数呼び出し構文は mcporter の標準です - フラグではなく、mcporter call 'func(param: value)' を使ってください

  • トランジションの実行前に必ず getTransitionsForJiraIssue を使ってください - トランジション ID はプロジェクトのワークフローによって異なります

  • 引用符の外側で環境変数を展開してください:mcporter call 'func(cloudId: "'$VAR'")' は機能しますが、mcporter call 'func(cloudId: "$VAR")' は機能しません

  • シェルスクリプトで JSON を解析するには jq を使ってください

  • パラメーターが不明な場合はスキーマイントロスペクションを使ってください - mcporter list atlassian --json | jq が役立ちます

  • ワークフローの完全な例については、examples/ ディレクトリを参照してください

コメント