mcpField
J
jira-assistant

jira-assistant

github.com/tech-leads-club生産性7.1k259 回インストール3 日前に更新
リポジトリ

jira-assistant について

Atlassian MCP ツールで Jira の課題を検索・管理する Cursor 向けスキルです。ワークスペースルールからプロジェクト設定を読み取るか、MCP でプロジェクトを探して操作を進めます。

主な機能

  1. 01自然言語と JQL による課題検索
  2. 02タスク、エピック、サブタスクの作成
  3. 03課題の編集とステータス変更
  4. 04コメント追加と担当者管理
  5. 05ワークスペースルールからの設定検出

活用シーン

  1. 01自分に割り当てられた進行中の作業を検索
  2. 02定型テンプレートで Jira 課題を作成
  3. 03フィールド更新や課題ステータスの変更
  4. 04既存課題へのコメント追加

MCP 対応

Atlassian MCP ツールを使い、Jira プロジェクトの検出、課題の検索・取得・作成・更新を行います。

インストール

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

$npx skills add https://github.com/tech-leads-club/agent-skills --skill jira-assistant

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

同梱ファイルREADME.md

詳細

Jira アシスタント

Atlassian MCP ツールを使用して Jira を操作するエキスパートです。

使用する場面

次のことをユーザーから依頼された場合に、このスキルを使用します。

  • Jira の課題やタスクを検索する
  • 新しい Jira の課題(タスク、エピック、サブタスク)を作成する
  • 既存の課題を更新する
  • 課題のステータスを遷移する(未対応 → 進行中 → 完了など)
  • 課題にコメントを追加する
  • 担当者を管理する
  • 特定の条件で課題を検索する

設定

プロジェクト検出方法(自動):

  1. 最初にワークスペースのルールを確認する:.cursor/rules/jira-config.mdc で Jira の設定を探します
  2. 見つからない場合:MCP の検索ツールを使って、利用可能なプロジェクトを検出します
  3. それでも不明な場合:ユーザーにプロジェクトキーを指定してもらいます
  4. 検出した値を使用する:この会話でのすべての Jira 操作に使用します
設定の検出ワークフロー

このスキルを有効にしたとき:

  1. ワークスペースに Jira の設定を含む .cursor/rules/jira-config.mdc があるか確認します
  2. 見つかった場合は、プロジェクトキー、Cloud ID、URL、ボード URL を抽出して使用します
  3. 見つからない場合:
    • MCP 経由で search("jira projects I have access to") を使用します
    • 検出されたプロジェクトをユーザーに提示します
    • 「どの Jira プロジェクトを使用しますか?(例:KAN、PROJ、DEV)」と尋ねます
  4. この会話用に設定を保存し、操作を進めます

**スキルの利用者への注意:**ワークスペースでこのスキルを設定するには、プロジェクトの詳細を記載した .cursor/rules/jira-config.mdc を作成してください。

ワークフロー

1. 課題を見つける(必ずここから開始)

一般的な検索には、まず search(Rovo Search)を使用します。

search("issues in {PROJECT_KEY} project")
search("tasks assigned to me")
search("bugs in progress")
  • 一般的な検索では、JQL より自然言語のほうが適しています
  • より高速で直感的です
  • 関連する結果をすばやく返します
  • {PROJECT_KEY} を、設定から検出したプロジェクトキーに置き換えます
2. 特定の条件で検索する

正確なフィルターが必要な場合は、searchJiraIssuesUsingJql を使用します。

⚠️ JQL クエリには必ず project = {PROJECT_KEY} を含めてください

例({PROJECT_KEY} を検出したプロジェクトキーに置き換えてください):

project = {PROJECT_KEY} AND status = "In Progress"
project = {PROJECT_KEY} AND assignee = currentUser() AND created >= -7d
project = {PROJECT_KEY} AND type = "Epic" AND status != "Done"
project = {PROJECT_KEY} AND priority = "High"
3. 課題の詳細を取得する

手元にある情報に応じて、次のようにします。

  • ARI がある場合:fetch(ari)
  • 課題キーまたは ID がある場合:getJiraIssue(cloudId, issueKey)
4. 課題を作成する

設定から検出した projectKey と cloudId を必ず使用してください

手順:
a. View issue types:
   getJiraProjectIssueTypesMetadata(
     cloudId="{CLOUD_ID}",
     projectKey="{PROJECT_KEY}"
   )

b. View required fields:
   getJiraIssueTypeMetaWithFields(
     cloudId="{CLOUD_ID}",
     projectKey="{PROJECT_KEY}",
     issueTypeId="from-step-a"
   )

c. Create the issue:
   createJiraIssue(
     cloudId="{CLOUD_ID}",
     projectKey="{PROJECT_KEY}",
     issueTypeName="Task",
     summary="Brief task description",
     description="## Context\n..."
   )

注意:{PROJECT_KEY} と {CLOUD_ID} を、検出した設定値に置き換えてください。

利用可能な課題タイプ:

  • Task(デフォルト)
  • Epic
  • Subtask(親課題のキーを指定した parent フィールドが必要です)
5. 課題を更新・遷移する
フィールドを編集する:
editJiraIssue(cloudId, issueKey, fields)
ステータスを変更する:
1. Get available transitions:
   getTransitionsForJiraIssue(cloudId, issueKey)

2. Apply transition:
   transitionJiraIssue(cloudId, issueKey, transitionId)
コメントを追加する:
addCommentToJiraIssue(cloudId, issueKey, comment)

デフォルトのタスクテンプレート

課題の作成時は、description フィールドに必ずこのテンプレートを使用してください。

## Context

[Brief explanation of the problem or need]

## Objective

[What needs to be accomplished]

## Technical Requirements

[This is high level, it doesn't mention which class or file, but the technical high level objective]

- [ ] Requirement 1
- [ ] Requirement 2
- [ ] Requirement 3

## Acceptance Criteria

- [ ] Criteria 1
- [ ] Criteria 2
- [ ] Criteria 3

## Technical Notes

[Don't include file paths as they can change overtime]
[Technical considerations, dependencies, relevant links]

## Estimate

[Time estimate or story points, if applicable]

ベストプラクティス

✅ 推奨事項
  • すべての操作で検出したプロジェクトキーを必ず使用する
  • description フィールドでは必ず Markdown を使用する
  • 自然言語のクエリには最初に search を使用する
  • 正確なフィルタリングには JQL を使用する(ただし、必ず project = {PROJECT_KEY} を含めてください)
  • 一貫性を保つため、タスクテンプレートに従う
  • 説明にファイルパスを含めない(時間の経過とともに変わるため)
  • 要約は簡潔にし、説明は詳細に記述する
⚠️ 重要
  • Issue ID は数値です(内部用)
  • Issue Key は "{PROJECT_KEY}-123" の形式です(ユーザー向け)
  • サブタスクを作成する場合:親課題のキーを指定した parent フィールドを使用します
  • CloudId には URL と UUID のどちらも指定できます
  • ワークスペースのルールまたはユーザー入力から検出した設定値を使用する

例

例 1:タスクを作成する
User: "Create a task to implement user authentication"

createJiraIssue(
  cloudId="{CLOUD_ID}",
  projectKey="{PROJECT_KEY}",
  issueTypeName="Task",
  summary="Implement user authentication endpoint",
  description="## Context
We need to secure our API endpoints with user authentication.

## Objective
Implement JWT-based authentication for API access.

## Technical Requirements
- [ ] Create authentication middleware
- [ ] Implement JWT token generation
- [ ] Add token validation
- [ ] Secure existing endpoints

## Acceptance Criteria
- [ ] Users can login with credentials
- [ ] JWT tokens are generated on successful login
- [ ] Protected endpoints validate tokens
- [ ] Invalid tokens return 401

## Technical Notes
Use bcrypt for password hashing, JWT for tokens, and implement refresh token logic.

## Estimate
5 story points"
)

**注意:**プレースホルダーは、検出した設定の実際の値に置き換えてください。

例 2:課題を検索して更新する
User: "Find my in-progress tasks and update the first one"

1. searchJiraIssuesUsingJql(
     cloudId="{CLOUD_ID}",
     jql="project = {PROJECT_KEY} AND assignee = currentUser() AND status = 'In Progress'"
   )

2. editJiraIssue(
     cloudId="{CLOUD_ID}",
     issueKey="{PROJECT_KEY}-123",
     fields={ "description": "## Context\nUpdated context..." }
   )

**注意:**プレースホルダーは、検出した設定値に置き換えてください。

例 3:課題のステータスを遷移する
User: "Move task {PROJECT_KEY}-456 to Done"

1. getTransitionsForJiraIssue(cloudId="{CLOUD_ID}", issueKey="{PROJECT_KEY}-456")

2. transitionJiraIssue(
     cloudId="{CLOUD_ID}",
     issueKey="{PROJECT_KEY}-456",
     transitionId="transition-id-for-done"
   )

**注意:**プレースホルダーは、検出した設定値に置き換えてください。

例 4:サブタスクを作成する
User: "Create a subtask for {PROJECT_KEY}-789"

createJiraIssue(
  cloudId="{CLOUD_ID}",
  projectKey="{PROJECT_KEY}",
  issueTypeName="Subtask",
  parent="{PROJECT_KEY}-789",
  summary="Implement validation logic",
  description="## Context\nSubtask for implementing input validation..."
)

**注意:**プレースホルダーは、検出した設定値に置き換えてください。

一般的な JQL パターン

すべてのクエリに project = {PROJECT_KEY} を必ず含めてください(検出されたプロジェクトキーを使用します)。

# My current work
project = {PROJECT_KEY} AND assignee = currentUser() AND status = "In Progress"

# Recent issues
project = {PROJECT_KEY} AND created >= -7d

# High priority bugs
project = {PROJECT_KEY} AND type = Bug AND priority = High

# Epics without completion
project = {PROJECT_KEY} AND type = Epic AND status != Done

# Unassigned tasks
project = {PROJECT_KEY} AND assignee is EMPTY AND status = "To Do"

# Issues updated this week
project = {PROJECT_KEY} AND updated >= startOfWeek()

注: {PROJECT_KEY} を、検出された設定にある実際のプロジェクトキーに置き換えてください。

重要な注意事項

  • プロジェクトキーは必須です — JQL クエリには必ず project = {PROJECT_KEY} を含めてください
  • 検出された設定を使用してください — .cursor/rules/jira-config.mdc から読み取るか、ユーザーに尋ねてください
  • 説明には Markdown を使用してください — HTML やプレーンテキストは使用しないでください
  • テンプレートに従ってください — 課題間の一貫性を保てます
  • まず自然言語検索を使用してください — 必要な場合にのみ JQL を使用してください
  • ファイルパスは避けてください — 変更され、古くなる可能性があります
  • 技術的なメモは概要レベルにとどめてください — 実装の詳細ではなく、アプローチに焦点を当ててください
  • ストーリーポイントは任意です — 該当する場合は見積もりを含めてください

コメント