jira-mcp
Jira MCP サーバー(読み取り専用)
Claude Code が Jira のチケットコンテキスト(課題の詳細、コメントスレッド、チケット周辺の参照グラフ、JQL 検索結果)をコンパクトな Markdown として取得できるローカル MCP サーバーです。画像添付ファイル(例:UI バグチケットのスクリーンショット)は、Claude が視覚的に分析できるように取得できます。
意図的にできないこと
このサーバーは厳密に読み取り専用です。何かを作成、更新、遷移、削除、コメントするツールは一切公開していません。強制は多層的に行われます。
コード内: すべての HTTP リクエストは単一のヘルパーを通り、
GETのみ許可されます。唯一の許可リスト例外はPOST /rest/api/3/search/jqlで、これは Atlassian が POST での送信を要求する読み取り操作です。他のメソッドはReadOnlyViolationErrorを発生させるため、将来書き込み呼び出しを追加する編集があれば、明確に失敗します。資格情報レベル: API トークンを読み取りスコープのみで作成します(下記参照)。これにより、バグがあっても書き込みはできません。
Related MCP server: JIRA MCP Server
ツール
ツール | 目的 |
| すべての非空カスタムフィールド(受け入れ条件、ストーリーポイントなど)を表示名付きで含む完全なチケット詳細。さらに(デフォルトで)コメントスレッドも含む |
| ディスカッションのみ。作成者/タイムスタンプ/編集/可視性を含む |
| 親、サブタスク、リンクされた課題(リンク方向を含む)、エピックの子。それぞれキー + タイプ + ステータス + 概要として表示 |
| コンパクトな JQL 検索結果 |
| 画像添付ファイル( |
| トークンが解決されるアカウント。認証デバッグの最初のステップ |
セットアップ
1. Atlassian API トークンを作成
https://id.atlassian.com/manage-profile/security/api-tokens に移動します。
スコープ付き API トークンを作成 を選択します(Atlassian はスコープなしトークンを廃止予定です)。
Jira アプリを選択し、以下のスコープのみを選択します:
read:jira-workread:jira-user
トークンをすぐにコピーします。一度しか表示されません。
古いスコープなしトークンも機能します。サーバーは両方を自動的に処理します(下記参照)。
2. .env を設定
cp .env.example .env # then edit必須キー(これが設定の全表面です):
キー | 値 |
| Atlassian アカウントのメールアドレス |
| 手順 1 のトークン |
| 例: |
.env は gitignore されています。絶対にコミットしないでください。実際の環境変数はファイルより優先されます。ファイルはプロジェクトディレクトリ(作業ディレクトリではなく)を基準に配置されるため、サーバーはどこから起動しても見つけられます。
3. 依存関係をインストール
uv を使用(このリポジトリには uv.lock があるため推奨):
uv syncまたは、venv に通常の pip を使用:
python -m venv .venv
.venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip4. --check で確認
.venv/bin/python -m jira_mcp --check # connectivity + auth only
.venv/bin/python -m jira_mcp --check PROJ-123 # also fetch a ticket in fullこれにより、.env が見つかったか、選択されたベース URL(およびクラウド ID フォールバックが必要かどうか)、認証されたアカウント、そしてキーが指定された場合は Claude が表示するのとまったく同じチケットが出力されます。
スコープ付き vs. スコープなしトークン:ベース URL の問題
スコープなしトークンは、サイト URL
https://<site>.atlassian.netに対して機能します。スコープ付きトークンは同じ URL に対して静かに失敗し、匿名のような応答を返します。代わりに
https://api.atlassian.com/ex/jira/{cloudId}を呼び出す必要があります。
どちらの種類を持っているかを知る必要はありません。起動時にサーバーは GET /rest/api/3/myself でサイト URL をプローブします。実際のアカウントが返されない場合は、{site}/_edge/tenant_info からクラウド ID を取得し、api.atlassian.com に対して再試行します。勝者はプロセス存続期間中キャッシュされ、stderr にログ出力されます。
検出が失敗した場合:_edge/tenant_info は Atlassian の正式にサポートされた REST API の一部ではありません(ただし、Atlassian 自身のサポートドキュメントはそれを指しています)。変更される可能性があります。その場合は、.env に ATLASSIAN_CLOUD_ID を設定して検出をスキップします。エラーメッセージが適用時期を示します。ほとんど必要ありません。
PyCharm セットアップ
インタープリター: Settings → Project → Python Interpreter → Add Interpreter → Existing → プロジェクトディレクトリ内の
.venv/bin/pythonを選択します。(uv syncを実行した場合、venv はすべてインストール済みで既に存在します。)デバッグ用の実行構成: Run → Edit Configurations → + → Python:
Run: モジュール
jira_mcp(「スクリプトパス」ではなく「モジュール」を選択)Parameters:
--check PROJ-123Working directory: プロジェクトルート(何でも機能しますが、これがきれいです)
これで、どこにでもブレークポイントを設定(例:
client.py内)し、実際のリクエストをデバッグできます。実行中の MCP サーバー内のエラーは、それ以外では見えません。
Claude Code に接続
venv の Python を絶対パスで使用します。裸の python では、Claude Code がサーバーを起動するときに venv に解決されません。
macOS/Linux:
claude mcp add jira -- /path/to/PythonProject/.venv/bin/python -m jira_mcpWindows:
claude mcp add jira -- C:\path\to\PythonProject\.venv\Scripts\python.exe -m jira_mcp注意:
--の後はすべて Claude が実行するコマンドです。--の前はすべて Claude 自身のオプションです。デフォルトのスコープは
local(自分だけ、このプロジェクトだけ、~/.claude.jsonに保存)です。--scope projectを追加してチェックインされた.mcp.jsonで共有するか、--scope userを追加してすべてのプロジェクトで使用します。
接続を確認
Claude Code セッション内で:
/mcpを実行します。jiraサーバーが接続済みとして、6 つのツールとともに一覧表示されるはずです。または、単に尋ねます:「whoami を使って jira 接続を確認して」。
トラブルシューティング
症状 | 考えられる原因と修正 |
401 Unauthorized | メールアドレスまたはトークンが間違っているか、トークンが失効/期限切れです。トークンを再作成し、 |
403 Forbidden | スコープ付きトークンに |
404 Not Found | 課題が存在しないか、アカウントに表示権限がないかのいずれかです。Jira は表示できない課題を 404 として報告し、トークンは所有者の人間よりも多くのアクセスを付与することはありません。そのアカウントでログインしてブラウザでチケットを開けるか確認してください。 |
Claude でツールリストが空 | サーバーが起動時にクラッシュしました。 |
サーバーが起動しない |
|
検出失敗 / 匿名応答 | 起動ログ(stderr)に、プローブされたベース URL と拒否された理由が示されます。 |
Python 初心者向けの開発者向けメモ
venv(
.venv/)は、このプロジェクトのパッケージに加えて Python のプロジェクトローカルコピーです。node_modulesに相当しますが、インタープリター自体もその中に含まれます。そのため、Claude Code には.venv/bin/pythonを絶対パスで指定する必要があります。フォールバックできるグローバルインストールはありません。asyncio.run(...)が必要なのは、Python の非同期関数は呼び出しただけでは実行されないためです。呼び出すとコルーチンオブジェクトが返され、それを駆動する何かが必要です。Node のような環境イベントループはありません。asyncio.run()はループを作成し、1 つのコルーチンを完了まで実行し、ループを破棄します。MCP サーバーはこれをmcp.run()経由で内部的に行います。--checkモードは明示的に行います。デコレータ(
@mcp.tool)は、その下で定義された関数を受け取り、登録/ラップする関数です。定義時に適用されるミドルウェアファクトリのようなものです。FastMCP のデコレータは、関数の名前、型ヒント、docstring を読み取り、Claude が表示する MCP ツールスキーマを生成します。docstring はツールの API ドキュメントそのものです。python -m jira_mcpはパッケージの__main__.pyを実行します。これは Python で npm のbinエントリに最も近いものです。uv syncがプロジェクトを venv にインストールしたため、どのディレクトリからでも機能します。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables fetching and viewing Jira issue details directly through Claude Desktop using secure API token authentication. Provides comprehensive issue information including status, assignee, priority, and descriptions in both human-readable and structured formats.104891MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, view, create, and update JIRA issues using natural language commands and JQL queries.98Apache 2.0
- AlicenseAqualityDmaintenanceProvides read-only access to JIRA REST API, enabling LLMs to query and retrieve information from JIRA instances.1418MIT
- FlicenseNot gradedqualityDmaintenanceProvides read-only issue and project management tools for Jira Server/DC, enabling querying issues, projects, and assignments via natural language.
Related MCP Connectors
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Catch up on Slack without reading it. Unreads, threads, search. Browser-session or hosted OAuth.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Satttoshi/jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server