一个专业的模型上下文协议 (MCP) 服务器,用于无缝集成 NextCloud
赋予您的AI代理全面的NextCloud文件管理和共享能力
</div>| 📁 文件管理 | 🔗 共享 | 🔒 安全 | 🛠️ 开发者体验 |
|---|---|---|---|
| 列表、上传、下载 | 公共链接 | 应用密码 | 完整的 TypeScript 支持 |
| 创建目录 | 用户/组共享 | 环境变量 | 全面测试 |
| 删除文件/文件夹 | 密码保护 | 安全认证 | 专业文档 |
| 移动和重命名 | 过期日期 | 强制 HTTPS | 易于集成 |
# 全局安装以供 CLI 使用
npm install -g nextcloud-mcp-server
# 或在项目中本地安装
npm install nextcloud-mcp-server
git clone https://github.com/abdullahMASHUK/nextcloud-mcp-server.git
cd nextcloud-mcp-server
npm install
npm run build
为了增强安全性,请创建一个专用的应用密码:
导航到 NextCloud 设置
NextCloud → 设置 → 安全 → 应用密码
创建新应用密码
MCP 服务器xxxxx-xxxxx-xxxxx-xxxxx-xxxxx为什么使用应用密码?
# 复制环境模板
cp .env.example .env
编辑你的 .env 文件:
NEXTCLOUD_URL=https://your-nextcloud-server.com
NEXTCLOUD_USERNAME=your-username
NEXTCLOUD_PASSWORD=your-app-password-here # 使用应用密码!
添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"nextcloud": {
"command": "nextcloud-mcp-server",
"env": {
"NEXTCLOUD_URL": "https://your-nextcloud-server.com",
"NEXTCLOUD_USERNAME": "your-username",
"NEXTCLOUD_PASSWORD": "your-app-password"
}
}
}
}
</details>
<details>
<summary>直接使用</summary>
# 运行 MCP 服务器
nextcloud-mcp-server
# 或使用 Node.js
node build/index.js
</details>
{
"name": "list-files",
"arguments": {
"path": "/Documents"
}
}
响应: 返回带有元数据(名称、大小、类型、修改日期)的文件数组
</details> <details> <summary><strong>⬆️ 上传文件</strong></summary>{
"name": "upload-file",
"arguments": {
"remotePath": "/documents/report.pdf",
"content": "JVBERi0xLjQK..." // base64 编码的内容
}
}
</details>
<details>
<summary><strong>🔄 移动文件</strong></summary>
{
"name": "move-file",
"arguments": {
"sourcePath": "/old-location/document.pdf",
"destinationPath": "/new-location/document.pdf",
"overwrite": false
}
}
响应: 包含源和目标路径的确认消息
</details> <details> <summary><strong>📄 复制文件</strong></summary>{
"name": "copy-file",
"arguments": {
"sourcePath": "/Documents/template.docx",
"destinationPath": "/Projects/new-document.docx",
"overwrite": true
}
}
响应: 包含复制操作详情的确认消息
</details> <details> <summary><strong>🔍 搜索文件</strong></summary>{
"name": "search-files",
"arguments": {
"query": "季度报告",
"path": "/Documents",
"limit": 20,
"type": "file"
}
}
响应: 匹配文件的数组,带有完整元数据
类型选项: file, directory, all
{
"name": "get-file-versions",
"arguments": {
"path": "/Documents/重要文档.pdf"
}
}
响应: 文件版本的数组,带有时间戳、大小和用户信息
</details> <details> <summary><strong>🔄 恢复文件版本</strong></summary>{
"name": "restore-file-version",
"arguments": {
"path": "/Documents/重要文档.pdf",
"versionId": "1672531200"
}
}
响应: 版本恢复的确认
</details> <details> <summary><strong>🌐 创建共享</strong></summary>{
"name": "create-share",
"arguments": {
"path": "/Documents/演示文稿.pptx",
"shareType": 3,
"password": "secure123",
"expireDate": "2024-12-31",
"note": "团队评审共享"
}
}
共享类型:
0 - 用户共享1 - 组共享3 - 公共链接4 - 邮件共享# 克隆并安装
git clone https://github.com/abdullahMASHUK/nextcloud-mcp-server.git
cd nextcloud-mcp-server
npm install
# 开发命令
npm run dev # 使用自动重新加载运行
npm run build # 构建 TypeScript
npm run test # 运行测试套件
npm run lint # 检查代码质量
npm run format # 格式化代码
项目结构:
src/
├── index.ts # 主 MCP 服务器
├── services/
│ └── nextcloud.ts # NextCloud API 客户端
├── types.ts # TypeScript 定义
└── utils/ # 工具函数
__tests__/ # 测试套件
build/ # 编译输出
</details>
| ✅ 应该 | ❌ 不应该 |
|---|---|
| 使用应用密码 | 使用主账户密码 |
| 存储在环境变量中 | 硬编码凭据 |
| 使用 HTTPS URL | 使用 HTTP 连接 |
| 定期轮换密码 | 保留旧密码 |
| 监控访问日志 | 忽视安全事件 |
.env 文件添加到 .gitignoreMIT 许可证 - 查看 LICENSE 文件了解详情。
git checkout -b feature/amazing-feature
npm run test
npm run lint
git commit -m "✨ 添加精彩功能"
git push origin feature/amazing-feature
如果这个项目对你有帮助,请考虑在 GitHub 上给它一个 ⭐!
MIT 许可证 © 2024 Abdullah MASHUK
在此授予任何人免费获得此软件副本的许可...
</div>由 ❤️ Abdullah MASHUK 制作
搭建 NextCloud 和 AI 助手之间的桥梁 🌉
</div>