jira-mcp
Jira MCP Server (только чтение)
Локальный MCP сервер, который позволяет Claude Code получать контекст тикетов Jira (детали задачи, ветки комментариев, граф ссылок вокруг тикета и результаты поиска JQL), отображаемый в виде компактного Markdown. Вложения-изображения (например, скриншот в тикете о баге в UI) можно загружать для визуального анализа Claude.
Что он намеренно не умеет
Этот сервер строго только для чтения. Он не предоставляет ни одного инструмента, который создаёт, обновляет, переводит, удаляет или комментирует что-либо. Защита многоуровневая:
В коде: каждый HTTP-запрос проходит через единственный помощник, который разрешает только
GET, с одним исключением из белого списка:POST /rest/api/3/search/jql— операция чтения, которую Atlassian требует отправлять как POST. Любой другой метод вызываетReadOnlyViolationError, так что будущее изменение, добавляющее вызов записи, громко провалится.На уровне учётных данных: создайте API-токен только с правами на чтение (ниже), чтобы даже ошибка не могла записать.
Related MCP server: JIRA MCP Server
Инструменты
Инструмент | Назначение |
| Полная информация о тикете, включая все непустые настраиваемые поля (критерии приёмки, story points, ...) с их отображаемыми именами, а также (по умолчанию) ветка комментариев |
| Только обсуждение, с автором/временной меткой/редактированием/видимостью |
| Родительская задача, подзадачи, связанные задачи (с направлением связи) и дочерние элементы эпика, каждый как ключ + тип + статус + сводка |
| Компактные результаты поиска JQL |
| Загружает вложение-изображение (перечисленное |
| К какой учётной записи относится токен; первый шаг при отладке аутентификации |
Настройка
1. Создайте API-токен Atlassian
Перейдите на 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Или с помощью обычного 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.
Ограниченные и неограниченные токены: проблема базового URL
Неограниченный токен работает с URL вашего сайта,
https://<site>.atlassian.net.Ограниченный токен по тому же URL молча не работает, возвращая ответы, похожие на анонимные. Вместо этого он должен вызывать
https://api.atlassian.com/ex/jira/{cloudId}.
Вам не нужно знать, какой у вас тип. При запуске сервер проверяет URL сайта с помощью GET /rest/api/3/myself; если это не возвращает реальную учётную запись, он получает ваш cloud ID из {site}/_edge/tenant_info и повторяет попытку через api.atlassian.com. Победитель кэшируется на время жизни процесса и записывается в stderr.
Если обнаружение когда-либо не сработает: _edge/tenant_info не является частью официально поддерживаемого REST API Atlassian (хотя собственная документация поддержки Atlassian ссылается на него), поэтому он может измениться. В этом случае установите ATLASSIAN_CLOUD_ID в .env, чтобы пропустить обнаружение; сообщение об ошибке подскажет, когда это применимо. Вам это почти никогда не понадобится.
Настройка PyCharm
Интерпретатор: Settings → Project → Python Interpreter → Add Interpreter → Existing → выберите
.venv/bin/pythonв каталоге проекта. (Если вы запускалиuv sync, виртуальное окружение уже существует со всем установленным.)Конфигурация запуска для отладки: Run → Edit Configurations → + → Python:
Run: модуль
jira_mcp(выберите «module» вместо «script path»)Parameters:
--check PROJ-123Working directory: корень проекта (подойдёт что угодно, но так аккуратнее)
Теперь вы можете устанавливать точки останова где угодно (например, в client.py) и отлаживать реальные запросы. Ошибки внутри работающего MCP-сервера в противном случае невидимы.
Подключение к Claude Code
Используйте Python из виртуального окружения по абсолютному пути; просто python не разрешится в виртуальное окружение, когда Claude Code запускает сервер.
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должен быть указан как подключённый, с шестью инструментами.Или просто спросите: «используй whoami, чтобы проверить подключение jira».
Устранение неполадок
Симптом | Вероятная причина и решение |
401 Unauthorized | Неверный email или токен, либо токен был отозван/истёк. Пересоздайте токен и обновите |
403 Forbidden | У ограниченного токена отсутствуют |
404 Not Found | Задача не существует, или у вашей учётной записи нет разрешения её видеть. Jira сообщает о задачах, которые вы не можете просмотреть, как 404, и токен никогда не даёт больше доступа, чем человек, которому он принадлежит. Убедитесь, что вы можете открыть тикет в браузере, войдя под этой учётной записью. |
Пустой список инструментов в Claude | Сервер упал при запуске. Запустите точную команду из |
Сервер не запускается | Запустите |
Обнаружение не удалось / анонимные ответы | Журналы запуска (stderr) сообщают, какой базовый URL был проверен и почему он был отклонён. Если |
Заметки для разработчиков, новых в Python
Виртуальное окружение (
.venv/) — это локальная для проекта копия Python и пакетов этого проекта: эквивалентnode_modules, за исключением того, что сам интерпретатор также находится внутри. Поэтому Claude Code нужно передавать.venv/bin/pythonпо абсолютному пути: нет глобальной установки, на которую можно положиться.asyncio.run(...)необходим, потому что асинхронные функции в Python не выполняются просто при вызове; вызов возвращает объект корутины, и что-то должно им управлять. Здесь нет фонового цикла событий, как в Node;asyncio.run()создаёт цикл, выполняет одну корутину до завершения и разрушает цикл. MCP-сервер делает это внутренне черезmcp.run(); режим--checkделает это явно.Декораторы (
@mcp.tool) — это функции, которые получают функцию, определённую ниже, и регистрируют/оборачивают её, как фабрика промежуточного ПО, применяемая во время определения. Декоратор FastMCP читает имя функции, подсказки типов и docstring, чтобы сгенерировать схему инструмента MCP, которую видит Claude; docstring является документацией API инструмента.python -m jira_mcpзапускает__main__.pyпакета — ближайший аналог записиbinв npm. Он работает из любого каталога, потому чтоuv syncустановил проект в виртуальное окружение.
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