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 서버")
생성된 토큰을 복사하세요. 다시 볼 수 없게 됩니다!
이 토큰을
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
지엑스피1
새로운 구성을 로드하려면 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 핸들러에서 도구를 구현합니다.
특허
MIT
기여하다
기여를 환영합니다! 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