Bookheap

Referenz

Die MCP-Tools

Bookheap spricht MCP: Werkzeuge, mit denen ein Agent die Bibliothek liest und pflegt. Der verbindliche Vertrag bleibt agents.md — diese Seite ist die ausführliche Referenz dazu.

Endpunkt

https://mcp.prod.bookheap.app/mcp

Ein 401 mit WWW-Authenticate ist die Eingangstür, kein Fehler: darüber läuft die OAuth-Discovery (RFC 9728, dann RFC 8414, dann RFC 7591).

Anmeldung und Rechte

Der Agent meldet sich über denselben OAuth-Dialog an wie der Mensch und erhält ein befristetes Token mit genau den bestätigten Rechten. Lesen und Schreiben sind getrennt: books/read beantwortet Fragen, books/write trägt ein. Wer nur antwortet, braucht kein Schreibrecht.

list_books

books/read

Listet die Bücher der Bibliothek, filterbar nach Regal und Stimmung. Beantwortet „Was lese ich gerade?“ und „Was steht auf der Leseliste?“ in einem Aufruf.

Parameter Typ Beschreibung
status reading · backlog · finished Filtert nach Regal: reading (Jetzt), backlog (Nächstes), finished (Fertig).
mood light · deep · short · escape · learn · work Filtert nach Stimmung.

AntwortAlle passenden Bücher, vollständig und ohne Cursor.

get_book

books/read

Holt ein Buch per ID, samt Lesefortschritt. IDs kommen aus list_books; sie sind opake Server-IDs und werden dem Nutzer nie gezeigt.

Parameter Typ Beschreibung
book_idPflicht string Die Server-ID aus list_books.

AntwortDas Buch mit allen Feldern.

search_books

books/read

Sucht im öffentlichen Katalog (Open Library) nach Titel, Autor oder ISBN. Vor add_book aufrufen, damit die richtige Ausgabe samt Seitenzahl und Cover mitkommt.

Parameter Typ Beschreibung
queryPflicht string Titel, Autor oder ISBN.
limit integer · 1–10 Wie viele Kandidaten. Fünf reichen meist, um die richtige Ausgabe zu finden.

AntwortKandidaten mit Titel, Autor, Jahr, Seitenzahl und Cover.

add_book

books/write

Legt ein Buch an. Standard ist das Regal Nächstes (backlog) — dort gehört eine Empfehlung hin. status reading nur, wenn der Nutzer schon angefangen hat.

Parameter Typ Beschreibung
titlePflicht string Das einzige Pflichtfeld.
author string Freitext.
status reading · backlog · finished Standard ist backlog.
mood light · deep · short · escape · learn · work Eine der sechs festen Stimmungen.
note string Herkunft und Anlass — wonach der Nutzer später sucht.
page_count integer Seitenzahl der Ausgabe; daraus wird der Prozentwert abgeleitet.

AntwortDas angelegte Buch samt bookId.

import_books

books/write

Legt viele Bücher in einem Aufruf an — für Goodreads- oder StoryGraph-Exporte, abgetippte Listen, Fotos vom Regal. Deduplizieren ist Sache des Agenten.

Parameter Typ Beschreibung
booksPflicht array‹object› · max 100 Bis zu 100 normalisierte Datensätze mit den Feldern von add_book; größere Importe aufteilen.

AntwortEin Ergebnis je Datensatz.

update_book

books/write

Ändert ein Buch: Fortschritt, Regal, Stimmung, Notiz oder eine Korrektur an Titel und Autor. Nur übergebene Felder ändern sich.

Parameter Typ Beschreibung
book_idPflicht string Die Server-ID aus list_books.
current_page integer Aktuelle Seite; der Prozentwert wird daraus abgeleitet.
status reading · backlog · finished Regalwechsel, etwa finished beim Zuklappen.
mood light · deep · short · escape · learn · work Neue Stimmung.
note string Ersetzt die Notiz.
title string Korrektur.
author string Korrektur.

AntwortDas aktualisierte Buch.

delete_book

books/write

Entfernt ein Buch. Vorher den Nutzer fragen — wer ein Buch nur nicht mehr lesen will, meint meist update_book mit anderem Status.

Parameter Typ Beschreibung
book_idPflicht string Die Server-ID aus list_books.

AntwortBestätigung. Für den Agenten endgültig.

Verhalten

  • Derzeit liefert list_books die ganze Bibliothek in einer Antwort; Cursor gibt es nicht.
  • Vor add_book erst search_books, damit Ausgabe, Seitenzahl und Cover stimmen — und den Treffer dem Nutzer zeigen, bevor er landet.
  • Vor delete_book den Nutzer fragen; meist ist update_book mit anderem Status gemeint.
  • Beim Massenimport dedupliziert der Agent: der Server nimmt, was kommt.
  • Der Endpunkt ist auf Gesprächstakt gedrosselt (wenige Anfragen pro Sekunde); für viele Bücher import_books statt einer add_book-Schleife.