jira-mcp
Jira MCP Server (nur lesend)
Ein lokaler MCP-Server, der es Claude Code ermöglicht, Jira-Ticketkontext (Ticketdetails, Kommentarthreads, den Referenzgraphen um ein Ticket und JQL-Suchergebnisse) als kompaktes Markdown abzurufen. Bildanhänge (z. B. der Screenshot auf einem UI-Fehler-Ticket) können abgerufen werden, damit Claude sie visuell analysieren kann.
Was es bewusst nicht kann
Dieser Server ist streng schreibgeschützt. Er stellt kein Werkzeug bereit, das etwas erstellt, aktualisiert, übergeht, löscht oder kommentiert. Die Durchsetzung ist mehrschichtig:
Im Code: Jede HTTP-Anfrage läuft durch einen einzigen Helfer, der nur
GETzulässt, mit einer Ausnahme in der Whitelist:POST /rest/api/3/search/jql, eine Leseoperation, die Atlassian als POST senden muss. Jede andere Methode löstReadOnlyViolationErroraus, sodass eine zukünftige Änderung, die einen Schreibaufruf hinzufügt, laut scheitert.Auf der Anmeldeebene: Erstellen Sie das API-Token nur mit Lese-Berechtigungen (siehe unten), sodass selbst ein Fehler nicht schreiben könnte.
Related MCP server: JIRA MCP Server
Werkzeuge
Tool | Zweck |
| Vollständige Ticketdetails einschließlich aller nicht leeren benutzerdefinierten Felder (Akzeptanzkriterien, Story Points, ...) mit ihren Anzeigenamen, plus (standardmäßig) den Kommentarthread |
| Nur die Diskussion, mit Autor/Zeitstempel/bearbeitet/Sichtbarkeit |
| Eltern, Teilaufgaben, verknüpfte Tickets (mit Linkrichtung) und Epic-Kinder, jeweils als Schlüssel + Typ + Status + Zusammenfassung |
| Kompakte JQL-Suchergebnisse |
| Lädt einen Bildanhang herunter (aufgelistet von |
| Auf welches Konto das Token aufgelöst wird; die erste Anlaufstelle für Auth-Debugging |
Einrichtung
1. Atlassian-API-Token erstellen
Gehen Sie zu https://id.atlassian.com/manage-profile/security/api-tokens.
Wählen Sie API-Token mit Bereichen erstellen (Atlassian stellt Tokens ohne Bereiche ein).
Wählen Sie die Jira-App und wählen Sie nur diese Bereiche:
read:jira-workread:jira-user
Kopieren Sie das Token sofort; es wird nur einmal angezeigt.
Ein älteres unscoped Token funktioniert ebenfalls; der Server behandelt beide automatisch (siehe unten).
2. .env konfigurieren
cp .env.example .env # then editErforderliche Schlüssel (das ist die gesamte Konfigurationsoberfläche):
Key | Wert |
| Die E-Mail-Adresse Ihres Atlassian-Kontos |
| Das Token aus Schritt 1 |
| z. B. |
.env ist gitignored; committen Sie es niemals. Echte Umgebungsvariablen haben Vorrang vor der Datei. Die Datei befindet sich relativ zum Projektverzeichnis (nicht zum Arbeitsverzeichnis), sodass der Server sie findet, egal von wo aus er gestartet wird.
3. Abhängigkeiten installieren
Mit uv (bevorzugt, da dieses Repository eine uv.lock hat):
uv syncOder mit einfachem pip in eine venv:
python -m venv .venv
.venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip4. Mit --check verifizieren
.venv/bin/python -m jira_mcp --check # connectivity + auth only
.venv/bin/python -m jira_mcp --check PROJ-123 # also fetch a ticket in fullDies gibt aus, ob .env gefunden wurde, welche Basis-URL ausgewählt wurde (und ob der Cloud-ID-Fallback benötigt wurde), das authentifizierte Konto und, wenn ein Schlüssel angegeben ist, das Ticket genau so, wie Claude es sehen würde.
Scoped vs. unscoped Tokens: das Basis-URL-Problem
Ein unscoped Token funktioniert gegen Ihre Site-URL,
https://<site>.atlassian.net.Ein scoped Token gegen dieselbe URL schlägt still fehl und gibt anonym aussehende Antworten zurück. Es muss stattdessen
https://api.atlassian.com/ex/jira/{cloudId}aufrufen.
Sie müssen nicht wissen, welche Art Sie besitzen. Beim Start testet der Server die Site-URL mit GET /rest/api/3/myself; wenn das kein echtes Konto zurückgibt, ruft er Ihre Cloud-ID von {site}/_edge/tenant_info ab und versucht es erneut gegen api.atlassian.com. Der Gewinner wird für die Prozesslebensdauer zwischengespeichert und auf stderr protokolliert.
Falls die Erkennung jemals fehlschlägt: _edge/tenant_info ist nicht Teil der offiziell unterstützten REST-API von Atlassian (obwohl Atlassians eigene Support-Dokumente darauf verweisen), also könnte es sich ändern. In diesem Fall setzen Sie ATLASSIAN_CLOUD_ID in .env, um die Erkennung zu überspringen; die Fehlermeldung sagt Ihnen, wann das zutrifft. Sie brauchen es fast nie.
PyCharm-Einrichtung
Interpreter: Einstellungen → Projekt → Python-Interpreter → Interpreter hinzufügen → Vorhanden → wählen Sie
.venv/bin/pythonim Projektverzeichnis. (Wenn Sieuv syncausgeführt haben, existiert die venv bereits mit allem installiert.)Ausführungskonfiguration für Debugging: Ausführen → Konfigurationen bearbeiten → + → Python:
Ausführen: Modul
jira_mcp(wählen Sie „Modul" statt „Skriptpfad")Parameter:
--check PROJ-123Arbeitsverzeichnis: das Projektverzeichnis (alles funktioniert, aber das ist ordentlich)
Jetzt können Sie überall Haltepunkte setzen (z. B. in
client.py) und echte Anfragen debuggen. Fehler in einem laufenden MCP-Server sind sonst unsichtbar.
Mit Claude Code verbinden
Verwenden Sie das Python der venv mit absolutem Pfad; ein bloßes python wird nicht auf die venv aufgelöst, wenn Claude Code den Server startet.
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_mcpHinweise:
Alles nach
--ist der Befehl, den Claude ausführt; alles davor sind Claudes eigene Optionen.Der Standardbereich ist
local(nur Sie, nur dieses Projekt, gespeichert in~/.claude.json). Fügen Sie--scope projecthinzu, um über eine eingecheckte.mcp.jsonzu teilen, oder--scope user, um es in allen Ihren Projekten zu verwenden.
Verifizieren, dass es verbunden ist
In einer Claude-Code-Sitzung:
Führen Sie
/mcpaus; derjira-Server sollte als verbunden aufgelistet sein, mit sechs Werkzeugen.Oder fragen Sie einfach: „use whoami to check the jira connection".
Fehlerbehebung
Symptom | Wahrscheinliche Ursache und Lösung |
401 Unauthorized | Falsche E-Mail oder falsches Token, oder das Token wurde widerrufen/abgelaufen. Erstellen Sie das Token neu und aktualisieren Sie |
403 Forbidden | Scoped Token ohne |
404 Not Found | Das Ticket existiert nicht, oder Ihr Konto hat keine Berechtigung, es zu sehen. Jira meldet Tickets, die Sie nicht sehen können, als 404, und ein Token gewährt nie mehr Zugriff als der Mensch, dem es gehört. Verifizieren Sie, dass Sie das Ticket in einem Browser öffnen können, während Sie mit diesem Konto angemeldet sind. |
Leere Werkzeugliste in Claude | Der Server ist beim Start abgestürzt. Führen Sie den genauen Befehl von |
Server startet nicht | Führen Sie |
Erkennung fehlgeschlagen / anonyme Antworten | Startprotokolle (stderr) sagen, welche Basis-URL getestet wurde und warum sie abgelehnt wurde. Wenn |
Hinweise für Entwickler, die neu in Python sind
Die venv (
.venv/) ist eine projektlokale Kopie von Python plus den Paketen dieses Projekts: das Äquivalent zunode_modules, außer dass der Interpreter selbst auch darin lebt. Deshalb muss Claude Code.venv/bin/pythonmit absolutem Pfad erhalten: Es gibt keine globale Installation, auf die zurückgegriffen werden kann.asyncio.run(...)wird benötigt, weil asynchrone Funktionen in Python nicht einfach durch Aufrufen ausgeführt werden; das Aufrufen einer solchen Funktion gibt ein Coroutine-Objekt zurück, und etwas muss es antreiben. Es gibt keine Umgebungs-Event-Loop wie in Node;asyncio.run()erstellt eine Loop, führt eine Coroutine bis zum Ende aus und baut die Loop wieder ab. Der MCP-Server macht das intern übermcp.run(); der--check-Modus macht es explizit.Die Dekorateure (
@mcp.tool) sind Funktionen, die die darunter definierte Funktion empfangen und registrieren/umhüllen, wie eine Middleware-Fabrik, die zur Definitionszeit angewendet wird. FastMCPs Dekorator liest den Namen, die Typ-Hinweise und den Docstring der Funktion, um das MCP-Tool-Schema zu generieren, das Claude sieht; der Docstring ist die API-Dokumentation des Tools.python -m jira_mcpführt die__main__.pydes Pakets aus, das, was Python am nächsten an einem npm-bin-Eintrag hat. Es funktioniert von jedem Verzeichnis aus, weiluv syncdas Projekt in die venv installiert hat.
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