jira-mcp
jira-mcp
Ein Model Context Protocol-Server für Jira Cloud. Erstellt Issues und Subtasks, liest Issues, sucht mit JQL, durchläuft agile Boards und ihre Swimlanes, gewegt Issues durch ihren Workflow, kommetiert und hängt Dateien an.
Die Authentifizierung erfolt mit eig der E-Mail-Adresse eines Athenan-Kontos und einem API-Token, so läuft er headls — kein OAuth, kein Brøser-Roundtrip, keine interaktive Zustimmung.
Installation
Nichts zu installieren. Richten Sie Ihren MCP-Client auf das Pakto aus and
lassen Sie npx es abrufen:
{
"mcpServers": {
"jira": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:skurekjakub/jira-mcp#v1.0.0"],
"env": {
"NPM_CONFIG_ALLOW_GIT": "root",
"JIRA_SITE": "your-team.atlassian.net",
"JIRA_CLOUD_ID": "00000000-0000-0000-0000-000000000000",
"JIRA_PROJECT_KEY": "ABC",
"JIRA_EMAIL": "${JIRA_EMAIL}",
"JIRA_API_TOKEN": "${JIRA_API_TOKEN}"
}
}
}
}Da das Build-Artefakt eingecheckt haben und die Laufzeitabhängigkeiten darin eingebetthat sind, besteht die Installation nur aus Klonen und Verlinken — kein Build-Schritt, keine abgerufenen Pakete und kein zu genehmigendes Installiaionsskript.
NPM_CONFIG_ALLOW_GIT
[npm 12 default-allow-git on the "can't"](https://github.com/npm/cli/commit/caa329568d32587e53f6e098f43b550dd2685034), this therefore npm the Installation mit EALLOWGIT— *„Fetching packages of type git have been disabled"*. Wird die Setting in derenv-Block des Servers gesetzt, gilt die Ausnahme nur für diesen single-Unterprozess; damit bleibt dasGit-Fetch der datei für alle anderigen Installationen auf dem Rrehner deaktiviert. rooterlaubt für das ib installierende Paket, aber nicht für irgendetwas, wovon this might depend;all` blunt the restriction entirely und
ist hier not eventätig. Auf npm 11 und älter wird the variableariable
ignoriert.
Einmaliges Installieren
npx löst den Git-Ref bei jedem Start neu auf, was einige Sekunden und einen
Netzwerkk-Reundtrip kostet. Um beides zu vermeiden:
npm install -g --allow-git=root github:skurekjakub/jira-mcpVerwenden Sie dann "command": "jira-mcp"ohneargsund ohneNPM_CONFIGALLOW_GIT`. Ein Upgrade erfolgt dann manuell per erneutes Ausführen
dieses Befehls.
Related MCP server: Jira MCP Server
Konfiguration
Jede Einstellung stammt aus der Umgebung. Es gibt keine Konfigurationsdatei,
und the server reads keine .env — ein MCP-Client übergibt die Werte im env-
Block nicht.
Variable | Required | Description |
| ja | Host der Site, z. B. |
| ja | Kein Cloud-ID – siehe unten |
| ja | Projekt, in das |
| ja | E-Mail des Atlassian-Kontos, zu which the API token belongs to |
| ja | API-Token, aus Atlassian-Kontoeinstellungen |
| nein | Verzeichnis, aus dem |
| nein | Legt |
Ermitteln Sie Ihre Cloud-ID mit:
curl -s https://your-team.atlassian.net/_edge/tenant_infoDas Token aus der Versionskontrolle heraushalten
Eine eingecheckte MCP-Konfiguration darf das Token nicht selbst enthalten.
Claude Code expandiert ${VAR}-Referenzen in
command, args, env, url und headers, sodass die Konfiguration nur
eine Variable benennt und the Wert woanders liegt — in einem Shell-Profil oder
in einer nicht eingecheckten Einstellungsdatei.
Eine Referenz, die nichts expandiert, ist kein Fehler: Claude Code reicht
den wörtlichen Text ${JIRA_API_TOKEN} an den Server durch. Dieser Server
verwirft einen Wert dieser Form beim Start und benennt die Variable, statt ihn
an Jira zu senden und eine fragments anzunehmen.
Tools
jira_create_issue
Erstellt ein Issue in JIRA_PROJECT_KEY.
Parameter | Type | Required | Description |
| string | ja | Issue title |
| string | ja | Klartext, in ADF umgewandelt (Absätze werden an Leerzeilen geteilt) |
| string | nein | Zzz B. |
| string[] | nein | Optionale Labels |
| string | nein | Link unter einem übergeordneten Element, z. B. Epic – nur gültig, wenn die Issue-Typ-Hierarchie des Projekts es erlaubt |
jira_create_subtask
Erstellt einen Subtask unter einem vorhandenen Issue.
Parameter | Type | Required | Description |
| string | ja | Schlüsselübergeordneten Issue, z B. |
| string | ja | Titel des Subtask |
| string | nein | Klartext, in ADF konvertiert |
| string[] | nein | Optionale Labels |
jira_get_issue
Ruft die Zusammenfassung, Beschreibung, Typ, Status, das übergeordnete Issue, die Subtasks, Issue-Verknüpfungen und Fix-Versionen eines Issues ab.
Parameter | Type | Required | Description |
| string | ja | Issue-Schlüssel, z B. |
| string[] | nein | Zusätzliche Feld-IDs (z. B. |
|jira_search_issues
Durchsucht JQL, paginiert.
Parameter | Type | Required | Description |
| string | nein | JQL-Anfrage |
| number | nein | Seitengürße, 1–100 (Standard 50) |
| string | nein | Token aus einer vorhergehenden Seite |
| boolean | nein | Beschreibung jedes Issue einschließen, per Text abgeflatcht |
| string[] | nein | Zusätzliche Feld IDs unverändert unter |
jira_get_board
Meldet das Layout eines agilen Boards – Spalten, Quick-Filter und Swimlanes,
jeweilt mit JQL. Führen Sie es vor jira_board_issues aus, um die Namen zu
erfahren, die dieses Werkzeug akzeptiert. Die Board-ID ist das boards/<id>-
Segment einer Board-URL.
Die Swimlane stammen aus der internen API von GreenHopper; Atlassian veröffentlicht keinen unterstützten Endpunkt dafür.
Parameter | Type | Required | Description |
| number | ja | Numeric Board-Ids, z B. |
jira_board_issues
Liste die aktuell auf einem Board liegenden Issues, gruppiert nach Swimlane. Reproduziert die Board-Ansicht: den eigenen Filter des Boards, seinen Kanban- Unterhalt, ggf. benannte Filter und zusätzliche JQL.
Jedes Issue bounded in genau eine Swimlane – die erste, in der Board-Reihenfolge, deren Abfrage auf es passt. Wenn eine Teilmenge Spur aus angefordet, werden die darunter liegenden Bahnen trotzdem ausgewertet, ihr Anspruch auf ein Issue besteht.
Parameter | Type | Required | Description |
| number | ja | Numeric board id |
| string[] | nein | Swimlane-Names oder -IDs aus (ohne Berücksichtigung der Groß-/Kleinschreibung). Welchen Sie weg, um alle zu bekommen. |
| string[] | nein | Namen oder IDs von Quick-Filtern, mit UND verknüpft |
| string | nein | Zusätzliche JQL, AND mit dem Board-Filter verguckt |
| boolesch | nein | Kanban-Unterfiltern des Boards anwenden (Standard |
| number | nein | Obergrenze pro Swimlane, 1–1000 (Standard 200). Jede Lane reportiert |
| boolesch | nein | Nur Issue-Schlüssel pro Swimlane zurückgeben (Standard |
| string[] | nein | Weitere Feld-IDs, pro Issue unverändert unter |
jira_list_transitions
Listet die Workflow-Übergänge, die derzeit für ein Issue verfügbar sind.
Übergangsnamen und -IDs sind workflow-spezifisch – rufen Sie es vor
jira_transition_issue auf.
Parameter | Type | Required | Description |
| string | ja | Issue key |
jira_transition_issue
Bewegt ein Issue durch seinen Workflow. Vergleicht transitionName ohne
Groß-/Kleinschreibung mit den verfügbaren (zulässigen) Übergängen des Issues;
gibt es keine Übereinstimmung, schlägt er fehl und listet die zulässigen auf.
Parameter | Type | Required | Description |
| string | ja | Issue key |
| string | ja | Bezeichnung des Zielübergangs, z B. |
| string | nein | Zu setzende Auflösung – nur wenn die Transition das erfordert |
| string | nein | Kommentar, der als Teil der Transaktion hinzugefügt wird |
jira_add_comment
Fügt einen Kommentar hinzu. Der Text verwendet Jira-Wiki-Markup (h3. für
Überschriften, {{code}} für Inline-Code, {code:…}…{code} für Blöcke,
bq. für Zitate). Verwenden Sie echte Zeilenumbrüche, keine literalen
\n-Escapes.
Parameter | Type | Required | Description |
| string | ja | Kommentar im Jira-Wiki-Markup |
| string | bedingt | Ausblendet, wenn |
jira_add_attachment
Hängt eine Datei an. Die Datei muss sich in JIRA_ATTACHMENTS_DIR befinden;
ein Name, der dieses Verzeichnis verlässt, wird abgelehnt.
Parameter | Type | Required | Description |
| string | ja | Dateiname im Verzeichnis für Anhänge |
| string | bedingt | Ausblendet, wenn |
Transport
stdio standardmäßig. --transport http --port <n> stellt die gleichen
Werkzeuge über einen zustandslosen Streamable-HTTP-Transport unter /mcp
bereit, zugleich unter /health einen Health-Check.
Entwicklung
npm install
npm test # vitest
npm run lint # tsc --noEmit
npm run build # webpack -> dist/bundle.jsdist/bundle.js ist eingecheckt, sodass die Installation keinen build-Schritt
benötigt. CI baut es bei jedem Push auf main neu und übernimmt das Ergebnis,
sodass nicht von src/ abweichenkann.
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Confluence MCP — wraps the Confluence Cloud REST API v2 (OAuth)
Agile project management over MCP: boards, epics, roadmap, retros, whiteboards, wiki, metrics
Discover, plan and run tools across your connected business systems through one OAuth MCP endpoint
1
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server for interacting with Jira Cloud instances. Enables issue management, JQL queries, project and sprint management, and batch operations via natural language interfaces.115 npm4MIT
- FlicenseNot gradedqualityDmaintenanceManages Atlassian Jira Cloud projects, issues, sprints, boards, worklogs, comments, and workflow transitions from MCP-compatible clients.-
- AlicenseNot gradedqualityBmaintenanceEnables management of multiple Jira Cloud instances through MCP, including workspace linking, issue creation and editing, workflow transitions, attachment retrieval, and administration via a web interface.8 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables MCP clients to read, create, update, comment on, and transition Jira issues using Jira Cloud's free plan.-