使用说明
Nextcloud MCP服务器
生产就绪的MCP服务器,将AI助手连接到Nextcloud实例。
使用Claude、GPT、Gemini和其他MCP兼容客户端创建笔记、管理日历、处理联系人以及通过自然语言工作流浏览文件。
快速入门(NixOS优先)
此存储库现在包括:
flake.nix用于开发shell和可运行的应用程序nixosModules.default用于在NixOS上部署服务tools/nextcloud-mcp-server.service作为通用systemd模板
1) 将此存储库添加为系统flake中的输入
{
inputs.nextcloud-mcp-server.url = "github:YOUR_ORG/nextcloud-mcp-server";
}
2) 在NixOS配置中启用该模块
{
imports = [ inputs.nextcloud-mcp-server.nixosModules.default ];
services.nextcloud-mcp-server = {
enable = true;
workingDirectory = "/srv/nextcloud-mcp-server";
environmentFile = "/etc/nextcloud-mcp-server.env";
host = "127.0.0.1";
port = 8000;
transport = "streamable-http";
metricsPort = 9090;
};
}
3) 使用Nextcloud凭据创建环境文件
sudo install -m 0600 -o root -g root /dev/null /etc/nextcloud-mcp-server.env
sudo tee /etc/nextcloud-mcp-server.env >/dev/null <<'EOF'
NEXTCLOUD_HOST=https://cloud.example.com
NEXTCLOUD_USERNAME=your_nextcloud_username
NEXTCLOUD_PASSWORD=your_nextcloud_app_password
EOF
4) 部署和验证
sudo nixos-rebuild switch
systemctl --no-pager --full status nextcloud-mcp-server
curl -fsS http://127.0.0.1:8000/health/ready
5) 连接您的MCP客户端
http://127.0.0.1:8000/mcp为了streamable-httphttp://127.0.0.1:8000/sse用于SSE传输(如果已配置)
如何传递凭证
服务器从环境变量中读取凭据:
NEXTCLOUD_HOSTNEXTCLOUD_USERNAMENEXTCLOUD_PASSWORD
在NixOS上,推荐的方法是 services.nextcloud-mcp-server.environmentFile.
安全指南:
- 使用Nextcloud的应用程序密码,而不是您的交互式帐户密码。
- 将env文件保存在git之外(例如,
/etc/nextcloud-mcp-server.env). - 将文件权限限制为
0600. - 如果应用程序密码被暴露,请对其进行轮换。
- 不要在中硬编码凭据
configuration.nix、脚本、提交历史记录或屏幕截图。
可选环境变量:
TOKEN_ENCRYPTION_KEY(建议用于加密令牌持久性功能)TOKEN_STORAGE_DB(默认值为/tmp/tokens.db,覆盖持久存储)METRICS_PORT(默认值9090)
LLM代理:NixOS安装运行手册
当要求代理LLM会话在NixOS主机上安装和配置此MCP服务器时,请使用此部分。
代理应首先请求的输入
- Nextcloud URL
- Nextcloud用户名
- Nextcloud应用程序密码
- 所需的MCP绑定主机和端口
- 是否需要反向代理/TLS
代理工作流程检查表
- 确认主机是基于NixOS和薄片的。
- 将此仓库添加为flake输入。
- 导入
nixosModules.default. - 配置
services.nextcloud-mcp-server. - 创建
/etc/nextcloud-mcp-server.env随着0600权限。 - 应用配置
nixos-rebuild switch. - 验证服务运行状况终结点。
- 运行MCP烟雾测试(列出目录,读取文件)。
代理会话的命令序列
sudo install -d -m 0755 /srv/nextcloud-mcp-server
sudo install -m 0600 -o root -g root /dev/null /etc/nextcloud-mcp-server.env
sudoedit /etc/nextcloud-mcp-server.env
sudo nixos-rebuild switch
systemctl --no-pager --full status nextcloud-mcp-server
curl -fsS http://127.0.0.1:8000/health/ready
代理完成标准
成功运行代理程序应返回:
- 服务状态(
active (running)) - 健康检查有效载荷来自
/health/ready - MCP端点URL
- 任何所需的后续操作(反向代理、防火墙、OAuth模式、备份)
替代快速入门
Docker(自托管)
cat > .env << EOF
NEXTCLOUD_HOST=https://your.nextcloud.instance.com
NEXTCLOUD_USERNAME=your_username
NEXTCLOUD_PASSWORD=your_app_password
EOF
docker run -p 127.0.0.1:8000:8000 --env-file .env --rm \
ghcr.io/cbcoutinho/nextcloud-mcp-server:latest
curl http://127.0.0.1:8000/health/ready
Smithery(管理)
使用 史密瑟里 用于托管设置。
[!注意] 默认情况下,Smithery在无状态模式下运行,没有完整的语义搜索基础设施。
主要特点
- 主要Nextcloud应用程序中的90多种MCP工具
- 用于基于URI的结构化数据访问的MCP资源
- 具有可选矢量基础结构的语义搜索(实验性)
- 文档处理(支持文件的OCR/文本提取)
- 灵活部署:NixOS、Docker、Kubernetes、VM、本地
- 身份验证模式:基本身份验证(推荐)、OAuth/OIDC(实验)
- 多次运输:
streamable-httpHTTP、SSE
支持的应用程序
| 应用程序 | 工具 | 功能 |
|---|---|---|
| 备注 | 7 | 全CRUD、关键字搜索、语义搜索 |
| 日历 | 20+ | 活动、待办事项、重复、与会者 |
| 联系人 | 8 | CardDAV操作和地址簿 |
| 文件(WebDAV) | 12 | 文件/文件夹操作和文档处理 |
| 甲板 | 15 | 板、堆、卡、标签、作业 |
| 烹饪书 | 13 | 配方管理和URL导入 |
| 表格 | 5 | Nextcloud表上的行操作 |
| 共享 | 10+ | 共享创建/列表/管理 |
认证
建议在生产单用户设置中使用带有应用程序密码的基本身份验证。
[!重要] OAuth2/OIDC支持尚处于试验阶段,取决于上游
user_oidc行为。 看 docs/oauth-upstream-status.md 和 docs/authentication.md.
语义搜索
语义搜索是实验性的,可以选择加入:
- 默认情况下已禁用(
ENABLE_SEMANTIC_SEARCH=false) - 需要额外的基础设施(例如Qdrant和嵌入提供程序)
- 支持支持的应用程序的语义检索工作流
看 docs/语义搜索架构.md 和 docs/configuration.md.
文档
入门指南
- 安装 -Docker、Kubernetes、本地、VM
- NixOS和systemd -缺陷/模块使用和服务模板
- 配置 -环境变量和高级选项
- 认证 -基本身份验证与OAuth2/OIDC设置
- 运行服务器 -启动、管理、故障排除
特性
高级主题
贡献
安全
- 使用应用程序密码进行基本身份验证部署。
- 将凭据文件保存在git之外。
- 首选最小权限和作用域凭据。
- 私下向维护人员报告安全问题。
许可证
AGPL-3.0。看 许可证.