关于 SwarmUI_MCP_Agent
SwarmUI_MCP_Agent 是由 SwarmUI MCP 服务和本地 LangChain Ollama Agent 组成的原型,可让 Agent 将图像提示词提交到 SwarmUI 文生图接口,部分生成设置为硬编码。
主要功能
- 01暴露 SwarmUI 图像生成接口
- 02通过 LangChain 工具提交提示词
- 03运行本地 Ollama Agent
- 04使用配置的 SwarmUI 端口
适用场景
- 01根据提示词生成图像
- 02将本地 Agent 接入 SwarmUI
- 03测试原型 MCP 图像工作流
MCP 相关
MCP 服务将 SwarmUI 会话和文生图操作作为工具提供。本地 LangChain Ollama Agent 通过服务的 Express 接口调用图像生成工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
SwarmUI_MCP_Agent
一个简单的 SwarmUI MCP 服务原型,并附带本地 LangChain Ollama Agent。该原型仅开放 SwarmUI /GenerateText2Image 端点。它使用 Python、Node.js、Typescript、Langchain、@ModelContextProtocol、Axios、Express 和 Pydantic(不过在此实现中基本未使用 Pydantic)。
SwarmUI MCP 服务
SwarmUI MCP 服务原型定义在 server.ts 中。
SwarmUI API 端点 /GenerateText2Image 和 /GetNewSession 通过 generateImage() 和 getSessionId() 方法开放,这些方法 在实例化 Server 时的(MCP)服务 capabilities 配置中进行描述。服务 capabilities 配置用于让 Agent 了解可用工具的输入和输出模式及说明。这些工具的文本说明用于帮助 llm 理解工具。启动 Node 服务 server.js 时,会初始化 SwarmUIServer,并创建一个 Express 服务, 其中包含一个 POST 端点 '/generate-image',用于调用 SwarmUIServer.generateImage,随后启动 Express 服务。系统会创建一个 Axios 实例,用于向本地 SwarmUI API 发送 HTTP 请求,并将其存储在 SwarmUIServer 类中。
开发说明:你可能需要更改 SwarmUI 使用的端口,以及硬编码的图像生成模型。
GenerateImage StructuredTool
tools.py 中定义了一个 generate_image StructuredTool,它会向 SwarmUIServer 启动的 Express 服务的 /generate-image 端点发送 POST 请求。StructuredTool 的说明及其文档字符串用于帮助 llm 了解该工具。理论上,Pydantic 模型应当验证工具输入,但目前的设置尚不支持多个 输入。
LangChain Ollama Agent
系统会实例化一个本地 Ollama Agent(当前使用 dolphin-mistral 模型),并为其配置工具调用指令、max_iterations 为 1、 AgentType 为 ZERO_SHOT_REACT_DESCRIPTION,以及 generate_tool StructuredTool。系统会接收用户输入的图像 提示词,然后调用该 Agent。Agent 会使用 generate_image Action,并将提供的提示词作为 Action Input, 调用本地 SwarmUI API /GenerateText2Image 端点,同时使用其他硬编码的图像生成 设置。
启动 SwarmUI MCP 服务
在 /SwarmUI_MCP_Agent/src 目录中运行:tsc server.ts && node server.js
运行 Agent
确保 SwarmUIMCPServer 和 SwarmUI 均已运行,然后在 /SwarmUI_MCP_Agent 目录中运行:python run.py
查看生成的图像
生成的图像可在 SwarmUI Image History 中查看,也可直接在 SwarmUI /Ouput 目录中查看。
快速入门
1. 克隆仓库
git clone cd
2. 安装依赖(脚本)
运行 setup.sh
2B. 安装依赖(手动)
npm install pip install -r requirements.txt
3. 启动 API 服务
tsc server.ts && node server.js
5. 启动 UI
streamlit run run.py
6. 确保 SwarmUI 正在运行且可访问。
7. 在 Agent Settings > SwarmUI API Port 中输入 SwarmUI 端口号
8. 选择 LLM 模型和(可选的)Vision 模型
9. 输入图像请求并点击提交。如果模型尚未下载,请等待其下载。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。