Alfresco MCP实验室
一个可重复实验的实验室 模型上下文协议(MCP) 反对 Alfresco社区版 使用Docker。
建筑
flowchart LR
O("`OLLAMA
local gpt-oss`")
CIC("`CIC LiteLLM
service claude`")
CMD("`MCP CLIENT
CMD`")
UI("`MCP CLIENT
UI`")
S("`MCP SERVER
community project`")
A("`ALFRESCO
Community`")
CMD -- "8003" --> S
S -- "8080" --> A
UI -- "8003" --> S
O -. "11434" .-> CMD
CIC -. "443" .-> UI 组件
- 露天的 –ACS社区版 http://localhost:8080/alfresco
- 没有 –本地LLM运行时(本实验室使用 gpt-oss 型号)
先决条件
- Docker&Docker编写
- 对于MCP客户端CMD
- Ollama在主机上奔跑 gpt-oss 拉取的型号(约13GB):
brew install ollama # macOS (or see ollama.com for your OS)
ollama pull gpt-oss- 对于MCP客户端UI
- LITELLM_API_KEY 在您的环境中(或 .env)对于您选择的提供商
*网络说明*host.docker.internal在Docker桌面(macOS/Windows)上开箱即用 在Linux上,添加extra_hosts: ["host.docker.internal:host-gateway"]必须到达主机的服务(例如,呼叫主机上运行的Ollama)
快速启动
打开Alfresco和MCP服务器:
docker compose up --build一旦开始:
- Alfresco存储库: http://localhost:8080/alfresco
(默认凭据 admin / admin)
- MCP服务器: http://localhost:8003/mcp
关于 compose.yaml
此回购 compose.yaml 包括子堆栈:
include:
- mcp-server/compose.yaml
- alfresco/compose.yaml如果您的Compose版本不支持 include,使用多个文件运行:
docker compose -f alfresco/compose.yaml -f mcp-server/compose.yaml up --buildMCP客户端(CLI)
此客户端使用本地LLM(gpt-oss)通过Ollama
- 验证Ollama和模型:
ollama list
# Expect something like:
# gpt-oss:latest ... 13 GB- 运行CLI:
cd mcp-client-cmd
docker compose run --rm mcp-client- 尝试提示:
Search Alfresco for documents containing "budget", return at most 5 results.Steve Reiner的有用提示:
MCP客户端(UI)
- 切换到MCP客户端UI文件夹
cd mcp-client-ui- 创建您的
.env并设置LiteLLM+MCP/ACS端点。
- macOS/Linux:
cp .env.example .env- Windows(PowerShell):
Copy-Item .env.example .env示例 .env:
# LiteLLM (replace with your provider/base/model)
LITELLM_API_KEY=YOUR_API_KEY
LITELLM_API_BASE=https://api.your-provider.example/v1
LITELLM_MODEL=anthropic/claude-3-5-sonnet
# MCP Server
MCP_URL=http://host.docker.internal:8003/mcp
# Logging
LOG_LEVEL=INFO> 在Linux上,如果UI容器无法访问主机,请添加: > > ``yaml > extra_hosts: > - "host.docker.internal:host-gateway" > ``
- 启动UI:
docker compose up --build- 打开 http://localhost:8000 聊天
你可以试试更复杂的 *提示*,在Alfresco Repository中执行操作并遵循完整的工作流程:
Let's test a complete document management workflow:
1. Create a folder called "Project_Alpha"
2. Upload a document called "requirements.md" to that folder with some project requirements content
3. Get the document properties to verify it was created correctly
4. Update the document properties to add a title and description
5. Checkout the document for editing
6. Checkin the document as major version with appropriate comments
7. Search for documents containing "requirements" using basic search (AFTS full-text)
8. Try advanced search with date filters to find the same document (AFTS with filters)
9. Use metadata search to find it by title property (AFTS property search)
10. Use CMIS search with SQL query to find it by name (CMIS SQL)
11. Download the document to verify content integrity
Walk me through each step and confirm success before moving to the next.端口摘要
- Alfresco(ACS):8080(
/alfresco) - MCP服务器:8003(
/mcp) - MCP用户界面(链式):8000
- 浏览次数: 11434
- 文学硕士:443
自己建造一切
看 docs/instructions.md 用于从头开始构建和更深入的配置
Alfresco的MCP服务器工具
这 mcp-server/ 文件夹将实验室连接到 python alfresco mcp服务器 (基于FastMCP 2.0构建)。它展示了一个针对Alfresco的内容搜索+文档生命周期的集中工具集。在最新的1.1行中,服务器记录了以下功能和传输(STDIO、HTTP、SSE)
工具
- 搜索内容:全文搜索 *内容和属性*,基本通配符
- 高级搜索(AFTS):具有日期过滤器、排序、字段定位的AFTS查询语言(工具名称在文档中显示为AFTS/“高级搜索”工具)
- 元数据搜索:节点元数据上的属性谓词(等于/包含/范围)
- CMIS(类SQL)搜索:用于复杂发现的CMIS查询
- 上传:创建一个包含内容的新文档
- 下载:按id/path获取文档内容
- 签出/签入/取消签出:工作副本流程和新版本(主要/次要,带注释)
- 创建文件夹:按父id/路径创建文件夹
- 文件夹浏览:列出子文件夹+基本元数据
- 删除节点:删除文档/文件夹的垃圾箱(或永久)
- 获取/设置属性:读取/更新节点属性(包括名称)
- 存储库信息 *(也作为资源公开)*:版本、状态和模块配置
模型上下文协议(MCP)——规范和SDK
- 规范和概念:官方文档/规范中涵盖了工具、资源、提示、传输和协议修订。从这里开始了解如何定义和调用工具(模型上下文协议)
- 官方SDK:TypeScript,Python, JavaGo、Kotlin、Swift、C#、Ruby、Rust。每个都支持构建具有相同核心语义的服务器/客户端(模型上下文协议)
实现Alfresco MCP服务器的最佳方法
- Python+FastMCP(用于本实验室)
快速站起来,通过Alfresco进行战斗测试 python-alfresco-mcp-server,并支持STDIO/HTTP/SSE开箱即用。非常适合演示和生产试点。 ()
- Java+Spring AI(MCP Java SDK+Spring Boot启动器)
- TypeScript(官方SDK)
如果你的堆栈是Node/TS,或者你想与Claude Desktop/TS示例保持一致,那就太好了。相同的协议模型,丰富的Zod模式。 (模型上下文协议)
当平台约束或现有服务更适合Go/Kotlin/Swift/C#/Ruby/Rust时,您还可以通过官方SDK将其作为目标
致谢与致谢
- Alfresco安装程序(
alf-cli) 生成ACS Docker资产 - Python Alfresco MCP服务器 靠近 *史蒂夫 莱纳*
- MCP-CLI 靠近 *克利绍克*
- Chainlit
- 文学硕士
- 没有
