Kling MCP Server

October 16, 2026

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 44 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.

Endpoint and authorization

https://api.useapi.net/v1/kling/mcp
  • Transport: Streamable HTTP.
  • 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 44 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

Tool What it does Main parameters
kling_text_to_video Generates 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_video Animates 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_video Kling 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_control Makes the person in an image perform the movement of a motion video. imageUrl, motionUrl, model_name, mode
kling_avatar_video A talking-head video from an avatar or a portrait, speaking an audio file or text. avatarId or imageUrl, audioUrl or text + speakerId, mode
kling_lipsync Makes the face in a video speak an audio track. video, audio
kling_add_sound Generates sound effects and ambience for a video. video
kling_extend_video Continues a finished video by about 5 seconds. It works on kling-v1-6 videos. task_id, prompt
kling_effect_video Turns an image into a video with one of Kling’s effects. effect, image, mode
kling_elements_video A 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

Tool What it does Main parameters
kling_omni_image Omni images with up to 10 reference images and elements. prompt, omni_version, resolution, image_N, element_N, imageCount
kling_kolors_image Kolors 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_image Combines up to 4 subjects with a scene and a style image. prompt, subjectImage1..4, sceneImage, styleImage
kling_virtual_try_on Dresses a person in clothes from images. humanImage, dressInput or upperInput / lowerInput
kling_upscale_image Upscales an image from a finished Kling image task. task_id, workId
kling_enhance_image Improves and restores the detail of any image, to 2k or 4k. image, resolution
kling_recognize_faces Finds the faces in an image. imageReference

Tasks and files

Tool What it does Main parameters
kling_get_task Reads a task and its results, and with wait: true waits for it to finish. task_id, email, wait
kling_list_tasks Lists an account’s recent tasks with their results. email, contentType, pageSize
kling_list_running Lists the tasks still running and each account’s free job slots.  
kling_stop_tracking Stops tracking a stuck task and frees its slot. The task keeps running at Kling. task_id
kling_delete_task Deletes every result of a finished task. task_id, email
kling_upload_asset Uploads 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_uploads List and delete your uploaded files. email, contentType, ids
kling_get_download_url Returns a result’s file without the Kling watermark (paid Kling plans). workId, fileType

Elements, voices, avatars and accounts

Tool What it does Main parameters
kling_list_elements, kling_get_element, kling_create_element, kling_delete_element Manage 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_voices List the tags and the voices an element can have. email
kling_list_voices, kling_save_voice, kling_delete_voice List, save and delete Kling 4.0 voices for kling_omni_video v4. audioUrl, name, voiceId
kling_list_tts_voices, kling_text_to_speech List the text-to-speech voices and read text aloud. speakerId, text, speed, emotion
kling_list_avatars, kling_create_avatar, kling_delete_avatar List, create and delete avatars for kling_avatar_video. imageUrl, nickname, ttsSpeaker
kling_list_effects, kling_list_motions List the video effects and the ready-made motion videos. email, mine
kling_list_accounts, kling_get_account List 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.