一个生产就绪的 MCP 服务器,用于连接 AI 助手到您的 Nextcloud 实例。
启用大型语言模型如 Claude、GPT 和 Gemini 通过安全 API 与您的 Nextcloud 数据进行交互。创建笔记、管理日历、组织联系人、处理文件等——所有这些都可以通过自然语言对话完成。
这是一个专为外部 MCP 客户端(如 Claude Code 和 IDE)设计的独立 MCP 服务器。它独立于 Nextcloud 运行(Docker、VM、Kubernetes 或本地),并提供跨 Nextcloud 应用程序的深度 CRUD 操作。
[!NOTE] 想要在 Nextcloud 内部使用 AI 功能? Nextcloud 还提供了 Context Agent,它驱动了 Assistant 应用,并作为 ExApp 在 Nextcloud 内运行。参见 docs/comparison-context-agent.md 获取详细的使用场景比较。
最快的方式是通过 Smithery 开始——无需 Docker 或自托管:
https://cloud.example.com)[!NOTE] Smithery 以无状态模式运行,不支持语义搜索。要获得全部功能,请使用 Docker 或参见 ADR-016。
要获得包括语义搜索在内的全部功能,请使用 Docker 运行:
# 1. 创建最小配置
cat > .env << EOF
NEXTCLOUD_HOST=https://your.nextcloud.instance.com
NEXTCLOUD_USERNAME=your_username
NEXTCLOUD_PASSWORD=your_app_password
EOF
# 2. 启动服务器
docker run -p 127.0.0.1:8000:8000 --env-file .env --rm \
ghcr.io/cbcoutinho/nextcloud-mcp-server:latest
# 3. 测试连接
curl http://127.0.0.1:8000/health/ready
# 4. 连接到端点
http://127.0.0.1:8000/sse
# 或使用 --transport streamable-http
http://127.0.0.1:8000/mcp
下一步操作:
mcp dev 等)| 应用 | 工具 | 功能 |
|---|---|---|
| 笔记 | 7 | 全 CRUD、关键词搜索、语义搜索 |
| 日历 | 20+ | 事件、待办事项(任务)、重复事件、参与者、可用性 |
| 联系人 | 8 | 完整 CardDAV 支持、地址簿 |
| 文件(WebDAV) | 12 | 文件系统访问、OCR/文档处理 |
| 看板 | 15 | 看板、堆栈、卡片、标签、分配 |
| 食谱 | 13 | 食谱管理、URL 导入(schema.org) |
| 表格 | 5 | Nextcloud 表格上的行操作 |
| 共享 | 10+ | 创建和管理共享 |
| 语义搜索 | 2+ | 笔记的向量搜索(实验性,需手动开启,需要基础设施) |
希望看到另一个 Nextcloud 应用程序被支持?打开一个问题 或贡献一个拉取请求!
[!IMPORTANT] OAuth2/OIDC 是实验性的 并且需要对
user_oidc应用程序进行手动补丁:
- 所需补丁:Bearer 令牌支持 (问题 #1221)
- 影响:没有补丁,大多数应用程序特定的 API 将因 401 错误而失败
- 建议:直到上游补丁合并,使用基本认证进行生产环境
查看 docs/oauth-upstream-status.md 获取补丁状态和解决方法。
推荐:使用应用特定密码的基本认证提供安全、生产就绪的认证。查看 docs/authentication.md 获取设置详情和 OAuth 配置。
服务器支持两种认证模式:
单用户模式(BasicAuth):
多用户模式(OAuth):
查看 docs/authentication.md 获取详细设置说明。
服务器提供了一个实验性的 RAG 管道,以启用基于意义而非仅仅关键词的 语义搜索。这使得 MCP 客户端能够根据概念的语义相关性找到 Nextcloud 中的信息。例如,“神经网络”、“AI 模型”和“深度学习”被视为与“机器学习”相关的概念。
示例:
这使自然语言查询成为可能,并帮助发现您 Nextcloud 笔记中的相关内容。
[!NOTE] 语义搜索是实验性的并且需手动开启:
- 默认禁用 (
VECTOR_SYNC_ENABLED=false)- 目前仅支持笔记应用(计划支持多应用)
- 需要额外的基础设施:向量数据库 + 嵌入服务
- 答案生成 (
nc_semantic_search_answer) 需要 MCP 客户端采样支持查看 docs/semantic-search-architecture.md 获取架构细节和 docs/configuration.md 获取设置说明。
AI: "创建名为'Meeting Notes'的笔记,内容为今天的议程"
→ 使用 nc_notes_create_note 工具
AI: "从 https://www.example.com/recipe/chocolate-cake 导入食谱"
→ 使用 nc_cookbook_import_recipe 工具并提取 schema.org 元数据
AI: "安排下周二下午 2 点的团队会议"
→ 使用 nc_calendar_create_event 工具
AI: "创建名为'Project X'的文件夹并将所有 PDF 移动到那里"
→ 使用 nc_webdav_create_directory 和 nc_webdav_move 工具
AI: "查找与机器学习概念相关的笔记"
→ 使用 nc_semantic_search 查找语义相似的笔记(需要 Qdrant + Ollama 设置)
注意:对于带有引文的 AI 生成答案,使用 nc_semantic_search_answer(需要具有采样支持的 MCP 客户端)。
欢迎贡献!
此项目重视安全性:
发现安全问题?请私下报告给维护者。
此项目根据 AGPL-3.0 许可证发布。详见 LICENSE。