# Libi MCP server

Agent View of the PolicyLayer registry record for Libi: identity, probed posture, risk grade, and all 215 tools classified. HTML page: https://policylayer.com/tools/libi

## Facts

- Server id: `Nagellabs/libi`
- Homepage: https://github.com/Nagellabs/libi
- Registry record: grade F, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 215
- Tool categories present: Destructive, Execute, Read, Write
- Tags: libi, admin, automation
- Record last modified: 2026-08-19T11:05:56.006Z

## Tools (215)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `libi.analysis_remove_step` | Destructive | Critical | https://policylayer.com/tools/libi/libi.analysis-remove-step.md |
| `libi.audio_remove_clip` | Destructive | Critical | https://policylayer.com/tools/libi/libi.audio-remove-clip.md |
| `libi.clear_layer_effect` | Destructive | Critical | https://policylayer.com/tools/libi/libi.clear-layer-effect.md |
| `libi.delete_asset_folder` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-asset-folder.md |
| `libi.delete_caption_style` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-caption-style.md |
| `libi.delete_character` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-character.md |
| `libi.delete_clip` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-clip.md |
| `libi.delete_file` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-file.md |
| `libi.delete_folder` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-folder.md |
| `libi.delete_item` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-item.md |
| `libi.delete_keyframe` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-keyframe.md |
| `libi.delete_overlay_preset` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-overlay-preset.md |
| `libi.delete_piece` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-piece.md |
| `libi.delete_scene` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-scene.md |
| `libi.delete_track` | Destructive | Critical | https://policylayer.com/tools/libi/libi.delete-track.md |
| `libi.discard_draft` | Destructive | Critical | https://policylayer.com/tools/libi/libi.discard-draft.md |
| `libi.drop_proxies` | Destructive | Critical | https://policylayer.com/tools/libi/libi.drop-proxies.md |
| `libi.invalidate_model_schema_cache` | Destructive | Critical | https://policylayer.com/tools/libi/libi.invalidate-model-schema-cache.md |
| `libi.remove_effect` | Destructive | Critical | https://policylayer.com/tools/libi/libi.remove-effect.md |
| `libi.remove_mcp_server` | Destructive | Critical | https://policylayer.com/tools/libi/libi.remove-mcp-server.md |
| `libi.remove_overlay` | Destructive | Critical | https://policylayer.com/tools/libi/libi.remove-overlay.md |
| `libi.remove_skill` | Destructive | Critical | https://policylayer.com/tools/libi/libi.remove-skill.md |
| `libi.remove_skill_prompt` | Destructive | Critical | https://policylayer.com/tools/libi/libi.remove-skill-prompt.md |
| `libi.restore_snapshot` | Destructive | Critical | https://policylayer.com/tools/libi/libi.restore-snapshot.md |
| `compose_music` | Execute | High | https://policylayer.com/tools/libi/compose-music.md |
| `isolate_audio` | Execute | High | https://policylayer.com/tools/libi/isolate-audio.md |
| `libi.analysis_extract_audio` | Execute | High | https://policylayer.com/tools/libi/libi.analysis-extract-audio.md |
| `libi.analysis_transcribe_audio` | Execute | High | https://policylayer.com/tools/libi/libi.analysis-transcribe-audio.md |
| `libi.cancel_job` | Execute | High | https://policylayer.com/tools/libi/libi.cancel-job.md |
| `libi.compute_object_track` | Execute | High | https://policylayer.com/tools/libi/libi.compute-object-track.md |
| `libi.compute_track_segment` | Execute | High | https://policylayer.com/tools/libi/libi.compute-track-segment.md |
| `libi.create_scene` | Execute | High | https://policylayer.com/tools/libi/libi.create-scene.md |
| `libi.dev_slow_job` | Execute | High | https://policylayer.com/tools/libi/libi.dev-slow-job.md |
| `libi.export_video` | Execute | High | https://policylayer.com/tools/libi/libi.export-video.md |
| `libi.highlight_effect` | Execute | High | https://policylayer.com/tools/libi/libi.highlight-effect.md |
| `libi.highlight_property` | Execute | High | https://policylayer.com/tools/libi/libi.highlight-property.md |
| `libi.install_effect_from_git` | Execute | High | https://policylayer.com/tools/libi/libi.install-effect-from-git.md |
| `libi.list_identity_candidates` | Execute | High | https://policylayer.com/tools/libi/libi.list-identity-candidates.md |
| `libi.music_install_analysis_deps` | Execute | High | https://policylayer.com/tools/libi/libi.music-install-analysis-deps.md |
| `libi.music_profile` | Execute | High | https://policylayer.com/tools/libi/libi.music-profile.md |
| `libi.override_instructions` | Execute | High | https://policylayer.com/tools/libi/libi.override-instructions.md |
| `libi.regenerate_proxy` | Execute | High | https://policylayer.com/tools/libi/libi.regenerate-proxy.md |
| `libi.remove_background` | Execute | High | https://policylayer.com/tools/libi/libi.remove-background.md |
| `libi.render_overlay_frames` | Execute | High | https://policylayer.com/tools/libi/libi.render-overlay-frames.md |
| `libi.restart_acp_session` | Execute | High | https://policylayer.com/tools/libi/libi.restart-acp-session.md |
| `libi.restart_mcp_server` | Execute | High | https://policylayer.com/tools/libi/libi.restart-mcp-server.md |
| `libi.retry_mcp_server` | Execute | High | https://policylayer.com/tools/libi/libi.retry-mcp-server.md |
| `libi.show_mcp_settings` | Execute | High | https://policylayer.com/tools/libi/libi.show-mcp-settings.md |
| `libi.show_preview` | Execute | High | https://policylayer.com/tools/libi/libi.show-preview.md |
| `libi.sleep` | Execute | High | https://policylayer.com/tools/libi/libi.sleep.md |
| `libi.verify_tracked_overlay` | Execute | High | https://policylayer.com/tools/libi/libi.verify-tracked-overlay.md |
| `run_model` | Execute | High | https://policylayer.com/tools/libi/run-model.md |
| `submit_job` | Execute | High | https://policylayer.com/tools/libi/submit-job.md |
| `text_to_sound_effects` | Execute | High | https://policylayer.com/tools/libi/text-to-sound-effects.md |
| `text_to_speech` | Execute | High | https://policylayer.com/tools/libi/text-to-speech.md |
| `voice_clone` | Execute | High | https://policylayer.com/tools/libi/voice-clone.md |
| `libi.compute_object_track_providers` | Financial | Critical | https://policylayer.com/tools/libi/libi.compute-object-track-providers.md |
| `libi.extra_analysis_model` | Financial | Critical | https://policylayer.com/tools/libi/libi.extra-analysis-model.md |
| `libi.ground_target` | Other | Low | https://policylayer.com/tools/libi/libi.ground-target.md |
| `libi.pick_candidate` | Other | Low | https://policylayer.com/tools/libi/libi.pick-candidate.md |
| `check_job` | Read | Low | https://policylayer.com/tools/libi/check-job.md |
| `get_job_result` | Read | Low | https://policylayer.com/tools/libi/get-job-result.md |
| `get_model_schema` | Read | Low | https://policylayer.com/tools/libi/get-model-schema.md |
| `get_pricing` | Read | Low | https://policylayer.com/tools/libi/get-pricing.md |
| `libi.analysis_extract_frames` | Read | Low | https://policylayer.com/tools/libi/libi.analysis-extract-frames.md |
| `libi.analysis_get` | Read | Low | https://policylayer.com/tools/libi/libi.analysis-get.md |
| `libi.analysis_get_audio_chunks` | Read | Low | https://policylayer.com/tools/libi/libi.analysis-get-audio-chunks.md |
| `libi.analysis_search_frames` | Read | Low | https://policylayer.com/tools/libi/libi.analysis-search-frames.md |
| `libi.analysis_search_transcript` | Read | Low | https://policylayer.com/tools/libi/libi.analysis-search-transcript.md |
| `libi.get_character` | Read | Low | https://policylayer.com/tools/libi/libi.get-character.md |
| `libi.get_composition` | Read | Low | https://policylayer.com/tools/libi/libi.get-composition.md |
| `libi.get_item` | Read | Low | https://policylayer.com/tools/libi/libi.get-item.md |
| `libi.get_job_status` | Read | Low | https://policylayer.com/tools/libi/libi.get-job-status.md |
| `libi.get_model_schema_cache` | Read | Low | https://policylayer.com/tools/libi/libi.get-model-schema-cache.md |
| `libi.get_overlays` | Read | Low | https://policylayer.com/tools/libi/libi.get-overlays.md |
| `libi.get_version` | Read | Low | https://policylayer.com/tools/libi/libi.get-version.md |
| `libi.hide_storyboard_take` | Read | Low | https://policylayer.com/tools/libi/libi.hide-storyboard-take.md |
| `libi.list_assets` | Read | Low | https://policylayer.com/tools/libi/libi.list-assets.md |
| `libi.list_caption_styles` | Read | Low | https://policylayer.com/tools/libi/libi.list-caption-styles.md |
| `libi.list_characters` | Read | Low | https://policylayer.com/tools/libi/libi.list-characters.md |
| `libi.list_effect_packages` | Read | Low | https://policylayer.com/tools/libi/libi.list-effect-packages.md |
| `libi.list_files` | Read | Low | https://policylayer.com/tools/libi/libi.list-files.md |
| `libi.list_folders` | Read | Low | https://policylayer.com/tools/libi/libi.list-folders.md |
| `libi.list_items` | Read | Low | https://policylayer.com/tools/libi/libi.list-items.md |
| `libi.list_keyframes` | Read | Low | https://policylayer.com/tools/libi/libi.list-keyframes.md |
| `libi.list_overlay_presets` | Read | Low | https://policylayer.com/tools/libi/libi.list-overlay-presets.md |
| `libi.list_pieces` | Read | Low | https://policylayer.com/tools/libi/libi.list-pieces.md |
| `libi.list_skill_prompts` | Read | Low | https://policylayer.com/tools/libi/libi.list-skill-prompts.md |
| `libi.list_track_segments` | Read | Low | https://policylayer.com/tools/libi/libi.list-track-segments.md |
| `libi.list_tracks` | Read | Low | https://policylayer.com/tools/libi/libi.list-tracks.md |
| `libi.music_detect_beats` | Read | Low | https://policylayer.com/tools/libi/libi.music-detect-beats.md |
| `libi.music_download_model` | Read | Low | https://policylayer.com/tools/libi/libi.music-download-model.md |
| `libi.music_list_styles` | Read | Low | https://policylayer.com/tools/libi/libi.music-list-styles.md |
| `libi.select_storyboard_take` | Read | Low | https://policylayer.com/tools/libi/libi.select-storyboard-take.md |
| `libi.show_api_config` | Read | Low | https://policylayer.com/tools/libi/libi.show-api-config.md |
| `libi.show_piece` | Read | Low | https://policylayer.com/tools/libi/libi.show-piece.md |
| `libi.storyboard_get` | Read | Low | https://policylayer.com/tools/libi/libi.storyboard-get.md |
| `libi.tts_download_model` | Read | Low | https://policylayer.com/tools/libi/libi.tts-download-model.md |
| `libi.tts_list_voices` | Read | Low | https://policylayer.com/tools/libi/libi.tts-list-voices.md |
| `libi.update_dep_status` | Read | Low | https://policylayer.com/tools/libi/libi.update-dep-status.md |
| `libi.whisper_download_model` | Read | Low | https://policylayer.com/tools/libi/libi.whisper-download-model.md |
| `libi.whisper_list_models` | Read | Low | https://policylayer.com/tools/libi/libi.whisper-list-models.md |
| `search_docs` | Read | Low | https://policylayer.com/tools/libi/search-docs.md |
| `libi.add_effect` | Write | Medium | https://policylayer.com/tools/libi/libi.add-effect.md |
| `libi.add_keyframe` | Write | Medium | https://policylayer.com/tools/libi/libi.add-keyframe.md |
| `libi.add_overlay` | Write | Medium | https://policylayer.com/tools/libi/libi.add-overlay.md |
| `libi.add_skill` | Write | Medium | https://policylayer.com/tools/libi/libi.add-skill.md |
| `libi.add_skill_prompt` | Write | Medium | https://policylayer.com/tools/libi/libi.add-skill-prompt.md |
| `libi.add_storyboard_card` | Write | Medium | https://policylayer.com/tools/libi/libi.add-storyboard-card.md |
| `libi.add_tracked_overlay` | Write | Medium | https://policylayer.com/tools/libi/libi.add-tracked-overlay.md |
| `libi.analysis_chunk_audio` | Write | Medium | https://policylayer.com/tools/libi/libi.analysis-chunk-audio.md |
| `libi.analysis_mark_step_failed` | Write | Medium | https://policylayer.com/tools/libi/libi.analysis-mark-step-failed.md |
| `libi.analysis_save_audio_chunk` | Write | Medium | https://policylayer.com/tools/libi/libi.analysis-save-audio-chunk.md |
| `libi.analysis_save_audio_chunk_from_file` | Write | Medium | https://policylayer.com/tools/libi/libi.analysis-save-audio-chunk-from-file.md |
| `libi.analysis_save_frames` | Write | Medium | https://policylayer.com/tools/libi/libi.analysis-save-frames.md |
| `libi.analysis_save_summary` | Write | Medium | https://policylayer.com/tools/libi/libi.analysis-save-summary.md |
| `libi.analysis_update_summary_custom` | Write | Medium | https://policylayer.com/tools/libi/libi.analysis-update-summary-custom.md |
| `libi.apply_layer_effect` | Write | Medium | https://policylayer.com/tools/libi/libi.apply-layer-effect.md |
| `libi.apply_overlay_preset` | Write | Medium | https://policylayer.com/tools/libi/libi.apply-overlay-preset.md |
| `libi.approve_storyboard_stage` | Write | Medium | https://policylayer.com/tools/libi/libi.approve-storyboard-stage.md |
| `libi.attach_storyboard_clip` | Write | Medium | https://policylayer.com/tools/libi/libi.attach-storyboard-clip.md |
| `libi.attach_storyboard_keyframe` | Write | Medium | https://policylayer.com/tools/libi/libi.attach-storyboard-keyframe.md |
| `libi.audio_add_clip` | Write | Medium | https://policylayer.com/tools/libi/libi.audio-add-clip.md |
| `libi.audio_duck_disable` | Write | Medium | https://policylayer.com/tools/libi/libi.audio-duck-disable.md |
| `libi.audio_duck_enable` | Write | Medium | https://policylayer.com/tools/libi/libi.audio-duck-enable.md |
| `libi.audio_duck_update` | Write | Medium | https://policylayer.com/tools/libi/libi.audio-duck-update.md |
| `libi.audio_relink_overlay` | Write | Medium | https://policylayer.com/tools/libi/libi.audio-relink-overlay.md |
| `libi.audio_split` | Write | Medium | https://policylayer.com/tools/libi/libi.audio-split.md |
| `libi.audio_unlink` | Write | Medium | https://policylayer.com/tools/libi/libi.audio-unlink.md |
| `libi.audio_update_clip` | Write | Medium | https://policylayer.com/tools/libi/libi.audio-update-clip.md |
| `libi.commit_draft` | Write | Medium | https://policylayer.com/tools/libi/libi.commit-draft.md |
| `libi.compare_states` | Write | Medium | https://policylayer.com/tools/libi/libi.compare-states.md |
| `libi.concat_videos` | Write | Medium | https://policylayer.com/tools/libi/libi.concat-videos.md |
| `libi.create_asset_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.create-asset-folder.md |
| `libi.create_caption_style` | Write | Medium | https://policylayer.com/tools/libi/libi.create-caption-style.md |
| `libi.create_character` | Write | Medium | https://policylayer.com/tools/libi/libi.create-character.md |
| `libi.create_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.create-folder.md |
| `libi.create_item` | Write | Medium | https://policylayer.com/tools/libi/libi.create-item.md |
| `libi.create_piece` | Write | Medium | https://policylayer.com/tools/libi/libi.create-piece.md |
| `libi.diagnose_mcp` | Write | Medium | https://policylayer.com/tools/libi/libi.diagnose-mcp.md |
| `libi.diff_skill_override` | Write | Medium | https://policylayer.com/tools/libi/libi.diff-skill-override.md |
| `libi.duplicate_clip` | Write | Medium | https://policylayer.com/tools/libi/libi.duplicate-clip.md |
| `libi.duplicate_file` | Write | Medium | https://policylayer.com/tools/libi/libi.duplicate-file.md |
| `libi.duplicate_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.duplicate-folder.md |
| `libi.duplicate_piece` | Write | Medium | https://policylayer.com/tools/libi/libi.duplicate-piece.md |
| `libi.edit_storyboard_card` | Write | Medium | https://policylayer.com/tools/libi/libi.edit-storyboard-card.md |
| `libi.extract_audio` | Write | Medium | https://policylayer.com/tools/libi/libi.extract-audio.md |
| `libi.fork_skill` | Write | Medium | https://policylayer.com/tools/libi/libi.fork-skill.md |
| `libi.generate_captions` | Write | Medium | https://policylayer.com/tools/libi/libi.generate-captions.md |
| `libi.generate_music` | Write | Medium | https://policylayer.com/tools/libi/libi.generate-music.md |
| `libi.generate_speech` | Write | Medium | https://policylayer.com/tools/libi/libi.generate-speech.md |
| `libi.generate_thumbnails` | Write | Medium | https://policylayer.com/tools/libi/libi.generate-thumbnails.md |
| `libi.get_install_plan` | Write | Medium | https://policylayer.com/tools/libi/libi.get-install-plan.md |
| `libi.get_piece_state` | Write | Medium | https://policylayer.com/tools/libi/libi.get-piece-state.md |
| `libi.import_remote_files` | Write | Medium | https://policylayer.com/tools/libi/libi.import-remote-files.md |
| `libi.link_character_to_asset` | Write | Medium | https://policylayer.com/tools/libi/libi.link-character-to-asset.md |
| `libi.link_item_to_asset` | Write | Medium | https://policylayer.com/tools/libi/libi.link-item-to-asset.md |
| `libi.list_bundled_mcps` | Write | Medium | https://policylayer.com/tools/libi/libi.list-bundled-mcps.md |
| `libi.list_effects` | Write | Medium | https://policylayer.com/tools/libi/libi.list-effects.md |
| `libi.list_mcp_servers` | Write | Medium | https://policylayer.com/tools/libi/libi.list-mcp-servers.md |
| `libi.list_skills` | Write | Medium | https://policylayer.com/tools/libi/libi.list-skills.md |
| `libi.load_scene` | Write | Medium | https://policylayer.com/tools/libi/libi.load-scene.md |
| `libi.move_asset` | Write | Medium | https://policylayer.com/tools/libi/libi.move-asset.md |
| `libi.move_asset_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.move-asset-folder.md |
| `libi.move_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.move-folder.md |
| `libi.move_piece_to_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.move-piece-to-folder.md |
| `libi.recheck_mcp` | Write | Medium | https://policylayer.com/tools/libi/libi.recheck-mcp.md |
| `libi.refine_track_with_sam2` | Write | Medium | https://policylayer.com/tools/libi/libi.refine-track-with-sam2.md |
| `libi.register_mcp_server` | Write | Medium | https://policylayer.com/tools/libi/libi.register-mcp-server.md |
| `libi.rename_asset_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.rename-asset-folder.md |
| `libi.rename_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.rename-folder.md |
| `libi.reorder_overlays` | Write | Medium | https://policylayer.com/tools/libi/libi.reorder-overlays.md |
| `libi.reorder_scenes` | Write | Medium | https://policylayer.com/tools/libi/libi.reorder-scenes.md |
| `libi.retrieve_assets_dimensions` | Write | Medium | https://policylayer.com/tools/libi/libi.retrieve-assets-dimensions.md |
| `libi.save_asset` | Write | Medium | https://policylayer.com/tools/libi/libi.save-asset.md |
| `libi.save_model_schema_cache` | Write | Medium | https://policylayer.com/tools/libi/libi.save-model-schema-cache.md |
| `libi.save_overlay_preset` | Write | Medium | https://policylayer.com/tools/libi/libi.save-overlay-preset.md |
| `libi.set_complexity_mode` | Write | Medium | https://policylayer.com/tools/libi/libi.set-complexity-mode.md |
| `libi.set_keyframe_easing` | Write | Medium | https://policylayer.com/tools/libi/libi.set-keyframe-easing.md |
| `libi.set_mcp_server_enabled` | Write | Medium | https://policylayer.com/tools/libi/libi.set-mcp-server-enabled.md |
| `libi.set_skill_enabled` | Write | Medium | https://policylayer.com/tools/libi/libi.set-skill-enabled.md |
| `libi.set_skills_enabled_by_tag` | Write | Medium | https://policylayer.com/tools/libi/libi.set-skills-enabled-by-tag.md |
| `libi.set_storyboard_generation` | Write | Medium | https://policylayer.com/tools/libi/libi.set-storyboard-generation.md |
| `libi.set_storyboard_reference` | Write | Medium | https://policylayer.com/tools/libi/libi.set-storyboard-reference.md |
| `libi.show_asset` | Write | Medium | https://policylayer.com/tools/libi/libi.show-asset.md |
| `libi.show_folder` | Write | Medium | https://policylayer.com/tools/libi/libi.show-folder.md |
| `libi.show_in_chat` | Write | Medium | https://policylayer.com/tools/libi/libi.show-in-chat.md |
| `libi.show_storyboard` | Write | Medium | https://policylayer.com/tools/libi/libi.show-storyboard.md |
| `libi.skip_segment` | Write | Medium | https://policylayer.com/tools/libi/libi.skip-segment.md |
| `libi.split_clip` | Write | Medium | https://policylayer.com/tools/libi/libi.split-clip.md |
| `libi.start_onboarding` | Write | Medium | https://policylayer.com/tools/libi/libi.start-onboarding.md |
| `libi.trim_video` | Write | Medium | https://policylayer.com/tools/libi/libi.trim-video.md |
| `libi.unlink_character_from_asset` | Write | Medium | https://policylayer.com/tools/libi/libi.unlink-character-from-asset.md |
| `libi.unlink_item_from_asset` | Write | Medium | https://policylayer.com/tools/libi/libi.unlink-item-from-asset.md |
| `libi.update_character` | Write | Medium | https://policylayer.com/tools/libi/libi.update-character.md |
| `libi.update_composition_dimensions` | Write | Medium | https://policylayer.com/tools/libi/libi.update-composition-dimensions.md |
| `libi.update_effect` | Write | Medium | https://policylayer.com/tools/libi/libi.update-effect.md |
| `libi.update_file_notes` | Write | Medium | https://policylayer.com/tools/libi/libi.update-file-notes.md |
| `libi.update_item` | Write | Medium | https://policylayer.com/tools/libi/libi.update-item.md |
| `libi.update_mcp_server` | Write | Medium | https://policylayer.com/tools/libi/libi.update-mcp-server.md |
| `libi.update_memories` | Write | Medium | https://policylayer.com/tools/libi/libi.update-memories.md |
| `libi.update_overlay` | Write | Medium | https://policylayer.com/tools/libi/libi.update-overlay.md |
| `libi.update_piece_description` | Write | Medium | https://policylayer.com/tools/libi/libi.update-piece-description.md |
| `libi.update_piece_name` | Write | Medium | https://policylayer.com/tools/libi/libi.update-piece-name.md |
| `libi.update_scene` | Write | Medium | https://policylayer.com/tools/libi/libi.update-scene.md |
| `libi.update_skill` | Write | Medium | https://policylayer.com/tools/libi/libi.update-skill.md |
| `libi.update_skill_prompt` | Write | Medium | https://policylayer.com/tools/libi/libi.update-skill-prompt.md |
| `libi.update_track_result` | Write | Medium | https://policylayer.com/tools/libi/libi.update-track-result.md |
| `libi.update_tracked_overlay` | Write | Medium | https://policylayer.com/tools/libi/libi.update-tracked-overlay.md |
| `libi.upload_file` | Write | Medium | https://policylayer.com/tools/libi/libi.upload-file.md |
| `libi.upload_file_to_fal` | Write | Medium | https://policylayer.com/tools/libi/libi.upload-file-to-fal.md |
| `libi.upload_font` | Write | Medium | https://policylayer.com/tools/libi/libi.upload-font.md |
| `libi.verify_install` | Write | Medium | https://policylayer.com/tools/libi/libi.verify-install.md |
| `recommend_model` | Write | Medium | https://policylayer.com/tools/libi/recommend-model.md |
| `speech_to_text` | Write | Medium | https://policylayer.com/tools/libi/speech-to-text.md |

## Tool descriptions

- `libi.analysis_remove_step` — Delete an analysis step row (and any cascaded keyframes if kind=frames). Use to fully clear and redo a step.
- `libi.audio_remove_clip` — Remove an audio clip FROM THE TIMELINE (composition manifest only). The source file on disk is NOT deleted — it stays in resources, and the user can re-add it. For a linked (inline) clip the underlying video overlay keeps playing silentl…
- `libi.clear_layer_effect` — Remove the effect on a layer
- `libi.delete_asset_folder` — Delete an asset folder. mode
- `libi.delete_caption_style` — Delete a user-created caption style by id. Bundled curated styles cannot be deleted (returns
- `libi.delete_character` — Remove a character from the catalog. Mappings to assets are cascade-removed; assets themselves are kept unless
- `libi.delete_clip` — Delete a timeline clip — a scene, overlay, or audio clip (auto-detected from
- `libi.delete_file` — PERMANENTLY DELETE a source file from disk. This is the ONLY destructive path in the system — the file is unrecoverable, and every scene, audio clip, and overlay referencing it is also removed. Use ONLY when the user explicitly says
- `libi.delete_folder` — Delete a folder. mode
- `libi.delete_item` — Remove an item from the catalog. Mappings to assets are cascade-removed; assets themselves are kept unless
- `libi.delete_keyframe` — Remove the keyframe at
- `libi.delete_overlay_preset` — Delete a user-saved overlay preset.
- `libi.delete_piece` — Permanently delete a piece and ALL of its data — every file (originals,
- `libi.delete_scene` — Remove a scene FROM THE TIMELINE (composition manifest only). The source file is NOT deleted — it stays in resources, and the scene can be recreated. Any linked audio clip for this scene is also removed (the audio was bound to the scene)…
- `libi.delete_track` — Delete a track (DB row + JSON sidecar). Tracked overlays that reference this trackId will fail to render until they
- `libi.discard_draft` — Drops the draft and returns the piece to the snapshot state. Destructive — requires confirm:true.
- `libi.drop_proxies` — Delete preview proxies for every video on the piece to free disk space. Proxies regenerate on next edit session.
- `libi.invalidate_model_schema_cache` — Drop a cached endpoint schema. Call this when a generation fails because the cached schema was wrong, then re-fetch.
- `libi.remove_effect` — Delete a custom effect package by id.
- `libi.remove_mcp_server` — Permanently remove a custom MCP server. Bundled servers cannot be removed — use libi.set_mcp_server_enabled to disable them.
- `libi.remove_overlay` — Remove an overlay (any kind) from the composition by id.
- `libi.remove_skill` — Delete a user skill, or delete an override (which restores the bundled skill). Bundled skills cannot be deleted; use libi.set_skill_enabled to disable them, or libi.update_skill to override them. After the change, the current session rel…
- `libi.remove_skill_prompt` — Delete prompts/<name>.md from a USER skill.
- `libi.restore_snapshot` — Promotes one of the prior snapshots (from getPieceState.recentSnapshots) to become the current snapshot. The current snapshot is archived to history. Destructive — requires confirm:true.
- `compose_music` — Test-mode ElevenLabs mirror.
- `isolate_audio` — Test-mode ElevenLabs mirror.
- `libi.analysis_extract_audio` — STOP — before any audio analysis you MUST invoke the
- `libi.analysis_transcribe_audio` — Run the full transcript pipeline server-side: extract audio, chunk if needed (10-min default), transcribe per chunk, save each chunk row, auto-aggregate. Provider defaults to local Whisper (free); pass provider:
- `libi.cancel_job` — Request graceful cancellation of a running background job. Partial
- `libi.compute_object_track` — STOP — before using this you MUST invoke the
- `libi.compute_track_segment` — STOP — invoke the
- `libi.create_scene` — Create a new scene in the video composition. The drawFunction is JavaScript code that receives a
- `libi.dev_slow_job` — DEV ONLY: run a deterministic slow background job that ticks once per second. Used to verify chat tool-call UI (progress, stop, ETA). Call with different
- `libi.export_video` — Export the piece
- `libi.highlight_effect` — Guided edit: flash an effect for the user — a catalog effect (opens the effects panel to that family/phase and flashes the thumbnail) or an effect already applied to a layer
- `libi.highlight_property` — Guided edit: flash a specific inspector field for an overlay so the user sees exactly which control to change. Pass the overlay id and a known property key (e.g.
- `libi.install_effect_from_git` — Install a custom animation effect package from a git repo (must contain manifest.json + animate.js). The animate body is sandbox-validated before persisting; a poison package is never installed. On success the effect id is available to l…
- `libi.list_identity_candidates` — STOP — invoke the
- `libi.music_install_analysis_deps` — One-shot uv prefetch of the librosa env. Called from the local-music install plan,
- `libi.music_profile` — Run local librosa to extract a music profile: tempo, key, energy, brightness,
- `libi.override_instructions` — DISCOURAGED — prefer libi.update_memories for behavior changes. Replaces the BASE agent instructions with a user-owned editable copy (like forking a bundled skill). Use ONLY when a specific base behavior actively conflicts with what the …
- `libi.regenerate_proxy` — Force regeneration of a video file
- `libi.remove_background` — STOP — before using this you MUST invoke the
- `libi.render_overlay_frames` — Render a few REAL composition frames (base video + all overlays, including WebGL 3D
- `libi.restart_acp_session` — Reload the entire ACP session — all bundled MCPs come down and back up. Use this only when you don
- `libi.restart_mcp_server` — Restart a specific bundled MCP server. Use after fixing an issue diagnose_mcp surfaced (e.g. installed a missing binary, set an API key). Returns immediately; the restart happens server-side. Per current claude-agent-acp limitations, all…
- `libi.retry_mcp_server` — Re-probe an external MCP server and refresh its serverStatus. Use when list_bundled_mcps reports serverStatus !==
- `libi.show_mcp_settings` — Navigate the user to the MCPs & Skills page (MCP Servers tab), optionally focusing a specific bundled server card by id (e.g.
- `libi.show_preview` — Switch the editor to the Preview tab (canvas player + timeline) for a piece. Use when the timeline should be the focus — e.g. after creating a piece, or when the user asks to see the video for a piece whose timeline isn
- `libi.sleep` — Sleep for N seconds inside the MCP server. Use BETWEEN long-running polls — e.g. after submitting a fal-ai job, sleep 20 s before calling check_job again. AbortSignal-aware: agent can cancel mid-sleep. Emits progress notifications every …
- `libi.verify_tracked_overlay` — STOP — invoke the
- `run_model` — Test-mode fal mirror (sync placeholder).
- `submit_job` — Test-mode fal mirror.
- `text_to_sound_effects` — Test-mode ElevenLabs mirror.
- `text_to_speech` — Test-mode ElevenLabs mirror.
- `voice_clone` — Test-mode ElevenLabs mirror.
- `libi.compute_object_track_providers` — OPTIONAL PAID mask refinement via fal.ai SAM2. NOT the default tracker — use
- `libi.extra_analysis_model` — PAID. Runs a provider-driven (fal.ai → Gemini 2.5 Pro by default) full-video analysis and returns a structured production script (shots, music, sound design) — designed for feeding back into a text-to-video model to recreate the video. D…
- `libi.ground_target` — STOP — invoke the
- `libi.pick_candidate` — STOP — invoke the
- `check_job` — Test-mode fal mirror.
- `get_job_result` — Test-mode fal mirror.
- `get_model_schema` — Test-mode fal mirror.
- `get_pricing` — Test-mode fal mirror.
- `libi.analysis_extract_frames` — STOP — before any video analysis you MUST invoke the
- `libi.analysis_get` — Returns all analysis steps and keyframes for a file. Empty arrays when no analysis exists.
- `libi.analysis_get_audio_chunks` — Return per-chunk status (and error messages, if any) for a file
- `libi.analysis_search_frames` — Search keyframes by structured fields in their FrameDescription (subject, objects, text, tags, shot, time range).
- `libi.analysis_search_transcript` — Substring search over transcript words. Returns ±2-word context windows around each hit with start/end timestamps.
- `libi.get_character` — Fetch a single character with its linked asset IDs.
- `libi.get_composition` — Retrieve the full composition: the manifest (sceneOrder, width, height, fps) and the data for all scenes in order.
- `libi.get_item` — Fetch a single item with its linked asset IDs.
- `libi.get_job_status` — Get the current status of a background job by id. Returns
- `libi.get_model_schema_cache` — Read the cached parameter schema for a generation endpoint (key: apiUrl+model). Returns {exists, stale, fetchedAt, schema}. Call BEFORE generating; if missing or stale, fetch the endpoint
- `libi.get_overlays` — List the overlays on a piece. Returns each overlay
- `libi.get_version` — Get the Libi MCP server version. Useful for checking if skill files are up to date.
- `libi.hide_storyboard_take` — Soft-hide a generated take (removed from display, file retained). If it was selected, the newest remaining take is reselected.
- `libi.list_assets` — List asset folders + assets at one level of a piece (or the global pool when pieceId is null). Omit folderId for the scope root.
- `libi.list_caption_styles` — List all caption styles (bundled curated looks + user-created ones) shown in the Style tab. Use before creating a style to avoid duplicate names.
- `libi.list_characters` — List globally cataloged characters. Optional
- `libi.list_effect_packages` — List on-disk custom effect packages with their validity (id, name, valid, error?). Use to see what customs are installed and whether any failed to compile.
- `libi.list_files` — List files. Use scope=
- `libi.list_folders` — List all folders with their parent and piece counts. Returns a flat array; build the tree from parentFolderId.
- `libi.list_items` — List globally cataloged items. Optional
- `libi.list_keyframes` — List an overlay
- `libi.list_overlay_presets` — List saved overlay presets (bundled + user), optionally filtered by kind.
- `libi.list_pieces` — List available pieces with optional search. Returns the currently-open piece separately in
- `libi.list_skill_prompts` — List the prompt files (prompts/*.md) inside a skill
- `libi.list_track_segments` — List a track
- `libi.list_tracks` — List all tracks computed for a source file.
- `libi.music_detect_beats` — Run local librosa to extract tempo, beat times, and onsets from an audio file.
- `libi.music_download_model` — Download the ACE-Step model (~5.5 GB) into ~/.libi/models/ace-step/ (background job, progress streamed). Idempotent. Pass force:true to re-download corrupt/partial files or a bumped version. Free, on-device. Tell the user the size first.
- `libi.music_list_styles` — List local ACE-Step music style hints, whether the model is installed, the download size, and the default/max duration. Read-only. Use to pick/suggest a style and to tell the user the download size before installing.
- `libi.select_storyboard_take` — Choose which generated take is placed on the timeline for a card. Re-places the scene.
- `libi.show_api_config` — Open the inline API-key config panel for a bundled MCP (right of the chat). Call this the moment a tool fails with mcp_missing_key, or libi.list_bundled_mcps shows a needed MCP as needs_config, then tell the user which key to paste. Neve…
- `libi.show_piece` — Navigate the editor to display a piece. Use this after creating a new piece to show it to the user.
- `libi.storyboard_get` — Fetch the piece
- `libi.tts_download_model` — Download the Kokoro model (~110 MB) into ~/.libi/models/tts/ (background job, progress streamed). Idempotent. No API key, free, on-device.
- `libi.tts_list_voices` — List local Kokoro TTS voices with language + gender, the default voice, and whether the model is installed. Read-only. Use to pick or suggest a voice.
- `libi.update_dep_status` — Record install progress for a bundled MCP. Call after each install step (status=
- `libi.whisper_download_model` — Download a Whisper model into ~/.libi/models/whisper/ (background job, progress streamed). Idempotent. Confirm with the user before downloading medium (~1.5 GB) or large-v3 (~3 GB).
- `libi.whisper_list_models` — List local Whisper model sizes (tiny|base|small|medium|large-v3) with approx size, install state, and the default. Read-only. Use to suggest a larger model when transcript accuracy is poor.
- `search_docs` — Test-mode fal mirror (stub).
- `libi.add_effect` — Author a custom animation effect from a manifest + an animate.js body — a PURE (progress, params) → TransformDelta function (math helpers only; no canvas/ctx/IO). The manifest + body are validated before any write; a failing validation p…
- `libi.add_keyframe` — Add (or replace) a keyframe on an overlay at
- `libi.add_overlay` — Add an overlay on top of the base scene.
- `libi.add_skill` — Install a user skill. The
- `libi.add_skill_prompt` — Add a prompt file at prompts/<name>.md inside a USER skill so the SKILL.md can reference it (e.g.
- `libi.add_storyboard_card` — Create a storyboard card — the bootstrap/append entry point. Use this to START a storyboard on a piece that has none (it initializes the manifest on the first call) and to add scenes. Only
- `libi.add_tracked_overlay` — Pin an overlay (emoji, text, image, video, code, or blur/pixelate effect) to a moving subject. Requires a trackId from libi.compute_object_track.
- `libi.analysis_chunk_audio` — Plan and extract per-chunk audio WAVs (no transcription). Returns array of { chunkId, chunkIndex, audioPath, startSeconds, endSeconds }. Use this when bringing your own STT provider — call your STT per chunk path, then save_audio_chunk o…
- `libi.analysis_mark_step_failed` — Record that a specific analysis step (transcript / summary / frames) cannot be completed. Sets status=failed with the given error message. The user sees this in the analysis tab and can ask you to retry.
- `libi.analysis_save_audio_chunk` — Save the transcript for one audio chunk inline. Pass { chunkId, text, words, language?, languageProbability? }. Server offsets timestamps to source audio. When all chunks for the file are ready, the transcript step auto-aggregates.
- `libi.analysis_save_audio_chunk_from_file` — Save the transcript for one audio chunk by reading a JSON file. Pass { chunkId, jsonPath } where jsonPath is absolute and the file contains { text, words: [...], language_code?, language_probability? } (same shape as ElevenLabs). Server …
- `libi.analysis_save_frames` — Atomic batch save of the frames step. REPLACE SEMANTICS: every existing keyframe for the file is deleted and replaced by this batch. Each entry: { frameIndex, timestamp, filePath, description?, skipped?, skipReason?, custom? }.
- `libi.analysis_save_summary` — Upsert the summary step for a file with a structured VideoSummary (video_v1). Sets status=ready. Pass
- `libi.analysis_update_summary_custom` — Merge a value into the summary step
- `libi.apply_layer_effect` — Apply an animation effect to a layer
- `libi.apply_overlay_preset` — Apply a saved preset
- `libi.approve_storyboard_stage` — Approve a storyboard card
- `libi.attach_storyboard_clip` — Attach a generated Tier-3 clip video (by libi file id) to a storyboard card as a new versioned take (v1, v2, …) in the card
- `libi.attach_storyboard_keyframe` — Attach a generated Tier-2 keyframe image (by libi file id) to a storyboard card, recording its cost and advancing the card to the keyframe stage. The agent generates the image (gpt-image-2, conditioned on the card
- `libi.audio_add_clip` — Add an audio clip to the composition. Use kind=
- `libi.audio_duck_disable` — Remove sidechain ducking from a clip.
- `libi.audio_duck_enable` — Enable sidechain ducking on a clip. The clip
- `libi.audio_duck_update` — Update ducking parameters on a clip that already has ducking enabled. Patch any subset of: sidechainClipId, thresholdDb, ratio, attackMs, releaseMs, reductionDb.
- `libi.audio_relink_overlay` — Re-bind a standalone audio clip to a VIDEO OVERLAY as its inline audio, so the clip moves and trims with that overlay.
- `libi.audio_split` — Split one clip into two at the given composition time. The new clip
- `libi.audio_unlink` — Convert an inline clip (linked to a video scene) into a standalone clip so it can be moved, trimmed, or duplicated independently of the scene.
- `libi.audio_update_clip` — Patch fields on an audio clip: startTime, duration, trimStart, volume, enabled (the timeline speaker toggle), label.
- `libi.commit_draft` — Promotes the current draft of a piece to be the new committed snapshot. The previous snapshot is moved to history (last 10 retained). Use after a meaningful chunk of work the user is happy with. VERIFY-GATE: refuses (error \
- `libi.compare_states` — Returns a structured diff (scenes, overlays, audio clips: added/removed/changed counts) between the committed snapshot and the current draft.
- `libi.concat_videos` — Concatenate two or more video files into a single output, stored as a new file on the piece. Stream-copies when compatible; otherwise re-encodes to H.264/AAC. Use when the user wants to combine clips in sequence.
- `libi.create_asset_folder` — Create an asset folder to group files within a piece (or globally). Nestable. Omit parentFolderId for top-level.
- `libi.create_caption_style` — Create a NEW reusable caption STYLE (a static look: text color + optional stroke/shadow/background + font) from explicit fields — no overlay needed. Use this when the user describes or shows a look they want saved for reuse (e.g.
- `libi.create_character` — Catalog a new character globally. Pass
- `libi.create_folder` — Create a folder to organize pieces. Folders can be nested. Omit parentFolderId for a top-level folder.
- `libi.create_item` — Catalog a new item globally. Pass
- `libi.create_piece` — Create a new piece. Returns the full piece record (id, name, description, dates) so you can immediately use the pieceId with other tools.
- `libi.diagnose_mcp` — Snapshot of a bundled MCP
- `libi.diff_skill_override` — Compare a user-overridden (forked) skill against its bundled original. Returns whether the bundled skill changed since the fork (upstreamChanged: true | false | \
- `libi.duplicate_clip` — Duplicate a timeline clip — a scene, overlay, or audio clip (auto-detected from
- `libi.duplicate_file` — Duplicate a file to another piece or to global. Creates an independent copy with a new ID — deleting the source won
- `libi.duplicate_folder` — Create an independent copy of a folder and all its pieces. Returns jobIds (one per piece) immediately — each piece copy runs in the background. Poll libi.get_job_status for each jobId until all are
- `libi.duplicate_piece` — Create an independent copy of a piece. Returns a jobId immediately — the copy runs in the background. Poll libi.get_job_status({ jobId }) until status is
- `libi.edit_storyboard_card` — Edit an EXISTING storyboard card. Primary use: manage role-tagged SKETCH slots —
- `libi.extract_audio` — Extract the audio stream of a video file to a standalone audio file stored on the piece. Outputs MP3 by DEFAULT — already fal-safe, since Seedance reference-to-video @Audio1 accepts MP3/WAV only, so a plain call is correct for a voice re…
- `libi.fork_skill` — Fork a bundled skill into an editable user copy of the same name (SKILL.md + all prompts). The user copy shadows the bundled one; delete it to revert. Use before editing a bundled skill or its prompts.
- `libi.generate_captions` — Build a timed caption track from a file
- `libi.generate_music` — Generate music locally with ACE-Step and store it as an audio file on the piece. Free, no API key — the DEFAULT music provider. Pass
- `libi.generate_speech` — Synthesize narration/voiceover locally with Kokoro and store it as an audio file on the piece. Free, no API key — the DEFAULT speech provider. Returns the stored file; pass withTimestamps:true for approximate per-word timings (caption/ti…
- `libi.generate_thumbnails` — Generate N evenly-spaced JPEG thumbnails from a video file, storing each as an image file on the piece. Use when the user wants to preview a clip
- `libi.get_install_plan` — Get the markdown install plan for a bundled MCP. The plan tells you, step by step, what to download, install, and verify. Read the plan, then follow it using your Bash/Read/Write tools. After each step call libi.update_dep_status.
- `libi.get_piece_state` — Returns whether the piece has uncommitted draft changes, when the current snapshot was committed, and the last 10 prior snapshots in the safety-net history.
- `libi.import_remote_files` — Download one or more PUBLIC http(s) files (e.g. demo assets) in the background. autoUpload (default true) registers each as a piece file; false downloads to a temp path only. Returns per-url results in
- `libi.link_character_to_asset` — Associate an existing character with an asset that contains them. Idempotent.
- `libi.link_item_to_asset` — Associate an existing item with an asset that contains it. Idempotent.
- `libi.list_bundled_mcps` — This is libi
- `libi.list_effects` — List built-in animation effects with their supported layer kinds, phases (in/out/loop), and params. Filter by kind/phase/family. AUTHORITATIVE, always-current set — prefer over memorized names.
- `libi.list_mcp_servers` — This is libi
- `libi.list_skills` — This is libi
- `libi.load_scene` — Load a single scene
- `libi.move_asset` — Move an asset (file) into a folder. folderId null = scope root. The folder must match the file
- `libi.move_asset_folder` — Move an asset folder under a new parent. parentFolderId null = top level. Rejects cycles.
- `libi.move_folder` — Move a folder under a new parent folder. Pass parentFolderId null to move it to the top level. Rejects moves that would create a cycle.
- `libi.move_piece_to_folder` — Move a piece into a folder. Pass folderId null to move it back to the root (no folder).
- `libi.recheck_mcp` — Probe a bundled MCP server
- `libi.refine_track_with_sam2` — Refine an existing box track into precise SAM2 masks over an optional time range
- `libi.register_mcp_server` — Register a new external MCP server so it becomes available in future agent sessions. Use this when the user asks you to add an MCP tool. Install any required npm packages first (e.g., via npx), then call this tool to wire up the server c…
- `libi.rename_asset_folder` — Rename an asset folder.
- `libi.rename_folder` — Rename a folder.
- `libi.reorder_overlays` — Re-order overlays by supplying overlayIds in the desired z-order (first = bottom, last = top). Ids not listed keep their existing z; unknown ids are ignored.
- `libi.reorder_scenes` — Change the order of scenes in the composition. Provide all scene IDs in the desired new order.
- `libi.retrieve_assets_dimensions` — Return width/height/aspect of every video scene, video overlay, and image overlay in the composition, plus the current composition dimensions. Use BEFORE making canvas-aspect decisions or before calling libi.update_composition_dimensions.
- `libi.save_asset` — Save a generated asset (audio, image, etc.) for the current piece. Stores the file and registers it in the database so it can be referenced in scene draw functions.
- `libi.save_model_schema_cache` — Cache an endpoint
- `libi.save_overlay_preset` — Save an overlay
- `libi.set_complexity_mode` — Switch a SPECIFIC overlay
- `libi.set_keyframe_easing` — Set the easing curve of the segment LEAVING the keyframe at
- `libi.set_mcp_server_enabled` — Enable or disable an MCP server. Works on bundled and custom servers. Disabled servers are not surfaced to agents but their definition is preserved.
- `libi.set_skill_enabled` — Toggle a skill
- `libi.set_skills_enabled_by_tag` — Enable or disable every skill carrying ANY of the given tags in one call. Use to flip a whole group, e.g. disable all
- `libi.set_storyboard_generation` — Set a card
- `libi.set_storyboard_reference` — Link a generation param (e.g. reference_video) to another card
- `libi.show_asset` — Navigate the editor to display an asset in the Assets tab.
- `libi.show_folder` — Reveal a folder in the resources panel (expands its ancestors and scrolls to it).
- `libi.show_in_chat` — Render an asset (image, video, or audio) INLINE IN THE CHAT so the user sees it without leaving the conversation. Call this for a SALIENT result — a rendered sketch, the selected/best take, a final generated image or audio — not for ever…
- `libi.show_storyboard` — Switch the editor to the Storyboard tab for a piece. Call this after you create or update the storyboard (author/revise schematics, attach a keyframe/clip, or advance the ladder) so the user sees the board you just changed. Mirrors libi.…
- `libi.skip_segment` — Mark a time range as intentionally untracked (e.g. subject not visible / back to camera). Renders nothing there. Honest — prefer this over a bad track.
- `libi.split_clip` — Cut (split) a timeline clip into two at a composition time.
- `libi.start_onboarding` — Re-open the onboarding panel (agent setup + the guided demo). Use only if the user asks to see onboarding again.
- `libi.trim_video` — Trim a video file to a time range and store the result as a new file on the piece. Uses ffmpeg stream-copy when possible (near-instant). Call after the user asks to shorten a clip or cut the beginning/end.
- `libi.unlink_character_from_asset` — Remove the association between a character and an asset.
- `libi.unlink_item_from_asset` — Remove the association between an item and an asset.
- `libi.update_character` — Update a character
- `libi.update_composition_dimensions` — Set the canvas width and height for a piece. Affects preview and export. Returns warnings for overlays whose rects fall outside the new bounds — the agent should adjust those overlays separately. Decide the right dimensions based on the …
- `libi.update_effect` — Patch an existing custom effect package
- `libi.update_file_notes` — Append or replace agent-facing notes on a file (lineage, model, retry index, validation summary). Default mode appends a timestamped line; pass mode=
- `libi.update_item` — Update an item
- `libi.update_mcp_server` — Edit an existing MCP server
- `libi.update_memories` — Update the user
- `libi.update_overlay` — Update an overlay
- `libi.update_piece_description` — Update only the description of the current piece.
- `libi.update_piece_name` — Set the name (and optionally description) of the current piece. Respects the nameSetByUser flag — if the user has manually named the piece, the name will not be overwritten.
- `libi.update_scene` — Modify an existing scene in the composition. Only the provided fields are updated; omitted fields remain unchanged.
- `libi.update_skill` — Author or update a skill
- `libi.update_skill_prompt` — Replace the contents of an existing prompts/<name>.md on a USER skill.
- `libi.update_track_result` — Write externally-computed tracking samples into libi
- `libi.update_tracked_overlay` — Update any field of a tracked overlay (track binding, content, timing, rect, z, opacity, fit, scale, smoothing). Only provided fields are changed. Set offset ({x,y} in fractions of the tracked box, e.g. {x:0,y:-1} = one box-height above …
- `libi.upload_file` — Upload a file from the local filesystem into the current piece. Reads the file, infers its type, probes media metadata (if ffprobe is available), and stores it. Returns the file record with ID, name, type, dimensions, and duration. Use t…
- `libi.upload_file_to_fal` — Upload a LOCAL libi file to fal.ai storage and return a fal CDN URL, for use as an image_urls/audio_urls reference in fal generation. The FAL key is handled server-side — never extract or pass it yourself. Result is cached (falUploadedUr…
- `libi.upload_font` — Upload a custom font file (.ttf/.otf/.woff2) and return a fontFileId usable on text overlays. Reads the file from the local filesystem, infers its type from the extension, and stores it. Set the returned fontFileId on a text overlay (via…
- `libi.verify_install` — Check whether the libi-tracking engine (uv Python env + ONNX models) is installed and its self-test passes.
- `recommend_model` — Test-mode fal mirror.
- `speech_to_text` — Test-mode ElevenLabs mirror.

## Related servers

- UnClick (1662 tools) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Delx Protocol — Agent Recovery & Continuity (1076 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-protocol.md
- Delx Mcp A2a (1068 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- Nodebench (824 tools) — https://policylayer.com/tools/io-github-homenshum-nodebench.md
- MCP Framework Personal (811 tools) — https://policylayer.com/tools/inggerman-mcps.md
- Delx MCP Server (740 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- Eda Agent (726 tools) — https://policylayer.com/tools/eda-agent.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=libi · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/libi
