图像生成服务器

FusionBrain MCP Server是一个基于Java和Spring Boot的图像生成服务器,提供通过FusionBrain API生成图像的工具。

  • by FusionBrain26
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 fusionbrain26/fusionbrain-mcp-server

使用说明

FusionBrain MCP服务器

FusionBrain MCP服务器 是一个基于Java+Spring Boot的MCP服务器应用程序 FusionBrain SDK入门.
服务器提供了使用FusionBrain API生成图像的工具。


特性

  • 用途 FusionBrain SDK入门 可通过以下方式配置 application.yml、环境变量或JVM选项。
  • 支持三种主要的MCP工具:
    • startGenerateImage --启动图像生成并返回任务id
    • checkStatus --按id检查已启动任务的状态
    • generateImageSync --开始图像生成并阻塞,直到图像准备就绪

配置

SDK配置

FusionBrain MCP服务器使用 默认SDK设置,但它们可以被覆盖。 一些属性,如 api密钥 和 密钥 是强制性的,必须加以定义。

属性 描述 默认值
fusionbrain.api-key 用于FusionBrain访问的API密钥 - (必填)
fusionbrain.api-secret FusionBrain访问密钥 -- (必填)
fusionbrain.base-url FusionBrain服务器URL https://api-key.fusionbrain.ai

可以找到sdk属性的完整列表 这里.

MCP配置

此服务器基于Spring AI MCP服务器启动启动器. 如果需要,可以覆盖Spring AI的属性。

此MCP服务器可以与 stdio 运输和 SSE (默认选项)。

stdio 通过激活弹簧配置文件可以设置运输 stdio:

java -Dspring.profiles.active=stdio ... -jar fusionbrain-mcp-server.jar

请注意,在 stdio 控制台的配置文件日志已禁用,您必须通过定义来激活文件日志:

logging.file.path=/app/logs                 # directory where rolling log files are collected
logging.file.name=/app/logs/mcp-server.log  # path to a log file

设置参数的方法:

  1. 通过JVM选项:

    java -jar \
     -Dfusionbrain.api-key=<your-api-key> \
     -Dfusionbrain.secret-key=<your-secret-key> \
     fusionbrain-mcp-server.jar
    
  2. 通过环境变量:

    export FUSIONBRAIN_APIKEY=<your-api-key>
    export FUSIONBRAIN_SECRETKEY=<your-secret-key>
    java -jar fusionbrain-mcp-server.jar
    

构建

构建 .jar 来源

cd <path/to/fusionbrain-mcp-server>
make build

构建文件将位于:

target/fusionbrain-mcp-server-<version>.jar

构建Docker镜像

cd <path/to/fusionbrain-mcp-server>
make docker

构建的映像将命名为:

fusionbrain-mcp-server:latest

跑

通过Java(JAR)

java -jar \
  -Dfusionbrain.api-key=your-api-key \
  -Dfusionbrain.secret-key=your-secret-key \
  target/FusionBrain-mcp-server.jar

通过Docker

docker run --rm \
  -e FUSIONBRAIN_APIKEY=your-api-key \
  -e FUSIONBRAIN_SECRETKEY=your-api-key \
  -e JAVA_OPTS=<your jvm options> \
  -p 8080:8080 \
  fusionbrain-mcp-server:latest

工具

startGenerateImage

开始图像生成。接受以下请求格式:

{
  "request": {
    "style": "",
    "width": 1024,
    "height": 1024,
    "prompt": "your prompt"
  }
}

默认情况下,宽度和高度值为1024。 该工具接受这些生成参数并调用图像生成API。 由于生成需要一些时间才能完成,因此此工具不会等待它并返回 taskId,通过该功能可以请求生成的状态。

响应格式:

{
  "status": "STARTED",
  "taskId": "123e4567-e89b-12d3-a456-426614174000",
  "description": "nullable",
  "statusRequestDelay": 10
}

status 可以相等 STARTED 或 ERROR在后一种情况下 description 提供。

taskId 是某个生成任务的UUID。

statusRequestDelay 是以秒为单位估计完成生成所需的时间。 为了避免徒劳的状态轮询请求,建议致电 checkStatus 在经过这段延迟后,首先使用工具。


checkStatus

通过UUID检查资源状态。如果完成,则返回结果。

作为唯一的论据 taskId 调用后返回的UUID格式 startGenerateImage.

响应格式:

{
  "status": "FINISHED",
  "result": "image in base64 format"
}

或

{
  "status": "IN_PROCESS | INTERNAL_ERROR"
}

如果返回 status 是 IN_PROCESS,应该稍后调用工具。 如果你不想实现轮询逻辑,并且假设没有那么多客户端-服务器连接,你可以调用下面的工具,该工具会一直阻塞,直到映像准备就绪。


generateImageSync

开始图像生成并阻止,直到图像准备就绪。警告:此工具保持此服务器和您的客户端之间的http连接。

请求格式与相同 startGenerateImage的格式,而响应格式与 checkStatus 回应。

一旦执行了对图像生成API的请求,该工具将轮询API,检查任务的状态,并返回 FINISHED | INTERNAL_ERROR 状态或 POLLING_TIMEOUT 如果达到重试次数的限制。

重复调用之间的间隔和最大重试次数可以通过属性设置 fusionbrain.poll-interval 和 fusionbrain.max-retries 分别。


下载

准备好了 .jar 文件将可供下载 发布.


需求

  • Java 17+
  • Docker(可选,用于容器构建)

📝 许可证

该项目根据MIT许可证获得许可。