This MCP Server turned my NAS into a self-hosted AI assistant, and it changed how I work

5 min read Original article ↗

Ayush Pande

Ayush Pande is a PC hardware and gaming writer. When he's not working on a new article, you can find him with his head stuck inside a PC or tinkering with a server operating system. Besides computing, his interests include spending hours in long RPGs, yelling at his friends in co-op games, and practicing guitar.

Besides its centralized storage and backup provisions, my Network-Attached Storage is an important part of my self-hosted setup. I’ve mapped a bunch of FOSS tools to use SMB and NFS shares for their volumes (and yes, it’s not very complicated to pull this off even on unprivileged containers). Heck, I’ve even deployed a bunch of applications on my NAS server, as, unlike my experimental Proxmox workstations, my storage server remains operational 24/7 without the shadow of my wacky experiments looming over it.

While we’re on that subject, I’ve recently begun integrating local LLMs into my application stack. And now that I’m mostly done connecting the tools on my Proxmox workstations with my Ollama models, it was about time that I did the same thing for my NAS.

My NAS-based Nextcloud instance is already important for my everyday tasks

Nextcloud MCP Server made it even better by bringing LLMs to the table

Checking Nextcloud feeds from LM Studio via MCP Server

I’ve been using Nextcloud ever since I deployed its NextcloudPi variant on my Raspberry-flavored tinkering companion, though its utility has evolved quite a lot since then. What initially served as a makeshift private cloud has now become my go-to application for most productivity tasks. Now, I don’t use it to archive bills, invoices, and other financial documents – that’s a task I’ve dedicated to my Paperless-ngx and its AI-powered companion apps.

Instead, Nextcloud houses my writing portfolio, academic files, coding docs, server documentation, data analysis spreadsheets, and a bunch of other work/home lab-related stuff. I’ve got the Nextcloud Office + Collabora combo to thank for that, and the other services on its App Store are just as useful for my productivity tasks.

But I came across the Nextcloud MCP Server repository by developer cbcoutinho the other day, and it quickly became the best QoL tweak for Nextcloud hub. Now, I’m aware that Nextcloud technically has the first-party Context Agent, but its limited tools are somewhat inefficient for my LLM processing tasks. In contrast, the Nextcloud MCP Server houses well over 100 tools, even though it technically supports fewer services from the Nextcloud App Store.

Running DeepSeek on the Radxa Orion O6

Nextcloud MCP Server bridges the gap between the core Nextcloud instance, my LLMs, and external clients that can harness them. Let’s say I wanted my LM Studio models to access my home lab notes. All I’d have to do is add this MCP server inside LM Studio, enable it in the Chat window, and voilà. I’d be able to sift through notes, add new calendar events, browse RSS feeds, and even perform CRUD operations on tables. In fact, ever since I came across the MCP server, I’ve started relying more on the apps available on Nextcloud. So, I’ve essentially got an AI assistant that’s as useful for managing my calendar and querying recipes as it is at sorting my assignments and jotting down notes.

Especially if you opt for OIDC authentication

I’ve only dabbled in LLMs for a few weeks, so it took me a while to get my Nextcloud MCP Server up and running. In hindsight, I could’ve gone with a nested container configuration, but since I wanted some nice GUI elements, I decided to spin up the MCP server inside a Debian VM. The Docker method on the official GitHub page works really well, but I went with a slightly more detailed .env file, as I wanted the semantic search and document processing facilities.

This may just be me, but I had a weird situation where the MCP server would attempt to access nomic-embed-text as the embedding model by default, only to fail at identifying the existing nomic model just because it had the latest tag.

I also wanted to access it from other devices on my network, so I modified the launch parameters to include 0.0.0.0 instead of 127.0.0.1. I hadn’t configured the News and Deck apps on my Nextcloud hub, so the MCP server displayed several error logs when I first booted it up.

As for the client apps, the exact parameters varied slightly. For VS Code, I simply added the IP address of the VM running the MCP Server container, with the port number :8000 and the /mcp endpoint. But to my chagrin, the Continue extension doesn’t support MCP servers in its free plan, so I moved over to LM Studio and added the URL to its mcp.json file. I’ve tested it on different LLMs running on my RTX 3080 Ti, but anything under 7B would occasionally fail at accessing the MCP tools if my prompts seemed even remotely vague. Something like using 4 pm to schedule an event instead of 4:00 pm. I also tried pairing it with Blinko, and although the king of LLM-powered note takers was able to detect the tools, it wasn’t able to access the files on my Nextcloud, and I believe some permission issues are to blame for that.

A MacBook air connected to a monitor running DeepSeek-R1 locally

How MCP accidentally became the best “common language” for services to talk

MCP is a fascinating protocol, and its widespread adoption is even more interesting.

You should look into this MCP Server if you’re into Nextcloud and local LLMs

Using MCP Inspector with the Nextcloud MCP Server

Nevertheless, the Nextcloud MCP Server is an absolute game-changer for my research needs, and once I get it working with Blinko, this setup might just surpass all note-takers I’ve ever used. And since everything is running on my NAS (and well, my Proxmox server, if you include the nomic model), I don’t have to worry about a random company training their models on my documents or using them to generate targeted ads, either.

OneDrive-alternatives-3

Nextcloud

OS
Windows, macOS, Linux

Key highlights
Self-hosted, open source

iOS compatible
Yes

Android compatible
Yes

Desktop compatible
Yes