{"server":{"name":"io.github.ModelsLab/modelslab-v8","title":"ModelsLab v8","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://modelslab.com/mcp/v8","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {api_key}","isSecret":true,"variables":{"api_key":{"isSecret":true,"isRequired":true,"description":"ModelsLab API key from https://modelslab.com/dashboard/api-keys"}},"isRequired":true,"description":"ModelsLab API key from https://modelslab.com/dashboard/api-keys"}]}],"version":"1.0.0","repository":{"url":"https://github.com/ModelsLab/modelslab-mcp","source":"github"},"websiteUrl":"https://docs.modelslab.com/mcp-web-api/overview","description":"ModelsLab v8 generation APIs: discover models, providers and endpoints, then run them."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-02T09:52:43.171127Z","publishedAt":"2026-10-02T09:52:43.171127Z","statusChangedAt":"2026-10-02T09:52:43.171127Z"},"dev.protogrid/connectability":{"class":"R2","autonomous":false,"human_steps":["oauth_consent_once"],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://modelslab.com/mcp/v8","transport":"streamable-http","templated":false,"headers":[{"name":"Authorization","required":true,"secret":true,"value":"Bearer {api_key}","secret_names":["api_key"]}],"auth":{"type":"oauth2","location":{"header":"Authorization","scheme":"Bearer"},"secret_name":null,"oauth":{"scopes":["mcp:use"],"grant_types":["authorization_code","refresh_token"],"dcr_supported":true,"cimd_supported":false,"authorization_servers":["https://modelslab.com/oauth"],"resource_metadata_url":"https://modelslab.com/.well-known/oauth-protected-resource/mcp/v8","code_challenge_methods":["S256"],"authorization_server_metadata_url":"https://modelslab.com/.well-known/oauth-authorization-server/oauth"}},"protocol":{"supported_versions":[],"stateless":null},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":221,"consecutive_failures":0,"last_probe_at":"2026-10-19T20:03:09.578Z","last_ok_at":"2026-10-19T20:03:09.578Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"3d-generation","title":"3D Generation (V8)","description":"    Generate 3D models using the ModelsLab V8 API.\n    Supports any 3D endpoint available on the platform.\n    Pass the `endpoint` slug and all required parameters for that endpoint.\n    Returns a request ID that can be used with the fetch-generation tool to retrieve results.\n    Use the list-models tool to find available model IDs.","annotations":{"openWorldHint":true},"source":"probe","observed_at":"2026-10-06T01:13:32.831Z"},{"name":"audio-generation","title":"Audio Generation (V8)","description":"    Generate audio using the ModelsLab V8 API.\n    Supports any audio endpoint (text-to-speech, speech-to-text, speech-to-speech, sound-generation, music-generation, song-extender, song-inpaint, dubbing, etc.).\n    Pass the `endpoint` slug (e.g. \"text-to-speech\") and all required parameters for that endpoint.\n    Returns a request ID that can be used with the fetch-generation tool to retrieve results.\n    Use the list-models tool to find available model IDs.","annotations":{"openWorldHint":true},"source":"probe","observed_at":"2026-10-06T01:13:32.831Z"},{"name":"endpoint-details","title":"Endpoint Details (V8)","description":"    Search V8 endpoint configurations and retrieve their full parameter schemas plus all\n    connected models that can be used with them.\n\n    Use this tool before calling a generation tool so you know:\n    - Exactly what `params` the endpoint expects (types, enums, defaults, required fields)\n    - Which `model_id` values are valid for the endpoint\n\n    Search modes:\n    - Provide `category` + `endpoint` slug to look up a specific endpoint.\n    - Provide `search` to find endpoints by name or description across all categories.\n    - Combine both to narrow results to a category with a keyword search.\n\n    Workflow:\n    1. Call this tool to get the parameter schema and available model IDs.\n    2. Pick a `model_id` from the `models` list in the response.\n    3. Call the appropriate generation tool (`image-generation`, `video-generation`,\n       `audio-generation`, `3d-generation`) with `model_id`, `endpoint`, and `params`.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-06T01:13:32.831Z"},{"name":"fetch-generation","title":"Fetch Generation Status (V8)","description":"    Check the status of a queued or processing generation request on the ModelsLab V8 API.\n\n    Use this tool when a generation tool (image-generation, video-generation, audio-generation,\n    3d-generation) returns a `status` of `\"processing\"` along with a numeric `id`.\n\n    Pass the `id` from the original generation response and the `type` matching the category\n    of the original request (e.g. \"images\" for image-generation).\n\n    The response will contain:\n    - `status`: \"success\", \"processing\", or \"error\"\n    - `output`: array of URLs when status is \"success\"","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-06T01:13:32.831Z"},{"name":"image-generation","title":"Image Generation (V8)","description":"    Generate images using the ModelsLab V8 API.\n    Supports any image endpoint (text-to-image, image-to-image, inpaint, outpaint, fashion, virtual-try-on, etc.).\n    Pass the `endpoint` slug (e.g. \"text-to-image\") and all required parameters for that endpoint.\n    Returns a request ID that can be used with the fetch-generation tool to retrieve results.\n    Use the list-models tool to find available model IDs.","annotations":{"openWorldHint":true},"source":"probe","observed_at":"2026-10-06T01:13:32.831Z"},{"name":"list-models","title":"List Models","description":"    List available AI models on the ModelsLab platform.\n    Filter by category (imagen, video, audio, llm, 3d), provider, tags, and more.\n    Returns model IDs that can be used with generation tools.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-06T01:13:32.831Z"},{"name":"list-providers","title":"List Providers","description":"    List all available model providers on the ModelsLab platform.\n    Returns provider names with model counts for each.\n    Use provider names to filter models in the list-models tool.","annotations":{"readOnlyHint":true},"source":"probe","observed_at":"2026-10-06T01:13:32.831Z"},{"name":"video-generation","title":"Video Generation (V8)","description":"    Generate videos using the ModelsLab V8 API.\n    Supports any video endpoint (text-to-video, image-to-video, video-to-video, lip-sync, motion-control, etc.).\n    Pass the `endpoint` slug (e.g. \"text-to-video\") and all required parameters for that endpoint.\n    Returns a request ID that can be used with the fetch-generation tool to retrieve results.\n    Use the list-models tool to find available model IDs.","annotations":{"openWorldHint":true},"source":"probe","observed_at":"2026-10-06T01:13:32.831Z"}],"dev.protogrid/trust":{"score":93,"components":{"hygiene":80,"liveness":100,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","+reachable","+uptime-100%","+updated-18d-ago","-duplicate-repo(3 names)"],"flags":["duplicate-repo"],"blocked":false,"computed_at":"2026-10-20T01:09:23.032Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":85,"label":"good","components":{"auth":83,"hygiene":79,"protocol":null,"stability":100,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.stateless","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"protocol.list_ttl","detail":"no remote answered a protocol handshake (not probed yet, unreachable, or local-only)","status":"na","category":"protocol"},{"id":"auth.prm","detail":"Protected Resource Metadata (RFC 9728) published","status":"pass","category":"auth"},{"id":"auth.as_metadata","detail":"authorization server metadata reachable","status":"pass","category":"auth"},{"id":"auth.cimd","detail":"only Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMD","status":"warn","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"only 4 of 8 tools declare readOnlyHint or destructiveHint","status":"warn","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list-providers (destructiveHint, idempotentHint, openWorldHint); endpoint-details (destructiveHint, idempotentHint, openWorldHint); image-generation (readOnlyHint, destructiveHint, idempotentHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 2,095 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"2 tool changes in 30 days","status":"pass","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-tools.directory_hints","~auth.cimd","~tools.annotations"],"flags":[],"tool_count":8,"token_estimate":2095,"tools_hash":"3cb5e3a41bde109514db4cf4db629284","tools_changed_at":"2026-10-05T13:54:18.779Z","computed_at":"2026-10-20T00:54:40.254Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"io.github.ModelsLab/modelslab-v8","aliases":["io.github.ModelsLab/modelslab","io.github.ModelsLab/modelslab-agents"],"alias_count":2,"repository_key":"github:modelslab/modelslab-mcp","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/io.github.ModelsLab%2Fmodelslab-v8/tools","arguments":{"name":"io.github.ModelsLab/modelslab-v8"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/io.github.ModelsLab%2Fmodelslab-v8/connection?target=mcpServers","arguments":{"name":"io.github.ModelsLab/modelslab-v8","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}