# Arbeitsbericht: Evaluation neuer Zotero-Tools (Zoteus + cli-anything-zotero)

**Datum:** 13.08.2026  
**Durchgeführt von:** Kimi Code (K2.7-code)  
**Arbeitsverzeichnis:** `/home/ml/Zotero-KIMI-kuratiert/Tool-Evaluation-VXPYCLQG-RDRZBXAY/`

## Ziel

Prüfung, ob die beiden in die Zotero-Bibliothek eingetragenen Tools

- **VXPYCLQG** – [oscardvs/zoteus](https://github.com/oscardvs/zoteus)
- **RDRZBXAY** – [PiaoyangGuohai1/cli-anything-zotero](https://github.com/PiaoyangGuohai1/cli-anything-zotero)

die bisherige Anbindung über den `zotero-mcp-server` (54yyyu) ersetzen können.

## Durchgeführte Arbeiten

### 1. Windows-Voraussetzungen prüfen
- SSH-Zugriff auf `<SSH-BENUTZER>@<ZOTERO-HOST-IP>` funktioniert.
- Python 3.10.11 inkl. pip ist installiert.
- Zotero Desktop läuft, lokale API auf `127.0.0.1:23119` antwortet mit HTTP 200.
- Node.js war nicht installiert.

### 2. cli-anything-zotero installieren
- `pip install cli-anything-zotero` ausgeführt (Version 1.2.1).
- `zotero-cli app install-plugin` ausgeführt; Plugin-Datei `.xpi` erzeugt.
- Plugin manuell in Zotero installiert und Zotero neu gestartet.
- Verifizierung: `zotero-cli app plugin-status` meldet `endpoint_active: true`, `ready: true`.

### 3. Node.js portable installieren (für Zoteus)
- Portable Node.js v22.14.0 nach `C:\Users\<BENUTZER>\nodejs-portable\node-v22.14.0-win-x64` heruntergeladen und entpackt.
- PowerShell-Startskript `C:\Users\<BENUTZER>\start-zoteus.ps1` erstellt.

### 4. Zoteus als MCP-Server einbinden
- Zoteus in `~/.kimi-code/mcp.json` als zusätzlicher Server `zoteus` eingetragen.
- Kimi Code neu gestartet.
- Verifizierung: `zotero_whoami` meldet erfolgreich `Signed in as <ZOTERO-BENUTZERNAME> (userID <ZOTERO-USER-ID>). Local API: available.`

### 5. Testcases durchführen

#### Zoteus (28 Tools verfügbar)
| Test | Ergebnis | Hinweis |
|---|---|---|
| `zotero_whoami` | ✅ | cloud + localApi erkannt |
| `zotero_search_items` (everything) | ✅ | 425 Treffer für "dental trauma" |
| `zotero_get_item` inkl. children/csljson/bib | ✅ | Sehr detailliert |
| `zotero_get_fulltext` / `zotero_fulltext` | ❌ | PDF nicht indexiert (MBEVXJSA, 9VWBIST6) |
| `zotero_update_item` (Tags) | ✅ | Version hochgezählt |
| `zotero_trash_items` | ✅ | Testnotiz + Testartikel entfernt |
| `zotero_import` (DOI) | ❌ | Erfordert Translation-Server auf Port 1969 |
| `zotero_semantic_search` | ❌ | Index leer; `zotero_index build` nötig |

#### cli-anything-zotero (via SSH)
| Test | Ergebnis | Zeit | Hinweis |
|---|---|---|---|
| `app ping` | ✅ | ~1,0 s | |
| `app plugin-status` | ✅ | ~7,0 s | |
| `item get F5724CQV` | ✅ | ~1,0 s | |
| `item children F5724CQV` | ✅ | ~1,1 s | |
| `item notes F5724CQV` | ✅ | ~1,0 s | Liefert Notiz-Inhalt |
| `item search-fulltext "trauma"` | ✅ | ~5,5 s | |
| `item annotations F5724CQV` | ✅ | ~5,0 s | |
| `collection list` / `collection items` | ✅ | ~1,0 s | |
| `item context F5724CQV` | ✅ | ~1,0 s | |
| `item citation F5724CQV` | ✅ | ~1,2 s | |
| `note add F5724CQV` | ✅ | | Testnotiz BDXKT6A2 angelegt |
| `item tag F5724CQV` | ✅ | | Tag hinzugefügt |
| `add doi ... --fetch-pdf` | ✅ | | Artikel + PDF importiert (Q9M27VM4) |

### 6. Aufräumen
- Testnotiz BDXKT6A2 in den Papierkorb verschoben.
- Testartikel Q9M27VM4 in den Papierkorb verschoben.
- Test-Tag an F5724CQV entfernt.

## Ergebnis / Empfehlung

- **Zoteus** ist ein echter MCP-Server und funktioniert stabil für Suche, Metadaten, Zitationen und einfache Schreibzugriffe. Nachteile: PDF-Volltext nur bei indexierten PDFs, DOI-Import erfordert Docker-Translation-Server, semantische Suche erfordert eigenen Index.
- **cli-anything-zotero** ist leistungsfähiger für komplexe Workflows (DOI-Import + PDF-Fetch, Volltextsuche, Notizen, direkter JS-Zugriff). Nachteil: Kein MCP-Server, muss über SSH/CLI aufgerufen werden; erfordert Zotero-Plugin.
- **Empfohlene Architektur:**
  - Zoteus als zusätzlicher MCP-Server für einfache Operationen in Kimi Code.
  - cli-anything-zotero als Spezialwerkzeug für Import, Volltext und Notizen.
  - Bisheriger `zotero-mcp-server` vorerst nur noch für `zotero_read_pdf_pages` (große PDFs blockweise) behalten.

## Dateien

- `vergleich-zotero-tools.md` – Vergleichstabelle
- `installationsanleitung-windows.md` – Schritt-für-Schritt-Anleitung
- `benchmark_cli_anything_zotero.py` – Benchmark-Skript
- `benchmark_cli_anything_zotero.json` – Benchmark-Ergebnisse
- `benchmark_zoteus.py` – Platzhalter für Zoteus-Benchmark
