项目简介

本项目是一个实现了 Model Context Protocol (MCP) 的服务器,它充当大模型(LLM)客户端和 Nextcloud 日历之间的桥梁。通过运行此服务器,您可以让支持 MCP 协议的大模型应用安全、标准化地访问和管理您的 Nextcloud 日历数据。

主要功能点

  • 获取日历列表: 允许大模型通过工具调用查看您的所有 Nextcloud 日历。
  • 日历管理: 提供创建、更新和删除日历的工具调用能力。
  • ADHD友好特性支持: 部分支持 Nextcloud 日历中与 ADHD 相关的分类和焦点优先级等自定义特性。
  • MCP 工具接口: 将上述日历操作功能封装为大模型可直接理解和调用的标准化工具。
  • 多种传输协议: 支持最新的 MCP Streamable HTTP 协议以及传统的 HTTP+SSE 协议,提高兼容性。

安装步骤

  1. 前提条件: 确保您的系统已安装 Node.js (版本推荐 18 或更高)。
  2. 克隆仓库: 从 GitHub 克隆本项目到您的本地计算机。
    git clone https://github.com/Cheffromspace/mcp-nextcloud-calendar.git
    cd mcp-nextcloud-calendar
  3. 安装依赖: 在项目根目录下运行以下命令安装所有必需的库。
    npm install

服务器配置 (用于 MCP 客户端连接)

本服务器通过读取环境变量来获取 Nextcloud 连接信息和服务器运行参数。对于支持 MCP 协议的客户端应用,您需要提供以下信息,以便客户端能正确启动(如果需要)并连接到本服务器进程:

  • MCP 服务器名称: 客户端用于识别本服务器的标识名称。本项目默认名称为 'nextcloud-calendar-server' (可通过设置 'SERVER_NAME' 环境变量修改)。
  • 启动命令: 客户端用于执行服务器程序的命令。通常是运行 Node.js 的命令,例如 'node'。
  • 启动参数: 传递给启动命令的参数列表。对于本项目,通常需要指定主程序路径和端口,例如 '['build/src/index.js', '--port', '3001']' (请根据您实际运行环境和端口修改)。
  • 必要的环境变量: MCP 客户端在启动本服务器进程时,需要设置连接 Nextcloud 所必需的环境变量。这些变量包括:
    • 'NEXTCLOUD_BASE_URL': 您的 Nextcloud 服务器的完整地址 (例如: 'https://your-nextcloud.com')。
    • 'NEXTCLOUD_USERNAME': 用于连接 Nextcloud 的用户名。
    • 'NEXTCLOUD_APP_TOKEN': 用于连接 Nextcloud 的应用令牌。您可以在 Nextcloud 设置中生成。
    • 您还可以设置可选环境变量如 'PORT', 'SERVER_NAME', 'SERVER_VERSION', 'NODE_ENV', 'KEEP_ALIVE_INTERVAL'。
  • 传输协议: 客户端应使用的 MCP 传输协议。本项目支持 'http-stream' (推荐,对应 '/mcp' 端点) 或旧版的 'http-sse' (对应 '/sse' 和 '/messages' 端点)。
  • 连接端点: 客户端连接到本服务器的网络地址。例如,如果在本地运行并使用默认端口和推荐协议,则为 'http://127.0.0.1:3001/mcp'。请将 '127.0.0.1:3001' 替换为您实际部署的服务器地址和端口。

请注意:具体的配置方式和界面取决于您使用的 MCP 客户端应用,上述信息是本服务器需要由客户端提供的输入。

基本使用方法

  1. 设置环境变量: 在您运行服务器的环境中,设置连接 Nextcloud 所需的环境变量 ('NEXTCLOUD_BASE_URL', 'NEXTCLOUD_USERNAME', 'NEXTCLOUD_APP_TOKEN')。您可以在项目根目录创建一个 '.env' 文件来管理(参考 '.env.example'),但请确保生产环境中以更安全的方式配置。
  2. 编译项目: 在项目根目录下运行以下命令编译 TypeScript 代码:
    npm run build
  3. 启动服务器: 运行以下命令启动服务器:
    npm start
    # 或者直接运行 Node.js 命令
    # node build/src/index.js
  4. 连接客户端: 服务器启动后,会监听指定端口(默认为 3001),并打印出 MCP 端点地址。配置您的 MCP 客户端应用,使其能够连接到这个端点,即可开始使用服务器提供的日历工具。

信息

分类

生产力应用