# Vergleich: Zoteus vs. cli-anything-zotero vs. bisheriger zotero-mcp-server

Getestet am 2026-08-13 in der Linux-VM mit Zotero 7/8/9 auf Windows (`<ZOTERO-HOST-IP>`).

## Übersicht

| Kriterium | Bisheriger MCP-Server (54yyyu/zotero-mcp) | Zoteus (oscardvs/zoteus) | cli-anything-zotero (PiaoyangGuohai1) |
|---|---|---|---|
| **Art** | Echter MCP-Server | Echter MCP-Server (28 Tools) | CLI/SDK (kein aktiver MCP-Server mehr) |
| **Windows-Installation** | Python + `zotero-mcp-server` | Node.js + `npx -y @oscardvs/zoteus` | Python + `pip install cli-anything-zotero` + Zotero-Plugin |
| **Zotero-Plugin nötig** | Nein | Nein | Ja (JS Bridge) |
| **Read-Backend** | Lokale Zotero-HTTP-API über SSH | Lokale Zotero-HTTP-API | SQLite + Lokale API + JS Bridge |
| **Write-Backend** | Lokale API (über SSH) | Zotero-Web-API v3 (zotero.org) | Lokaler JS Bridge (kein API-Key, kein Internet) |
| **Geschwindigkeit Reads** | Akzeptabel (~2–4 s Volltext) | Sehr schnell (~0,2 s Suche/Zitation) | Sehr schnell (~1 s pro Befehl) |
| **Stabilität** | Instabil (Timeouts, AssertionError) | Bisher stabil | Bisher stabil |
| **Metadaten/Suche** | Funktioniert | Funktioniert sehr gut | Funktioniert sehr gut |
| **PDF-Volltext** | Liefert Ausschnitte, große PDFs abgeschnitten (~50 Seiten) | Nur wenn Zotero den Volltext indexiert hat | Funktioniert über `search-fulltext` |
| **Große PDFs blockweise** | Ja (`zotero_read_pdf_pages`) | Nein (kein Äquivalent gefunden) | Nein |
| **Notizen lesen** | Liefert leeren Inhalt für Notizen | Funktioniert | Funktioniert |
| **Notizen schreiben** | Funktioniert | Theoretisch via `zotero_create_items` | Funktioniert (`note add`) |
| **Tags/Metadaten schreiben** | Funktioniert | Funktioniert (`zotero_update_item`) | Funktioniert (`item tag`, `item update`) |
| **DOI-Import** | Funktioniert | Erfordert lokalen Translation-Server (Docker) | Funktioniert out-of-the-box inkl. PDF-Fetch |
| **CSL-Zitationen** | Eingeschränkt | ~2.800 Stile via citeproc | Funktioniert (`item citation`) |
| **Semantische Suche** | Ja (problematisch bei force-rebuild) | Ja, aber eigener Index nötig (`zotero_index build`) | Ja, aber externer Embedding-Endpoint nötig |
| **DOCX-Zitationen** | Nein | Nein | Ja (static/dynamic) |
| **Direkter Zotero-JS-Zugriff** | Nein | Nein | Ja (`zotero-cli js ...`) |
| **MCP-Integration in Kimi Code** | Ja | Ja (eingetragen in `mcp.json`) | Nein, nur über SSH/CLI |

## Getestete Funktionen

### Zoteus

- `zotero_whoami`: ✅ Erfolg (userID <ZOTERO-USER-ID>, localApi available)
- `zotero_search_items` (qmode=everything): ✅ 425 Treffer für "dental trauma"
- `zotero_get_item` inkl. CSL/JSON/Bib: ✅ Sehr detaillierte Ausgabe
- `zotero_get_fulltext` / `zotero_fulltext`: ❌ Nur für bereits indexierte PDFs; MBEVXJSA nicht indexiert
- `zotero_update_item` (Tags): ✅ Erfolg
- `zotero_trash_items`: ✅ Erfolg
- `zotero_import` (DOI): ❌ Erfordert `zotero/translation-server` auf Port 1969
- `zotero_semantic_search`: ❌ Index leer; `zotero_index build` nötig

### cli-anything-zotero

- `app ping`: ✅ ~1,0 s
- `app plugin-status`: ✅ ~7,0 s (Plugin aktiv)
- `item get`: ✅ ~1,0 s
- `item children`: ✅ ~1,1 s
- `item notes`: ✅ ~1,0 s (liefert Notiz-Inhalt)
- `item search-fulltext`: ✅ ~5,5 s
- `item annotations`: ✅ ~5,0 s
- `collection list` / `collection items`: ✅ ~1,0 s
- `item context`: ✅ ~1,0 s
- `item citation`: ✅ ~1,2 s
- `note add`: ✅ Erfolg (Testnotiz BDXKT6A2 angelegt)
- `item tag`: ✅ Erfolg
- `add doi ... --fetch-pdf`: ✅ Erfolg (Artikel + PDF importiert)

## Empfehlung

**Kurzfristig:** Beide Tools können parallel zum bisherigen MCP-Server betrieben werden. Der bisherige Server sollte nur noch für `zotero_read_pdf_pages` (große PDFs blockweise) verwendet werden, bis eine bessere Lösung besteht.

**Mittelfristig:**

1. **Zoteus** als neuer Standard-MCP-Server für Kimi Code einsetzen, wenn der Anwendungsfall aus einfachen Reads (Suche, Metadaten, Zitationen) und einfachen Writes (Tags, Trash) besteht. Vorteil: echte MCP-Integration, schnell, stabil.

2. **cli-anything-zotero** als Spezialwerkzeug für komplexe Workflows verwenden: DOI-Import mit PDF-Fetch, Notizen schreiben, Volltextsuche, direkter JS-Zugriff, DOCX-Zitationen. Da es kein MCP-Server ist, muss Kimi Code es über SSH-Befehle aufrufen.

**Für die tägliche Literaturarbeit** (Recherche, Import, Notizen, PDF-Volltext) ist **cli-anything-zotero** das leistungsfähigere Werkzeug. **Zoteus** ist die bessere Wahl, wenn eine saubere MCP-Integration in Kimi Code gewünscht ist und nur einfache Operationen nötig sind.

## Offene Punkte

- Zoteus: Kann ein PDF-Volltext auch dann geliefert werden, wenn Zotero es noch nicht indexiert hat? Bisher nein.
- Zoteus: Translation-Server für DOI-Import muss noch eingerichtet werden, falls DOI-Import über Zoteus genutzt werden soll.
- Zoteus: Semantischer Index muss bei Bedarf gebaut werden (vom Nutzer freizugeben).
- cli-anything-zotero: Pfad zur `zotero-cli.exe` liegt außerhalb von PATH; entweder PATH erweitern oder immer vollen Pfad verwenden.
