本项目是一个基于Model Context Protocol (MCP) 实现的服务器,旨在桥接大语言模型 (LLM) 与您的Nextcloud实例。通过这个服务器,LLM客户端可以访问和操作Nextcloud中的特定数据(如笔记)或查询Nextcloud的能力信息,从而实现LLM驱动的Nextcloud自动化和交互。

主要功能点:

  • Nextcloud能力查询: LLM可以查询Nextcloud实例提供的总体能力信息。
  • 笔记应用设置查询: LLM可以获取Nextcloud笔记应用的当前设置。
  • 笔记管理: 提供创建、更新、删除笔记的功能。
  • 笔记查询: 支持通过ID获取特定笔记,以及搜索笔记(根据标题或内容搜索,返回部分信息)。

安装步骤:

  1. 准备环境: 确保您已安装 Python 3.8+ 并可访问您的Nextcloud实例。
  2. 获取代码: 从GitHub克隆仓库:
    git clone https://github.com/cbcoutinho/nextcloud-mcp-server.git
    cd nextcloud-mcp-server
  3. 安装依赖: 推荐使用 Poetry 进行安装:
    poetry install
    如果您不使用 Poetry,可以使用 pip 安装:
    pip install -e .
  4. 使用Docker (可选): 如果您偏好使用Docker,可以直接拉取预构建的镜像:'ghcr.io/cbcoutinho/nextcloud-mcp-server'

服务器配置:

MCP服务器需要连接到您的Nextcloud实例。您需要提供Nextcloud的地址、用户名和密码。这些信息通过环境变量配置。 创建一个名为 '.env' 的文件(或您选择的其他文件名),内容如下:

# .env
NEXTCLOUD_HOST=https://your.nextcloud.instance.com # 您的Nextcloud完整地址
NEXTCLOUD_USERNAME=your_nextcloud_username         # 您的Nextcloud用户名
NEXTCLOUD_PASSWORD=your_nextcloud_app_password_or_login_password # 您的Nextcloud应用密码(强烈推荐)或登录密码

请将上面的占位符替换为您实际的Nextcloud连接信息。

运行服务器:

  1. 加载环境变量: 在运行服务器的终端中加载 '.env' 文件:
    export $(grep -v '^#' .env | xargs)
    如果您使用 Docker,可以通过 '--env-file .env' 参数挂载。
  2. 运行命令: 使用 'mcp run' 命令启动服务器。示例使用 SSE 传输协议:
    mcp run --transport sse nextcloud_mcp_server.server:mcp
    服务器通常会监听 'http://0.0.0.0:8000' 地址。
  3. 使用Docker运行: 挂载您的 '.env' 文件并运行容器:
    docker run -p 127.0.0.1:8000:8000 --env-file .env --rm ghcr.co/cbcoutinho/nextcloud-mcp-server:latest
    这将在您本地机器的 8000 端口暴露服务器。

MCP客户端使用方法:

一旦MCP服务器运行起来,您可以使用任何支持MCP协议的客户端(例如 'uvx')连接到它。您需要将服务器信息添加到客户端的配置中。例如,使用 'uvx' 连接到运行在本地 8000 端口的服务器(使用 SSE 传输):

您需要配置MCP客户端以连接到服务器。这通常涉及指定服务器的名称(供客户端识别)、连接方式(URI和传输协议)。例如,对于MCP客户端的JSON配置文件,您可能需要添加类似以下结构的信息(注意:这不是直接运行的代码,而是客户端配置信息):

{
  "servers": [
    {
      "name": "nextcloud-mcp",         // 客户端识别的服务器名称
      "uri": "http://localhost:8000", // 服务器运行的网络地址
      "transport": "sse"             // 使用的传输协议
    }
    // ... 其他服务器配置
  ]
}

配置完成后,连接到该客户端的LLM就可以通过MCP协议调用此Nextcloud MCP服务器提供的工具和资源,例如创建笔记、查询笔记内容等。

信息

分类

生产力应用