byteplus-image-mcp
Server ini adalah MCP untuk generate dan edit gambar via BytePlus ModelArk/Seedream, terutama untuk logo, mockup UI/UX, dan ilustrasi dokumen.
Generate gambar dari prompt text-to-image untuk logo, mockup, atau ilustrasi dokumen/proposal.
Auto-routing model berdasarkan
purpose: logo/mockup → model kualitas tinggi; document → model hemat.Image-to-image: edit, restyle, atau fusion hingga 14 gambar referensi via path lokal atau URL.
Multi-gambar per request (1–6 sesuai schema; Lite hingga 15 di README) untuk set gambar konsisten.
Pilih resolusi output 1K/1.5K/2K/3K/4K sesuai model.
Seed reproducible untuk hasil konsisten, watermark opsional, dan auto-download hasil ke folder lokal.
Tool
byteplus_list_modelsuntuk melihat model, harga, resolusi, dan panduan pemilihan.Error handling dalam Bahasa Indonesia dengan solusi konkret; API key aman via environment variable.
Allows generating images via BytePlus ModelArk using ByteDance's Seedream models, with automatic model selection for logos, UI/UX mockups, and document illustrations, plus options for resolution, multiple images, and reproducible seeds.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@byteplus-image-mcpCan you generate a logo for my new coffee shop?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
purposesaja, 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_pathspath 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 |
| Logo, mockup, poster/teks di gambar, precise editing & layer control | 1K, 1.5K, 2K | $0.045/gambar | cek konsol |
Dola-Seedream-5.0-lite |
| 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
Akun BytePlus dengan API key (ModelArk → API keys)
Aktifkan model Dola-Seedream-5.0 di ModelArk → Model activation → tab Media
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-mcpLalu 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 |
| ✅ | — | API key dari console BytePlus |
| ❌ |
| Folder simpan gambar |
🛠️ Tools
byteplus_generate_image
Parameter | Tipe | Default | Keterangan |
| string | — | Deskripsi gambar (Inggris atau Indonesia — Pro memahami Indonesia native) |
|
| — | Auto-pilih model (logo/mockup→Pro, document→Lite) |
| string | — | Override manual model ID |
|
|
| Resolusi — Pro: 1K/1.5K/2K, Lite: 2K/3K/4K |
| 1–15 |
| Jumlah gambar; >1 hanya untuk Lite (mode set gambar) |
| list string | — | Path gambar referensi lokal (1–14): jpg/png/webp/bmp/tiff/gif, maks 10MB |
| list string | — | URL gambar referensi (1–14), mis. URL hasil generate sebelumnya |
| int | — | Reproducible |
| bool |
| Download otomatis |
| bool |
| 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:
Upload gambar ke chat MCP client (mis. TRAE) — agent akan mengambil path file-nya
Agent memanggil tool dengan
image_paths(lokal) atauimage_urls(URL, mis. hasil generate sebelumnya yang masih valid 24 jam)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
.envatau key ke repositoryMonitor pemakaian: console.byteplus.com → ModelArk → Usage
📄 Lisensi
MIT — lihat LICENSE.
Available Tools
2 toolsbyteplus_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'
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_modelsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v1.0.0- First observed
byteplus_generate_image - First observed
byteplus_list_models
TDQS
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.
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.
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.
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
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
Generate marketing images, videos and audios for campaigns, product content, and brand assets.
Create images and videos from prompts, with options for image mixing, reference images, and start/…
Generate images, video, music, voice and 3D through one API. 30 tools, 200+ models.
AI content generation with 50+ models: image, video, TTS, voice cloning, and more.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI image generation using Volcano Engine's Seedream 4.0 API with text-to-image, image-to-image, multi-image fusion capabilities, built-in prompt templates, and automatic cloud storage integration.19MIT
- FlicenseBqualityDmaintenanceEnables AI-powered text-to-image generation using Volcengine's API with support for multiple image sizes, customizable parameters like guidance scale and seed, and flexible output formats.1-
- AlicenseAqualityCmaintenanceEnables AI image generation using Doubao Seedream models and video generation using Doubao Seedance models through Volcano Engine's API, supporting text-to-image, image-to-image, text-to-video, and task status queries.3263MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered image generation using Volcano Engine's SeeDream 4.0 model. Supports custom sizes, reference images, and automatic prompt generation without complex prompting.29MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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