ARTICLE · 1270923
NAS 上装 MCP 服务器,让你的AI助手自己读文件
NAS 部署 · MCP · AI 工具

AI 助手只能聊天,读不了你 NAS 里的文件。
在 NAS 上用 Docker 跑一个文件系统 MCP 服务器,AI 助手就能自己去读。
有些 AI 助手本来就能读 NAS 文件,不需要装 MCP。
Hermes 运行在你的 NAS 上,能直接读取 /opt/data 下的文件,不用额外搭服务器。
Cursor 在你电脑上打开本地文件夹,AI 助手也能直接读,不需要 MCP。
只有当 AI 助手读不了你 NAS 里的文件,才需要装 MCP 服务器。
你在对话框里说「帮我总结一下上个月的账单」,它只能回答「请上传文件」。
你说「找找去年旅游的照片」,它也没辙。
因为 AI 默认只能读对话框里贴进去的内容,读不了你自己的设备。
MCP(Model Context Protocol,模型上下文协议)解决的就是这件事。
它把 AI 助手和本地数据之间装了个中介,AI 可以通过这个中介去读你 NAS 里的文件夹,而不需要你一个个上传。
先说清楚:MCP 本身不是一个软件,而是一套协议。要让它跑起来,你需要两样东西:
一个 MCP 服务器,负责把 NAS 文件系统暴露出来; 一个 MCP 客户端,负责把 AI 助手和服务器连起来。常见的客户端有 Claude Desktop、Cursor 等。
这篇只讲第一件事:在 NAS 上用 Docker 把文件系统 MCP 服务器跑起来,并把你指定的文件夹交给它。
一、MCP 协议 2026 更新:NAS 上部署先看这个
2026 年 7 月 28 日,MCP 发布了 MCP 2026-07-28 规范,替代 2025-11-25,是目前最新的一版。
主要变化是从有状态双向协议变成了无状态的请求/响应协议。之前的 MCP 客户端连上来要先握手,服务端给一个会话 ID,后续请求都得带着这个 ID,限制在某一台服务器实例上。
新版每个请求都是独立的,可以像普通 HTTP 服务一样部署,serverless、边缘计算都能用。
如果你之前部署过旧版 MCP 服务器,建议确认客户端和服务器都支持 2026-07-28 规范,否则可能连不上。
装完之后,你的 AI 助手可以:
读 NAS 里的 Markdown 笔记,直接摘要; 扫描照片文件夹,按日期整理; 对比两个版本的合同,标出差异; 读日志文件,找报错。
前提是:这些文件都在你给 MCP 服务器开放的文件夹里。没开放的文件夹,AI 碰不着。
二、Docker Compose 部署文件系统 MCP
官方的文件系统 MCP 服务器(filesystem-server)是 Node 写的,默认只走 stdio(标准输入输出)——本地进程间通信,连不到别的机器。要远程读 NAS,得把 stdio 转成 SSE/HTTP,开一个端口给客户端。
mekayelanik/filesystem-mcp 这个现成镜像已经把文件系统服务器和 mcp-proxy(stdio 转 SSE 的桥)放在一起,一个容器直接出 SSE 端口。
在 NAS 上新建一个文件夹,比如 /opt/data/mcp-filesystem,保存下面的 docker-compose.yml:
services:
filesystem-mcp:
image: mekayelanik/filesystem-mcp:stable
container_name: filesystem-mcp
restart: unless-stopped
ports:
- "8015:8015"
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Shanghai
- PROTOCOL=SSE
- API_KEY=换成你自己的一串强口令
volumes:
- /volume1/documents:/projects/documents:ro
- /volume1/notes:/projects/notes:ro四处要对上:
PUID/PGID要填 NAS 上那个文件夹的真实属主 ID。UGREEN 一般就是 1000/100, id查一下你 home 目录确认。volumes左边是 NAS 真实路径,右边是容器内 /projects下的路径,把/volume1/documents换成你要开放的文件夹。:ro是只读挂载,AI 只能读不能改。想让它写文件就去掉 :ro,但建议先只读。API_KEY加一层 Bearer 鉴权,远程端口不会谁都能连;不用就删掉这行。
在终端执行这条命令:
docker compose up -d没有网页界面,客户端通过 SSE 端口连进来。确认跑起来了:
curl -i http://localhost:8015/sse返回 200、text/event-stream 就算正常。
三、AI 助手连接 NAS 文件系统
服务器跑通后,在客户端里连到它的 SSE 端口。分两种客户端。
支持 SSE/HTTP 的客户端(Cursor、新版 Claude Desktop、VS Code):直接填 NAS 的 SSE 地址。Cursor 的 .vscode/mcp.json:
{
"mcpServers": {
"nas-filesystem": {
"type": "sse",
"url": "http://NAS的IP:8015/sse",
"headers": { "Authorization": "Bearer 你的API_KEY" }
}
}
}只认 stdio 的老客户端(老版 Claude Desktop):本地用 mcp-remote 做 stdio 到 SSE 的桥,配置里写:
{
"mcpServers": {
"nas-filesystem": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://NAS的IP:8015/sse", "--header", "Authorization: Bearer 你的API_KEY"]
}
}
}NAS的IP 换成第二节那台机器的局域网地址(比如 192.168.1.7)。关键区别:你连的是 NAS 上这个 SSE 地址,不是自己电脑上的文件夹——文件本体一直在 NAS,客户端只是借它去读。第二节没用 API_KEY 的,把 headers 那一行去掉。各客户端认 SSE 的字段名略有差异(type 或 transport),照你那个客户端的文档写。
简化版理解:
四、NAS 部署 MCP 的边界与风险
装之前先说清楚:
1. 数据不出门,但权限要收紧
MCP 服务器只把你指定的文件夹交给 AI,没开放的文件夹碰不着。但建议不要挂载整个 NAS 根目录,只挂载你愿意让 AI 读的那个子文件夹。
2. 只读优先
默认用 :ro 只读挂载。如果 AI 能写文件,一旦提示词写错,可能会删改你的数据。先只读,确认没问题再考虑读写。
3. 客户端才是门槛
MCP 服务器跑在 NAS 上,但你平时用的 AI 助手(比如手机上的微信 AI、网页版对话)未必支持 MCP。
能接 MCP 的,目前主要是桌面端的 AI 客户端。买了 NAS 装完服务器,手机 AI 不一定立刻就能读 NAS 文件,这是现实限制。
4. 不是所有文件都能读
PDF、Word、Excel 这类二进制文件,AI 能不能读,取决于客户端和模型本身的解析能力。
MCP 服务器只负责把文件「交出去」,不负责把内容「读懂」。
五、NAS 装 MCP 值不值得装
适合:
NAS 常年开着,愿意花十分钟配置 有大量本地文档、笔记、日志需要 AI 总结 已经在用支持 MCP 的桌面 AI 客户端(Claude Desktop、Cursor 等)
不适合:
只用手机 AI,不打算装桌面客户端 希望 AI 自动读整个 NAS,不用挑文件夹 不想碰 Docker 和命令行
一段 compose 代码、一个容器,跑通就是一个本地文件网关。至于 AI 助手最后能不能读你的文件,看你用的客户端支不支持 MCP。
如果你照这篇把 NAS 文件交给 AI 了,点个赞,转给那个天天抱怨 AI 读不了本地文件的朋友。















































































