KlingMCP
# KlingMCP
<!-- mcp-name: io.github.AceDataCloud/mcp-kling -->
[](https://pypi.org/project/mcp-kling/)
[](https://pypi.org/project/mcp-kling/)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://modelcontextprotocol.io)
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for AI video generation using [Kling](https://klingai.com/) through the [AceDataCloud API](https://platform.acedata.cloud).
Generate AI videos, extend clips, and transfer motion directly from Claude, VS Code, or any MCP-compatible client.
## Features
- **Text to Video** - Create AI-generated videos from text prompts
- **Image to Video** - Generate videos using reference start/end images
- **Video Extension** - Extend existing videos with additional content
- **Motion Transfer** - Transfer motion from a reference video to a character image
- **Multiple Models** - Support for 9 Kling models, including V3, V3 Omni, and canonical Kling O1
- **Camera Control** - Fine-grained camera movement control
- **Task Tracking** - Monitor generation progress and retrieve results
## Tool Reference
| Tool | Description |
|------|-------------|
| `kling_generate_video` | Generate AI video from a text prompt using Kling. |
| `kling_generate_video_from_image` | Generate AI video using reference images as start and/or end frames. |
| `kling_extend_video` | Extend an existing video with additional content. |
| `kling_generate_motion` | Transfer motion from a reference video to a character image. |
| `kling_get_task` | Query the status and result of a video generation task. |
| `kling_get_tasks_batch` | Query multiple video generation tasks at once. |
| `kling_list_models` | List all available Kling models for video generation. |
| `kling_list_actions` | List all available Kling API actions and corresponding tools. |
## Quick Start
### 1. Get Your API Token
1. Sign up at [AceDataCloud Platform](https://platform.acedata.cloud)
2. Go to the API documentation page
3. Click **"Acquire"** to get your API token
4. Copy the token for use below
### 2. Use the Hosted Server (Recommended)
AceDataCloud hosts a managed MCP server — **no local installation required**.
**Endpoint:** `https://kling.mcp.acedata.cloud/mcp`
All requests require a Bearer token. Use the API token from Step 1.
#### Claude.ai
Connect directly on [Claude.ai](https://claude.ai) with OAuth — **no API token needed**:
1. Go to Claude.ai **Settings → Integrations → Add More**
2. Enter the server URL: `https://kling.mcp.acedata.cloud/mcp`
3. Complete the OAuth login flow
4. Start using the tools in your conversation
#### Claude Desktop
Add to your config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"kling": {
"type": "streamable-http",
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
```
#### Cursor / Windsurf
Add to your MCP config (`.cursor/mcp.json` or `.windsurf/mcp.json`):
```json
{
"mcpServers": {
"kling": {
"type": "streamable-http",
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
```
#### VS Code (Copilot)
Add to your VS Code MCP config (`.vscode/mcp.json`):
```json
{
"servers": {
"kling": {
"type": "streamable-http",
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
```
Or install the [Ace Data Cloud MCP extension](https://marketplace.visualstudio.com/items?itemName=acedatacloud.acedatacloud-mcp) for VS Code, which registers the hosted MCP servers with one-click setup.
#### JetBrains IDEs
1. Go to **Settings → Tools → AI Assistant → Model Context Protocol (MCP)**
2. Click **Add** → **HTTP**
3. Paste:
```json
{
"mcpServers": {
"kling": {
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
```
#### Claude Code
Claude Code supports MCP servers natively:
```bash
claude mcp add kling --transport http https://kling.mcp.acedata.cloud/mcp \
-h "Authorization: Bearer YOUR_API_TOKEN"
```
Or add to your project's `.mcp.json`:
```json
{
"mcpServers": {
"kling": {
"type": "streamable-http",
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
```
#### Cline
Add to Cline's MCP settings (`.cline/mcp_settings.json`):
```json
{
"mcpServers": {
"kling": {
"type": "streamable-http",
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
```
#### Amazon Q Developer
Add to your MCP configuration:
```json
{
"mcpServers": {
"kling": {
"type": "streamable-http",
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
```
#### Roo Code
Add to Roo Code MCP settings:
```json
{
"mcpServers": {
"kling": {
"type": "streamable-http",
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
```
#### Continue.dev
Add to `.continue/config.yaml`:
```yaml
mcpServers:
- name: kling
type: streamable-http
url: https://kling.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"
```
#### Zed
Add to Zed's settings (`~/.config/zed/settings.json`):
```json
{
"language_models": {
"mcp_servers": {
"kling": {
"url": "https://kling.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}
```
#### cURL Test
```bash
# Health check (no auth required)
curl https://kling.mcp.acedata.cloud/health
# MCP initialize
curl -X POST https://kling.mcp.acedata.cloud/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
```
### 3. Or Run Locally (Alternative)
If you prefer to run the server on your own machine:
```bash
# Install from PyPI
pip install mcp-kling
# or
uvx mcp-kling
# Set your API token
export ACEDATACLOUD_API_TOKEN="your_token_here"
# Run (stdio mode for Claude Desktop / local clients)
mcp-kling
# Run (HTTP mode for remote access)
mcp-kling --transport http --port 8000
```
#### Claude Desktop (Local)
```json
{
"mcpServers": {
"kling": {
"command": "uvx",
"args": ["mcp-kling"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}
```
#### Docker (Self-Hosting)
```bash
docker pull ghcr.io/acedatacloud/mcp-kling:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-kling:latest
```
Clients connect with their own Bearer token — the server extracts the token from each request's `Authorization` header.
## Available Models
| Model | Description | Use Case |
| ------------------ | -------------------- | ----------------------------------- |
| `kling-v1` | First generation | Basic video generation |
| `kling-v1-6` | V1 extended | Improved quality over v1 |
| `kling-v2-master` | V2 master (default) | High-quality, balanced performance |
| `kling-v2-1-master`| V2.1 master | Enhanced quality and consistency |
| `kling-v2-5-turbo` | V2.5 turbo | Faster generation, good quality |
| `kling-o1` | Kling O1 | Omni image/video reference generation |
## Configuration
### Environment Variables
| Variable | Description | Default |
| --------------------------- | --------------------------- | --------------------------- |
| `ACEDATACLOUD_API_TOKEN` | API token from AceDataCloud | **Required** |
| `ACEDATACLOUD_API_BASE_URL` | API base URL | `https://api.acedata.cloud` |
| `KLING_DEFAULT_MODEL` | Default video model | `kling-v2-master` |
| `KLING_DEFAULT_MODE` | Default generation mode | `std` |
| `KLING_DEFAULT_ASPECT_RATIO`| Default aspect ratio | `16:9` |
| `KLING_REQUEST_TIMEOUT` | Request timeout in seconds | `300` |
| `LOG_LEVEL` | Logging level | `INFO` |
### Command Line Options
```bash
mcp-kling --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)
```
## Development
### Setup Development Environment
```bash
# Clone repository
git clone https://github.com/AceDataCloud/KlingMCP.git
cd KlingMCP
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
# Install with dev dependencies
pip install -e ".[dev,test]"
```
### Run Tests
```bash
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integration
```
### Code Quality
```bash
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core tools
```
### Build & Publish
```bash
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*
```
## Project Structure
```
KlingMCP/
├── core/ # Core modules
│ ├── __init__.py
│ ├── client.py # HTTP client for Kling API
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ ├── oauth.py # OAuth 2.1 provider
│ ├── server.py # MCP server initialization
│ ├── types.py # Type definitions
│ └── utils.py # Utility functions
├── tools/ # MCP tool definitions
│ ├── __init__.py
│ ├── video_tools.py # Video generation tools
│ ├── motion_tools.py # Motion transfer tools
│ ├── task_tools.py # Task query tools
│ └── info_tools.py # Information tools
├── prompts/ # MCP prompts
│ └── __init__.py # Prompt templates
├── tests/ # Test suite
│ ├── conftest.py
│ └── __init__.py
├── deploy/ # Deployment configs
│ └── production/
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── .env.example # Environment template
├── CHANGELOG.md
├── Dockerfile # Docker image for HTTP mode
├── docker-compose.yaml # Docker Compose config
├── LICENSE
├── main.py # Entry point
├── pyproject.toml # Project configuration
└── README.md
```
## API Reference
This server wraps the AceDataCloud Kling API:
- Kling Videos API - Video generation (text2video, image2video, extend)
- Kling Motion API - Motion transfer
- Kling Tasks API - Task queries
## Contributing
Contributions are welcome! Please:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing`)
5. Open a Pull Request
## Documentation
<!-- canonical-documentation -->
[Documentation](https://platform.acedata.cloud/documents/kling)
## License
MIT License - see [LICENSE](LICENSE) for details.
## Links
- [AceDataCloud Platform](https://platform.acedata.cloud)
- [Kling AI](https://klingai.com/)
- [Model Context Protocol](https://modelcontextprotocol.io)
- [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk)
---
Made with love by [AceDataCloud](https://platform.acedata.cloud)
TDQS
Scored across 10 tools
Each tool targets a distinct capability: text-to-video, image-to-video, lip sync, talking photo, motion transfer, extension, task querying, and metadata listing. The purposes are clearly separated with explicit guidance on when to use each variant, leaving no ambiguity.
All tool names follow the kling_<action>_<object> pattern consistently using snake_case. Verbs like generate, list, get, extend, and noun phrases like lip_sync and talking_photo are uniformly formatted, making naming predictable and coherent.
With 10 tools, the server covers the core video generation lifecycle and specialized features without bloat. The count is well-scoped for a focused MCP server, each tool earning its place.
The tool set covers the main workflows: generation from text/image, motion transfer, lip sync, talking photos, video extension, and task monitoring. Minor gaps exist such as no explicit cancel/delete task endpoint, but agents can work around this for typical generation scenarios.