MCPサーバー

ModelsLab

io.github.ModelsLab/modelslab

このMCPでできること

Generates and transforms images, video, speech, music, sound effects, and text through a catalog of AI models, with asynchronous result retrieval.

chat-completion
Chat Completion
Chat with AI language models. Send messages to an LLM and receive AI-generated responses. Supports various models and configuration options. A message may carry a PDF as a {"type":"file","file":{"filename":...,"file_data":"data:application/pdf;base64,..."}} content part.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'messages'], 'properties': {'n': {'type': 'integer', 'default': 1, 'description': 'Number of completions to generate (1-10).'}, 'seed': {'type': 'integer', 'description': 'Random seed for reproducible results.'}, 'stop': {'type': 'array', 'description': 'Up to 4 sequences where the API will stop generating.'}, 'top_k': {'type': 'integer', 'description': 'Top-k sampling parameter.'}, 'top_p': {'type': 'number', 'description': 'Nucleus sampling parameter (0-1).'}, 'plugins': {'type': 'array', 'description': 'OpenRouter plugins. Send [{"id":"file-parser","pdf":{"engine":"native"}}] alongside a {"type":"file"} content part to have a PDF attachment parsed.'}, 'messages': {'type': 'array', 'description': 'Array of message objects with "role" (system/user/assistant) and "content" keys.'}, 'model_id': {'type': 'string', 'description': 'The LLM model ID to use (e.g., "gpt-4", "claude-3").'}, 'max_tokens': {'type': 'integer', 'description': 'Maximum number of tokens to generate.'}, 'temperature': {'type': 'number', 'default': 1, 'description': 'Sampling temperature (0-2). Higher values make output more random.'}, 'response_format': {'type': 'object', 'description': 'Response format configuration (e.g., {"type": "json_object"}).'}, 'presence_penalty': {'type': 'number', 'description': 'Penalty for new topics (-2 to 2).'}, 'frequency_penalty': {'type': 'number', 'description': 'Penalty for frequent tokens (-2 to 2).'}}}
dubbing
Dubbing
Create dubbed audio content. Takes a video and translates/dubs the audio from one language to another. Returns a request ID that can be used with fetch-audio to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'init_video', 'source_lang', 'output_lang'], 'properties': {'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when dubbing completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for dubbing.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_video': {'type': 'string', 'description': 'URL or base64 string of the video to dub.'}, 'output_lang': {'type': 'string', 'description': 'Target language code for the dubbed output.'}, 'source_lang': {'type': 'string', 'description': 'Source language code (e.g., "en", "es", "fr").'}}}
fetch-audio
Fetch Audio Result
Retrieve the status and results of an audio generation request. Use the request ID returned from text-to-speech, speech-to-text, music-generation, and other audio tools.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'description': 'The request ID returned from a previous audio generation call.'}}}
fetch-generation
Fetch Generation Status
Check the status of a queued or processing generation request on the ModelsLab V7 API. Use this tool when a generation tool returns a `status` of `"processing"`, and call it again while the status stays `"processing"`. Image jobs usually finish in seconds; video and music jobs can take several minutes, so tell the user the job is still running if it has not finished after a few polls. Pass the `id` from the original generation response and the `type` matching the category of the original request (e.g. "images" for text-to-image, image-to-image, or inpaint-image). The response will contain: - `status`: "success", "processing", or "error" - `output`: array of URLs when status is "success"
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'type': 'integer', 'description': 'The numeric id returned by a generation tool when status was "processing".'}, 'type': {'enum': ['images', 'videos', 'audios'], 'type': 'string', 'description': 'The generation category matching the original request: "images" for image tools, "videos" for video tools, "audios" for audio tools.'}}}
fetch-image
Fetch Image Result
Retrieve the status and results of an image generation request. Use the request ID returned from text-to-image, image-to-image, or inpaint-image tools.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'description': 'The request ID returned from a previous image generation call.'}}}
fetch-video
Fetch Video Result
Retrieve the status and results of a video generation request. Use the request ID returned from text-to-video, image-to-video, video-to-video, lip-sync, or motion-control tools.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'The request ID returned from a previous video generation call.'}}}
image-to-image
Image to Image
Transform existing images based on text prompts. Takes an input image and modifies it according to the provided prompt. Returns a request ID that can be used with fetch-image to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'prompt', 'init_image'], 'properties': {'width': {'type': 'integer', 'description': 'Output image width in pixels (512-1024).'}, 'height': {'type': 'integer', 'description': 'Output image height in pixels (512-1024).'}, 'prompt': {'type': 'string', 'description': 'Text description of how to transform the image.'}, 'samples': {'type': 'integer', 'default': 1, 'description': 'Number of images to generate (1-4).'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for image transformation.'}, 'strength': {'type': 'number', 'description': 'Transformation strength (0-1). Higher values mean more change from the original.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_image': {'type': 'string', 'description': 'Input image URL or base64 string to transform.'}, 'aspect_ratio': {'type': 'string', 'description': 'Aspect ratio for the output image.'}, 'negative_prompt': {'type': 'string', 'description': 'Text describing what to avoid in the output.'}}}
image-to-video
Image to Video
Animate static images into videos. Takes input image(s) and creates a video based on the prompt. Returns a request ID that can be used with fetch-video to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'init_image'], 'properties': {'prompt': {'type': 'string', 'description': 'Text description of the video motion/transformation.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'duration': {'type': 'integer', 'description': 'Video duration in seconds (minimum 4).'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for video generation.'}, 'portrait': {'type': 'boolean', 'description': 'Generate in portrait orientation.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_audio': {'type': 'string', 'description': 'URL of audio to sync with the video.'}, 'init_image': {'type': 'string', 'description': 'Input image URL or base64 string to animate.'}, 'resolution': {'type': 'string', 'description': 'Output resolution preset.'}, 'aspect_ratio': {'type': 'string', 'description': 'Aspect ratio for the video.'}, 'negative_prompt': {'type': 'string', 'description': 'Things to avoid in the generated video.'}}}
inpaint-image
Inpaint Image
Edit specific areas of images using masks. Provide an image, a mask indicating the area to edit, and a prompt describing the desired changes. Returns a request ID that can be used with fetch-image to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'prompt', 'init_image', 'mask_image'], 'properties': {'prompt': {'type': 'string', 'description': 'Text description of what to paint in the masked area.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for inpainting.'}, 'strength': {'type': 'number', 'description': 'Strength of the transformation (0-1). Higher values mean more change.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_image': {'type': 'string', 'description': 'URL or base64 string of the input image to edit.'}, 'mask_image': {'type': 'string', 'description': 'URL or base64 string of the mask image (white areas will be edited, black areas preserved).'}, 'negative_prompt': {'type': 'string', 'description': 'Things to avoid in the generated content.'}}}
lip-sync
Lip Sync
Sync video with audio for lip movements. Takes a video and audio file and syncs the lip movements to match the audio. Returns a request ID that can be used with fetch-video to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'init_video', 'init_audio'], 'properties': {'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when processing completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for lip sync.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_audio': {'type': 'string', 'description': 'URL or base64 string of the audio file to sync lips with.'}, 'init_video': {'type': 'string', 'description': 'URL or base64 string of the input video containing the face to sync.'}}}
list-models
List Models
List available AI models on the ModelsLab platform. Filter by category (imagen, video, audio, llm, 3d), provider, tags, and more. Returns model IDs that can be used with generation tools.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {'nsfw': {'type': 'boolean', 'description': 'Set to false to exclude NSFW models, true to include them. Defaults to user preference.'}, 'sort': {'type': 'string', 'default': 'recommended', 'description': 'Sort order: "recommended" (default), "latest", "most-used".'}, 'limit': {'type': 'integer', 'default': 20, 'description': 'Maximum number of models to return (1-100).'}, 'search': {'type': 'string', 'description': 'Search models by name, ID, description, or tags.'}, 'feature': {'type': 'string', 'description': 'Filter by product feature: "imagen" (images), "videofusion" (videos), "audiogen" (audio/voice), "llmaster" (LLMs), "threedverse" (3D).'}, 'category': {'type': 'string', 'description': 'Filter by model category (e.g., "stable_diffusion", "stable_diffusion_xl", "flux", "llm", "video", "voice_cloning").'}, 'provider': {'enum': ['alibaba_cloud', 'bfl', 'byteplus', 'elevenlabs', 'google', 'groq', 'higgsfield', 'inworld', 'klingai', 'ltx', 'minimax', 'modelslab', 'mulerouter', 'open_router', 'openai', 'recraft', 'runway_ml', 'skyreels', 'sonauto', 'sync', 'tencent', 'together_ai', 'vidu', 'xai', 'zoho'], 'type': 'string', 'description': 'Filter by model provider (e.g., "modelslab", "civitai").'}, 'subcategory': {'type': 'string', 'description': 'Filter by model subcategory (e.g., "lora", "controlnet", "embeddings", "checkpoint").'}}}
list-providers
List Providers
List all available model providers on the ModelsLab platform. Returns provider names with model counts for each. Use provider names to filter models in the list-models tool.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {'feature': {'type': 'string', 'description': 'Filter providers by product feature: "imagen" (images), "videofusion" (videos), "audiogen" (audio/voice), "llmaster" (LLMs), "threedverse" (3D).'}, 'category': {'type': 'string', 'description': 'Filter providers by model category (e.g., "stable_diffusion", "flux", "llm", "video").'}}}
motion-control
Motion Control
Control motion in video generation. Uses an image and video to create motion-controlled output. Returns a request ID that can be used with fetch-video to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'init_image', 'init_video', 'character_orientation'], 'properties': {'mode': {'enum': ['std', 'pro'], 'type': 'string', 'description': 'Processing mode: std (standard) or pro (professional).'}, 'prompt': {'type': 'string', 'description': 'Optional text prompt (max 2500 characters).'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when processing completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for motion control.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_image': {'type': 'string', 'description': 'URL or base64 string of the input image (character/subject).'}, 'init_video': {'type': 'string', 'description': 'URL or base64 string of the video for motion reference.'}, 'keep_original_sound': {'enum': ['yes', 'no'], 'type': 'string', 'description': 'Keep original sound from the video.'}, 'character_orientation': {'enum': ['image', 'video'], 'type': 'string', 'description': 'Use character orientation from image or video.'}}}
music-generation
Music Generation
Create music from text prompts. Generates original music based on your description, optional tags, and lyrics. Returns a request ID that can be used with fetch-audio to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['prompt', 'model_id'], 'properties': {'tags': {'type': 'array', 'description': 'Array of genre/style tags for the music.'}, 'lyrics': {'type': 'string', 'description': 'Lyrics to include in the generated song.'}, 'prompt': {'type': 'string', 'description': 'Text description of the music to generate.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for music generation.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'music_length_ms': {'type': 'number', 'description': 'Duration of the music in milliseconds.'}}}
song-extender
Song Extender
Extend existing music tracks. Takes an existing audio file and extends it from either the beginning or end. Returns a request ID that can be used with fetch-audio to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'init_audio', 'side'], 'properties': {'side': {'enum': ['left', 'right'], 'type': 'string', 'description': 'Which side to extend: left (beginning) or right (end).'}, 'tags': {'type': 'array', 'description': 'Array of genre/style tags.'}, 'lyrics': {'type': 'string', 'description': 'Lyrics for the extended portion.'}, 'prompt': {'type': 'string', 'description': 'Optional text description for the extended portion.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when extension completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for song extension.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_audio': {'type': 'string', 'description': 'URL or base64 string of the audio file to extend.'}, 'crop_duration': {'type': 'number', 'description': 'Duration to crop from the original.'}, 'extend_duration': {'type': 'number', 'description': 'Duration to extend in seconds.'}}}
song-inpaint
Song Inpaint
Edit specific sections of songs. Takes an audio file and regenerates a specific section defined by start and end times. Returns a request ID that can be used with fetch-audio to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'init_audio', 'sections'], 'properties': {'tags': {'type': 'array', 'description': 'Array of genre/style tags.'}, 'lyrics': {'type': 'string', 'description': 'Lyrics for the regenerated section.'}, 'prompt': {'type': 'string', 'description': 'Optional text description for the regenerated section.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when inpainting completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for song inpainting.'}, 'sections': {'type': 'array', 'description': 'Array of 2 numbers: [start_time, end_time] in seconds for the section to regenerate.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_audio': {'type': 'string', 'description': 'URL or base64 string of the audio file to edit.'}, 'instrumental': {'type': 'boolean', 'description': 'Generate instrumental only (no vocals).'}, 'selection_crop': {'type': 'boolean', 'description': 'Return only the regenerated section.'}}}
sound-generation
Sound Generation
Generate sound effects from text descriptions. Creates audio sound effects based on your prompt. Returns a request ID that can be used with fetch-audio to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['prompt', 'model_id'], 'properties': {'prompt': {'type': 'string', 'description': 'Text description of the sound effect to generate.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'duration': {'type': 'integer', 'description': 'Duration of the sound effect in seconds.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for sound generation.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}}}
speech-to-speech
Speech to Speech
Voice conversion and transformation. Takes an audio file and converts it to a different voice. Returns a request ID that can be used with fetch-audio to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['init_audio', 'model_id', 'voice_id'], 'properties': {'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when conversion completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for voice conversion.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'voice_id': {'type': 'string', 'description': 'The target voice ID to convert to.'}, 'init_audio': {'type': 'string', 'description': 'URL or base64 string of the audio file to transform.'}}}
speech-to-text
Speech to Text
Transcribe audio to text. Takes an audio file and converts it to text transcription. Returns a request ID that can be used with fetch-audio to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['init_audio', 'model_id'], 'properties': {'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when transcription completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for speech-to-text.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_audio': {'type': 'string', 'description': 'URL or base64 string of the audio file to transcribe.'}}}
text-to-image
Text to Image
Generate images from text prompts using AI models. Returns a request ID that can be used with fetch-image to retrieve results. Supports various AI image generation models.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'prompt'], 'properties': {'width': {'type': 'integer', 'default': 1024, 'description': 'Image width in pixels (512-1024).'}, 'height': {'type': 'integer', 'default': 1024, 'description': 'Image height in pixels (512-1024).'}, 'prompt': {'type': 'string', 'description': 'Text description of the image to generate.'}, 'samples': {'type': 'integer', 'default': 1, 'description': 'Number of images to generate (1-4).'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for image generation (e.g., "flux-dev", "sdxl").'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'aspect_ratio': {'type': 'string', 'description': 'Aspect ratio for the image (e.g., "1:1", "16:9", "9:16").'}, 'negative_prompt': {'type': 'string', 'description': 'Text describing what to avoid in the image.'}}}
text-to-speech
Text to Speech
Convert text to natural speech audio. Takes text and generates realistic speech using the specified voice. Returns a request ID that can be used with fetch-audio to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['prompt', 'voice_id', 'model_id'], 'properties': {'prompt': {'type': 'string', 'description': 'The text to convert to speech.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for text-to-speech.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'voice_id': {'type': 'string', 'description': 'The voice ID to use for speech generation.'}, 'temperature': {'type': 'number', 'description': 'Temperature for voice variation (0-1).'}}}
text-to-video
Text to Video
Generate videos from text descriptions. Creates AI-generated videos based on your text prompt. Returns a request ID that can be used with fetch-video to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'prompt'], 'properties': {'fps': {'type': 'integer', 'description': 'Frames per second for the output video.'}, 'width': {'type': 'integer', 'description': 'Video width in pixels (512-1024).'}, 'height': {'type': 'integer', 'description': 'Video height in pixels (512-1024).'}, 'prompt': {'type': 'string', 'description': 'Text description of the video to generate.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'duration': {'type': 'integer', 'description': 'Video duration in seconds (minimum 4).'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for video generation.'}, 'portrait': {'type': 'boolean', 'description': 'Generate in portrait orientation.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_audio': {'type': 'string', 'description': 'URL of audio to sync with the video.'}, 'resolution': {'type': 'string', 'description': 'Output resolution preset.'}, 'aspect_ratio': {'type': 'string', 'description': 'Aspect ratio for the video (e.g., "16:9", "9:16").'}, 'camera_fixed': {'type': 'boolean', 'description': 'Keep camera position fixed during generation.'}, 'enhance_prompt': {'type': 'boolean', 'description': 'Use AI to enhance the prompt.'}, 'generate_audio': {'type': 'boolean', 'description': 'Generate audio for the video.'}, 'negative_prompt': {'type': 'string', 'description': 'Things to avoid in the generated video.'}}}
video-to-video
Video to Video
Transform existing videos with AI. Takes input video(s) and modifies them based on the prompt. Returns a request ID that can be used with fetch-video to retrieve results.
外部アクセスあり
入力スキーマ
{'type': 'object', 'required': ['model_id', 'prompt', 'init_video'], 'properties': {'seed': {'type': 'integer', 'description': 'Random seed for reproducible results (0-4294967295).'}, 'prompt': {'type': 'string', 'description': 'Text description of how to transform the video.'}, 'webhook': {'type': 'string', 'description': 'URL to receive webhook notification when generation completes.'}, 'duration': {'type': 'integer', 'description': 'Video duration in seconds (minimum 4).'}, 'model_id': {'type': 'string', 'description': 'The model ID to use for video transformation.'}, 'track_id': {'type': 'string', 'description': 'Custom tracking ID for the request.'}, 'init_image': {'type': 'array', 'description': 'Optional guidance image URLs applied in order across the input video.'}, 'init_video': {'type': 'string', 'description': 'Input video URL to transform.'}, 'aspect_ratio': {'type': 'string', 'description': 'Aspect ratio for the output video.'}, 'negative_prompt': {'type': 'string', 'description': 'Things to avoid in the generated video.'}, 'image_timestamps': {'type': 'array', 'description': 'Optional seconds into the video where each init_image applies, in the same order. Images without a timestamp are spread evenly across the clip.'}, 'public_figure_threshold': {'enum': ['auto', 'low', 'medium', 'high'], 'type': 'string', 'description': 'Threshold for public figure detection.'}}}
追加
chat-completion
2026年10月3日2:40
追加
fetch-generation
2026年10月3日2:40
追加
fetch-audio
2026年10月3日2:40
追加
dubbing
2026年10月3日2:40
追加
song-inpaint
2026年10月3日2:40
追加
song-extender
2026年10月3日2:40
追加
music-generation
2026年10月3日2:40
追加
sound-generation
2026年10月3日2:40
追加
speech-to-speech
2026年10月3日2:40
追加
speech-to-text
2026年10月3日2:40
追加
text-to-speech
2026年10月3日2:40
追加
fetch-video
2026年10月3日2:40
追加
motion-control
2026年10月3日2:40
追加
lip-sync
2026年10月3日2:40
追加
video-to-video
2026年10月3日2:40
追加
image-to-video
2026年10月3日2:40
追加
text-to-video
2026年10月3日2:40
追加
fetch-image
2026年10月3日2:40
追加
inpaint-image
2026年10月3日2:40
追加
image-to-image
2026年10月3日2:40
追加
text-to-image
2026年10月3日2:40
追加
list-providers
2026年10月3日2:40
追加
list-models
2026年10月3日2:40