jira-mcp
JIRA MCP サーバー
標準化されたツールとコンテキストを通じて、大規模言語モデル(LLM)がJIRAと連携できるようにするMCPサーバー。このサーバーは、JQLを使用した課題検索機能と、課題の詳細情報の取得機能を提供します。
特徴
JQL 検索: ページネーションサポートを使用して複雑な JQL クエリを実行します。
問題の詳細: 特定の JIRA 問題に関する詳細情報を取得します
Related MCP server: JIRA MCP Server
前提条件
npmがインストールされているAPIアクセスを持つJIRAインスタンス
JIRA APIトークンまたは個人アクセストークン
APIトークンに関連付けられたJIRAユーザーのメールアドレス
JIRA API 認証情報の取得
https://id.atlassian.comで Atlassian アカウントにログインします。
セキュリティ設定に移動する
APIトークンの下で、「APIトークンを作成」を選択します
トークンに意味のある名前を付けます(例:「MCP Server」)
生成されたトークンをコピーします。再度表示することはできません。
このトークンを
JIRA_API_KEYとして使用しますAtlassian アカウントに関連付けられたメールアドレスを
JIRA_USER_EMAILとして使用します。
使用法
Claude Desktopとの統合
Claude Desktop の設定ファイルにサーバー設定を追加します。
macOS : ~/Library/Application Support/Claude/claude_desktop_config.json Windows : %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "jira-mcp"],
"env": {
"JIRA_INSTANCE_URL": "https://your-instance.atlassian.net",
"JIRA_USER_EMAIL": "your-email@company.com",
"JIRA_API_KEY": "your-api-token"
}
}
}
}新しい構成を読み込むには、Claude Desktop を再起動します。
利用可能なツール
1. JQL検索( jql_search )
カスタマイズ可能なパラメータを使用して JQL 検索クエリを実行します。
パラメータ:
jql(必須): JQLクエリ文字列nextPageToken: ページネーションのトークンmaxResults: 返される結果の最大数fields: 含めるフィールド名の配列expand: 含める追加情報
例:
{
"jql": "project = 'MyProject' AND status = 'In Progress'",
"maxResults": 10,
"fields": ["summary", "status", "assignee"]
}2. 問題を取得する ( get_issue )
特定の問題に関する詳細情報を取得します。
パラメータ:
issueIdOrKey(必須): 問題IDまたはキーfields: 含めるフィールド名の配列expand: 含める追加情報properties: 含めるプロパティの配列failFast: エラー発生時にすぐに失敗するかどうか
例:
{
"issueIdOrKey": "PROJ-123",
"fields": ["summary", "description", "status"],
"expand": "renderedFields,names"
}発達
構成
サーバーを実行する前に環境変数を設定してください。ルートディレクトリに.envファイルを作成してください。
JIRA_INSTANCE_URL=https://your-instance.atlassian.net
JIRA_USER_EMAIL=your-email@company.com
JIRA_API_KEY=your-api-token値を次のように置き換えます。
実際の JIRA インスタンス URL
JIRAアカウントに関連付けられたメールアドレス
JIRA APIトークン(Atlassianアカウント設定で生成できます)
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の JIRA を自動的にインストールするには:
npx -y @smithery/cli install jira-mcp --client claude手動インストール
このリポジトリをクローンします:
git clone <repository-url>
cd jira-mcp依存関係をインストールします:
npm installMCP Inspectorで実行
テストと開発には、MCP Inspector を使用できます。
npm run inspect新しいツールの追加
新しいツールを追加するには、 index.jsのListToolsRequestSchemaハンドラーを変更します。
server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: [
// Existing tools...
{
name: "your_new_tool",
description: "Description of your new tool",
inputSchema: {
// Define input schema...
}
}
]
};
});次に、 CallToolRequestSchemaハンドラーにツールを実装します。
ライセンス
マサチューセッツ工科大学
貢献
貢献を歓迎します!お気軽にPRを送信してください。
Available Tools
2 toolsget_issueC
Retrieve details about an issue by its ID or key.
| Name | Required | Description | Default |
|---|---|---|---|
| issueIdOrKey | Yes | ID or key of the issue | |
| fields | No | Fields to include in the response | |
| expand | No | Additional information to include in the response | |
| properties | No | Properties to include in the response | |
| failFast | No | Fail quickly on errors |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves details, implying a read-only operation, but doesn't mention error handling (e.g., what happens if the ID/key is invalid), rate limits, authentication needs, or response format. This leaves significant gaps for an agent to understand how to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core purpose without any unnecessary words. It's front-loaded and easy to parse, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what details are retrieved, how to handle optional parameters like 'fields' or 'expand', or what the response looks like. For a tool with multiple parameters and no structured output information, more context is needed to guide proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so parameters are well-documented in the schema itself. The description adds no additional meaning beyond implying retrieval by 'ID or key', which aligns with the 'issueIdOrKey' parameter but doesn't elaborate on usage. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Retrieve') and resource ('details about an issue'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from the sibling tool 'jql_search', which likely serves a different purpose (searching vs. retrieving by ID/key).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'jql_search'. It mentions retrieving by 'ID or key', which implies a specific use case, but doesn't clarify when to choose this over a search tool or address any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jql_searchC
Perform enhanced JQL search in Jira
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | JQL query string | |
| nextPageToken | No | Token for next page | |
| maxResults | No | Maximum results to fetch | |
| fields | No | List of fields to return for each issue | |
| expand | No | Additional info to include in the response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'enhanced' but doesn't explain what that entails—such as pagination support, performance characteristics, or authentication needs. For a search tool with potential complexity, this leaves significant gaps in understanding how it behaves beyond basic query execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to scan and understand quickly, which is ideal for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'enhanced' means, what the output looks like (e.g., issue lists, pagination details), or how it differs from sibling tools, leaving the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters clearly. The description adds no additional meaning beyond what's in the schema, such as examples of JQL queries or typical use cases for parameters like 'expand'. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool performs 'enhanced JQL search in Jira', which identifies the action (search) and domain (Jira). However, it's vague about what 'enhanced' means compared to basic JQL search, and it doesn't clearly differentiate from the sibling tool 'get_issue', which might retrieve individual issues rather than search multiple issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_issue'. The description lacks context on scenarios where this search is preferred, prerequisites, or exclusions, leaving the agent to infer usage based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
get_issue - First observed
jql_search
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: get_issue retrieves a single issue by ID/key, while jql_search performs broader queries using JQL. There is no overlap or ambiguity between them, as they serve different use cases (specific lookup vs. flexible search).
Both tools follow a consistent snake_case naming pattern with clear verb_noun structure: get_issue and jql_search. The naming is predictable and readable, with no deviations or mixed conventions.
With only 2 tools, this server feels severely under-scoped for a Jira integration. A typical Jira MCP would need more operations like create_issue, update_issue, or list_projects to cover basic workflows. The current set is too thin for meaningful agent interaction.
The tool surface is significantly incomplete for Jira's domain. While get_issue and jql_search provide read/search capabilities, there are major gaps in CRUD operations (no create, update, or delete) and missing lifecycle management (e.g., transitions, comments). This will cause agent failures in common scenarios.
Maintenance
Related MCP Connectors
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
List, view, create, edit, delete, comment on, and see the history of Laraue Boards issues.
Search tickets, people, organizations and KB articles in Deskpro, and create tickets and replies.
Search, read and create Linear issues, projects, teams and cycles.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI models to search Jira issues using JQL and retrieve issue details through the Jira 9.12.14 API.11 npmMIT
- AlicenseAqualityDmaintenanceEnables interaction with Jira issues via JQL search, epic management, comments, attachments, and issue CRUD, with support for both Cloud and Server/Data Center instances.910 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides JIRA issue search, retrieval, and update functionalities via MCP.71 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables querying Jira issues using JQL and creating new issues programmatically via natural language.514 npmMIT