kavel-mcp
Discover Kavel's AI photo/video generators, get tuned prompts, and open the right tool on kavel.ai.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"kavel-mcp": {
"command": "npx",
"args": [
"kavel-mcp"
]
}
}
}Runnable packages
0.1.1stdioRemote endpoints
https://www.kavel.ai/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢find_kavel_tool(query, hub)
Search Kavel's AI photo and video effects (hairstyle changer, figurine, pet portrait, yearbook photo, trend dance videos and more). Returns each tool's slug, what it needs (a photo or just text) and its page on kavel.ai. Image tools can be run here with generate_kavel_image; video tools open on kavel.ai.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "What the user wants, e.g. 'make my dog look royal' or 'dancing video'.",
"type": "string"
},
"hub": {
"description": "Only image or only video tools.",
"type": "string",
"enum": [
"image",
"video"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡generate_kavel_image(prompt, tool, photos, image_urls, aspect_ratio)
Create an image from a prompt, or edit the user's photo, on their Kavel account. Pass `tool` (a slug from find_kavel_tool) to apply that effect's tuned recipe, with `prompt` holding the user's own details. Photo tools need a photo: the user's attachment in `photos`, or a public link in `image_urls`. Spends credits from the linked Kavel account. Usually returns the image within a minute; otherwise returns a task_id for check_kavel_generation.
Input Schema
{
"type": "object",
"properties": {
"prompt": {
"description": "The user's description, or their extra details when a tool is given.",
"type": "string",
"maxLength": 2000
},
"tool": {
"description": "Optional image tool slug from find_kavel_tool.",
"type": "string"
},
"photos": {
"description": "Photos the user attached in the chat. Required by photo tools.",
"maxItems": 4,
"type": "array",
"items": {
"type": "object",
"properties": {
"download_url": {
"type": "string",
"format": "uri"
},
"file_id": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"file_name": {
"type": "string"
}
},
"required": [
"download_url",
"file_id"
]
}
},
"image_urls": {
"description": "Photos to edit given as public http(s) links, when not attached.",
"maxItems": 4,
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"aspect_ratio": {
"description": "Output image shape. Defaults to 1:1.",
"type": "string",
"enum": [
"1:1",
"16:9",
"9:16",
"4:3",
"3:4"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_kavel_generation(task_id)
Get the result of a Kavel generation that was still rendering.
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"description": "task_id from generate_kavel_image.",
"type": "string"
}
},
"required": [
"task_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_kavel_balance
How many credits are left on the linked Kavel account.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence