mcpField
C
cloudsuite

cloudsuite

本地服务
github.com/CloudCorpRecords生产力01 周前更新

关于 cloudsuite

cloudsuite 是面向自托管 Nextcloud 用户的 MCP 服务和命令行工具,可让 Agent 管理笔记、日历、联系人与文件。它通过 Notes API 及 DAV 接口操作 Nextcloud,提供核心功能子集。

主要功能

  1. 01搜索、创建和编辑笔记
  2. 02查看日历并管理事件
  3. 03列出和创建联系人
  4. 04浏览、读写及删除文件
  5. 05提供 MCP 服务和命令行工具

适用场景

  1. 01查找并更新 Nextcloud 笔记
  2. 02创建或删除日历事件
  3. 03添加联系人及其联系方式
  4. 04读取、写入或清理远程文件

MCP 相关

通过 stdio 提供 MCP 服务,向 MCP 客户端开放 15 项 Nextcloud 笔记、日历、联系人和文件工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-cloudsuite": {
"command": "npx",
"args": [
"-y",
"@reneturcios/cloudsuite"
]
}
}
}
启动命令npx -y @reneturcios/cloudsuite

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/cloudsuite0.1.0
ocighcr.io/cloudcorprecords/cloudsuite:0.1.0

工具

15

收录的工具列表 · 更新于 1 周前

参数类型必填说明
querystring是用于匹配笔记标题和内容的搜索查询文本。

详细介绍

cloudsuite

cloudsuite 可让 Agent 与可自托管的 Nextcloud 实例交互: 搜索和编辑笔记、查看日历并创建或删除事件、 列出和创建联系人,以及浏览、读取、写入和删除文件。 笔记通过实例的 Notes 应用 API 操作;日历、联系人 和文件则分别通过 Nextcloud 的 CalDAV、CardDAV 和 WebDAV 端点操作。

此软件包是一个从零独立重建的版本,包含一个标注过的核心子集: 涵盖原始 Nextcloud MCP 服务文档中 30 个工具里的 15 个。 未包含的工具列在下文的“范围”部分。

与服务的通信方式

每个工具都需要三个环境变量:

export NEXTCLOUD_URL="https://cloud.example.com"   # base URL of the instance
export NEXTCLOUD_USERNAME="alice"
export NEXTCLOUD_PASSWORD="xxxxx-xxxxx-xxxxx-xxxxx"  # an app password

缺少其中任何一个变量时,每次调用都会报错并指出缺失的变量,且不会发送任何请求。每个请求都使用用户名和应用密码构造 HTTP Basic 身份验证。

线路格式说明: 原项目的 README 文档介绍了各工具及其用途;此处的端点格式遵循 Nextcloud 的公开 Notes API 和 DAV 布局。笔记使用 {NEXTCLOUD_URL}/index.php/apps/notes/api/v1;日历使用位于 {NEXTCLOUD_URL}/remote.php/dav/calendars/{user}/ 下的 CalDAV; 联系人使用位于 {NEXTCLOUD_URL}/remote.php/dav/addressbooks/users/{user}/ 下的 CardDAV; 文件使用位于 {NEXTCLOUD_URL}/remote.php/dav/files/{user}/ 下的 WebDAV。 路径段会分别进行百分号编码(保留斜杠)。 DAV 状态码 207 视为成功;其他非 2xx 响应会报告状态码和正文摘录。日历事件列表仅提供摘要:REPORT 响应会缩减为其状态、字节数以及其中找到的 SUMMARY: 行。

安装

npx @reneturcios/cloudsuite nextcloud_webdav_list_directory '{"path":"/"}'

也可以运行容器镜像:

docker run -i ghcr.io/cloudcorprecords/cloudsuite

容器默认启动 MCP 服务。传入 CLI 参数即可将其用作 CLI。

CLI

CLI 与各工具一一对应:每个工具都有一个子命令,其参数为单个 JSON 对象。

cloudsuite nextcloud_notes_search_notes '{"query":"shopping"}'
cloudsuite nextcloud_notes_create_note '{"title":"Ideas","content":"..."}'
cloudsuite nextcloud_calendar_list_calendars '{}'
cloudsuite nextcloud_webdav_read_file '{"path":"/Documents/notes.txt"}'
cloudsuite --version

退出代码:成功时为 0;API 或验证错误时为 1(错误会指出问题);用法错误时为 2。

MCP 服务

同一个可执行文件提供两种用法。mcp 子命令会启动 stdio MCP 服务:

npx -y @reneturcios/cloudsuite mcp

MCP 客户端配置:

{
  "mcpServers": {
    "cloudsuite": {
      "command": "npx",
      "args": ["-y", "@reneturcios/cloudsuite", "mcp"],
      "env": {
        "NEXTCLOUD_URL": "https://cloud.example.com",
        "NEXTCLOUD_USERNAME": "alice",
        "NEXTCLOUD_PASSWORD": "your app password"
      }
    }
  }
}
工具
工具输入功能
nextcloud_notes_search_notesquery(必需)获取所有笔记,并保留标题或内容包含查询词的笔记(不区分大小写)。
nextcloud_notes_create_notetitle、content(必需)、category通过 Notes API 创建笔记。
nextcloud_notes_update_noteid(必需)、title、content、category更新笔记中提供的字段。
nextcloud_notes_append_contentid、content(必需)读取笔记,然后在换行符后附加新内容并写回;保留标题。
nextcloud_notes_delete_noteid(必需)删除笔记;返回 {status, id}。
nextcloud_calendar_list_calendars—对日历根目录执行 PROPFIND,并返回每个集合的显示名称和 href。
nextcloud_calendar_create_eventcalendarId、summary、dtstart、dtend(必需)、description、location将生成的 VEVENT 作为 .ics 文件 PUT 到日历中;返回 {status, uid}。
nextcloud_calendar_list_eventscalendarId(必需)执行 calendar-query REPORT,并汇总响应:状态、字节数和提取出的 SUMMARY: 行。
nextcloud_calendar_delete_eventcalendarId、eventId(必需)DELETE 事件资源。
nextcloud_contacts_list_contactsaddressBookId(必需)对通讯录执行 PROPFIND,并返回其中包含的 href。
nextcloud_contacts_create_contactaddressBookId、fullName(必需)、email、phone、organization将生成的 VCARD 作为 .vcf 文件 PUT 到通讯录中;返回 {status, uid}。
nextcloud_webdav_list_directorypath(必需)对文件夹执行 PROPFIND,并返回每个条目的名称、href 以及其是否为集合。
nextcloud_webdav_read_filepath(必需)GET 文件,并返回其文本内容和字节数。
nextcloud_webdav_write_filepath、content(必需)将文本内容 PUT 到文件路径。
nextcloud_webdav_delete_resourcepath(必需)DELETE 文件或文件夹。

范围

此核心子集中省略了:hello、 nextcloud_calendar_get_event、nextcloud_calendar_update_event、 nextcloud_contacts_list_addressbooks、 nextcloud_contacts_create_addressbook、 nextcloud_contacts_delete_addressbook、 nextcloud_contacts_delete_contact、全部六个 nextcloud_tables_* 工具、nextcloud_webdav_search_files,以及 nextcloud_webdav_create_directory。CalDAV/CardDAV 在线格式 仅为最小化重构:不支持重复事件展开、ETag 处理或时区处理,日历事件列表的提取逻辑也有意保持粗略。构建此软件包时未使用真实的 Nextcloud 实例;行为仅由 fake-fetch 测试覆盖。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, fake fetch only, no network
npm run dev     # run the CLI from source via tsx

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。