A side-by-side look at the Kavel MCP and Vicsee MCP Server MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Kavel MCP for art & culture work as a local process; choose Vicsee MCP Server for art & culture as a local process. You can also run both side by side in one mcpServers block.
VICSEE_API_KEY.vicsee_list_models, vicsee_estimate, vicsee_generate.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Art & Culture | Art & Culture |
| Quality signal | 51/100 · Good | 64/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | API key required |
| Pricing | Not declared | Paid service |
| Required env vars | None listed | VICSEE_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 2 views 0 installs 0 upvotes | 4 views 0 installs 0 upvotes |
| Tools | Not listed | 8 |
| Full listing | View Kavel MCP | View Vicsee MCP Server |
No tool names declared yet. Check the project README from the listing page.
vicsee_list_modelsList available VicSee models with their capabilities and credit costs. Call this first to find a model id to pass to vicsee_generate. Optionally filter by media type.vicsee_estimateReturn the EXACT credits a vicsee_generate call will charge, without generating anything. Takes the same arguments as vicsee_generate. The server runs the identical validation, model/resolution resolution and per-second billing (probing any reference video for its length) and stops before the charge, so `credits` is what vicsee_generate will deduct. Also returns `resolvedParams` (the settings that will actually apply, including defaults you did not send), `creditsRemaining` and `sufficient`. Call this before vicsee_generate whenever the user cares about cost, is comparing models, or is attaching a video reference (per-second billing across input + output). Invalid requests return the same error vicsee_generate would, so it also works as a free dry run.vicsee_generateCreate an AI image or video with VicSee. Generation is ASYNCHRONOUS: this returns a task `id` immediately, then poll `vicsee_get_task` with that id until status is "completed" (the result URL appears in result.url) or "failed". Use vicsee_list_models to pick a `model` and see its valid options. For image-to-video / image-to-image, pass source images in `image_urls`. For reference-to-video models (e.g. "seedance-2-5-reference-to-video"), pass references in reference_image_urls / reference_video_urls / reference_audio_urls and refer to them positionally in the prompt as @Image1, @Image2, … For native 2K output at the best value per second use the "minimax-h3-*" models (MiniMax H3, also called Hailuo 03): 4-15s, 768P/2K, always-on stereo audio, billed per second (25 credits/s at 768P, 40 at 2K). Note "minimax-h3-image-to-video" takes the first frame in image_urls[0] and an optional last frame in image_urls[1], and has NO aspect_ratio parameter — the ratio follows the frames; "minimax-h3-reference-to-video" requires at least one image OR video reference (audio alone is rejected) and accepts at most 5 reference images. For clips longer than 15 seconds use the "seedance-2-5-*" models, which generate up to 30 seconds (480p/720p only, no 1080p or 4K); the "seedance-2-0-*" models cap at 15 seconds but add 1080p and 4K. Note that supplying a video reference switches billing to per-second across input + output, so a long reference clip costs considerably more than the duration table suggests. When cost matters, call vicsee_estimate with the same arguments FIRST — it returns the exact credits this call will charge and creates nothing. IMAGE inputs (image_urls, reference_image_urls) may be a public https URL, a local file path (this server reads and base64-encodes it for you), or a base64 data URI. VIDEO/AUDIO inputs (reference_video_urls, reference_audio_urls) must be public https URLs. For video-edit models (e.g. "happyhorse-video-edit"), pass the source clip in video_url and optionally set audio_setting ("auto" or "origin"). Input images must have an aspect ratio between 0.4 and 2.5 (width÷height) and at most 36MP — wide-strip composites (e.g. 3:1) are rejected; use a 2×2 grid layout instead. On "failed" tasks, read error.key and error.message from vicsee_get_task — they state the actual reason (do not guess).vicsee_get_taskPoll a generation or upscale task by its id. IMPORTANT: finished media URLs are kept for 7 days only — result.expires_at is the exact time the URL stops working; download or re-host anything the user wants to keep. status is one of "pending" | "processing" | "queued" | "completed" | "failed". When "completed", the media URL is in result.url (videos/images) or result.songs (music). When "failed", details are in error. Poll every few seconds until completed or failed.vicsee_upscale_imageUpscale a publicly accessible image (JPEG/PNG/WebP). Asynchronous: returns a task id — poll vicsee_get_task until completed. upscale_factor defaults to "2" (max "4"). Credits are tiered by OUTPUT size (input megapixels × factor²): ≤24MP = 20, ≤48MP = 40, ≤96MP = 80; outputs above 96MP are rejected.vicsee_upscale_videoUpscale a publicly accessible video (MP4/MOV/MKV, up to 60s). Asynchronous: returns a task id — poll vicsee_get_task until completed. upscale_factor defaults to "2".vicsee_get_creditsGet the current VicSee credit balance for the configured API key.vicsee_uploadUpload a LOCAL file (image, video, or audio) from this machine and get back a public https URL. Use the returned url as an input for vicsee_generate — e.g. drop it into reference_image_urls for a reference-to-video storyboard, or image_urls for image-to-video. PREFER this over inline base64 for references: large base64 strings get truncated in tool-call output and the model rejects them. The file uploads directly to storage; only its public URL comes back.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"hanshs474-kavel-mcp": {
"command": "npx",
"args": [
"-y",
"kavel-mcp"
]
}
}
}
{
"mcpServers": {
"vicseeai-vicsee-mcp-server": {
"command": "npx",
"args": [
"-y",
"@vicsee/mcp-server"
],
"env": {
"VICSEE_API_KEY": "YOUR_VICSEE_API_KEY_HERE"
}
}
}
}