Tecto docs
tectoapp.io

MCP-Server

Tecto bringt einen hauseigenen MCP-Server mit. Damit kann ein Assistent — Claude, eine Agenten-CLI, alles, was das Protokoll spricht — die Boards eines Workspace lesen und bewegen, ohne dass jemand Klebecode schreiben muss.

Es gibt nichts zu installieren. Der Server läuft auf Ihrer Tecto-Instanz und antwortet unter https://app.tectoapp.io/mcp; Sie richten den Assistenten auf diese Adresse und geben ihm ein Token.

Er ist eine dünne Schicht über der öffentlichen API: Der Endpunkt hat keine eigene Rechtelogik, sondern stellt gewöhnliche API-Anfragen mit Ihrem Zugangsdatum. Ein Assistent sieht und ändert damit genau das, was Sie können. Karteninhalte gehen als kanonisches Markdown über die Leitung.

Einrichtung

Zuerst ein Token anlegen: Einstellungen → Tokens, im Workspace, in dem der Assistent arbeiten soll. content:read, wenn er nur lesen soll, content:write, wenn er auch schreiben soll. Das Geheimnis wird einmal angezeigt.

Ein hier erstelltes Token gilt hier — es liest und schreibt, was Tecto Ihnen zeigt, und nichts, was in den anderen Apps liegt. Deshalb müssen Sie dem Assistenten auch nicht sagen, welchen Workspace er nehmen soll: Das Token nennt einen, und der Endpunkt liest ihn dort ab.

In der Konfigurationsdatei eines MCP-Hosts:

{
  "mcpServers": {
    "tecto": {
      "type": "http",
      "url": "https://app.tectoapp.io/mcp",
      "headers": {
        "Authorization": "Bearer tecto_pat_…"
      }
    }
  }
}

Die Hosts schreiben das unterschiedlich; gebraucht werden überall dieselben zwei Dinge: die Adresse und der Authorization-Header. In Claude Code etwa:

claude mcp add --transport http tecto https://app.tectoapp.io/mcp \
  --header "Authorization: Bearer tecto_pat_…"

Wenn Ihr Konto in mehreren Workspaces ist und Sie einen ausdrücklich nennen möchten, verwenden Sie stattdessen https://app.tectoapp.io/mcp/w/<Workspace-ID>. Ein Token kann immer nur seinen eigenen Workspace nennen, die beiden müssen also übereinstimmen.

Dass ein Assistent nur liest, regelt das Token und keine Einstellung: Ein content:read-Token weist der Server bei jedem Schreibvorgang ab, und das ist eine härtere Zusicherung als ein Schalter auf der Clientseite.

Als Connector hinzufügen

Hosts ohne Header-Feld — claude.ai gehört dazu — fügen den Endpunkt als Connector hinzu und melden Sie stattdessen an. Tragen Sie dieselbe Adresse https://app.tectoapp.io/mcp in den Connector-Dialog ein; der Rest ist eine Anmeldung und ein Bildschirm mit der Frage, ob Sie verbinden möchten. Nichts zu kopieren, kein Token, das Sie aufbewahren müssen.

Ein Connector reicht weiter als ein Token, und der Bildschirm sagt das, bevor Sie zustimmen:

  • Er gilt für jeden Workspace, in dem Sie Mitglied sind, nicht für einen.
  • Er liest und schreibt, was Sie können. Einen nur lesenden Connector gibt es nicht; für einen Assistenten, der nur schauen soll, erstellen Sie ein Token mit content:read.
  • Er sieht weiterhin nur Tecto, und er hört auf zu funktionieren, wenn Ihr Zugriff endet.

Weil ein Connector mehrere Workspaces umfasst, muss der Assistent sagen, welchen er meint: https://app.tectoapp.io/mcp/w/<Workspace-ID>.

Was der Assistent bekommt

Nur lesend, sofern nicht markiert.

  • get_workspace — Name und Zuschnitt des Workspace, den das Token öffnet.
  • list_boards / get_board — die Boards, und die Spalten und Lanes eines Boards.
  • get_board_cards — die Karten eines Boards, gruppiert nach Spalte × Lane, mit ehrlichen Gesamtzahlen und Cursorn je Gruppe für lange Spalten.
  • create_board (schreibend) — ein neues Board in einer Sammlung, mit den Standardspalten, die auch die App anlegen würde.
  • add_card (schreibend) — eine neue Karte am Spaltenende, oder eine bestehende Seite als Karte angeheftet.
  • move_card (schreibend) — Spalte, Lane und Position in einem Schritt, derselbe transaktionale Move wie in der App.
  • get_card / update_card (schreibend) — der Karteninhalt als kanonisches Markdown, gelesen und im Ganzen ersetzt.
  • comment_on_card (schreibend) / list_card_comments — die Diskussion der Karte.
  • search — Volltext über den Workspace; jeder Treffer sagt, was er ist.

Was der Assistent nicht darf, durfte auch das Token nicht: Rechte, Sichtbarkeit und Papierkorb-Semantik gehören dem Server, nicht der MCP-Schicht.

Wenn etwas abgelehnt wird

Der Endpunkt antwortet wie die API, eine Ablehnung sagt also, welcher der drei Fälle vorliegt:

  • 401 — kein Zugangsdatum, oder eines, das unbekannt, widerrufen oder abgelaufen ist.
  • 403 — ein Zugangsdatum, das das nicht darf: ein Token ganz ohne content:read, ein content:read-Token, das schreiben soll, oder eines, das zu einem anderen Workspace gehört als dem, den die Adresse nennt.
  • Alles andere ist die gewöhnliche Antwort der API, mit ihrem eigenen Wortlaut durchgereicht.