nextcloud-collectives-mcp
by BamButz
README.md
# nextcloud-collectives-mcp
Ein MCP-Server (Model Context Protocol) für den Zugriff auf die [Nextcloud Collectives](https://github.com/nextcloud/collectives) App. Damit können MCP-Clients (z.B. Claude Code) Collectives (Team-Wikis), deren Seiten und Tags auflisten, lesen und bearbeiten.
## Voraussetzungen
- Node.js 22+
- Eine Nextcloud-Instanz mit installierter und aktivierter Collectives-App
- Ein App-Passwort für den Nextcloud-Benutzer
## App-Passwort erzeugen
1. In Nextcloud einloggen → **Einstellungen** → **Sicherheit**
2. Unter "Geräte & Sitzungen" ein neues App-Passwort erzeugen (beliebiger Name, z.B. `nextcloud-collectives-mcp`)
3. Das generierte Passwort notieren (wird nur einmal angezeigt)
## Installation & Nutzung
### Methode A: Direkt über `npx` ausführen (Empfohlen)
Es ist kein manuelles Klonen oder Bauen nötig. Der MCP-Server kann direkt über `npx` von GitHub gestartet werden. Fügen Sie dazu einfach den folgenden Eintrag in Ihrer MCP-Client-Konfiguration (z.B. `claude_desktop_config.json` oder per `claude mcp add`) hinzu:
```json
{
"mcpServers": {
"nextcloud-collectives": {
"command": "npx",
"args": ["-y", "github:BamButz/nextcloud-collectives-mcp"],
"env": {
"NEXTCLOUD_BASE_URL": "https://cloud.example.com",
"NEXTCLOUD_USERNAME": "alice",
"NEXTCLOUD_APP_PASSWORD": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
}
}
}
}
```
*Hinweis: Beim Start lädt `npx` das Repository herunter und baut es automatisch über das `prepare`-Skript im Hintergrund.*
### Methode B: Manuelle lokale Installation (z.B. für Entwicklung)
1. Repository klonen und in den Ordner wechseln.
2. Abhängigkeiten installieren und bauen:
```bash
npm install
npm run build
```
3. In der MCP-Server-Konfiguration eintragen:
```json
{
"mcpServers": {
"nextcloud-collectives-local": {
"command": "node",
"args": ["/pfad/zu/nextcloud-collectives-mcp/dist/index.js"],
"env": {
"NEXTCLOUD_BASE_URL": "https://cloud.example.com",
"NEXTCLOUD_USERNAME": "alice",
"NEXTCLOUD_APP_PASSWORD": "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"
}
}
}
}
```
## Verfügbare Tools
**Collectives**
- `list_collectives` — alle sichtbaren Collectives auflisten
- `create_collective` — neues Collective anlegen
- `delete_collective` — Collective in den Papierkorb verschieben
**Seiten**
- `list_pages` — vollständigen Seitenbaum eines Collectives auflisten (nur Metadaten)
- `get_page` — Metadaten und Markdown-Inhalt einer Seite abrufen
- `create_page` — neue Seite unter einer übergeordneten Seite anlegen
- `update_page_content` — Markdown-Inhalt einer Seite ersetzen
- `rename_page` — Seite umbenennen
- `move_page` — Seite zu einer neuen übergeordneten Seite verschieben
- `delete_page` — Seite in den Papierkorb verschieben
**Tags**
- `list_tags` — alle Tags eines Collectives auflisten
- `create_tag` — neuen Tag anlegen
- `add_tag_to_page` — Tag an eine Seite anhängen
- `remove_tag_from_page` — Tag von einer Seite entfernen
## Entwicklung
```bash
npm test # Tests einmalig ausführen
npm run test:watch
npm run coverage # Tests + Code-Coverage-Bericht (Text + HTML unter coverage/index.html)
npm run typecheck
npm run dev # Server direkt mit tsx starten (liest Env-Vars aus der Shell)
```
## Implementierungshinweis
Dieses Projekt wurde vollständig mithilfe von Künstlicher Intelligenz (**Gemini 3.5 (Flash)**) von Google DeepMind im Rahmen eines agentischen Coding-Workflows implementiert und getestet.This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues