API & MCP-Server
Scrumbo bietet eine JSON-REST-API und einen Model-Context-Protocol(MCP)-Server, damit Sie (oder ein KI-Assistent wie Claude) Boards und Stories außerhalb der Web-App lesen und verwalten können.
Authentifizierung
Jede Anfrage benötigt einen persönlichen API-Schlüssel. Erstellen Sie einen auf Ihrer Kontoseite — er wird nur einmal angezeigt, kopieren Sie ihn also sofort.
Senden Sie ihn bei jeder Anfrage als Bearer-Token:
Authorization: Bearer sbo_your_key_here
REST-API
Die API ist erreichbar unter https://scrumbo.com/api/v1 und liefert JSON. Ein Schlüssel hat genau Ihre Zugriffsrechte: Er erreicht nur Projekte und Boards, deren Eigentümer, Mitglied oder Administrator Sie sind.
| Methode | Pfad | Beschreibung | Benötigter Zugriff |
|---|---|---|---|
| GET | /projects | Projekte auflisten, auf die Sie Zugriff haben | Jeder Schlüssel |
| GET | /projects/:token/boards | Boards eines Projekts auflisten | Viewer |
| GET | /boards/:boardid | Ein Board mit Status und Stories abrufen | Viewer |
| GET | /boards/:boardid/statuses | Status eines Boards auflisten | Viewer |
| GET | /boards/:boardid/stories | Stories eines Boards auflisten, optional gefiltert nach Status oder Zuständigem | Viewer |
| GET | /boards/:boardid/stories/:storyid | Eine einzelne Story abrufen | Viewer |
| POST | /boards/:boardid/stories | Eine Story erstellen | Editor |
| PATCH | /boards/:boardid/stories/:storyid | Felder einer Story aktualisieren | Editor |
| POST | /boards/:boardid/stories/:storyid/status | Status einer Story ändern | Editor oder contributor |
| DELETE | /boards/:boardid/stories/:storyid | Eine Story löschen | Editor |
| POST | /boards/:boardid/stories/:storyid/comments | Einen Kommentar zu einer Story hinzufügen | Commenter |
| Konto, Abrechnung & Rechnungen | |||
| GET | /account | Ihr Konto abrufen: Plan, Nutzungsgrenzen des kostenlosen Plans und Rechnungsdaten | Jeder Schlüssel |
| GET | /invoices | Ihre Rechnungen auflisten | Jeder Schlüssel |
| GET | /invoices/:invoiceid · …/pdf | Details einer Rechnung abrufen oder sie als PDF herunterladen | Jeder Schlüssel |
| Stundenkonto | |||
| GET | /projects/:token/hourbank · …/transactions | Einstellungen und aktuellen Saldo des Stundenkontos eines Projekts abrufen, oder dessen Transaktionsprotokoll | Viewer |
| POST | …/hourbank/settings · …/entries | Das Stundenkonto eines Projekts konfigurieren, oder einen Kauf/eine Korrektur hinzufügen | Projekteigentümer |
| Team | |||
| GET | /team | Ihr internes Team über alle Ihre Projekte und Feature Boards hinweg auflisten | Jeder Schlüssel |
| Feature Boards | |||
| GET | /featureboards | Die Feature Boards auflisten, denen Sie angehören | Board-Mitglied |
| POST | /featureboards | Ein Feature Board erstellen | Bezahlter Plan |
| GET | /featureboards/:boardid | Ein Feature Board mit seinen Features, Stimmen, Kommentaren und Mitgliedern abrufen | Board-Mitglied |
| POST | …/features · …/vote · …/comments | Eine Feature-Anfrage einreichen, dafür abstimmen, oder einen Kommentar hinzufügen | Board-Mitglied |
| PATCH POST DELETE | …/features/:featureid · …/status | Eine Feature-Anfrage aktualisieren, ihren Status setzen, oder sie löschen | Board-Administrator |
| DELETE | …/comments/:commentid | Einen Kommentar zu einer Feature-Anfrage löschen | Kommentarautor oder Board-Administrator |
| POST DELETE | /featureboards/:boardid/members · …/:userid/admin · …/:userid/external | Ein Board-Mitglied hinzufügen, befördern/degradieren, umklassifizieren oder entfernen | Board-Administrator |
„Editor oder contributor“ schließt auch Developer ein, die nur den Status ändern, nicht den Story-Text bearbeiten dürfen.
Beispiel:
curl https://scrumbo.com/api/v1/boards/123/stories \
-H "Authorization: Bearer sbo_your_key_here"
curl -X POST https://scrumbo.com/api/v1/boards/123/stories \
-H "Authorization: Bearer sbo_your_key_here" \
-H "Content-Type: application/json" \
-d '{"subject": "New story", "story": "Details go here"}'
Parameter
Request-Bodies sind JSON. Jeder Parameter unten wird sowohl von der REST-API als auch vom passenden MCP-Tool akzeptiert.
Pfadparameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
:token |
string | Ja | Projekt-Token, wie von GET /projects zurückgegeben. |
:boardid |
integer | Ja | Numerische Board-ID, wie von GET /projects/:token/boards zurückgegeben. |
:storyid |
integer | Ja | Numerische Story-ID, eindeutig innerhalb ihres Boards. |
Query-Parameter
GET /boards/:boardid/stories
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
status |
string | Nein | Gibt nur Storys in diesem Status zurück. Groß-/Kleinschreibung wird beim Filtern ignoriert. |
assigned |
string | Nein | Gibt nur Storys mit diesem Namen als zugewiesener Person zurück. Groß-/Kleinschreibung wird beim Filtern ignoriert. |
Story-Felder (Anlegen und Aktualisieren)
POST /boards/:boardid/stories · PATCH /boards/:boardid/stories/:storyid
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
subject |
string | Beim Anlegen | Kurzer Titel, höchstens 500 Zeichen. Beim Anlegen erforderlich; längere Werte werden abgewiesen. |
story |
string | Nein | Story-Text. HTML ist erlaubt, wird aber serverseitig bereinigt — nicht unterstützte Tags und Attribute werden entfernt. |
status |
string | Nein | Muss exakt einem Status des Projekts entsprechen, einschließlich Groß-/Kleinschreibung. Beim Anlegen fällt ein unbekannter oder fehlender Status auf den ersten Status des Boards zurück; beim Aktualisieren wird ein unbekannter Status abgewiesen. |
assigned |
string | Nein | Name der zugewiesenen Person, Freitext. Das ist nur ein Label — es verknüpft die Story nicht mit einem Scrumbo-Konto. |
requester |
string | Nein | Name der Person, die die Story angefragt hat, Freitext. |
scope |
string | Nein | Kurzes Scope-Label, höchstens 100 Zeichen. Längere Werte werden abgewiesen. |
comment |
string | Nein | Altes Freitextfeld, das an der Story selbst gespeichert wird. Es wird in der Weboberfläche nicht angezeigt — für einen sichtbaren Kommentar nutzen Sie den Kommentar-Endpunkt unten. |
notify |
boolean | Nein | Benachrichtigt die Follower des Boards und der Story per E-Mail über diese Änderung. Standard ist false. |
- Jedes hier nicht aufgeführte Feld wird ignoriert statt abgewiesen.
- Eine Aktualisierung muss mindestens eines dieser Felder enthalten; geändert wird nur, was Sie mitsenden.
- Eine Story mit einem Scrumbo-Konto zu verknüpfen (die Zuweisungs-Auswahl) ist über die API nicht möglich.
Eine Story verschieben
POST /boards/:boardid/stories/:storyid/status
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
status |
string | Ja | Zielstatus. Muss exakt einem Status des Projekts entsprechen, einschließlich Groß-/Kleinschreibung. |
notify |
boolean | Nein | Benachrichtigt die Follower des Boards und der Story per E-Mail über diese Änderung. Standard ist false. |
Einen Kommentar hinzufügen
POST /boards/:boardid/stories/:storyid/comments
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
comment |
string | Ja | Kommentartext, reiner Text. Er wird vor dem Speichern escaped, HTML erscheint also wörtlich statt gerendert. |
name |
string | Nein | Autorenname, der am Kommentar angezeigt wird. Standard ist der Name des Kontos, zu dem der API-Schlüssel gehört. |
notify |
boolean | Nein | Benachrichtigt die Follower des Boards und der Story per E-Mail über diese Änderung. Standard ist false. |
Abgewiesene Anfragen liefern den passenden HTTP-Status (400, 403 oder 404) und einen JSON-Body:
{"error": "subject must be at most 500 characters"}
MCP-Server
Scrumbo liefert einen eigenständigen MCP-Server, der die REST-API als Tools bereitstellt, sodass ein MCP-fähiger Assistent wie Claude Desktop oder Claude Code Ihre Boards direkt nutzen kann. Node.js 20 oder neuer wird benötigt.
MCP-Server herunterladen (ZIP)
-
Entpacken Sie ihn und installieren Sie einmalig seine Abhängigkeiten:
unzip scrumbo-mcp.zip cd scrumbo-mcp npm install - Erstellen Sie einen API-Schlüssel auf Ihrer Kontoseite und kopieren Sie ihn.
- Registrieren Sie den Server bei Ihrem MCP-Client, zum Beispiel:
{
"mcpServers": {
"scrumbo": {
"command": "node",
"args": ["/absolute/path/to/scrumbo-mcp/index.js"],
"env": {
"SCRUMBO_API_KEY": "sbo_your_key_here",
"SCRUMBO_API_URL": "https://scrumbo.com/api/v1"
}
}
}
}
Tools:
| Beschreibung | Benötigter Zugriff |
|---|---|
list_projects | Jeder Schlüssel |
list_boards, get_board, list_stories, get_story, list_statuses | Viewer |
add_comment | Commenter |
create_story, update_story, move_story, delete_story | Editor |
get_account, list_invoices, get_invoice, get_invoice_pdf, get_team | Jeder Schlüssel |
get_hourbank, list_hourbank_transactions | Viewer |
save_hourbank_settings, add_hourbank_entry | Projekteigentümer |
list_feature_boards, get_feature_board, create_feature, vote_feature, add_feature_comment | Board-Mitglied |
create_feature_board | Bezahlter Plan |
update_feature, set_feature_status, delete_feature, add_feature_board_member, set_feature_board_member_admin, set_feature_board_member_external, remove_feature_board_member | Board-Administrator |
delete_feature_comment | Kommentarautor oder Board-Administrator |
Zu beachten
- Ein Schlüssel hat genau Ihre Zugriffsrechte — wer ihn besitzt, kann in diesem Rahmen in Ihrem Namen handeln, behandeln Sie ihn also wie ein Passwort.
- Widerrufen Sie einen Schlüssel jederzeit über Ihre Kontoseite; alles, was ihn nutzt, funktioniert dann sofort nicht mehr.
- Der MCP-Server selbst hat keinen Datenbankzugriff — er ist ein schlanker HTTP-Client, der nie mehr Rechte hat als der Schlüssel, den Sie ihm geben.