Kling AI MCP Server by useapi.net

Kling AI: 4.0, v3 and Omni video, images, avatars, lip-sync, motion control, elements, voices. Third-party, paid ($15/month), runs on your own Kling account.

Hosted MCP Server

npx add-mcp 'https://api.useapi.net/v1/kling/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Skip to main content

Kling MCP Server

October 16, 2026

Independent third-party service, see Legal

Table of contents

  1. Endpoint and authorization
  2. Setup
  3. Tools
  4. Long-running work
  5. Example prompts
  6. Limits and notes

The useapi.net Kling MCP server lets an AI assistant such as Claude Code, Cursor or VS Code Copilot use Kling AI on your own Kling accounts. It is a hosted Model Context Protocol server with 45 tools: generate video from text, images, keyframes or references with Kling 4.0, v3 and Omni, make talking avatars and motion-control videos, lip-sync, add sound and extend clips, generate and enhance images, and manage elements, voices, avatars and uploads. Each tool calls the Kling API, so the same rules and limits apply. Nothing needs to be installed or hosted.

Is there a Kling MCP server? Yes. useapi.net, a third-party service not affiliated with Kuaishou, hosts one at https://api.useapi.net/v1/kling/mcp with 45 tools for Kling 4.0, v3 and Omni video, avatars and lip-sync, on your own Kling account, nothing to install.

Prefer REST? Tutorial: How to Generate AI Video with Kling v3 via the Kling API · Code: github.com/useapi/kling-api

See all useapi.net MCP servers on Model Matrix & MCP.

Endpoint and authorization

https://api.useapi.net/v1/kling/mcp
  • Transport: Streamable HTTP.
  • Listed in the official MCP Registry as net.useapi/kling, so MCP clients and directories that read the registry can find it by that name.
  • Authorization: your useapi.net API token in the Authorization: Bearer … header, see Setup useapi.net.
  • You need at least one Kling account added with Setup Kling. Adding and removing accounts is not available over MCP: use POST /accounts or the setup page.

Setup

Replace YOUR_API_TOKEN with your useapi.net API token.

Claude Code

claude mcp add --transport http useapi-kling https://api.useapi.net/v1/kling/mcp --header "Authorization: Bearer YOUR_API_TOKEN"

Cursor

In ~/.cursor/mcp.json:

{
  "mcpServers": {
    "useapi-kling": {
      "url": "https://api.useapi.net/v1/kling/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

VS Code

In .vscode/mcp.json:

{
  "servers": {
    "useapi-kling": {
      "type": "http",
      "url": "https://api.useapi.net/v1/kling/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Windsurf and other clients

Any client that supports remote MCP servers over HTTP with custom headers works. The usual JSON shape:

{
  "mcpServers": {
    "useapi-kling": {
      "serverUrl": "https://api.useapi.net/v1/kling/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Some clients name the address field url instead of serverUrl.

Test it with curl

curl -s https://api.useapi.net/v1/kling/mcp \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'

curl -s https://api.useapi.net/v1/kling/mcp \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

The first call answers with the server’s name useapi-kling and its instructions for the assistant, the second with the 45 tools.

Tools

Generations run as tasks on one Kling account. When you don’t name the account with email, the tool picks the one with the most free job slots and every answer says which account it used. Uploaded files, elements, voices, avatars and task ids belong to one account, so pass the same email when you use them.

Videos

ToolWhat it doesMain parameters
kling_text_to_videoGenerates a video from a prompt, or from custom multi-shot prompts on kling-v3-0 and kling-v4-0.prompt, model_name, mode, duration, aspect_ratio, enable_audio, shot_N_prompt
kling_image_to_videoAnimates a start image, optionally to an end image, with Kling 4.0 keyframes in between or kling-v3-0 elements.image, image_tail, keyframe_1..9, element_1..3, prompt, model_name, mode, duration
kling_omni_videoKling Omni (o1, v3 or v4): a video from a prompt with images, elements, reference videos and voices named in it as @image_1, @element_1, @video_1, @voice_1.prompt, omni_version, image_N, element_N, video_N, voice_N, duration, mode
kling_motion_controlMakes the person in an image perform the movement of a motion video.imageUrl, motionUrl, model_name, mode
kling_avatar_videoA talking-head video from an avatar or a portrait, speaking an audio file or text.avatarId or imageUrl, audioUrl or text + speakerId, mode
kling_lipsyncMakes the face in a video speak an audio track.video, audio
kling_add_soundGenerates sound effects and ambience for a video.video
kling_extend_videoContinues a finished video by about 5 seconds. It works on kling-v1-6 videos.task_id, prompt
kling_effect_videoTurns an image into a video with one of Kling’s effects.effect, image, mode
kling_elements_videoA video combining images and elements.prompt, image_0..3, element_1..3, model_name

The parameters match POST /videos/text2video, POST /videos/image2video-frames, POST /videos/omni and the other video endpoints.

Images

ToolWhat it doesMain parameters
kling_omni_imageOmni images with up to 10 reference images and elements.prompt, omni_version, resolution, image_N, element_N, imageCount, unlimited
kling_kolors_imageKolors images, with reference images on v3 or subject, face and restyle references on older versions.prompt, version, imageCount, aspect_ratio, image_N
kling_kolors_elements_imageCombines up to 4 subjects with a scene and a style image.prompt, subjectImage1..4, sceneImage, styleImage
kling_virtual_try_onDresses a person in clothes from images.humanImage, dressInput or upperInput / lowerInput
kling_upscale_imageUpscales an image from a finished Kling image task.task_id, workId
kling_enhance_imageImproves and restores the detail of any image, to 2k or 4k.image, resolution
kling_recognize_facesFinds the faces in an image.imageReference

Tasks and files

ToolWhat it doesMain parameters
kling_get_taskReads a task and its results, and with wait: true waits for it to finish.task_id, email, wait
kling_list_tasksLists an account’s recent tasks with their results.email, contentType, pageSize
kling_list_worksLists an account’s finished results only (videos, images, audio), with paging.email, contentType, pageNum, sort
kling_list_runningLists the tasks still running and each account’s free job slots. 
kling_stop_trackingStops tracking a stuck task and frees its slot. The task keeps running at Kling.task_id
kling_delete_taskDeletes every result of a finished task.task_id, email
kling_upload_assetUploads an image, video or audio file from a public https URL or as contentBase64, and returns the Kling URL to use as an input.url or contentBase64, mimeType, email
kling_list_uploads, kling_delete_uploadsList and delete your uploaded files.email, contentType, ids
kling_get_download_urlReturns a result’s file without the Kling watermark (paid Kling plans): MP4 or MOV for a video, PNG for an image.workId, fileType

Elements, voices, avatars and accounts

ToolWhat it doesMain parameters
kling_list_elements, kling_get_element, kling_create_element, kling_delete_elementManage reusable elements: characters, props and scenes made from an image or a video.name, coverImage or video, tag, voice
kling_list_element_tags, kling_list_element_voicesList the tags and the voices an element can have.email
kling_list_voices, kling_save_voice, kling_delete_voiceList, save and delete Kling 4.0 voices for kling_omni_video v4.audioUrl, name, voiceId
kling_list_tts_voices, kling_text_to_speechList the text-to-speech voices and read text aloud.speakerId, text, speed, emotion
kling_list_avatars, kling_create_avatar, kling_delete_avatarList, create and delete avatars for kling_avatar_video.imageUrl, nickname, ttsSpeaker
kling_list_effects, kling_list_motionsList the video effects and the ready-made motion videos.email, mine
kling_list_accounts, kling_get_accountList your Kling accounts and read one account’s credit balance.email

The full input schema of every tool comes from tools/list.

Long-running work

MCP clients usually give up on a tool call after about a minute, so a tool waits up to about 50 seconds:

  • An image usually finishes in that time, and the tool returns it as an image the assistant can see.
  • A video takes a few minutes. The tool returns the task_id and email, and kling_get_task with both and wait: true picks it up. Ask the assistant to keep checking until it is done. The tool reads the task when Kling’s own estimate says it may be ready.

Clients that ask for progress notifications get one about every 10 seconds while a tool waits.

Results come back as Kling CDN links, which may carry a watermark. A finished video also comes back with its cover as an image.

Example prompts

  • “Make a 5-second video of a golden retriever running on a beach at sunset, the cheapest way.”
  • “Upload this photo and animate it: she smiles and turns her head slowly.”
  • “Make a 10-second Kling 4.0 video from these three images as keyframes.”
  • “Create an element of this character, then use it in an Omni video walking through a market.”
  • “Make a talking avatar from this portrait that says: ‘Welcome to our store.’”
  • “How many Kling credits are left on my accounts?”

Limits and notes

  • The tools use your Kling accounts and the same rules as the REST API, such as maxJobs. Everything uses the account’s Kling credits, and prices differ a lot by model and mode, see the cost calculator on the Kling API page.
  • Custom connectors on claude.ai need OAuth sign-in, which this server does not support yet. Use Claude Code or another client that can send an Authorization header.
  • A client may send up to 20 JSON-RPC requests in one batch.
  • If the client sends an MCP-Protocol-Version header, it must be one of the supported versions: 2025-06-18, 2025-03-26 or 2024-11-05.
  • Every tool call shows in your usage stats ( bot=kling) as model mcp, with the tool name as its status, or failed.

Tutorials for the Kling API v1:

{ "@context": "https://schema.org", "@type": "APIReference", "name": "Kling MCP Server: Kling 4.0 Video, Avatars and Lip-Sync, Hosted", "url": "https://useapi.net/docs/api-kling-v1/mcp", "inLanguage": "en", "isAccessibleForFree": true, "description": "Connect Claude Code, Cursor, VS Code or any MCP client to the hosted useapi.net Kling MCP server: 45 tools for Kling 4.0, v3 and Omni video, images, avatars and lip-sync.", "about": "Kling API v1", "isPartOf": { "@type": "APIReference", "name": "Kling API v1" }, "publisher": { "@type": "Organization", "name": "useapi.net", "url": "https://useapi.net", "logo": { "@type": "ImageObject", "url": "https://useapi.net/assets/brand/useapi-logo-512.png" }, "alternateName": ["useapi", "UseAPI"], "sameAs": ["https://discord.gg/w28uK3cnmF", "https://t.me/use_api", "https://github.com/useapi", "https://bsky.app/profile/useapi.net", "https://www.youtube.com/@useapi-net"] }, "documentationOf": { "@type": "WebAPI", "name": "useapi.net REST API", "documentation": "https://useapi.net/llms.txt", "termsOfService": "https://useapi.net/docs/legal" } }
{ "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://useapi.net/" }, { "@type": "ListItem", "position": 2, "name": "Kling API v1", "item": "https://useapi.net/docs/api-kling-v1" }, { "@type": "ListItem", "position": 3, "name": "MCP Server", "item": "https://useapi.net/docs/api-kling-v1/mcp" } ] }