16_Kavita

Kavita

Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family.

Image jvmilazz0/kavita:latest
Version latest
Etat Up (healthy)
Compose project kavita
Réseau kavita_default
URL https://kavita.juxjux.ovh
Source https://github.com/Kareadita/Kavita

Ports

Hote Container IP
5471 5000/tcp 0.0.0.0

Volumes

Source (hote) Destination Type Mode
/home/debian/docker/kavita/config /kavita/config bind rw
/home/debian/livres /manga bind rw

Integration Claude Code — MCP

Statut MCP MCP actif
Outils (prefix) mcp__kavita__
Configuration Script Python : C:\Users\eliob\.claude\mcp_kavita.py | Auth : JWT via POST /api/Account/login

Outils opérationnels (confirmés 2026-06-25)

Ce que nous pouvons faire ensemble


REX — 2026-06-25

Statistiques bibliothèque

Stat Valeur
Bibliothèques 53 (toutes de type Book/epub+PDF)
Séries 2 976
Fichiers 5 519
Volumes 1 173
Taille totale ~79 Go
Auteurs/contributeurs indexés 3 475
Genres indexés 6 990
Tags 0

Étiquettes Calibre → genres Kavita

Les étiquettes appliquées via Calibre sont visibles dans Kavita sous le champ genres, pas tags (qui reste toujours vide, totalTags: 0).

Mécanisme : Calibre écrit ses étiquettes dans <dc:subject> du fichier epub lors du writeback → Kavita lit ce champ et le mappe en genres.

Exemple confirmé — "Il faut s'adapter" (Barbara Stiegler, lib. Actualités, ID série 4210) :

Conditions pour que ça fonctionne :

La bibliothèque Actualités (ID 63) est entièrement étiquetée et correctement indexée.

Lecture du contenu

Le MCP ne permet pas de lire le contenu des livres — uniquement les métadonnées. Kavita expose des endpoints de lecture (/api/Reader/image, /api/Reader/epub-file) mais non implémentés dans le MCP. Pour les epub, la lecture via appel API direct + parsing HTML serait techniquement faisable au cas par cas.

Corrections endpoints MCP (2026-06-25)

4 outils retournaient 404 suite à des changements d'API dans la version Kavita en production. Corrections appliquées dans mcp_kavita.py :

Outil Ancien endpoint (404) Nouveau endpoint (200)
get_collections GET /api/Collection/list GET /api/Collection
get_reading_lists GET /api/ReadingList/lists?includePromoted=true POST /api/ReadingList/lists body {}
get_want_to_read POST /api/Want-To-Read/get-list POST /api/Want-To-Read
get_user_stats GET /api/Stats/user/0/read GET /api/Stats/user-stats?userId={id}

Note : le userId est désormais extrait dynamiquement du payload de login (data["id"]) et stocké dans _user_id.

Limitations MCP identifiées

Problème pipeline Calibre → Kavita — À résoudre

Constat (2026-06-25) : les fichiers enrichis par Calibre (avec étiquettes + métadonnées ISBN) ne remplacent pas les fichiers originaux dans le dossier Kavita. Kavita lit depuis le dossier source original (/manga = kDrive Sync_NAS-Maison/Foxy) qui contient les fichiers sans métadonnées.

Calibre, en mode par défaut, copie les fichiers dans sa propre arborescence et les enrichit là — les originaux restent intacts. Résultat : 98% des fichiers ont des métadonnées correctes dans Calibre, mais Kavita voit des genres vides.

Questions ouvertes à clarifier :

Piste de solution : exporter les fichiers enrichis depuis la bibliothèque Calibre vers le dossier source Kavita (via "Enregistrer sur le disque" dans Calibre), en remplacement des originaux. Peut s'automatiser. À instruire.


Revision #6
Created 2026-05-29 09:41:34 UTC by Julien
Updated 2026-06-25 06:56:18 UTC by Julien