suno-v6-kie-mcp
Allows generating songs/music using Suno V6 models (V6, V6_MINI, V6_WILD) via the Kie.ai API, including custom mode with style, title, and duration, plus retrieving generation status and resulting audio URLs.
Click on "Deploy 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., "@suno-v6-kie-mcpCreate a cheerful pop song about summer road trips with upbeat vocals."
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.
Suno V6 Kie.ai MCP
MCP server ringan untuk membuat lagu atau musik menggunakan Suno V6, V6_MINI, dan V6_WILD melalui API resmi Kie.ai. Server mendukung stdio untuk MCP client lokal dan Streamable HTTP untuk Manus Custom MCP Connector.
Fitur
suno_generate_musicuntuk membuat lagu vokal atau instrumental.suno_get_task_statusuntuk mengambil status dan URL audio hasil generate.Dukungan
V6,V6_MINI, danV6_WILD.Dukungan
duration10–360 detik pada custom mode.Tidak menyimpan API key atau hasil audio ke database.
HTTP endpoint
/mcpdan health check/health.
Related MCP server: Suno Autopilot MCP
Persiapan
Gunakan Node.js 20 atau lebih baru dan API key dari Kie.ai API Key.
git clone https://github.com/xaxeane/suno-v6-kie-mcp.git
cd suno-v6-kie-mcp
npm install
npm run buildMenjalankan sebagai MCP lokal (stdio)
KIE_AI_API_KEY="YOUR_KIE_API_KEY" npm startContoh konfigurasi MCP client yang mendukung command lokal:
{
"mcpServers": {
"suno-v6-kie": {
"command": "node",
"args": ["/absolute/path/to/suno-v6-kie-mcp/dist/index.js"],
"env": {
"KIE_AI_API_KEY": "YOUR_KIE_API_KEY"
}
}
}
}Menjalankan sebagai remote MCP untuk Manus
Remote deployment diperlukan karena Manus Custom MCP Connector membutuhkan endpoint HTTPS yang dapat diakses Manus.
KIE_AI_API_KEY="YOUR_KIE_API_KEY" \
KIE_MCP_HTTP_TOKEN="GENERATED_MCP_TOKEN" \
MCP_TRANSPORT=http \
MCP_HTTP_HOST=0.0.0.0 \
MCP_HTTP_PORT=3000 \
MCP_ALLOWED_HOSTS="mcp.example.com" \
npm startGunakan reverse proxy/TLS sehingga endpoint publik menjadi:
https://mcp.example.com/mcpSet header autentikasi pada connector Manus:
Authorization: Bearer GENERATED_MCP_TOKENKIE_AI_API_KEY hanya disimpan di environment server dan tidak dikirim ke Manus.
Docker
docker build -t suno-v6-kie-mcp .
docker run -d --name suno-v6-kie-mcp \
-p 3000:3000 \
-e KIE_AI_API_KEY="YOUR_KIE_API_KEY" \
-e KIE_MCP_HTTP_TOKEN="GENERATED_MCP_TOKEN" \
-e MCP_TRANSPORT=http \
-e MCP_HTTP_HOST=0.0.0.0 \
-e MCP_ALLOWED_HOSTS="mcp.example.com" \
suno-v6-kie-mcpSetelah service aktif, buka Manus → Connectors → Add connector → Custom MCP, masukkan URL /mcp, tambahkan header Bearer token, lalu aktifkan connector.
Contoh penggunaan
{
"prompt": "Cinematic Indonesian pop song about chasing dreams under the city lights",
"customMode": false,
"instrumental": false,
"model": "V6"
}Untuk custom mode:
{
"prompt": "Langit malam menjadi saksi langkah kita\nTakkan menyerah mengejar cahaya",
"customMode": true,
"instrumental": false,
"model": "V6_WILD",
"style": "Indonesian cinematic pop, emotional female vocal, orchestral chorus",
"title": "Mengejar Cahaya",
"duration": 180
}Setelah menerima task_id, panggil suno_get_task_status dengan:
{ "taskId": "TASK_ID_DARI_RESPONSE" }Status yang umum: waiting, queuing, generating, success, atau fail. URL audio tersedia pada result ketika task berhasil.
Environment variables
Variable | Wajib | Keterangan |
| Ya | Bearer API key Kie.ai |
| Tidak | Default |
| Tidak |
|
| Tidak | Default |
| Tidak | Default |
| Remote | Bearer token untuk client MCP |
| Remote | Host/domain publik yang diizinkan |
Keamanan
Gunakan HTTPS pada deployment publik, token MCP acak, dan jangan commit file .env atau API key. Kie.ai mengenakan biaya/kredit sesuai akun dan model yang digunakan; server ini tidak melakukan approval billing di luar alur MCP client.
Lisensi
MIT
Available Tools
2 toolssuno_generate_musicB
Generate a song or instrumental track using Kie.ai Suno V6, V6_MINI, or V6_WILD. The returned task_id can be checked with suno_get_task_status.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | V6 | |
| style | No | Genre, mood, or production style. Required in custom mode. | |
| title | No | Track title. Required in custom mode. | |
| prompt | Yes | Lyrics in custom mode, or a music idea in non-custom mode. | |
| duration | No | Seconds; custom mode only for V6 family. | |
| personaId | No | ||
| customMode | Yes | Use advanced controls. Style and title are required when true. | |
| audioWeight | No | ||
| callBackUrl | No | ||
| styleWeight | No | ||
| vocalGender | No | ||
| instrumental | Yes | Generate without vocals. | |
| negativeTags | No | ||
| personaModel | No | ||
| weirdnessConstraint | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns a task_id for async checking, which is useful, but it does not mention that generation is asynchronous, that it may take time, that it costs credits, or that it creates a remote resource. The description is thin for a generation tool with 15 parameters.
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?
Two sentences, front-loaded with the core action and model family, and the task_id handoff is a useful addition. No wasted words, though it could have used the space to explain async behavior or key parameter relationships.
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 complex generation tool with 15 parameters, no annotations, and no output schema, the description is incomplete. It does not explain the async nature, the customMode vs non-customMode distinction, required fields in custom mode, or what the response contains beyond task_id. The sibling handoff is helpful but not sufficient.
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?
Schema description coverage is only 40%, so the description should compensate. It does not explain any parameters beyond the model family and the task_id flow. The schema covers some fields (prompt, customMode, instrumental, style, title, duration), but many parameters (audioWeight, styleWeight, vocalGender, negativeTags, personaId, personaModel, weirdnessConstraint, callBackUrl) are undocumented in both schema and description. The description adds minimal value over the schema.
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 states a specific verb ('Generate') and resource ('song or instrumental track using Kie.ai Suno V6, V6_MINI, or V6_WILD'), and it names the sibling tool for checking the returned task_id. It is clear what the tool does, though it doesn't explicitly contrast with the sibling beyond the task_id handoff.
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 implies usage by saying the returned task_id can be checked with suno_get_task_status, which gives a follow-up workflow. However, it does not state when to use this tool vs alternatives, nor does it mention that customMode requires style and title (that's only in the schema).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suno_get_task_statusA
Get the current status and generated audio URLs for a Kie.ai Suno task.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It does disclose that the call returns status and audio URLs, which implies a read-only polling operation, but it does not cover what happens for pending tasks, invalid task IDs, or whether repeat calls are safe.
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?
A single, front-loaded sentence with no filler. Every word contributes to identifying the operation, the resource, and the expected return payload.
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 simple one-parameter status retrieval tool, the description names the main return data and is largely sufficient for correct invocation. It would be more complete with explicit guidance about post-generation usage or behavior when the task is still processing, but those are not essential for a basic call.
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 schema has no property descriptions and schema description coverage is 0%, but the single parameter taskId is self-explanatory given the tool name and description. The description does not add meaning beyond the parameter name, but the gap is minor because there is only one required parameter.
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 states a specific verb ('Get'), the resource ('current status'), and the key output ('generated audio URLs') for a Kie.ai Suno task. This clearly distinguishes the tool from the sibling suno_generate_music, whose purpose is creation rather than retrieval.
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 implies the tool should be used after a task exists, since it fetches status and results for an already-created task. However, it does not explicitly say 'use after suno_generate_music' or explain when polling is appropriate, leaving the usage context to inference.
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.
2 tool updates
v1.0.0- First observed
suno_generate_music - First observed
suno_get_task_status
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one initiates music generation and returns a task ID, while the other retrieves status and generated audio URLs for that task. There is no overlap or ambiguity between them.
Both tool names follow the same suno_ prefix with a clear verb_noun pattern: generate_music and get_task_status. The naming is consistent, descriptive, and predictable.
With only two tools, the server is minimal but appropriately scoped for an asynchronous generation workflow: submit a task and check its result. It is slightly thin, but each tool serves an essential role.
The core lifecycle of submitting a generation task and polling for results is covered. Minor gaps exist, such as no cancel or list operations, but for a focused Suno generation server these are not critical.
Maintenance
Related MCP Connectors
MCP server for Suno AI music generation, lyrics, and covers
MCP server for Producer/Riffusion AI music generation
Generate Suno AI music (v5.5) from any MCP client. Async; billed only on success.
Generate AI images, video, music, and sound effects, and upscale them, from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents the ability to listen to and understand music/audio files, enabling semantic analysis, stem separation, lyrics transcription, and signal processing via tool calls.1MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables local AI models to automatically generate lyrics and style prompts, then submit songs to Suno via browser automation.MIT
- AlicenseAqualityBmaintenanceAn MCP server that generates music using your Suno account, enabling credit checking, song generation, and MP3 downloads without third-party APIs.7MIT
- FlicenseAqualityDmaintenanceMCP server for Suno music generation API that enables generating lyrics and custom songs with style tags, model selection, and automatic polling for task completion.2-