Jira MCP Server
JIRA MCP Server
Это сервер Model Context Protocol (MCP), который предоставляет инструменты для взаимодействия с JIRA. Он позволяет получать тикеты из активных спринтов и подробную информацию о тикетах через интерфейс MCP.
Возможности
Сервер предоставляет следующие инструменты:
list-sprint-tickets: получает все тикеты в активном спринте для указанного проектаОбязательный параметр:
projectKey(строка)
get-ticket-details: получает подробную информацию о конкретном тикетеОбязательный параметр:
issueKey(строка)
add-comment: добавляет комментарий к конкретному тикетуОбязательный параметр:
issueKey(строка)Либо
comment(строка), либоfilePath(строка) — см. Редактирование содержимого из файлаНеобязательный параметр:
commentFormat—plain(по умолчанию),wiki,markdownилиadf
link-tickets: связывает два тикета отношением 'relates to'Обязательный параметр:
sourceIssueKey(строка)Обязательный параметр:
targetIssueKey(строка)
update-description: обновляет описание конкретного тикетаОбязательный параметр:
issueKey(строка)Либо
description(строка), либоfilePath(строка) — см. Редактирование содержимого из файлаНеобязательный параметр:
descriptionFormat—plain(по умолчанию),wiki,markdownилиadf
list-child-issues: получает все дочерние задачи родительского тикетаОбязательный параметр:
parentKey(строка)
create-sub-ticket: создает подтикет (дочернюю задачу) для родительского тикетаОбязательный параметр:
parentKey(строка)Обязательный параметр:
summary(строка)Необязательный параметр:
description(строка) илиfilePath(строка) — см. Редактирование содержимого из файлаНеобязательный параметр:
issueType(строка) — название типа подзадачи (например, 'Sub-task')
Related MCP server: mcp-jira
Настройка
Установите зависимости:
npm installСоберите TypeScript-код:
Этот шаг нужен только для Cline на Windows, где сейчас возникает проблема с выполнением npx
npm run buildНастройте параметры MCP в файле настроек вашего приложения Claude (обычно он находится по пути
~/Library/Application Support/Claude/claude_desktop_config.jsonна macOS или%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonна Windows):
Настройки для Claude:
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["path/to/this/repo/jira.ts"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Настройки для Cline:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["path/to/this/repo/dist/jira.js"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}Конфигурация
Вам нужно настроить следующие переменные окружения в параметрах MCP:
JIRA_HOST: URL вашего домена Atlassian (например,https://your-company.atlassian.net)JIRA_EMAIL: email вашей учетной записи JIRAJIRA_API_TOKEN: ваш API-токен JIRAВы можете сгенерировать API-токен в настройках учетной записи Atlassian
Использование
После настройки вы можете использовать инструменты через интерфейс MCP в Claude:
Список тикетов спринта
Чтобы получить все тикеты активного спринта для проекта:
<use_mcp_tool>
<server_name>jira</server_name>
<tool_name>list-sprint-tickets</tool_name>
<arguments>
{
"projectKey": "YOUR_PROJECT_KEY"
}
</arguments>
</use_mcp_tool>Получение сведений о тикете
Чтобы получить подробную информацию о конкретном тикете:
<use_mcp_tool>
<server_name>jira</server_name>
<tool_name>get-ticket-details</tool_name>
<arguments>
{
"issueKey": "PROJECT-123"
}
</arguments>
</use_mcp_tool>Редактирование содержимого из файла
update-description, update-comment, add-comment, create-ticket и create-sub-ticket принимают filePath вместо встроенного текста. Это предназначено для длинного содержимого: храните исходный текст в файле, редактируйте этот файл и отправляйте снова — нет необходимости каждый раз повторно передавать весь текст через вызов инструмента. В двух инструментах создания описание остается необязательным, поэтому можно не указывать ни то, ни другое.
Формат определяется по расширению файла, поэтому descriptionFormat / commentFormat можно не указывать:
Расширение | Формат | Содержимое |
|
| Markdown ( |
|
| Вики-разметка Jira ( |
|
| Необработанный JSON в формате Atlassian Document Format |
|
| Обычный текст, обернутый в абзац |
Явная передача формата переопределяет расширение; это также способ использовать файл с любым другим расширением. Пути могут быть абсолютными или относительными к рабочей директории сервера.
{
"issueKey": "PROJECT-123",
"filePath": "/abs/path/to/description.md"
}Пустой файл отклоняется, а не затирает существующее описание или комментарий; передача одновременно и встроенного текста, и filePath является ошибкой.
Изменение существующего содержимого
Чтобы изменить часть уже существующего описания или комментария, сначала экспортируйте его с помощью export-content, отредактируйте файл и загрузите его снова — не нужно переписывать все целиком:
{ "issueKey": "PROJECT-123", "commentId": "54660", "filePath": "/tmp/pir-timeline.md" }Экспорт сообщает, безопасно ли загружать это содержимое обратно как markdown. Jira хранит содержимое в формате ADF, и такие конструкции, как панели, упоминания, статусные плашки, медиафайлы, таблицы, списки задач и раскрывающиеся блоки, не имеют markdown-эквивалента — повторная загрузка markdown молча удалит их. Если такие элементы присутствуют, инструмент предупреждает и перечисляет их; вместо этого экспортируйте с "format": "adf" и изменяйте JSON, который всегда проходит полный цикл без изменений (.json-файлы распознаются как ADF при загрузке).
Если опустить filePath, содержимое будет возвращено непосредственно в ответе, а не записано в файл. Идентификаторы комментариев отображаются в get-ticket-details.
Версии содержимого (оптимистическая конкурентность)
update-description и update-comment требуют expectedVersion всякий раз, когда заменяемое содержимое не пусто: это версия, на которой основывалось изменение. Если с тех пор содержимое в Jira изменилось, обновление отклоняется, а не молча отбрасывает это изменение — та же блокировка, которую Confluence получает благодаря номерам версий страниц.
В Jira нет собственного номера версии, а временная метка updated задачи не является заменой: она обновляется при любом изменении задачи, поэтому переходы, метки и новые комментарии приводили бы к отклонению патчей описания, которые на самом деле не конфликтовали. Поэтому версия — это хэш самого содержимого (v1-…), и она меняется ровно тогда, когда меняется то, что патчится.
Версии можно получить из export-content и из get-ticket-details, который выводит Description version: и version: для каждого комментария — так что для небольшого изменения не нужен цикл экспорта.
Для первой записи описания версия не нужна. Сам пропуск expectedVersion является утверждением «здесь еще ничего нет», которое проверяет сервер: запись проходит, когда описание все еще пустое, и отклоняется — с указанием версии, которая сейчас в Jira, — если кто-то тем временем его записал. Таким образом, блокировка распространяется и на первую запись, и вызывающему коду не нужно получать версию пустого содержимого.
Передайте "force": true, чтобы пропустить проверку и перезаписать содержимое в любом случае.
Разработка
Сервер написан на TypeScript и использует:
@modelcontextprotocol/sdkдля реализации MCP-сервераjira.jsдля интеграции с JIRA API
Рекомендуемые скрипты:
Сборка один раз:
npm run buildСборка и наблюдение за файлами:
npm run build:watchТолько проверка типов:
npm run typecheckЗапуск для разработки с watch:
npm run start:devЗапуск скомпилированного сервера:
npm startПроверка форматирования:
npm run fmt:checkПрименение форматирования:
npm run fmt
Типичный рабочий процесс:
Внесите изменения в
jira.tsЗапустите
npm run start:devво время разработки илиnpm run build, а затемnpm startдля запуска скомпилированной версииПри необходимости перезапустите ваш MCP-клиент, чтобы изменения вступили в силу
Обработка ошибок
Сервер включает обработку ошибок для:
Неверные учетные данные JIRA
Отсутствие активных спринтов
Неверные ключи проектов или ключи задач
Сетевые ошибки
Сообщения об ошибках будут возвращены в ответе инструмента.
This server cannot be installed
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 Connectors
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Kanban board for teams and coding agents: manage tasks, subtasks, sprints and wiki pages via MCP.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides tools for AI assistants to interact with JIRA APIs, enabling them to read, create, update, and manage JIRA issues through standardized MCP tools.6203MIT
- AlicenseNot gradedqualityCmaintenanceProvides JIRA issue search, retrieval, and update functionalities via MCP.92MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language interaction with JIRA through MCP, providing 35 tools for issues, comments, transitions, projects, boards, sprints, epics, links, worklogs, versions, attachments, users, and fields.MIT
- FlicenseNot gradedqualityDmaintenanceEnables natural language interaction with Jira Cloud tickets, including listing, searching, creating, and updating issues through a set of MCP tools.
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/boukeversteegh/mcp-server-jira'
If you have feedback or need assistance with the MCP directory API, please join our Discord server