mcpField
J
jira-mcp

jira-mcp

ローカル
github.com/raalarcon9705生産性622 週間前に更新

jira-mcp について

jira-mcpは、Jira CloudとConfluenceを扱うオープンソースのMCPサーバーです。対応クライアントからプロジェクト、課題、スプリント、Wikiを操作でき、コメントや状態遷移、MarkdownのADF変換にも対応します。

主な機能

  1. 01課題の作成・取得・更新・削除
  2. 02コメント、ユーザー、担当の管理
  3. 03課題のワークフロー状態遷移
  4. 04アジャイルスプリントの作成と管理
  5. 05Confluenceページの読み取り
  6. 06MarkdownからADFへのリッチテキスト変換

活用シーン

  1. 01AIクライアントからJira課題を作成・更新
  2. 02スプリント計画や状態の確認と変更
  3. 03課題へのコメント追加や担当者の変更
  4. 04URL識別子を使ったConfluenceページの読み取り

MCP 対応

対応するAIクライアントにJiraとConfluenceの操作ツールを提供するMCPサーバーです。npxで起動し、Jira Cloudの認証情報を設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"raalarcon9705-jira": {
"command": "npx",
"args": [
"-y",
"raalarcon-jira-mcp-server"
],
"env": {
"JIRA_HOST": "<JIRA_HOST>",
"JIRA_EMAIL": "<JIRA_EMAIL>",
"JIRA_API_TOKEN": "<JIRA_API_TOKEN>"
}
}
}
}
起動コマンドnpx -y raalarcon-jira-mcp-server
設定が必要な環境変数
JIRA_HOSTYour Atlassian domain URL (e.g. https://your-domain.atlassian.net)
JIRA_EMAILYour Jira account email address
JIRA_API_TOKENシークレットJira API token from https://id.atlassian.com/manage-profile/security/api-tokens

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmraalarcon-jira-mcp-server1.0.82

ツール

24

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
expandstringいいえ含める追加データのカンマ区切りリスト:description、lead、issueTypes、url、projectKeys、permissions、insight
recentnumberいいえ最近表示したプロジェクトのみを返します(0~20 件)。よく使うプロジェクトにすばやくアクセスする場合に便利です。

詳細

Jira MCP サーバー

npm version License: MIT TypeScript Node.js MCP CI/CD

Jira と Atlassian 向けの最も包括的なオープンソースの Model Context Protocol(MCP) サーバーです。MCP 対応の AI クライアントを Jira インスタンスに数秒で接続できます。AI アシスタントを離れることなく、課題、スプリント、コメント、トランジション、ユーザー、Confluence ページを管理できます。

{
  "mcpServers": {
    "jira": {
      "command": "npx",
      "args": ["-y", "raalarcon-jira-mcp-server"],
      "env": {
        "JIRA_HOST": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "[email protected]",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}
対応 AI クライアント
クライアント対応
Claude Desktop✅
Claude Code✅
Cursor✅
Windsurf✅
Cline✅
Continue✅
MCP 対応クライアント全般✅

Open Source Love PRs Welcome Contributors Stars

このサーバーの掲載先
  • MCP Market — MCP サーバーのマーケットプレイス
  • MCP Servers — MCP サーバーの優良ディレクトリ
  • Claude Marketplaces — Claude プラグインと MCP のディレクトリ
  • npm — npx raalarcon-jira-mcp-server

機能

  • ✅ プロジェクト管理:プロジェクトと課題タイプの一覧表示
  • ✅ 課題の CRUD:課題の作成、読み取り、更新、削除
  • ✅ コメント:ページネーションを強化したコメントの作成、読み取り、更新、削除
  • ✅ トランジション:課題のステータスを変更
  • ✅ 担当者の割り当て:課題をユーザーに割り当て
  • ✅ ユーザー管理:ユーザーの検索と管理
  • ✅ スプリント管理:アジャイルスプリントのライフサイクルを包括的に管理
  • ✅ Wiki 連携:HTML からテキストへの変換により、URL 識別子を使って Confluence ページにアクセス
  • ✅ リッチテキスト対応:書式付きの説明とコメント向けに、Markdown を ADF に変換
  • ✅ 検証:Yup スキーマ検証
  • ✅ 認証:Jira Cloud を全面的にサポート
  • ✅ 最適化された応答:トークン効率のよいフィールドフィルタリング
  • ✅ 型安全性:TypeScript を全面的にサポート

インストール

オプション 1:npx を使用する(推奨)

この MCP サーバーを使う最も簡単な方法は、npx を使用することです。

  1. MCP クライアント(例:Claude Desktop)に次の設定を追加します。
{
  "mcpServers": {
    "jira": {
      "command": "npx",
      "args": ["-y", "raalarcon-jira-mcp-server"],
      "env": {
        "JIRA_HOST": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "[email protected]",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}
  1. Jira API トークンを取得します(手順は以下を参照)

以上です!必要に応じてサーバーが自動的にダウンロードされ、実行されます。

オプション 2:ローカル開発
  1. リポジトリをクローンします。
git clone https://github.com/raalarcon9705/jira-mcp.git
cd jira-mcp
  1. 依存関係をインストールします。
npm install
  1. プロジェクトをビルドします。
npm run build
  1. ビルドしたサーバーのフルパスを指定して、MCP クライアントを設定します。
{
  "mcpServers": {
    "jira": {
      "command": "node",
      "args": ["/full/path/to/jira-mcp/dist/index.js"],
      "env": {
        "JIRA_HOST": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "[email protected]",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

注:/full/path/to/jira-mcp/ を、プロジェクトディレクトリの実際の絶対パスに置き換えてください。

API トークンの取得
  1. Atlassian アカウント設定にアクセスします
  2. 「API token を作成」をクリックします
  3. わかりやすい名前を付けます
  4. 生成されたトークンをコピーします

使用方法

npx を使用する(推奨)

MCP クライアントで設定すると、必要に応じてサーバーが自動的に起動します。追加のセットアップは不要です!

Markdown によるリッチテキストのサポート

サーバーは、課題の説明とコメントを対象に、Markdown から ADF への自動変換をサポートするようになりました。Markdown 構文を使うだけで、自動的に Atlassian Document Format(ADF)に変換されます。

サポートされる Markdown 要素
  • 見出し:# H1、## H2、### H3
  • テキストの書式設定:**bold**、*italic*
  • コード:`inline code` と code blocks
  • リスト:- bullet lists と 1. numbered lists
  • リンク:[text](url)
  • 引用:> quoted text
  • チェックボックス:- [x] completed task
使用例
// Create issue with Markdown description
create_issue({
  projectKey: 'PROJ',
  summary: 'Bug Report',
  description: `# Bug Report

## Description
This is a **critical** bug affecting the login system.

## Steps to Reproduce
1. Go to login page
2. Enter invalid credentials
3. Click login button

## Code Example
\`\`\`javascript
function login(username, password) {
  return authenticate(username, password);
}
\`\`\`

> **Note**: This bug was reported by multiple users.`,
});

// Create comment with Markdown
create_comment({
  issueKey: 'PROJ-123',
  body: `## Update

**Status**: Fixed ✅

- [x] Identified root cause
- [x] Implemented fix
- [x] Tested solution

The issue has been resolved.`,
});
開発
npm run dev
本番環境
npm run build
npm start
npx でのテスト

npx を使用してサーバーを直接テストすることもできます。

# Test the server
npx raalarcon-jira-mcp-server

# Or use with MCP Inspector
npx @modelcontextprotocol/inspector
# Then configure: command: "npx", args: ["-y", "raalarcon-jira-mcp-server"]

利用可能なツール

プロジェクト
get_projects

認証済みユーザーがアクセスできるすべてのプロジェクトを取得します。

パラメーター:

  • expand(任意):追加で含めるデータ
  • recent(任意):最近のプロジェクト数(0-20)

レスポンス:主要なフィールドを含むプロジェクトの配列:

[
  {
    "key": "PROJ",
    "name": "Project Name",
    "id": "10001",
    "projectTypeKey": "software"
  }
]
get_issue_types

指定したプロジェクトで利用可能なすべての課題タイプを取得します。

パラメーター:

  • projectKey(必須):プロジェクトキー

レスポンス:主要なフィールドを含む課題タイプの配列:

[
  {
    "id": "10002",
    "name": "Task",
    "desc": "A small, independent piece of work",
    "subtask": false,
    "level": 0
  }
]
課題
create_issue

Jira に新しい課題を作成します。

パラメーター:

  • projectKey(必須):プロジェクトキー
  • summary(必須):課題の要約
  • issueType(必須):課題タイプ(Bug、Story、Task など)
  • description(任意):課題の説明
  • priority(任意):優先度(Highest、High、Medium、Low、Lowest)
  • assignee(任意):担当者のアカウント ID
  • labels(任意):ラベルの配列
  • components(任意):コンポーネントの配列
  • fixVersions(任意):修正バージョンの配列
  • customFields(任意):カスタムフィールドの値

レスポンス:Issue PROJ-123 created successfully

get_issue

特定の課題の詳細を取得します(トークン効率のため、カスタムフィールドは除外されます)。

パラメーター:

  • issueKey(必須):課題キー(例:PROJ-123)
  • expand(任意):追加情報
  • fields(任意):返すフィールド

レスポンス:カスタムフィールドを除外した課題オブジェクト全体

update_issue

既存の課題を更新します。

パラメーター:

  • issueKey(必須):更新する課題キー
  • summary(任意):新しい要約
  • description(任意):新しい説明
  • priority(任意):新しい優先度
  • assignee(任意):新しい担当者
  • labels(任意):新しいラベル
  • components(任意):新しいコンポーネント
  • fixVersions(任意):新しい修正バージョン
  • customFields(任意):カスタムフィールド

レスポンス:Issue PROJ-123 updated successfully

delete_issue

課題を削除します。

パラメーター:

  • issueKey(必須):削除する課題キー
  • deleteSubtasks(任意):サブタスクも削除する(デフォルト:false)

レスポンス:Issue PROJ-123 deleted successfully

コメント
create_comment

課題にコメントを追加します。

パラメーター:

  • issueKey(必須):課題キー
  • body(必須):コメント本文(ADF 形式をサポート)
  • visibility(任意):表示設定

レスポンス:Comment 12345 created successfully

get_comments

課題のすべてのコメントを取得します。

パラメーター:

  • issueKey(必須):課題キー
  • startAt(任意):開始インデックス(デフォルト:0)
  • maxResults(任意):コメントの最大数(1-100、デフォルト:50)

レスポンス:最適化されたコメント構造:

{
  "total": 5,
  "start": 0,
  "max": 50,
  "items": [
    {
      "id": "12345",
      "author": "John Doe",
      "authorId": "account-id",
      "created": "2025-01-01T10:00:00.000Z",
      "text": "Comment text content"
    }
  ]
}
update_comment

既存のコメントを更新します。

パラメーター:

  • issueKey(必須):課題キー
  • commentId(必須):コメント ID
  • body(必須):新しいコメント本文
  • visibility(任意):新しい表示設定

レスポンス:Comment 12345 updated successfully

delete_comment

コメントを削除します。

パラメーター:

  • issueKey(必須):課題キー
  • commentId(必須):コメント ID

レスポンス:Comment 12345 deleted successfully

トランジション
get_transitions

課題で利用可能なトランジションを取得します。

パラメーター:

  • issueKey(必須):課題キー

レスポンス:必須フィールドを含むトランジションの配列:

[
  {
    "id": "21",
    "name": "In Progress",
    "desc": "The assignee is currently working on this activity",
    "toName": "In Progress",
    "toId": "3",
    "available": true,
    "category": "In Progress"
  }
]
transition_issue

課題を別の状態に移します。

パラメーター:

  • issueKey(必須):課題キー
  • transitionId(必須):トランジション ID
  • comment(任意):トランジション時に追加するコメント
  • fields(任意):更新する追加フィールド

レスポンス:Issue PROJ-123 transitioned successfully

割り当て
assign_issue

課題をユーザーに割り当てます。

パラメーター:

  • issueKey(必須):課題キー
  • assignee(必須):ユーザーアカウント ID

レスポンス:Issue PROJ-123 assigned successfully

get_users

Jira のユーザーを検索します。

パラメーター:

  • query(任意):名前またはメールアドレスによる検索クエリ
  • projectKey(任意):プロジェクトへのアクセス権で絞り込み
  • maxResults(任意):ユーザーの最大数(1~100、デフォルト:50)

レスポンス:必須フィールドを含むユーザーの配列:

[
  {
    "id": "account-id",
    "name": "John Doe",
    "email": "[email protected]",
    "active": true,
    "type": "atlassian"
  }
]
get_current_user

現在認証されているユーザーの情報を取得します。

レスポンス:必須フィールドを含む現在のユーザー:

{
  "id": "account-id",
  "name": "Current User",
  "email": "[email protected]",
  "active": true,
  "timezone": "America/New_York",
  "type": "atlassian"
}
スプリント管理
get_agile_boards

Jira インスタンスで利用可能なすべてのアジャイルボードを取得します。スプリント操作に必要なボード ID を見つけるために使用します。

パラメーター:

  • projectKey(任意):プロジェクトでボードを絞り込み
  • boardType(任意):種類で絞り込み(scrum、kanban)

レスポンス:必須フィールドを含むボードの配列:

[
  {
    "id": 191,
    "name": "DreamStar Board",
    "type": "scrum",
    "projectKey": "DRMSTR",
    "projectName": "DreamStar"
  }
]
get_sprints

特定のボードのすべてのスプリントを取得します。ID、名前、状態、日付などのスプリント情報を返します。

パラメーター:

  • boardId(必須):スプリントを取得するボードの ID
  • state(任意):状態でスプリントを絞り込み(active、closed、future)

レスポンス:必須フィールドを含むスプリントの配列:

[
  {
    "id": 387,
    "name": "DRMSTR Sprint 1",
    "state": "active",
    "startDate": "2025-09-15T14:05:37.511Z",
    "endDate": "2025-09-26T05:00:00.000Z",
    "goal": ""
  }
]
create_sprint

新しいスプリントを作成します。スプリント名と作成元のボード ID は必須です。開始日、終了日、目標は任意です。

パラメーター:

  • name(必須):作成するスプリントの名前
  • originBoardId(必須):スプリントを作成するボードの ID
  • startDate(任意):スプリントの開始日(ISO 8601 形式)
  • endDate(任意):スプリントの終了日(ISO 8601 形式)
  • goal(任意):スプリントの目標または目的

レスポンス:必須フィールドを含む作成済みスプリント:

{
  "id": 421,
  "name": "DRMSTR Sprint 3",
  "state": "future",
  "goal": ""
}
update_sprint

スプリント情報(名前、日付、目標、状態)を更新します。指定されたフィールドのみが更新されます。終了済みのスプリントでは、更新できるのは名前と目標のみです。

パラメーター:

  • sprintId(必須):更新するスプリントの ID
  • name(任意):スプリントの新しい名前
  • startDate(任意):新しい開始日(ISO 8601 形式)
  • endDate(任意):新しい終了日(ISO 8601 形式)
  • goal(任意):スプリントの新しい目標または目的
  • state(任意):新しい状態(future、active、closed)

レスポンス:Sprint 421 updated successfully

close_sprint

スプリントを終了して完了します。この操作を行うには、スプリントが「active」状態である必要があります。終了すると、スプリントを再開できません。

パラメーター:

  • sprintId(必須):終了するスプリントの ID

レスポンス:Sprint 421 closed successfully

delete_sprint

スプリントを削除します。削除すると、スプリント内のすべてのオープン課題がバックログに移動されます。この操作は取り消せません。

パラメーター:

  • sprintId(必須):削除するスプリントの ID

レスポンス:Sprint 421 deleted successfully. All open issues moved to backlog.

move_issue_to_sprint

課題を特定のスプリントに移動します。確認メッセージを返します。課題を移動できるのは、オープンまたは進行中のスプリントのみです。

パラメーター:

  • issueKey(必須):移動する課題のキー(例:「PROJ-123」)
  • sprintId(必須):課題の移動先となるスプリントの ID

レスポンス:Issue PROJ-123 moved to sprint 421 successfully

get_sprint_issues

指定したスプリントのすべての課題を取得します。課題の基本情報(キー、要約、ステータス、担当者、優先度)の一覧を返します。

パラメーター:

  • sprintId(必須):スプリントの ID
  • maxResults(任意):返す課題の最大数(1~100、デフォルト:50)

レスポンス:基本フィールドを含む課題の配列:

[
  {
    "key": "DRMSTR-1",
    "summary": "Implement user authentication",
    "status": "In Progress",
    "assignee": "John Doe",
    "priority": "High"
  }
]

レスポンスの最適化

サーバーはトークン効率を高めるよう最適化されています。

  • 基本フィールドのみ:各操作に必要なフィールドのみを返します
  • カスタムフィールドの除外:課題のレスポンスからカスタムフィールドを自動的に除外します
  • 短いフィールド名:description の代わりに desc を使うなど、短縮したフィールド名を使用します
  • 成功メッセージ:明確で簡潔な成功確認メッセージを返します
  • 構造化データ:すべてのツールで一貫したレスポンス形式を使用します

エラー処理

サーバーには、内容が明確なメッセージを伴う堅牢なエラー処理が組み込まれています。よくあるエラーは次のとおりです。

  • 認証:認証情報が無効、または期限切れです
  • 権限:操作に必要な権限がありません
  • 検証:入力データが無効です
  • リソース:課題またはプロジェクトが見つかりません
  • API:レート制限に達したか、Jira サーバーでエラーが発生しました

開発

プロジェクト構成
src/
├── index.ts              # Main MCP server
├── jira-client.ts        # Jira API client
├── schemas/
│   └── index.ts          # Yup validation schemas
└── tools/
    ├── projects.ts       # Project tools
    ├── issues.ts         # Issue tools
    ├── comments.ts       # Comment tools
    ├── transitions.ts    # Transition tools
    ├── assignments.ts    # Assignment tools
    └── sprints.ts        # Sprint management tools
新機能の追加
  1. src/schemas/index.ts に検証スキーマを作成します
  2. src/jira-client.ts にメソッドを実装します
  3. src/tools/ 内の適切なファイルにMCP ツールを作成します
  4. src/index.ts でツールを登録します
テスト
MCP Inspector の使用(推奨)
  1. MCP Inspector をインストールします:

    npm install -g @modelcontextprotocol/inspector
    
  2. プロジェクトをビルドします:

    npm run build
    
  3. MCP Inspector を起動します:

    npx @modelcontextprotocol/inspector
    
  4. Inspector のインターフェースでサーバーを設定します:

    • トランスポート:STDIO(デフォルト)
    • コマンド:node
    • 引数:build/index.js
    • 環境:Jira の認証情報を追加します
その他のテスト方法

CLI モード(自動化とスクリプト作成向け):

# List available tools
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list

# Call a specific tool
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/call --tool-name get_projects

設定ファイル(複雑なセットアップ向け):

{
  "mcpServers": {
    "jira-server": {
      "command": "node",
      "args": ["build/index.js"],
      "env": {
        "JIRA_HOST": "https://your-domain.atlassian.net",
        "JIRA_EMAIL": "[email protected]",
        "JIRA_API_TOKEN": "your-api-token"
      }
    }
  }
}

Claude Desktop:実環境でテストするには、Claude Desktop で MCP サーバーを直接設定します

高度な設定

環境変数(上級ユーザー向け):

# Jira configuration
export JIRA_HOST="https://your-domain.atlassian.net"
export JIRA_EMAIL="[email protected]"
export JIRA_API_TOKEN="your-api-token"

# Timeout settings
export MCP_SERVER_REQUEST_TIMEOUT=60000
export MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS=false

# Proxy settings (if using MCP Proxy)
export MCP_PROXY_FULL_ADDRESS=http://localhost:5577

# Auto-open browser
export MCP_AUTO_OPEN_ENABLED=true

クエリパラメーター(直接テスト向け):

http://localhost:6274/?transport=stdio&serverCommand=node&serverArgs=build/index.js
手動テスト
# Build and run the server
npm run build
npm start
Wiki
query_wiki

URL 識別子を使って Confluence ページにアクセスし、整形されたコンテンツを返します。

パラメーター:

  • query(必須):検索するページコード(F4CjNw など)

レスポンス:メタデータを含む Markdown 形式のページコンテンツ:

# Page Title

**ID:** 933462039
**Space:** Orderbahn Team (OT)
**URL:** /spaces/OT/pages/933462039/...
**Author:** User Name
**Last Modified:** 2025-09-26T16:35:30.695Z
**Code:** F4CjNw

## Content

[Page content in plain text with preserved line breaks]

## Page Hierarchy

- Parent Page (page)
  - Child Page (folder)
    - Current Page (page)

機能:

  • 短縮 URL のリダイレクトを自動的にたどります
  • 構造を維持しながら HTML をプレーンテキストに変換します
  • ページ階層を表示します
  • 包括的なエラー処理を備えています

貢献

Jira MCP Server への貢献を歓迎します。スムーズに貢献いただくため、以下のガイドラインに従ってください。

はじめに
  1. GitHub でリポジトリをフォークします
  2. フォークをローカルにクローンします:
    git clone https://github.com/raalarcon9705/jira-mcp.git
    cd jira-mcp
    
  3. 依存関係をインストールします:
    npm install
    
  4. 機能開発用の新しいブランチを作成します:
    git checkout -b feature/your-feature-name
    
開発ワークフロー
環境のセットアップ
  1. MCP Inspector をインストールします(公式テストツール):

    npm install -g @modelcontextprotocol/inspector
    
  2. プロジェクトをビルドします:

    npm run build
    
  3. MCP Inspector でテストします:

    npx @modelcontextprotocol/inspector
    

    続いて、サーバーを設定します:

    • トランスポート:STDIO
    • コマンド:node
    • 引数:build/index.js
    • 環境:Jira の認証情報を追加します
コード規約
  • TypeScript:すべてのコードを TypeScript で記述してください
  • 型安全性:any 型は避け、適切な Jira.js の型を使用してください
  • エラー処理:包括的なエラー処理を実装してください
  • バリデーション:入力のバリデーションには Yup スキーマを使用してください
  • コメント:複雑なロジックには明確なコメントを追加してください
  • フォーマット:既存のコードスタイルとフォーマットに従ってください
新機能の追加
  1. src/schemas/index.ts にバリデーションスキーマを作成します:

    export const yourFeatureSchema = yup.object({
      // Define your schema
    });
    
  2. src/jira-client.ts にAPI メソッドを実装します:

    async yourFeature(input: YourFeatureInput) {
      try {
        // Implementation
      } catch (error) {
        throw new Error(`Failed to your feature: ${error.message}`);
      }
    }
    
  3. src/tools/ の適切なファイルにMCP ツールを作成します:

    {
      name: 'your_tool',
      description: 'Clear description of what the tool does',
      inputSchema: {
        // Define input schema
      }
    }
    
  4. src/index.ts でツールを登録します:

    // Add to appropriate handler
    
  5. トークン効率を高めるためにレスポンスを最適化します:

    • 必須フィールドのみを返します
    • 短いフィールド名を使用します
    • 不要なデータを除外します
変更のテスト
  1. プロジェクトをビルドします:

    npm run build
    
  2. MCP Inspector でテストします:

    npx @modelcontextprotocol/inspector
    
    • サーバーを設定します:STDIO、node build/index.js
    • 影響を受けるすべてのツールをテストします
    • レスポンスが最適化されていることを確認します
  3. CLI モードでテストします(自動化用):

    # List tools
    npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list
    
    # Test specific tool
    npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/call --tool-name get_projects
    
  4. レスポンスの最適化を確認します:

    • 必須フィールドのみが返されることを確認します
    • フィールド名が短縮されていることを確認します
    • カスタムフィールドが除外されていることを確認します
プルリクエストのプロセス
提出前
  • コードがコンパイルされること(TypeScript エラーがないこと)
  • すべてのツールが期待どおりに動作すること
  • レスポンスの最適化が実装されていること
  • エラー処理が包括的であること
  • 必要に応じてドキュメントが更新されていること
  • 例に個人データが含まれていないこと
プルリクエストの作成
  1. 明確なメッセージで変更をコミットします:

    git add .
    git commit -m "Add new feature: brief description"
    
  2. フォークにプッシュします:

    git push origin feature/your-feature-name
    
  3. GitHub でプルリクエストを作成し、以下を記載します:

    • 変更内容を説明する明確なタイトル
    • 追加・変更した内容の詳細な説明
    • レビュアー向けのテスト手順
    • UI に変更がある場合はスクリーンショット
プルリクエストのテンプレート
## Description

Brief description of the changes

## Type of Change

- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update

## Testing

- [ ] All existing tests pass
- [ ] New functionality tested
- [ ] Response optimization verified

## Checklist

- [ ] Code follows project standards
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] No personal data included
コードレビューのプロセス
  1. PR で自動チェックが実行されます
  2. メンテナーがコードをレビューします
  3. フィードバックに速やかに対応します
  4. 要求された変更を加えて PR を更新します
  5. 承認後にPR がマージされます
問題の報告

バグの報告や機能のリクエストを行う場合:

  1. まず既存の問題を確認します
  2. 提供されている issue テンプレートを使用します
  3. バグの場合は再現手順を記載します
  4. 機能のリクエストの場合は明確に説明します
  5. 関連するログとエラーメッセージを添付します
開発ガイドライン
レスポンスの最適化
  • 必須フィールドのみ:必要なデータのみを返します
  • 短いフィールド名:省略した名前を使用します(例:description の代わりに desc)
  • カスタムフィールドを除外:課題のレスポンスから customfield_* を削除します
  • 一貫したフォーマット:レスポンス構造を統一します
エラー処理
  • 説明的なメッセージ:エラーメッセージに状況を含めます
  • 適切なエラー型:適切なエラー型を使用します
  • ログ記録:デバッグ用に console.error を追加します
  • ユーザーフレンドリー:エラーがエンドユーザーにわかりやすい内容になるようにします
ドキュメント
  • README を更新:新しいツールをドキュメントに追加します
  • 例を含める:使用例を記載します
  • レスポンス形式:レスポンス構造を文書化します
  • 個人データを含めない:汎用的な例のみを使用します
コミュニティガイドライン
  • 議論では敬意を払い、建設的に振る舞ってください
  • 他の人の学習や貢献を支援してください
  • 行動規範に従ってください
  • 助けが必要な場合は質問してください
ヘルプを得る
  • GitHub Issues:バグや機能のリクエスト向け
  • Discussions:質問や一般的なヘルプ向け
  • ドキュメント:まず既存のドキュメントを確認してください
  • コード例:既存の実装を参照してください

Jira MCP Server に貢献していただき、ありがとうございます! 🚀

🤝 貢献

コミュニティからの貢献を歓迎します!このプロジェクトはオープンソースであり、あらゆる貢献を大切にしています。

貢献者向けクイックスタート
  1. GitHub でリポジトリをフォークします
  2. フォークをクローンします:
    git clone https://github.com/your-username/jira-mcp.git
    cd jira-mcp
    
  3. 依存関係をインストールします:
    npm install
    
  4. 機能追加用のブランチを作成します:
    git checkout -b feature/your-feature-name
    
  5. 変更を加えてテストします
  6. プルリクエストを送信します
貢献方法
  • 🐛 バグ報告テンプレートを使用してバグを報告します
  • ✨ 機能リクエストテンプレートを使用して機能をリクエストします
  • 💻 改善や新機能のコードを提出します
  • 📚 ドキュメントやサンプルを改善します
  • 🧪 カバレッジ向上のためにテストを追加します
  • 🌍 ドキュメントを他の言語に翻訳します
開発ガイドライン
  • 貢献ガイドに従ってください
  • 行動規範をお読みください
  • 新しいコードにはすべて TypeScript を使用してください
  • 新しい機能にはテストを追加してください
  • 必要に応じてドキュメントを更新してください
サポートを受ける
  • 💬 ディスカッション:質問には GitHub Discussions を使用してください
  • 🐛 イシュー:バグや機能リクエストには GitHub Issues を使用してください
  • 📖 ドキュメント:README と CONTRIBUTING.md をご確認ください

npm への公開

この MCP サーバーを npm に公開して配布するには:

  1. npm にログインします:

    npm login
    
  2. 公開スクリプトを実行します:

    ./publish.sh
    
  3. または手動で公開します:

    npm run build
    npm publish
    

パッケージは raalarcon-jira-mcp-server として公開され、ユーザーは次のコマンドでインストールできます:

npx raalarcon-jira-mcp-server

ライセンス

MIT

サポート

バグの報告や機能のリクエストは、リポジトリでイシューを作成してください。


注:この MCP サーバーは Jira Cloud で動作するように設計されています。Jira Server/Data Center で使用するには、認証と一部のエンドポイントに追加の変更が必要です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。