Jira MCP Server for Cursor について
TypeScript製のJira MCP サーバーで、CursorなどのクライアントからJiraチケットを操作できます。検索や詳細確認に加え、作成、コメント、ステータス更新に対応します。
主な機能
- 01チケットの一覧表示と検索
- 02詳細とコメントの確認
- 03チケットの作成
- 04コメントの追加
- 05ステータスの更新
活用シーン
- 01JQLによるプロジェクトチケットの絞り込み
- 02Cursorでチケットの議論を確認
- 03チケットの作成とコメント追加
- 04チケットのステータス変更
MCP 対応
Jira操作用のツールを登録し、stdioまたはHTTP経由でMCPクライアントに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Cursor 向け Jira MCP サーバー
Jira と連携し、Cursor から Jira チケットを操作できる TypeScript ベースの MCP サーバーです。
機能
- Jira チケットの一覧表示
- チケットの詳細取得
- チケットのコメント取得
- 新しいチケットの作成
- チケットへのコメント追加
- チケットのステータス更新
- Cursor との連携に必要な MCP プロトコルを完全サポート
セットアップ
Smithery 経由でインストール
Smithery 経由で、Cursor 向け Jira MCP Server を Claude Desktop に自動的にインストールするには:
npx -y @smithery/cli install @kornbed/jira-mcp-server --client claude
- 依存関係をインストールします:
npm install
.env.exampleをもとに.envファイルを作成し、Jira の認証情報を入力します:
JIRA_HOST=https://your-domain.atlassian.net
[email protected]
JIRA_API_TOKEN=your-api-token
PORT=3000
Jira API トークンを取得するには:
- https://id.atlassian.com/manage/api-tokens にログインします
- 「Create API token」をクリックします
- トークンをコピーし、
.envファイルに貼り付けます
開発
開発サーバーを起動します:
npm run dev
ビルドと実行
プロジェクトをビルドします:
npm run build
サーバーを起動します:
npm start
Cursor との連携
この MCP サーバーを Cursor で使用するには、次の 2 つの方法があります:
方法 1:コマンドベースの連携(推奨)
- プロジェクトをビルドします:
npm run build
-
Cursor の設定を開きます:
- Cursor メニューをクリックします
- 「Settings」を選択します(またはキーボードショートカットを使用します)
- 「Extensions」または「Integrations」セクションに移動します
-
MCP の設定を追加します:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/path/to/jira-mcp-cursor/dist/server.js"]
}
}
}
/path/to/jira-mcp-cursor をプロジェクトの絶対パスに置き換えます。
方法 2:HTTP ベースの連携(代替)
- MCP サーバーを起動します(まだ起動していない場合):
npm start
-
Cursor の設定を開きます:
- Cursor メニューをクリックします
- 「Settings」を選択します(またはキーボードショートカットを使用します)
- 「Extensions」または「Integrations」セクションに移動します
-
MCP の設定を追加します:
{
"mcpServers": {
"jira": {
"url": "http://localhost:3000",
"capabilities": [
"list_tickets",
"get_ticket",
"get_comments",
"create_ticket",
"update_status",
"add_comment"
]
}
}
}
}
Cursor で Jira を使用する
MCP サーバーの設定後、Cursor で Jira のコマンドを直接使用できます:
/jira list- チケットを一覧表示します/jira view TICKET-123- チケットの詳細を表示します/jira comments TICKET-123- チケットのコメントを取得します/jira create- 新しいチケットを作成します/jira comment TICKET-123- コメントを追加します/jira status TICKET-123- チケットのステータスを更新します
MCP プロトコルのサポート
このサーバーは、Cursor が必要とする Model-Client-Protocol(MCP)を実装しています:
- コマンドベースの連携向けの Stdio 通信
- Jira 操作用のツール登録
API エンドポイント
チケット一覧の取得
JQL クエリで絞り込むこともできる、Jira チケットの一覧を取得します。
エンドポイント: GET /api/tickets
クエリパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| jql | string | いいえ | チケットを絞り込むための Jira Query Language(JQL)文字列 |
リクエスト例:
GET /api/tickets?jql=project=TEST+AND+status=Open
レスポンス例:
TEST-123: Example ticket (Open)
TEST-124: Another ticket (In Progress)
チケットの取得
特定のチケットの詳細情報を取得します。
エンドポイント: GET /api/tickets/:id
パスパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | はい | Jira チケット ID(例:TEST-123) |
リクエスト例:
GET /api/tickets/TEST-123
レスポンス例:
Key: TEST-123
Summary: Example ticket
Status: Open
Type: Task
Description:
Detailed ticket description
チケットコメントの取得
特定のチケットのすべてのコメントを取得します。
エンドポイント: GET /api/tickets/:id/comments
パスパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | はい | Jira チケット ID(例:TEST-123) |
リクエスト例:
GET /api/tickets/TEST-123/comments
レスポンス例:
[3/20/2024, 10:00:00 AM] John Doe:
Comment text
---
[3/20/2024, 9:30:00 AM] Jane Smith:
Another comment
---
チケットを作成
新しい Jira チケットを作成します。
エンドポイント: POST /api/tickets
リクエストボディ:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| summary | string | はい | チケットの概要 |
| description | string | はい | チケットの説明 |
| projectKey | string | はい | プロジェクトキー(例:TEST) |
| issueType | string | はい | 課題の種類(例:Task、Bug) |
リクエスト例:
POST /api/tickets
Content-Type: application/json
{
"summary": "New feature request",
"description": "Implement new functionality",
"projectKey": "TEST",
"issueType": "Task"
}
レスポンス例:
Created ticket: TEST-124
コメントを追加
既存のチケットに新しいコメントを追加します。
エンドポイント: POST /api/tickets/:id/comments
パスパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | はい | Jira チケット ID(例:TEST-123) |
リクエストボディ:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| body | string | はい | コメントのテキスト |
リクエスト例:
POST /api/tickets/TEST-123/comments
Content-Type: application/json
{
"body": "This is a new comment"
}
レスポンス例:
Added comment to TEST-123
ステータスを更新
既存のチケットのステータスを更新します。
エンドポイント: POST /api/tickets/:id/status
パスパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| id | string | はい | Jira チケット ID(例:TEST-123) |
リクエストボディ:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| transitionId | string | はい | 実行するトランジションの ID |
リクエスト例:
POST /api/tickets/TEST-123/status
Content-Type: application/json
{
"transitionId": "21"
}
レスポンス例:
Updated status of TEST-123
チケットを検索
テキスト検索を使用して、指定したプロジェクト全体からチケットを検索します。
エンドポイント: GET /api/tickets/search
クエリパラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| searchText | string | はい | チケット内で検索するテキスト |
| projectKeys | string | はい | 検索対象のプロジェクトキーをカンマ区切りで指定したリスト |
| maxResults | number | いいえ | 返す結果の最大数(デフォルト:50) |
リクエスト例:
GET /api/tickets/search?searchText=login+bug&projectKeys=TEST,PROD&maxResults=10
レスポンス例:
Found 2 tickets matching "login bug"
[TEST] TEST-123: Login page bug
Status: Open (Updated: 3/20/2024, 10:00:00 AM)
Description:
Users unable to login using SSO
----------------------------------------
[PROD] PROD-456: Fix login performance
Status: In Progress (Updated: 3/19/2024, 3:30:00 PM)
Description:
Login page taking too long to load
----------------------------------------
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。