jira-mcp
Jira MCP Server (읽기 전용)
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이 선택되었는지(그리고 cloud-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에서 cloud 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("script path" 대신 "module" 선택)Parameters:
--check PROJ-123Working directory: 프로젝트 루트(아무거나 작동하지만 깔끔합니다)
이제 어디서든 중단점을 설정하고(예:
client.py에서) 실제 요청을 디버깅할 수 있습니다. 실행 중인 MCP 서버 내부의 오류는 그렇지 않으면 보이지 않습니다.
Claude Code에 연결
venv의 Python을 절대 경로로 사용하십시오. Claude Code가 서버를 실행할 때 단순한 python은 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에 저장). 체크인된.mcp.json을 통해 공유하려면--scope project를 추가하고, 모든 프로젝트에서 사용하려면--scope user를 추가하십시오.
연결 확인
Claude Code 세션 내에서:
/mcp를 실행하면jira서버가 연결된 것으로 표시되고 여섯 개의 도구가 나열되어야 합니다.또는 그냥 물어보십시오: "use whoami to check the jira connection".
문제 해결
증상 | 가능한 원인 및 해결 방법 |
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의 async 함수는 호출만으로 실행되지 않기 때문입니다. 호출하면 코루틴 객체가 반환되며, 누군가가 이를 구동해야 합니다. Node처럼 주변 이벤트 루프가 없습니다.asyncio.run()은 루프를 만들고 하나의 코루틴을 완료까지 실행한 다음 루프를 정리합니다. MCP 서버는mcp.run()을 통해 내부적으로 이 작업을 수행합니다.--check모드는 명시적으로 수행합니다.데코레이터(
@mcp.tool)는 아래에 정의된 함수를 받아 등록/래핑하는 함수로, 정의 시점에 적용되는 미들웨어 팩토리와 같습니다. FastMCP의 데코레이터는 함수 이름, 타입 힌트, docstring을 읽어 Claude가 보는 MCP 도구 스키마를 생성합니다. docstring이 곧 도구의 API 문서입니다.python -m jira_mcp는 패키지의__main__.py를 실행합니다. Python에서 npmbin항목에 가장 가까운 것입니다.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