docs: DEVLOG-Eintrag fuer M8

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-09-13 15:21:00 +02:00
co-authored by Claude Opus 5
parent 0ccb21303d
commit 96e105fe92
2 changed files with 75 additions and 1 deletions
+74 -1
View File
@@ -14,7 +14,80 @@ die Übersicht aus `scripts/zeit.sh summe`.
| M5 | claude | 420 | 7,00 | | M5 | claude | 420 | 7,00 |
| M6 | claude | 733 | 12,22 | | M6 | claude | 733 | 12,22 |
| M7 | claude | 886 | 14,77 | | M7 | claude | 886 | 14,77 |
| **Gesamt** | | **2452** | **40,87** | | M8 | claude | 69 | 1,15 |
| **Gesamt** | | **2521** | **42,02** |
---
## 2026-09-13 – M8: MCP
**Dauer:** 69 Minuten (14:10–15:19), Art `claude`.
> Der kürzeste Meilenstein — weil das Fundament schon stand. Tokens, Rechte
> und Protokoll kamen mit M7, der Kalenderschreibweg mit M4. Übrig blieb das
> Zusammenstecken.
**Ziel der Sitzung:** Ein Sprachmodell soll den Alltag erleichtern können —
ohne einen eigenen, weicheren Zugang zu bekommen als jede andere fremde
Anwendung.
### Erledigt
- MCP-Server unter `/api/mcp` über `@modelcontextprotocol/sdk`
- Sechs Werkzeuge: suchen, Woche ansehen, Kalender auflisten, anlegen,
abhaken, einplanen
- Das Einplanen aus der Serveraktion herausgelöst, damit Oberfläche und MCP
dieselbe Stelle benutzen
- 6 neue E2E-Tests, Beschreibung in `docs/MCP.md`
### Entscheidungen mit Begründung
**Dieselben Tokens, dieselben Rechte wie die Schnittstelle.** Ein
Sprachmodell ist aus Sicht des Planers eine fremde Anwendung wie jede andere.
Ein eigener Zugangsweg wäre ein zweiter Satz Regeln — und der zweite Satz ist
immer der, den man vergisst zu pflegen.
**Die Werkzeugliste richtet sich nach den Rechten.** Was ein Token nicht
darf, taucht gar nicht erst auf. Ein Modell soll nicht gegen eine Tür laufen,
die für es verschlossen ist; und eine Fehlermeldung als Antwort auf einen
Werkzeugaufruf ist verschwendeter Kontext.
**Wenige, grob geschnittene Werkzeuge.** Ein Modell, das zwischen zwanzig
fast gleichen wählen muss, wählt falsch. Jedes weitere Werkzeug ist zudem
eine zusätzliche Möglichkeit, versehentlich etwas zu ändern.
**Der Server kann nichts löschen.** Abhaken ja, wegräumen nein. Auch keine
Bereiche, Projekte oder Einstellungen anfassen. Ein Modell soll den Alltag
erleichtern, nicht die Ordnung umbauen.
**Das Einplanen liegt jetzt an einer gemeinsamen Stelle** — und die liegt
bewusst **nicht** in einer Datei mit `'use server'`. Dort wird jede
exportierte Funktion zu einem Endpunkt, den der Browser aufrufen kann; eine
Funktion, die den Akteur als Parameter nimmt, wäre dann ein offenes Tor.
**Zustandslos.** Der Planer hat keine langlaufenden Vorgänge, und eine
Sitzungsverwaltung wäre Zustand, den mehrere Container nicht teilen könnten.
### Probleme und Lösungen
| Problem | Lösung |
| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Der SDK-Transport erwartet Node-Streams, Next liefert `Request` | Das SDK bringt seit 1.30 `WebStandardStreamableHTTPServerTransport` mit — `handleRequest(Request): Promise<Response>` passt direkt. |
| ESLint beanstandete das Auslesen der Formularfelder | `FormData.get` kann auch eine Datei liefern; die würde beim Stringify zu `[object Object]`. Ein Helfer nimmt jetzt nur Text. |
### Offene Punkte
- Der Server ist gegen die eigenen Tests geprüft, nicht gegen einen echten
Client. Ein Lauf mit Claude Code gegen die laufende Instanz wäre der
Beweis, dass Handschlag und Werkzeugbeschreibungen auch dort taugen.
- Die Handbuchbilder sind unverändert aus M7 — der MCP-Server hat keine
Oberfläche, es gibt nichts abzubilden.
### Commits
- 5f45dff refactor: Einplanen aus der Serveraktion herauslösen
- bdc4260 feat: MCP-Server über denselben Token wie die API
- (docs) MCP beschreiben, Fahrplan abschließen
--- ---
+1
View File
@@ -6,3 +6,4 @@ datum;start;ende;minuten;meilenstein;art;notiz
2026-09-11;06:35;13:35;420;M5;claude;M5 Benachrichtigungen fertig 2026-09-11;06:35;13:35;420;M5;claude;M5 Benachrichtigungen fertig
2026-09-11;20:47;09:00;733;M6;claude;M6 Integrationen fertig 2026-09-11;20:47;09:00;733;M6;claude;M6 Integrationen fertig
2026-09-12;10:15;01:01;886;M7;claude;M7 Schnellerfassung und API fertig 2026-09-12;10:15;01:01;886;M7;claude;M7 Schnellerfassung und API fertig
2026-09-13;14:10;15:19;69;M8;claude;M8 MCP fertig
1 datum start ende minuten meilenstein art notiz
6 2026-09-11 06:35 13:35 420 M5 claude M5 Benachrichtigungen fertig
7 2026-09-11 20:47 09:00 733 M6 claude M6 Integrationen fertig
8 2026-09-12 10:15 01:01 886 M7 claude M7 Schnellerfassung und API fertig
9 2026-09-13 14:10 15:19 69 M8 claude M8 MCP fertig