It leverages the nextcloud-mcp-server (same author) as the backend to enable AI workflows via MCP that you can use from any compatible MCP client such as Claude Code, Gemini CLI, Opencode, etc.
This is my first foray into NC app development, and I'd really appreciate any productive criticism. I learned a lot about php, authentication within Nextcloud, as well as semantic search. The Astrolabe app implements the interface to Nextcloud's Unified Search Provider, which means semantic search works from the global search bar. Search results include the page/chunk so if you click on a resulting PDF doc, the Astrolabe UI opens the PDF at the exact page that includes the result of your search.
In addition to various MCP tools, the nextcloud-mcp-server provides management APIs and the background processing required to embed your documents that can be searched via Astrolabe. It uses qdrant as the vectordb, supports NC webhooks for up-to-date vector embeddings.
For those aware, Nextcloud is pushing ExApps as the de-facto way of writing backends for Nextcloud apps. Astrolabe does not take this approach because it doesn't support more advanced MCP features such as streaming, MCP sampling, etc. Instead Astrolabe and nextcloud-mcp-server can be deployed as OAuth clients that only use app passwords for making requests to Nextcloud itself. This would enable more advanced multi-user scenarios for individuals, families, and small businesses that use Nextcloud as their source-of-truth.
I'm really looking forward to the increased interest in personal AI assistants, and this is my opinionated take on how something like this could be done in Nextcloud.
On a slightly related note, I recently completed a two-week POC on leaf.cloud, an EU-based hosting provider, to showcase how personal AI could work without having to buy GPUs yourself meanwhile keeping you in control of where data is processed.
https://blog.coutinho.io/eu-only-ai-stack-nextcloud-leafclou...