NextCloud Collectives MCP
Tools for accessing Nextcloud Collectives
Documentation
nextcloud-collectives-mcp
Ein MCP-Server (Model Context Protocol) für den Zugriff auf die 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
- In Nextcloud einloggen → Einstellungen → Sicherheit
- Unter "Geräte & Sitzungen" ein neues App-Passwort erzeugen (beliebiger Name, z.B.
nextcloud-collectives-mcp) - 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:
{
"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)
- Repository klonen und in den Ordner wechseln.
- Abhängigkeiten installieren und bauen:
npm install npm run build - In der MCP-Server-Konfiguration eintragen:
{ "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 auflistencreate_collective— neues Collective anlegendelete_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 abrufencreate_page— neue Seite unter einer übergeordneten Seite anlegenupdate_page_content— Markdown-Inhalt einer Seite ersetzenrename_page— Seite umbenennenmove_page— Seite zu einer neuen übergeordneten Seite verschiebendelete_page— Seite in den Papierkorb verschieben
Tags
list_tags— alle Tags eines Collectives auflistencreate_tag— neuen Tag anlegenadd_tag_to_page— Tag an eine Seite anhängenremove_tag_from_page— Tag von einer Seite entfernen
Entwicklung
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.