Skip to main content
Glama
ysbzc2022

RunningHub Image Gen MCP Plugin

by ysbzc2022

# RunningHub Image Gen MCP Plugin

A Codex MCP plugin for generating images via RunningHub's seedream-v5-lite model.

Prerequisites

  • Python >= 3.11

  • uv package manager

  • A RunningHub API key (set as RUNNINGHUB_API_KEY)

Related MCP server: seedream-mcp

Install

cd work/runninghub-image-gen
uv sync

Usage

Environment variable

export RUNNINGHUB_API_KEY=your-api-key-here

Tools

Tool

Description

text_to_image

Submit a text-to-image task, returns taskId

query_task

Poll task status/results by taskId

run_text_to_image

Submit + poll until complete

Available parameters

  • prompt (required) — Text description of the image

  • width / height — Image dimensions in pixels

  • max_images — Number of images to generate

  • sequential_image_generation — "enabled" or "disabled"

  • tools_type — e.g. "web_search"

Running standalone

RUNNINGHUB_API_KEY=your-key uv run runninghub-image-gen

API

  • Submit: POST /openapi/v2/seedream-v5-lite/text-to-image

  • Query: POST /openapi/v2/query

Available Tools

3 tools
query_taskA

Query the status and results of a previously submitted task. Use the taskId returned by text_to_image. Status values: QUEUED (waiting), RUNNING (processing), SUCCESS (completed, results available), FAILED (error occurred). When SUCCESS, results contains image URLs in the 'url' field.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID returned by text_to_image

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It explains status values (QUEUED, RUNNING, SUCCESS, FAILED) and what to expect on SUCCESS (image URLs in 'url' field). It does not mention rate limits or auth, but for a read-only query tool, this is sufficient. Could be more detailed about error responses but adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, no wasted words. It front-loads the purpose, then adds status details and result structure. Every sentence adds value; perfect conciseness for a simple query tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the description explains status and result fields adequately. It mentions the source of taskId and status transitions. For a polling/query tool with one parameter and clear output, the description covers all needed context. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already describes task_id as 'Task ID returned by text_to_image'. The description repeats this, adding no new semantics. Baseline 3 is appropriate since the description does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's purpose: 'Query the status and results of a previously submitted task.' It specifies the resource (task) and action (query). It distinguishes from sibling tools (text_to_image, run_text_to_image) by noting the taskId comes from text_to_image, making differentiation explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides clear usage context: use after submitting a task, with taskId from text_to_image. It lists status values and behavior. However, it does not explicitly state when not to use or mention alternative tools, but the sibling differentiation is implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_text_to_imageA

Submit a text-to-image task and poll until completion. Combines text_to_image + query_task polling into one call. Returns immediately with image URLs when SUCCESS, or status details if FAILED or TIMEOUT. Default timeout is 10 minutes.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoImage width in pixels (e.g. 1024, 2048)
heightNoImage height in pixels (e.g. 1024, 2048)
promptYesText prompt describing the image to generate
timeoutNoMaximum wait time in seconds before timing out
max_imagesNoMaximum number of images to generate (e.g. 1, 4)
tools_typeNoTools type, e.g. 'web_search'
poll_intervalNoPolling interval in seconds between status checks
sequential_image_generationNoEnable sequential generation: 'enabled' or 'disabled'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility. It discloses that the tool polls until completion, returns immediately on success or failure/timeout, and specifies a default timeout of 10 minutes. It does not cover concurrency or rate limits, but the behavioral traits of polling and return conditions are well explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no wasted words. It front-loads the core purpose and then adds behavioral details efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and full schema coverage, the description adequately explains the tool's behavior (submit, poll, return). It does not detail every parameter, but the schema covers them. The description is complete for a wrapper tool with good structured documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no extra parameter information beyond what the schema provides, only referencing the default timeout. This meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Submit a text-to-image task and poll until completion.' It also distinguishes itself from siblings by noting it 'Combines text_to_image + query_task polling into one call.' This provides a specific verb-resource pair and differentiates from related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use when you want a combined submit-and-poll call. It does not explicitly state when not to use, but the mention of combining two sibling tools gives context for when this is appropriate over individual calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_to_imageA

Submit a text-to-image generation task to RunningHub (seedream-v5-lite). Returns a taskId that can be used with query_task to get results. Images are submitted asynchronously; use query_task to poll for completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoImage width in pixels (e.g. 1024, 2048)
heightNoImage height in pixels (e.g. 1024, 2048)
promptYesText prompt describing the image to generate
max_imagesNoMaximum number of images to generate (e.g. 1, 4)
tools_typeNoTools type, e.g. 'web_search'
sequential_image_generationNoEnable sequential generation: 'enabled' or 'disabled'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description discloses key behavioral trait: async execution and need for polling. Does not mention rate limits or permissions, but the primary behavior is clearly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each packed with essential info. First sentence defines action and model; second explains async flow. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the async submission pattern, mention of taskId, and polling. Output schema exists, so return values are covered. All essential aspects are addressed given tool complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description doesn't need to add much. Description reinforces prompt as main input and mentions optional size parameters, but adds no new semantics beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action ('Submit'), resource ('text-to-image generation task'), and model ('seedream-v5-lite'). Distinguishes from siblings query_task and run_text_to_image by indicating it returns a taskId for async polling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly notes async submission and directs to use query_task for results. Provides clear context for when to use this tool, though lacks explicit when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.0
    • First observedquery_task
    • First observedrun_text_to_image
    • First observedtext_to_image

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation3/5

The tools have clear descriptions but overlap: text_to_image and run_text_to_image both submit tasks, with run_text_to_image combining submission and polling. An agent might be uncertain which to use, though the descriptions help distinguish asynchronous vs synchronous workflows.

Naming Consistency2/5

Naming is mixed: 'query_task' and 'run_text_to_image' follow a verb_noun pattern, but 'text_to_image' lacks a verb and reads as a noun phrase. The patterns are inconsistent, reducing predictability.

Tool Count4/5

Three tools is minimal but reasonable for a focused plugin covering async submission, polling, and a combined sync call. It is slightly under the typical range but not problematic.

Completeness3/5

Covers the core workflow of submitting and retrieving image generation tasks, but lacks obvious operations like canceling tasks or listing all tasks. This leaves notable gaps for a full lifecycle.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers