Coding Tools
Öffne Tickets direkt in Claude Code, Cursor, Devin oder deinem bevorzugten KI-Coding-Assistenten.
Das Coding-Tools-Feature verbindet Spedy-Tickets mit externen KI-Coding-Assistenten. Statt Kontext manuell zu kopieren, übergibst du ihn mit einem Klick.
Voraussetzungen
- Das Org-Feature AI Coding Tools muss in den Einstellungen unter Features aktiviert sein (standardmäßig aktiv, alle Pläne).
- Jeder User wählt seine eigenen Tools unter Konto → Coding Tools.
Tools einrichten
- Gehe zu Konto → Coding Tools.
- Aktiviere die Tools, die du nutzt, über den Schalter neben jedem Eintrag. Kein Tool ist standardmäßig aktiv.
- Für das Custom-Tool: Aktiviere es und trage deine eigene URL-Vorlage ein. Verfügbare Platzhalter:
{{prompt}},{{context}},{{issue.identifier}},{{issue.branchName}}.
Unterstützte Tools
Web-basiert: Claude Code, Codex, Devin, Lovable, Replit, v0, Netlify Agents.
Desktop (Deep-Link): Cursor, Windsurf, Zed, GitHub Copilot, Codex Desktop, Conductor, Factory, Warp.
CLI: OpenCode (kopiert den Shell-Befehl in die Zwischenablage).
Custom: Frei konfigurierbare URL-Vorlage.
Ticket-Header-Menü
Im Header jedes Tickets erscheint ein Split-Button:
- Linke Seite (Hauptaktion): Führt die zuletzt verwendete Aktion aus. Standard: Als Prompt kopieren -- kopiert den Ticket-Kontext in die Zwischenablage.
- Rechte Seite (Dropdown): Öffnet das Menü mit allen aktivierten Tools und einem Link zu den Einstellungen.
Klickst du ein Tool im Dropdown, wird es als neue Hauptaktion gespeichert. Beim nächsten Ticket reicht ein Klick auf die linke Seite.
Prompt-Vorlage anpassen
Unter Konto → Coding Tools findest du die Prompt-Vorlage als bearbeitbares Textfeld. Klicke auf die Variablen-Chips, um sie an der Cursor-Position einzufügen.
Verfügbare Variablen
| Variable | Beschreibung |
|---|---|
{{identifier}} | Ticket-ID, z. B. ACME-42 |
{{title}} | Ticket-Titel |
{{context}} | Voller Ticket-Kontext als Markdown (Beschreibung, Kommentare, Subtickets, Verknüpfungen) |
{{branchName}} | Vorgeschlagener Git-Branch-Name |
Die Standard-Vorlage enthält einen MCP-Hinweis, der das Tool anweist, Spedy per MCP-Server direkt abzufragen und zu aktualisieren (z. B. tickets_get, tickets_update, tickets_add_comment, knowledge_search). Wenn du lieber eine rein statische Übergabe möchtest, lösche diesen Absatz aus der Vorlage.
Vorlage zurücksetzen
Klicke auf Auf Standard zurücksetzen, um zur mitgelieferten Vorlage zurückzukehren.
MCP-Tools für Ticket-Verwaltung
Wenn ein KI-Coding-Assistent per MCP mit Spedy verbunden ist, kann er Tickets programmatisch lesen und schreiben. Der MCP-Server stellt Tools für den gesamten Ticket-Lebenszyklus bereit.
Tickets erstellen und bearbeiten
tickets_create und tickets_update akzeptieren den vollständigen Eigenschaftssatz:
| Eigenschaft | Beschreibung |
|---|---|
title, description | Grundlegende Ticket-Inhalte |
assigneeId | Teammitglied zuweisen (null zum Entfernen) |
statusId | Ticket in eine Board-Spalte verschieben |
typeId | Ticket-Typ setzen |
priority | low, medium, high oder critical |
estimatedHours | Zeitschätzung (0–1000 Stunden) |
dueDate, plannedStartDate | Datum im ISO-8601-Format |
storyPoints | Komplexitätsschätzung (1–1000) |
externalReference | Kundenseitige Kennung |
targetEnvironment | z. B. production oder staging |
impactLevel | low, medium, high oder critical |
labelIds | Array von Label-IDs (ersetzt den Satz; [] löscht alle) |
milestoneId | Meilenstein zuweisen (null zum Entfernen) |
Benutzerdefinierte Felder
Mit tickets_set_custom_fields setzt du organisationsweite benutzerdefinierte Felder auf einem Ticket. Unterstützte Typen: Text, Zahl, Datum, Auswahl und Checkbox. Werte werden gegen die Felddefinition validiert.
Discovery-Tools
Um die nötigen IDs zu ermitteln, nutze diese Abfrage-Tools:
labels_list— alle Organisations-Labels mit ID, Name, Farbe und Ticket-Anzahlmilestones_list— Board-Meilensteine mit ID, Name, Fälligkeitsdatum und Fortschrittcustom_fields_list— benutzerdefinierte Felddefinitionen mit ID, Typ, Pflichtfeld-Status und Auswahloptionen
Tickets lesen
tickets_get gibt den vollständigen Eigenschaftssatz zurück, inklusive Labels, Meilenstein und benutzerdefinierter Felder — so bleiben Lese- und Schreibzugriffe konsistent.
MCP-Tools fürs Wiki
Lesen ging schon länger — wiki_spaces_list, wiki_spaces_get, wiki_pages_list, wiki_pages_get und wiki_search. Zwei Tools schreiben jetzt auch, damit ein Agent Gelerntes dort ablegen kann, wo es hingehört, statt es in einem Ticket-Kommentar zu vergraben.
| Tool | Was es tut |
|---|---|
wiki_pages_create | Legt eine Seite in einem Bereich an. spaceId (ID oder Slug) und title sind Pflicht, content (Markdown) und folderId optional. |
wiki_pages_update | Ändert title, content und/oder folderId einer bestehenden Seite. Mindestens eins davon muss gesetzt sein — ein Aufruf, der nichts ändert, wird abgelehnt, statt eine leere Version zu schreiben. |
Drei Dinge, die man vorher wissen sollte:
contentersetzt den Seiteninhalt, es hängt nichts an. Lies die Seite vorher mitwiki_pages_getund schicke den vollständigen neuen Text — sonst ist alles weg, was du weggelassen hast.- Es geht nichts verloren. Jede Änderung legt Titel und Inhalt der Vorversion in der Seitenhistorie ab, genau wie eine Bearbeitung im Browser — die Änderung eines Agenten lässt sich zurücknehmen wie die einer Kollegin.
folderIdunterscheidet „lass es" von „verschieb es". Lässt du das Feld weg, bleibt die Seite, wo sie ist; mitnullwandert sie in die Wurzel des Bereichs.
Beide Tools brauchen die Berechtigung wiki:edit und Editor-Rechte in genau diesem Bereich — dieselben zwei Bedingungen wie bei einem Menschen. Die Gruppe Agenten hat die Berechtigung standardmäßig; die Aufnahme in den Bereich ist eine eigene, bewusste Entscheidung eines Admins. Ein Nur-Lese-Token erreicht keins der beiden Tools.
MCP-Tools für Pull Requests und Pipelines
KI-Agenten können auch Pull-Request- und CI/CD-Pipeline-Daten per MCP abfragen — dieselben Daten, die die Pull-Requests- und Pipelines-Ansichten im Browser antreiben.
Pull Requests auflisten
pull_requests_list liefert eine paginierte Übersicht aller Pull- und Merge-Requests über alle verbundenen Provider (GitHub, GitLab, Bitbucket), beschränkt auf die Boards, auf die du Zugriff hast.
| Parameter | Beschreibung |
|---|---|
provider | Filtern nach GITHUB, GITLAB oder BITBUCKET |
state | OPEN, DRAFT, MERGED oder CLOSED |
boardId | Auf ein einzelnes Board beschränken |
repository | Nach Repository-Name filtern (enthält) |
author | Nach Autor filtern (enthält) |
branch | Nach Quell- oder Ziel-Branch filtern (enthält) |
search | Freitextsuche über Titel, Repo, Branch, Autor oder PR-Nummer |
onlyOpen | Kurzform für state=OPEN |
onlyFailed | Nur PRs mit aktuell fehlgeschlagener Pipeline |
limit, page | Paginierung (Standard: 25 pro Seite, max. 100) |
Pull-Request-Details abrufen
pull_requests_get gibt die vollständigen Details eines einzelnen Pull Requests anhand seiner Spedy-Aggregate-ID (aus pull_requests_list) zurück, inklusive:
- CI-Pipeline-Steps mit Status, Typ und Dauer
- Reviews mit Reviewer-Name, Status und Kommentar
- Letzte Events mit Typ und Zeitstempel
Pipeline-Läufe auflisten
pipelines_list zeigt CI/CD-Pipeline-Läufe gruppiert nach Status-Bucket, analog zur Pipelines-Ansicht:
| Parameter | Beschreibung |
|---|---|
status | needs-attention (Standard), running, failed, success oder all |
provider | Filtern nach GITHUB, GITLAB oder BITBUCKET |
boardId | Auf ein einzelnes Board beschränken |
limit, page | Paginierung (Standard: 25 pro Seite, max. 100) |
Die Ergebnisse enthalten Zähler pro Bucket (needsAttention, running, failed, success, total), sodass der Agent den CI-Gesamtzustand auf einen Blick erfassen kann.
Alle drei Tools sind schreibgeschützt (Risikostufe SAFE), erfordern den mcp:read-Scope und sind auf die Boards beschränkt, auf die der verbundene User Zugriff hat.
Kontext in einem Aufruf: context_search
Ein Agent, der eine Aufgabe beginnt, braucht meist drei Dinge auf einmal: die Tickets zum Thema, die Doku-Seiten, die es erklären, und das, was das Team dazu schon gelernt hat. context_search beantwortet eine Anfrage über alle drei Quellen und liefert die Treffer gruppiert, jeweils mit einem kurzen Auszug.
| Parameter | Beschreibung |
|---|---|
query | Wonach du suchst — ein Feature, eine Fehlermeldung, ein Kundenbegriff (1–500 Zeichen) |
boardId | Optionales Projekt, auf das die Ticket-Treffer beschränkt werden |
limit | Maximale Treffer pro Gruppe (Standard 5, max. 20) |
include | Zu durchsuchende Gruppen: tickets, wiki, knowledge (Standard: alle) |
Die Antwort enthält groups.tickets, groups.wiki und groups.knowledge sowie eine Liste skipped, die jede Gruppe nennt, auf die der verbundene User keinen Zugriff hat (z. B. die Wissensbasis, wenn das Feature AI Knowledge Base aus ist, oder das Wiki ohne die Berechtigung wiki:view). Nichts fällt stillschweigend weg — der Agent kann „keine Treffer" von „nicht erlaubt" unterscheiden. Jeder Ticket- und Wiki-Treffer trägt einen score und einen matchType (semantic, keyword oder both), damit der Agent ihn gewichten kann.
Semantisches Ranking
tickets_search, wiki_search und context_search sortieren nach Bedeutung, nicht nur nach exakten Wörtern: Spedy berechnet im Hintergrund für jedes Ticket (Titel + Beschreibung) und jede Wiki-Seite ein Embedding und verschmilzt das Nächste-Nachbarn-Ranking mit dem klassischen Stichwort-Ranking. Eine Suche nach „Kunde kann sich nach Passwort-Reset nicht einloggen" findet das Ticket „Reset-Flow: Session wird nicht erneuert", obwohl die Wörter andere sind.
tickets_searchundwiki_searchakzeptierenmode: "hybrid"(Standard) odermode: "keyword"(exakte Teilstring-Suche, neueste zuerst). Hybride Treffer tragenscoreundmatchType; die Antwort meldetsearch.modebzw.meta.modeundsemanticUsed.- Das semantische Ranking ist aktiv, sobald für deine Spedy-Instanz ein Embedding-Dienst konfiguriert ist. Ohne ihn — oder solange er nicht erreichbar ist — fällt jede Suche automatisch auf das Stichwort-Ranking zurück und
semanticUsedistfalse; kein Aufruf schlägt deshalb fehl oder wartet. - Neue und geänderte Tickets und Seiten sind innerhalb von etwa einer Minute eingebettet; ein Hintergrundjob holt Verpasstes nach.
- Paginierung im Hybrid-Modus: Das fusionierte Ranking ist eine einzige Seite (
pagination.singlePage: true).pagination.totalmeldet trotzdem, wie viele Tickets in deinen zugänglichen Projekten auf die Stichwörter der Suche passen — so lässt sich „das war alles“ von „da kommt noch mehr“ unterscheiden. Den Rest holst du überpage: 2und folgende, die im Stichwort-Modus laufen.
Fertige Prompts
Der Spedy-MCP-Server veröffentlicht außerdem Prompts — serverseitig erstellte Nachrichtenvorlagen, die dein MCP-Client als Slash-Befehl oder in seiner Prompt-Auswahl anbietet (prompts/list / prompts/get). Sie bündeln den Kontext, den ein Agent braucht, mit der Arbeitsvereinbarung, die Spedy erwartet — du musst sie nicht jedes Mal eintippen.
| Prompt | Argumente | Was er tut |
|---|---|---|
work-on-ticket | ticket (z. B. AG-12), optional boardId | Ticket-Kontext (Beschreibung, Labels, Verknüpfungen, Subtickets, Kommentare), die relevantesten Wiki-Seiten und Team-Erkenntnisse, ein Branch-Vorschlag und die Arbeitsvereinbarung: Live-Details per tickets_get, Zeiterfassung per timers_start/timers_stop, Rückmeldung als interner Kommentar. |
report-back | ticket, summary, optional prUrl, status | Die exakten Tool-Aufrufe zum sauberen Abschluss: ein interner tickets_add_comment mit den Abschnitten Ergebnis / Geändert / Offen / PR, der tickets_move_status-Aufruf für den Zielstatus und das Stoppen laufender Timer. |
review-pr | pullRequest (Spedy-PR-ID, owner/repo#123 oder eine PR-Nummer) | Die PR-Fakten, die Spedy kennt (Status, Branches, CI-Pipeline, Reviews), das verknüpfte Ticket und eine Review-Checkliste, die in einem internen Kommentar am Ticket endet. Benötigt das Feature Pull Requests. |
Prompts folgen denselben Berechtigungen und Feature-Schaltern wie die Tools, auf denen sie aufbauen: Ein User ohne Wiki-Zugriff bekommt bei work-on-ticket die reine Ticket-Variante; review-pr ist ausgeblendet, wenn die Pull-Requests-Ansicht deaktiviert ist. Alles in einem Prompt, das von Menschen geschrieben wurde — Ticket-Text, Kommentare, Wiki-Auszüge, PR-Beschreibungen — ist klar als Daten, nicht Anweisungen markiert, damit ein Kommentar deinen Agenten nicht kapern kann.
Tipps
- Aktiviere nur die Tools, die du tatsächlich nutzt -- das Dropdown bleibt übersichtlich.
- Richte die MCP-Integration unter Konto → MCP ein, damit Tools per MCP auf Live-Daten zugreifen können.
- Nutze das Custom-Tool, wenn dein bevorzugtes Tool nicht in der Liste steht.