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/projectsProjekte auflisten, auf die Sie Zugriff habenJeder Schlüssel
GET/projects/:token/boardsBoards eines Projekts auflistenViewer
GET/boards/:boardidEin Board mit Status und Stories abrufenViewer
GET/boards/:boardid/statusesStatus eines Boards auflistenViewer
GET/boards/:boardid/storiesStories eines Boards auflisten, optional gefiltert nach Status oder ZuständigemViewer
GET/boards/:boardid/stories/:storyidEine einzelne Story abrufenViewer
POST/boards/:boardid/storiesEine Story erstellenEditor
PATCH/boards/:boardid/stories/:storyidFelder einer Story aktualisierenEditor
POST/boards/:boardid/stories/:storyid/statusStatus einer Story ändernEditor oder contributor
DELETE/boards/:boardid/stories/:storyidEine Story löschenEditor
POST/boards/:boardid/stories/:storyid/commentsEinen Kommentar zu einer Story hinzufügenCommenter
Konto, Abrechnung & Rechnungen
GET/accountIhr Konto abrufen: Plan, Nutzungsgrenzen des kostenlosen Plans und RechnungsdatenJeder Schlüssel
GET/invoicesIhre Rechnungen auflistenJeder Schlüssel
GET/invoices/:invoiceid · …/pdfDetails einer Rechnung abrufen oder sie als PDF herunterladenJeder Schlüssel
Stundenkonto
GET/projects/:token/hourbank · …/transactionsEinstellungen und aktuellen Saldo des Stundenkontos eines Projekts abrufen, oder dessen TransaktionsprotokollViewer
POST…/hourbank/settings · …/entriesDas Stundenkonto eines Projekts konfigurieren, oder einen Kauf/eine Korrektur hinzufügenProjekteigentümer
Team
GET/teamIhr internes Team über alle Ihre Projekte und Feature Boards hinweg auflistenJeder Schlüssel
Feature Boards
GET/featureboardsDie Feature Boards auflisten, denen Sie angehörenBoard-Mitglied
POST/featureboardsEin Feature Board erstellenBezahlter Plan
GET/featureboards/:boardidEin Feature Board mit seinen Features, Stimmen, Kommentaren und Mitgliedern abrufenBoard-Mitglied
POST…/features · …/vote · …/commentsEine Feature-Anfrage einreichen, dafür abstimmen, oder einen Kommentar hinzufügenBoard-Mitglied
PATCH POST DELETE…/features/:featureid · …/statusEine Feature-Anfrage aktualisieren, ihren Status setzen, oder sie löschenBoard-Administrator
DELETE…/comments/:commentidEinen Kommentar zu einer Feature-Anfrage löschenKommentarautor oder Board-Administrator
POST DELETE/featureboards/:boardid/members · …/:userid/admin · …/:userid/externalEin Board-Mitglied hinzufügen, befördern/degradieren, umklassifizieren oder entfernenBoard-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
NameTypPflichtBeschreibung
: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

NameTypPflichtBeschreibung
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

NameTypPflichtBeschreibung
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

NameTypPflichtBeschreibung
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

NameTypPflichtBeschreibung
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)

  1. Entpacken Sie ihn und installieren Sie einmalig seine Abhängigkeiten:
    unzip scrumbo-mcp.zip
    cd scrumbo-mcp
    npm install
  2. Erstellen Sie einen API-Schlüssel auf Ihrer Kontoseite und kopieren Sie ihn.
  3. 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:

BeschreibungBenötigter Zugriff
list_projectsJeder Schlüssel
list_boards, get_board, list_stories, get_story, list_statusesViewer
add_commentCommenter
create_story, update_story, move_story, delete_storyEditor
get_account, list_invoices, get_invoice, get_invoice_pdf, get_teamJeder Schlüssel
get_hourbank, list_hourbank_transactionsViewer
save_hourbank_settings, add_hourbank_entryProjekteigentümer
list_feature_boards, get_feature_board, create_feature, vote_feature, add_feature_commentBoard-Mitglied
create_feature_boardBezahlter 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_memberBoard-Administrator
delete_feature_commentKommentarautor 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.