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 环境,并提供简单的客户端和服务端启动脚本。
安装步骤
-
克隆仓库
git clone https://github.com/aborroy/alfresco-mcp-poc.git cd alfresco-mcp-poc -
启动 Alfresco Docker Compose 导航到 'alfresco/' 目录并启动 Alfresco 服务:
cd alfresco docker-compose up --build --force-recreate等待 Alfresco 服务完全启动。可以通过访问 http://localhost:8080/share 验证 Alfresco 是否成功运行,默认用户名密码为 'admin/admin'。
-
启动 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' 和服务器连接信息。
基本使用方法
- 确保 Alfresco 和 MCP 服务器都已成功启动。
- 运行 'alfresco-mcp-client' 客户端。
- 客户端启动后,将向 MCP 服务器发送请求,并打印预定义问题的 AI 模型响应,例如:
- 查找 Invoice 文档列表及其 Alfresco URI。
- 获取指定 Invoice 的总成本和到期日。
客户端代码 ('Application.java') 中预定义了问题,并使用 'ChatClient' 与 AI 模型交互,通过 MCP 服务器提供的工具和资源来回答问题。您可以修改客户端代码以测试不同的问题和工具调用。
信息
分类
生产力应用