Alfresco MCP Proof of Concept (PoC)

项目简介

本项目是一个概念验证 (PoC),展示了如何将 Alfresco 内容服务集成为 Model Context Protocol (MCP) 服务器。它允许大型语言模型 (LLM) 通过标准的 MCP 协议与 Alfresco 交互,利用 Alfresco 的内容管理和搜索能力。该项目包含一个基于 Node.js 的 MCP 服务器和一个 Java 客户端示例。

主要功能点

  • 资源访问: 允许 LLM 客户端通过 Alfresco URI 读取 Alfresco 存储库中的文件内容和元数据。
  • 工具集成: 提供了两个工具:
    • 'search': 允许 LLM 执行 Alfresco 的全文搜索,根据关键词查找文件。
    • 'readContent': 允许 LLM 通过 Alfresco URI 读取指定文件的内容。
  • 标准 MCP 协议: 使用 JSON-RPC over Stdio 通信,符合 MCP 协议规范。
  • 易于部署: 通过 Docker Compose 快速部署 Alfresco 环境,并提供简单的客户端和服务端启动脚本。

安装步骤

  1. 克隆仓库

    git clone https://github.com/aborroy/alfresco-mcp-poc.git
    cd alfresco-mcp-poc
  2. 启动 Alfresco Docker Compose 导航到 'alfresco/' 目录并启动 Alfresco 服务:

    cd alfresco
    docker-compose up --build --force-recreate

    等待 Alfresco 服务完全启动。可以通过访问 http://localhost:8080/share 验证 Alfresco 是否成功运行,默认用户名密码为 'admin/admin'。

  3. 启动 MCP 客户端 首先确保本地 Ollama 服务器已启动 ('ollama serve')。 导航到 'alfresco-mcp-client/' 目录,打包并运行客户端:

    cd ../alfresco-mcp-client
    mvn clean package
    java -jar target/alfresco-mcp-client-0.8.0.jar

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令才能连接。以下是根据仓库信息生成的服务器配置,用于 'alfresco-mcp-client' 的 'McpClient' 初始化:

{
  "serverName": "alfresco-rest-server",
  "transport": "stdio",
  "serverParameters": {
    "command": "/bin/bash",
    "args": [
      "-c",
      "export ALFRESCO_HOST=\"http://localhost:8080\" && export ALFRESCO_USERNAME=\"admin\" && export ALFRESCO_PASSWORD=\"admin\" && /usr/bin/node /path/to/alfresco-mcp-poc/alfresco-mcp-server/alfresco-rest-server.js"
    ]
  }
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'transport': 指定传输协议为 'stdio'。
  • 'serverParameters': 服务器启动参数。
    • 'command': 启动服务器的命令,这里使用 '/bin/bash' 来执行一个复合命令。
    • 'args': 命令参数列表。
      • '"-c"': 告诉 bash 执行后面的字符串命令。
      • '"export ... && ... && ..."': 一个复合命令字符串,包含:
        • 设置 Alfresco 连接所需的环境变量 'ALFRESCO_HOST', 'ALFRESCO_USERNAME', 'ALFRESCO_PASSWORD'。请根据实际 Alfresco 部署情况修改 'ALFRESCO_HOST',如果 Alfresco 用户名密码不是默认的 'admin/admin',也需要相应修改。
        • '/usr/bin/node /path/to/alfresco-mcp-poc/alfresco-mcp-server/alfresco-rest-server.js': 实际启动 MCP 服务器的命令。请务必将 '/path/to/alfresco-mcp-poc' 替换为 'alfresco-mcp-poc' 仓库在您本地文件系统中的实际路径。 '/usr/bin/node' 假设 'node' 可执行文件在 '/usr/bin/node' 路径下,请根据您的 Node.js 安装路径进行调整。

注意: 上述 JSON 配置信息 仅为示例, 'alfresco-mcp-client' 的实际配置方式可能有所不同,请参考 'alfresco-mcp-client' 目录下的 'README.md' 或相关文档,了解如何正确配置 'McpClient' 并传入服务器启动参数。通常客户端会通过 Spring Boot 的配置文件 (如 'application.properties' 或 'application.yml') 来配置 'McpClient' 和服务器连接信息。

基本使用方法

  1. 确保 Alfresco 和 MCP 服务器都已成功启动。
  2. 运行 'alfresco-mcp-client' 客户端。
  3. 客户端启动后,将向 MCP 服务器发送请求,并打印预定义问题的 AI 模型响应,例如:
    • 查找 Invoice 文档列表及其 Alfresco URI。
    • 获取指定 Invoice 的总成本和到期日。

客户端代码 ('Application.java') 中预定义了问题,并使用 'ChatClient' 与 AI 模型交互,通过 MCP 服务器提供的工具和资源来回答问题。您可以修改客户端代码以测试不同的问题和工具调用。

信息

分类

生产力应用