MCP server for Klamdo — AI content generation plus agentic package orchestration for coaches and creator-founders. Generate media, create packages, and hand structured deliverables to downstream AI agents.
Klamdo MCP demonstrates solid tool design with complete schemas, clear descriptions, and proper tool annotations. All 10 tools have explicit input schemas with typed properties and descriptions. Tool names follow verb_noun convention (generate_image, check_job, list_packages). Descriptions are substantive (100-200 chars typical), explaining WHAT the tool does and WHEN to use it. Tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) are present on all tools. However, output schemas are not documented, LLMs cannot see what fields to expect from responses. Error handling is minimal: the klamdo() helper throws McpError on 401/5xx but provides no recovery guidance or actionable next steps. Parameter descriptions lack constraint details (e.g., 'limit' says 'max: 50' but no min specified; 'imageUrl' says 'Max 10MB' but no format validation hint). Some parameters are missing descriptions entirely (e.g., 'uploadedAssetIds' in create_package has a description, but 'options' object properties are undocumented). The server accepts API keys as environment variables (good), but the HTTP variant (src/http.ts) is not shown, cannot verify per-request secret handling.
Check the status of a Klamdo generation job. Returns status and download URLs when complete.
Create a Klamdo agentic package job from a business prompt and get back a package ID plus manifest URL.
Generate a 4K identity-locked image using the user's reference photo on Klamdo. Returns a job ID — use check_job to poll for the result. Costs 3 credits.
Generate a 5-second vertical identity-locked video on Klamdo. Requires a startFrameAssetId from upload_start_frame. If omitted, falls back to image generation. Costs 6 credits.
Get current Klamdo account status: credit balance, plan tier, and free sample eligibility.
Get the status, progress, and deliverable counts for a Klamdo package job.
Output schemas not documented. LLMs cannot see what fields responses contain (e.g., what does check_job return? Does it include download_url, status, progress_percent?). This forces agents to guess field names and risks failed downstream tool calls.
Error handling lacks recovery guidance. The klamdo() helper throws McpError on 401 with a helpful message ('Get your key at https://klamdo.app/profile'), but other errors (5xx, rate limits, job failures) return generic 'Klamdo API error' with no actionable next step. Agents cannot self-correct.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Fetch the structured package manifest for downstream agent execution.
List recent Klamdo generation jobs for this account, ordered newest first.
List Klamdo's available agentic packages, including expected deliverables and required plan tier.
Upload a start-frame image for video generation. Provide a public HTTPS image URL — Klamdo fetches it, stores it, and returns an assetId you pass to generate_video.
Parameter constraints incomplete. 'limit' in list_jobs says 'max: 50' but no minimum specified. 'imageUrl' says 'Max 10MB' but no format validation hint (must be HTTPS, must be publicly accessible). 'aspectRatio' enums differ between tools (generate_image: 1:1/16:9/9:16 vs create_package: 16:9/9:16/1:1), inconsistent ordering confuses LLMs.
Nested object properties undocumented. create_package has an 'options' object with properties 'useReferencePack' and 'skipVoiceover', neither has a description. LLMs cannot infer what these flags do or when to set them.
No pagination guidance in list_jobs/list_packages. Both accept 'limit' but no 'offset', 'cursor', or 'next_token' parameter. If results exceed limit, agents cannot fetch the next page. Descriptions should clarify pagination strategy.