{"name":"dev.leclap/video","slug":"leclap-video","title":"LeClap","description":"Compose and render video from one JSON template. Deterministic, runs locally, no generative model.","url":"https://mcp.market/server/leclap-video","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"ai","tags":["ai","media"],"presence":{"score":40,"stars":24,"forks":1,"downloads_week":52,"last_push_at":"2026-08-26T16:35:25.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/heristop/leclap","website":"https://leclap.dev","version":"0.3.4","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@leclap/mcp","version":"0.3.4","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Directory rendered videos are written to. Defaults to ~/.leclap/renders.","format":"filepath","name":"LECLAP_MCP_OUTPUT_DIR"},{"description":"Allowlisted directory the server may read source media from. Defaults to ~/.leclap/media.","format":"filepath","name":"LECLAP_MCP_MEDIA_DIR"},{"description":"Per-render timeout in milliseconds. Defaults to 600000.","format":"number","name":"LECLAP_MCP_RENDER_TIMEOUT_MS"},{"description":"Opt in to the Remotion clip renderer, which executes local JavaScript. Off by default.","format":"boolean","name":"LECLAP_MCP_ALLOW_REMOTION"},{"description":"Path to a Remotion entry point used by render_remotion_clip when it is enabled.","format":"filepath","name":"LECLAP_MCP_REMOTION_ENTRY"}]}],"tools":[{"name":"compose_video","description":"Render a video from an inline template descriptor (`template`). Supply user clips via userVideoPaths (absolute paths under the configured media dir) for each project_video section, optional form `fields`, and an optional `locale`. Renders in a forked worker and returns the output mp4 path plus duration/codec metadata.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_template_schema","description":"Return the JSON Schema for a template descriptor plus a short authoring guide. Use this to understand the full set of fields when building or editing a template for compose_video.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ping","description":"Health check — returns a fixed readiness string.","write_action":false,"price_micros":0,"input_schema":null},{"name":"probe_media","description":"Inspect a local media file (absolute path under the configured media dir) and return its duration, video/audio codecs, audio sample rate, and byte size. Probes via ffprobe directly so it never writes to stdout.","write_action":false,"price_micros":0,"input_schema":null},{"name":"render_remotion_clip","description":"Render a composition from YOUR Remotion project to an mp4 (real motion graphics an FFmpeg filtergraph cannot express). Point it at your Remotion entry (`entry`, or a prebuilt `serveUrl`, or the configured --remotion-entry) and a `compositionId`, with optional `inputProps`. Returns the clip path; feed it to compose_video as a `project_video` clip (see sectionHint) so FFmpeg composites it in front o","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_template","description":"Dry-run an inline `template` descriptor against the core schema WITHOUT rendering — returns instantly. Get back whether it is valid plus what compose_video will require: the project_video clip sections and the form fields. Use this to iterate on a descriptor in milliseconds before the slower compose_video render.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":91,"grade":"A","scanned_at":"2026-09-21T13:05:34.446Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-21T13:05:34.484Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 26 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@leclap/mcp","version":"0.3.4","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-08-24T17:56:12.710Z","repositoryUrl":"git+https://github.com/heristop/leclap.git","weeklyDownloads":52}],"repo":{"found":true,"owner":"heristop","repo":"leclap","archived":false,"pushedAt":"2026-08-26T16:35:25Z","stars":24,"forks":1,"openIssues":3,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/206870?v=4","ownerCreatedAt":"2010-02-19T17:10:07Z","license":"MIT"},"icon":{"url":"https://leclap.dev/favicon.svg","source":"site"},"presence":{"stars":24,"forks":1,"downloadsWeek":52,"license":"MIT","lastPushAt":"2026-08-26T16:35:25.000Z","score":40}}}},"grade_history":[],"reviews":[]}