Skip to main content
Glama

BytePlus Image MCP

MCP server untuk generate image via BytePlus ModelArk (keluarga model Dola-Seedream 5.0 dari ByteDance) — dirancang untuk kebutuhan logo, mockup UI/UX, dan ilustrasi dokumen/proposal. Mendukung text-to-image dan image-to-image (edit/restyle/fusion dengan gambar referensi).

✨ Fitur

  • Auto-routing model cerdas — sebut purpose saja, model dipilih otomatis:

    • logo / mockup → Dola-Seedream-5.0-pro (teks multibahasa termasuk Bahasa Indonesia, presisi tinggi)

    • document → Dola-Seedream-5.0-lite (hemat, resolusi hingga 4K)

  • Image-to-image — berikan gambar referensi (image_paths path lokal / image_urls) untuk edit, restyle, atau fusion beberapa gambar (1–14 referensi)

  • Multi-gambar per request via Lite (mode set gambar konsisten, 1–15)

  • Resolusi per model: Pro 1K/1.5K/2K • Lite 2K/3K/4K — kombinasi tidak valid ditolak dengan pesan solutif

  • Seed reproducible untuk hasil konsisten

  • Auto-download hasil ke folder lokal (ekstensi png/jpg terdeteksi otomatis)

  • Error handling lengkap dengan solusi konkret (Bahasa Indonesia)

Related MCP server: Volcengine Image Generation MCP Server

📊 Model

Model

Model ID

Kegunaan

Resolusi

Harga

Kuota Gratis*

Dola-Seedream-5.0-pro

dola-seedream-5-0-pro-260628

Logo, mockup, poster/teks di gambar, precise editing & layer control

1K, 1.5K, 2K

$0.045/gambar

cek konsol

Dola-Seedream-5.0-lite

seedream-5-0-260128

Ilustrasi dokumen (hemat), batch set gambar konsisten (hingga 15)

2K, 3K, 4K

$0.035/gambar

50 gambar

*Catatan: Pro hanya mendukung 1 gambar per request. Batch multi-gambar hanya via Lite.

Kuota gratis akun baru BytePlus. Daftar di console.byteplus.com. Aktifkan model di ModelArk → Model activation → tab Media.

🚀 Install

Prasyarat

  1. Akun BytePlus dengan API key (ModelArk → API keys)

  2. Aktifkan model Dola-Seedream-5.0 di ModelArk → Model activation → tab Media

  3. Python ≥ 3.10 dan uv (opsional tapi disarankan)

Cara 1: uvx langsung dari GitHub (tanpa install manual)

{
  "mcpServers": {
    "byteplus-image": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/alecslacker/byteplus-image-mcp", "byteplus-image-mcp"],
      "env": {
        "BYTEPLUS_API_KEY": "isi-api-key-anda"
      }
    }
  }
}

Cara 2: pip install dari GitHub

pip install git+https://github.com/alecslacker/byteplus-image-mcp

Lalu di config MCP client:

{
  "mcpServers": {
    "byteplus-image": {
      "command": "byteplus-image-mcp",
      "env": { "BYTEPLUS_API_KEY": "isi-api-key-anda" }
    }
  }
}

Cara 3: jalankan file langsung (lokal)

git clone https://github.com/alecslacker/byteplus-image-mcp
cd byteplus-image-mcp
pip install mcp httpx pydantic
BYTEPLUS_API_KEY=isi-api-key-anda python src/byteplus_image_mcp/server.py

⚙️ Environment Variables

Variable

Wajib

Default

Keterangan

BYTEPLUS_API_KEY

API key dari console BytePlus

BYTEPLUS_IMAGE_OUTPUT_DIR

~/Pictures/byteplus-mcp

Folder simpan gambar

🛠️ Tools

byteplus_generate_image

Parameter

Tipe

Default

Keterangan

prompt

string

Deskripsi gambar (Inggris atau Indonesia — Pro memahami Indonesia native)

purpose

logo|mockup|document

Auto-pilih model (logo/mockup→Pro, document→Lite)

model

string

Override manual model ID

size

1K|1.5K|2K|3K|4K

2K

Resolusi — Pro: 1K/1.5K/2K, Lite: 2K/3K/4K

count

1–15

1

Jumlah gambar; >1 hanya untuk Lite (mode set gambar)

image_paths

list string

Path gambar referensi lokal (1–14): jpg/png/webp/bmp/tiff/gif, maks 10MB

image_urls

list string

URL gambar referensi (1–14), mis. URL hasil generate sebelumnya

seed

int

Reproducible

save_to_disk

bool

true

Download otomatis

watermark

bool

false

Watermark pada gambar

Contoh pemakaian:

"Buatkan logo Duta Corpora"
→ byteplus_generate_image({
     prompt: "minimalist geometric logo, letter D monogram, gold on navy, flat vector",
     purpose: "logo"
   })

"Ilustrasi cover proposal"
→ byteplus_generate_image({
     prompt: "abstract tech illustration, flowing data lines, blue gradient",
     purpose: "document"
   })

"4 varian ilustrasi konsisten untuk slide deck"
→ byteplus_generate_image({
     prompt: "isometric illustration set of Indonesian village scenes ...",
     model: "seedream-5-0-260128",
     size: "2K",
     count: 4
   })

"Edit logo yang sudah ada: ganti warna jadi emas"
→ byteplus_generate_image({
     prompt: "change the logo color to luxurious gold, keep the shape and layout unchanged",
     image_paths: ["C:/uploads/logo-klien.png"],   // gambar referensi
     purpose: "logo"
   })

"Fusion: model dari gambar 1 memegang produk dari gambar 2"
→ byteplus_generate_image({
     prompt: "the person in image 1 holding the product from image 2, keep background unchanged",
     image_paths: ["C:/uploads/model.jpg", "C:/uploads/produk.jpg"]
   })

🖼️ Mode Image-to-Image

Berikan gambar referensi, prompt berubah fungsi menjadi instruksi edit:

  1. Upload gambar ke chat MCP client (mis. TRAE) — agent akan mengambil path file-nya

  2. Agent memanggil tool dengan image_paths (lokal) atau image_urls (URL, mis. hasil generate sebelumnya yang masih valid 24 jam)

  3. Aturan: maks 14 gambar referensi (jpg/png/webp/bmp/tiff/gif, ≤10MB per gambar); Lite: total referensi + hasil ≤ 15; Pro: hasil selalu 1 gambar

Use case: edit logo klien existing, restyle foto produk, mockup dari sketsa, konsistensi karakter antar-aset.

byteplus_list_models

Lihat daftar model + harga + resolusi + panduan pemilihan.

📁 Output

Gambar tersimpan di BYTEPLUS_IMAGE_OUTPUT_DIR dengan nama {timestamp}-{slug-prompt}-{index}.png|.jpg (ekstensi mengikuti format asli dari API). URL dari API valid 24 jam; file lokal permanen.

🔒 Keamanan

  • API key hanya via environment variable — tidak pernah di-hardcode

  • Jangan commit .env atau key ke repository

  • Monitor pemakaian: console.byteplus.com → ModelArk → Usage

📄 Lisensi

MIT — lihat LICENSE.

Available Tools

2 tools
byteplus_generate_imageA

Generate gambar via BytePlus ModelArk (Seedream) untuk logo, mockup UI/UX, dan ilustrasi dokumen.

Tool ini memanggil API BytePlus images/generations dengan model keluarga Seedream. Pemakaian otomatis mengurangi kuota gratis akun (Seedream 4.5: 200 gambar, Seedream 4.0: 200 gambar) sebelum menyentuh saldo berbayar.

Args: params (GenerateImageInput): Parameter tervalidasi: - prompt (str): Deskripsi gambar (bahasa Inggris disarankan), 3-2000 karakter - model (Optional[ImageModel]): Override model secara eksplisit - purpose (Optional[Purpose]): 'logo'|'mockup' -> Seedream 4.5, 'document' -> Seedream 4.0 - size (ImageSize): '1K'|'2K'|'4K' (default 2K) - count (int): 1-6 gambar per request - save_to_disk (bool): Download hasil ke folder output lokal (default true) - watermark (bool): Watermark ByteDance (default false) - seed (Optional[int]): Untuk hasil reproducible

Returns: str: JSON berisi status, model terpakai, URL gambar (valid 24 jam), dan path lokal jika berhasil di-download.

Contoh sukses: { "status": "success", "model": "seedream-4-5-251128", "count": 1, "images": [ {"url": "https://ark-content-generation...", "local_path": "C:/Users/.../logo-duta.jpg", "size_kb": 335} ], "usage_tokens": 16384 }

Kapan dipakai: - "Buatkan logo ..." -> purpose='logo' - "Mockup halaman utama web ..." -> purpose='mockup' - "Ilustrasi untuk proposal ..." -> purpose='document'

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses meaningful behavioral traits beyond the annotations: quota consumption ('mengurangi kuota gratis akun'), URL validity ('valid 24 jam'), local download behavior via save_to_disk, watermark default, and output JSON structure. Annotations only flag readOnly=false/idempotent=false/destructive=false, so this behavioral detail is additive and non-ctradictory.

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 long but well-structured with clear sections: purpose, Args, Returns, success example, and usage triggers. The most important scoping information is front-loaded, and each section adds actionable value rather than repeating boilerplate.

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?

For an external API tool with quota implications, multiple models, download behavior, and a JSON return format, the description is effectively complete. It includes an output example, parameter semantics, default behavior, and use-case routing; the only minor omission is sekuence_format, which is already covered in the schema.

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

Parameters4/5

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

Despite the reported low top-level schema coverage, the Args block documents the main parameters with defaults, constraints, and purpose-to-model mapping, which adds practical meaning beyond the raw schema. It omits sekuence_format from the prose, but the schema already defines that parameter fully, so the gap is minor.

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 leads with a concrete verb and resource: 'Generate gambar via BytePlus ModelArk (Seedream)' and enumerates concrete use cases: logo, mockup UI/UX, and dokumen ilustrasi. This makes the tool's purpose unambiguous and clearly distinguishes it from the sibling 'byteplus_list_models'.

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 'Kapan dipakai' section provides explicit usage triggers with purpose mapping ('Buatkan logo' -> purpose='logo', etc.), which is clear practical guidance. It does not explicitly mention when not to use the tool or compare it to alternatives, so it stops short of the highest bar.

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

byteplus_list_modelsA
Read-onlyIdempotent

Tampilkan daftar model Seedream yang tersedia beserta panduan pemilihan dan info kuota.

Returns: str: JSON daftar model dengan model_id, use_case, harga per gambar, dan sisa kuota gratis (informasional).

Gunakan tool ini sebelum byteplus_generate_image jika ragu memilih model.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds behavior beyond annotations by specifying the return format: a JSON string list with model_id, use_case, price per image, and free quota remaining. No contradictions with annotations.

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 compact and front-loaded with the main purpose, followed by a precise return value breakdown and a usage directive. Every sentence contributes useful information with no 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?

For a zero-parameter read-only listing tool, the description fully explains what it returns, why the agent should call it, and when to use it relative to the sibling. Annotations cover side-effect safety, and the return structure is described in sufficient detail.

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

Parameters4/5

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

The tool has zero parameters, so parameter semantics are trivially satisfied. The description correctly focuses on output and usage rather than inventing parameter detail. Baseline 4 for no-parameter tools is appropriate.

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 identifies the tool as listing available Seedream models with selection guidance and quota info. It distinguishes itself from the sibling tool by naming byteplus_generate_image and positioning this as the pre-selection step.

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

Usage Guidelines5/5

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

The description explicitly instructs to use this tool before byteplus_generate_image when uncertain about model choice. This provides clear when-to-use guidance and directly routes the agent to the correct tool among the siblings.

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. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observedbyteplus_generate_image
    • First observedbyteplus_list_models

TDQS

A4.7/5.0
Disambiguation5/5

byteplus_generate_image is solely responsible for creating images, while byteplus_list_models handles model discovery and quota information. There is no functional overlap between the two tools.

Naming Consistency5/5

Both tool names follow the same byteplus_verb_noun pattern: generate_image and list_models. The naming is consistent, predictable, and clearly conveys each tool's action.

Tool Count4/5

With only two tools, the server is slightly under the typical 3-15 range, but the count is reasonable for a narrow image-generation purpose. Each tool earns its place: generation is the core action, and model listing supports informed model selection.

Completeness5/5

For the server's stated purpose of text-to-image generation, the surface is complete: list_models lets an agent choose the right model, and generate_image produces the image with appropriate parameters. There are no obvious dead ends in the core workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alecslacker/byteplus-image-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server