Nextcloud日历集成服务

一个用于Nextcloud日历集成的MCP协议服务器,提供日历和事件管理功能,适用于个人和团队日程管理。

  • by Cheffromspace
  • TypeScript
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 Cheffromspace/mcp-nextcloud-calendar

使用说明

MCP Nextcloud日历

用于Nextcloud日历集成的模型上下文协议(MCP)服务器。

特性

  • 从Nextcloud获取日历
  • ADHD友好型组织特征
  • MCP协议支持(流式HTTP和传统HTTP+SSE)

用法

与npx一起使用

使用此包的最简单方法是使用npx:

npx mcp-nextcloud-calendar

安装

对于开发或本地安装:

# Install globally
npm install -g mcp-nextcloud-calendar

# Or install locally
npm install mcp-nextcloud-calendar

MCP客户端配置

要与MCP客户端(如Claude)一起使用,请将此配置添加到MCP客户端设置中:

{
  "mcpServers": {
    "nextcloud-calendar": {
      "command": "npx",
      "args": ["-y", "mcp-nextcloud-calendar"],
      "env": {
        "NEXTCLOUD_BASE_URL": "https://your-nextcloud-server.com",
        "NEXTCLOUD_USERNAME": "your-username",
        "NEXTCLOUD_APP_TOKEN": "your-app-token"
      }
    }
  }
}

指定版本

您可以固定到软件包的特定版本:

{
  "mcpServers": {
    "nextcloud-calendar": {
      "command": "npx",
      "args": ["-y", "mcp-nextcloud-calendar@0.1.0"],
      "env": {
        "NEXTCLOUD_BASE_URL": "https://your-nextcloud-server.com",
        "NEXTCLOUD_USERNAME": "your-username",
        "NEXTCLOUD_APP_TOKEN": "your-app-token"
      }
    }
  }
}

配置

环境变量

服务器使用这些环境变量,并在可能的情况下使用默认值:

变量 描述 默认值 必填
PORT 服务器端口 3001 否
SERVER_NAME MCP服务器标识符 下一个云日历服务器 否
NODE_ENV 环境(开发/生产) 开发 否
NEXTCLOUD_BASE_URL 您的下一个云服务器URL - 是
NEXTCLOUD_USENAME 您的NEXTCLOUD用户名 - 是
NEXTCLOUD_APP_TOKEN 您的NEXTCLOUD应用令牌 - 是
保持活动间隔(毫秒) 30000 否

开发设置

对于当地发展:

  1. 克隆存储库
  2. 安装依赖项:
npm install
  1. 创建一个 .env 项目根目录中的文件:
cp .env.example .env
  1. 编辑 .env 使用您的Nextcloud凭据创建文件。

获取Nextcloud应用令牌

  1. 登录您的Nextcloud实例
  2. 转到“设置”→ 安全→ 应用程序密码
  3. 创建一个名为“MCP日历”的新应用密码
  4. 将生成的令牌复制到您的 .env 文件

发展

# Build the project
npm run build

# Run in development mode
npm run dev

# Run tests
npm run test

# Run linting
npm run lint

# Format code
npm run format

API终点

  • /mcp -主MCP端点(可流式HTTP传输)
  • /sse 和 /messages -传统MCP端点(HTTP+SSE传输)
  • GET /health -健康检查端点
  • GET /api/calendars -列出所有日历

MCP工具

以下MCP工具已注册并可供客户使用:

日历管理

工具 说明 参数
listCalendars 检索所有可访问的日历 无
createCalendar 创建新日历 displayName (必填), color (可选), category (可选), focusPriority (可选)
updateCalendar 更新现有日历 id (必填), displayName (可选), color (可选), category (可选), focusPriority (可选)
deleteCalendar 删除日历 id (必填)

⚠️ 权限警告:The updateCalendar 和 deleteCalendar 工具可能需要Nextcloud实例中的特殊权限。日历操作受Nextcloud许可系统的约束。

事件管理

工具 说明 参数
listEvents 检索日历的事件 calendarId (必填), start (可选), end (可选)
getEvent 获取特定事件 calendarId (必填), eventId (必填)
createEvent 创建新事件 calendarId (必填), summary (必填), start (必填), end (必填), description (可选), location (可选)
updateEvent 更新现有事件 calendarId (必填), eventId (必填),[加上要更新的任何事件属性]
deleteEvent 删除事件 calendarId (必填), eventId (必填)

已知问题和限制

备注:此软件包目前处于早期开发阶段(0.1.x)。API和工具可能会在未来的版本中更改,恕不另行通知。

  • 更新和删除日历操作可能需要Nextcloud实例中的特定权限
  • 特定Nextcloud错误代码的错误处理仍在改进中
  • 包含许多活动的大型日历可能会出现性能问题

请在GitHub存储库中报告任何问题。

许可证

国际协调委员会