RYLA

Generate AI influencer photos, face swaps, and character sheets with a consistent face.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
98%
Vollständigkeit des Schemas
84%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (1)

  • LOWTool 'ryla_generate_face_swap' description lacks action verbin ryla_generate_face_swap

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,918Tokens (Tool-Definitionen)
~2.0 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.28% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "ryla": {
      "url": "https://mcp.ryla.ai/mcp"
    }
  }
}

Remote-Endpunkte

https://mcp.ryla.ai/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (14)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
⚪ryla_generate_base_image(niche, vibe, nsfwEnabled, promptInput)

Generate base character images from a niche/vibe/prompt. Returns a jobId; poll with ryla_generation_status.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "niche": {
      "type": "string",
      "description": "Content niche, e.g. \"fitness\""
    },
    "vibe": {
      "type": "string",
      "description": "Overall vibe/style descriptor"
    },
    "nsfwEnabled": {
      "type": "boolean",
      "default": false,
      "description": "Enable unrestricted fan content generation"
    },
    "promptInput": {
      "type": "string",
      "description": "Free-form prompt text"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪ryla_generate_face_swap(characterId, baseImageUrl, prompt, nsfw, seed)

Swap a character face onto a reference base image. Returns the generation result.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "characterId": {
      "type": "string",
      "format": "uuid",
      "description": "Character UUID"
    },
    "baseImageUrl": {
      "type": "string",
      "format": "uri",
      "description": "Reference/base image URL to swap the face from"
    },
    "prompt": {
      "type": "string",
      "description": "Prompt for the target image"
    },
    "nsfw": {
      "type": "boolean",
      "default": false,
      "description": "Enable unrestricted fan content generation"
    },
    "seed": {
      "type": "integer",
      "description": "Random seed for reproducibility"
    }
  },
  "required": [
    "baseImageUrl",
    "prompt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪ryla_generate_character_sheet(characterId, baseImageUrl, nsfw, angles)

Generate a multi-angle character sheet from a base image. Returns a jobId; poll with ryla_generation_status.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "characterId": {
      "type": "string",
      "format": "uuid",
      "description": "Character UUID"
    },
    "baseImageUrl": {
      "type": "string",
      "format": "uri",
      "description": "Base image URL for PuLID character sheet generation"
    },
    "nsfw": {
      "type": "boolean",
      "default": false,
      "description": "Enable unrestricted fan content generation"
    },
    "angles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional list of angle presets"
    }
  },
  "required": [
    "baseImageUrl"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_generation_status(jobId)

Check the status of a generation job by its jobId.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "description": "The jobId returned by a ryla_generate_* tool call"
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_account_credits_balance

Check the authenticated user's current RYLA credit balance.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_account_gallery_list(limit)

List the authenticated user's most recent generated images/jobs.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Max number of items to return (default 20, max 50)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡ryla_list_characters

List the authenticated user's existing characters (AI influencers) so you can pick a characterId for the other generation tools. There is no tool to CREATE a character -- that happens in the RYLA app at app.ryla.ai.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_generate_image(characterId, scene, environment, outfit, poseId, ...)

Generate Studio-quality images for an existing character with full creative control (scene, outfit, pose, lighting, expression, style). This is the primary, full-featured image tool -- prefer it over ryla_generate_base_image. Character must already exist; use ryla_list_characters to find a characterId. Returns a jobId; poll with ryla_generation_status.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "characterId": {
      "type": "string",
      "format": "uuid",
      "description": "Character UUID to generate images for"
    },
    "scene": {
      "type": "string",
      "description": "Scene preset or description"
    },
    "environment": {
      "type": "string",
      "description": "Environment preset or description"
    },
    "outfit": {
      "type": "string",
      "description": "Outfit description"
    },
    "poseId": {
      "type": "string",
      "description": "Pose preset id, e.g. \"standing-casual\""
    },
    "lighting": {
      "type": "string",
      "description": "Lighting preset, e.g. \"natural.goldenHour\""
    },
    "expression": {
      "type": "string",
      "description": "Facial expression preset, e.g. \"positive.smile\""
    },
    "shotType": {
      "type": "string",
      "description": "Camera framing, e.g. \"close-up-portrait\", \"full-body\""
    },
    "aspectRatio": {
      "type": "string",
      "enum": [
        "1:1",
        "9:16",
        "2:3",
        "4:5",
        "3:4",
        "4:3",
        "16:9",
        "3:2"
      ],
      "description": "Image aspect ratio"
    },
    "quality": {
      "type": "string",
      "description": "Quality tier: \"standard\" (HD, default) or \"ultra\" (4K)"
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 1,
      "description": "Number of images to generate"
    },
    "nsfw": {
      "type": "boolean",
      "default": false,
      "description": "Enable unrestricted fan content generation"
    },
    "promptEnhance": {
      "type": "boolean",
      "description": "Enable AI prompt enhancement (default true)"
    },
    "seed": {
      "type": "integer",
      "description": "Base seed; each image increments it"
    },
    "useLora": {
      "type": "boolean",
      "description": "Use the character LoRA for face consistency, if trained"
    },
    "loraId": {
      "type": "string",
      "description": "LoRA id to use, if not the default for this character"
    },
    "loraStrength": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 2,
      "description": "LoRA strength, 0.1-2.0"
    },
    "referenceImageUrl": {
      "type": "string",
      "description": "Reference image URL for face consistency (InstantID/PuLID), as an alternative to LoRA"
    },
    "enableFaceSwap": {
      "type": "boolean",
      "description": "Route through face-swap for the reference image"
    },
    "referenceStrength": {
      "type": "number",
      "minimum": 0.1,
      "maximum": 1,
      "description": "Reference image strength, 0.1-1.0"
    },
    "referenceMethod": {
      "type": "string",
      "enum": [
        "instantid",
        "pulid",
        "ipadapter"
      ],
      "description": "Reference image method (default instantid)"
    },
    "socialMediaReady": {
      "type": "boolean",
      "description": "Apply anti-AI-detection post-processing"
    },
    "realismStyle": {
      "type": "boolean",
      "description": "Apply realism post-processing style"
    },
    "stylePreset": {
      "type": "string",
      "enum": [
        "ultraRealistic",
        "instagramReady",
        "editorialFashion",
        "casualSelfie",
        "professionalPortrait"
      ],
      "description": "Visual style preset (default ultraRealistic)"
    },
    "antiDetectPreset": {
      "type": "string",
      "enum": [
        "subtle",
        "moderate",
        "aggressive",
        "advanced",
        "maximum"
      ],
      "description": "Anti-detection intensity (default moderate); advanced/maximum require Pro"
    }
  },
  "required": [
    "characterId",
    "scene",
    "aspectRatio"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_generate_video(characterId, prompt, duration, fps, aspectRatio, ...)

Generate a Studio video for an existing character (image-to-video). Character must already exist; use ryla_list_characters to find a characterId. Returns a jobId; poll with ryla_generation_status.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "characterId": {
      "type": "string",
      "format": "uuid",
      "description": "Character UUID to generate video for"
    },
    "prompt": {
      "type": "string",
      "description": "Optional prompt/description for the video"
    },
    "duration": {
      "type": "number",
      "enum": [
        2,
        4,
        5,
        6,
        8
      ],
      "default": 4,
      "description": "Video duration in seconds"
    },
    "fps": {
      "type": "number",
      "enum": [
        24,
        30
      ],
      "description": "Frames per second (default 24)"
    },
    "aspectRatio": {
      "type": "string",
      "enum": [
        "1:1",
        "9:16",
        "16:9"
      ],
      "description": "Video aspect ratio"
    },
    "nsfw": {
      "type": "boolean",
      "default": false,
      "description": "Enable unrestricted fan content generation"
    },
    "seed": {
      "type": "integer",
      "description": "Optional seed for reproducibility"
    },
    "useLora": {
      "type": "boolean",
      "description": "Use character LoRA for face consistency (default true)"
    },
    "realismStyle": {
      "type": "boolean",
      "description": "Apply photorealism post-processing"
    }
  },
  "required": [
    "characterId",
    "aspectRatio"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_generate_voice(characterId, text, emotion, speed, voiceIdentityId, ...)

Generate speech audio (TTS) in an existing character's voice. Character must already exist; use ryla_list_characters to find a characterId.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "characterId": {
      "type": "string",
      "format": "uuid",
      "description": "Character UUID"
    },
    "text": {
      "type": "string",
      "maxLength": 1000,
      "description": "Text to convert to speech (max 1000 chars)"
    },
    "emotion": {
      "type": "string",
      "enum": [
        "neutral",
        "happy",
        "sad",
        "whisper",
        "laugh",
        "seductive",
        "angry"
      ],
      "description": "Emotion style for the voice"
    },
    "speed": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 2,
      "description": "Speech speed multiplier, 0.5-2.0"
    },
    "voiceIdentityId": {
      "type": "string",
      "description": "Specific voice identity id, if known (otherwise the character default is used)"
    },
    "gender": {
      "type": "string",
      "enum": [
        "female",
        "male"
      ],
      "description": "Character gender, to pick a default voice when voiceIdentityId is absent"
    }
  },
  "required": [
    "characterId",
    "text"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_generate_avatar_video(characterId, audioUrl, voiceNoteId, prompt, duration, ...)

Generate a talking avatar video from a character face + an audio track (kie.ai InfiniTalk). Pro plan required. Character must already exist; use ryla_list_characters to find a characterId. Returns a jobId; poll with ryla_generation_status.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "characterId": {
      "type": "string",
      "format": "uuid",
      "description": "Character UUID to use as the avatar face"
    },
    "audioUrl": {
      "type": "string",
      "format": "uri",
      "description": "URL of the audio file (MP3/WAV/M4A, max 5MB, 2-60s). Required unless voiceNoteId is set."
    },
    "voiceNoteId": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of a saved voice note to use as the audio track instead of audioUrl"
    },
    "prompt": {
      "type": "string",
      "description": "Optional prompt/description for the avatar video"
    },
    "duration": {
      "type": "number",
      "enum": [
        5,
        10
      ],
      "default": 5,
      "description": "Video duration in seconds"
    },
    "aspectRatio": {
      "type": "string",
      "enum": [
        "1:1",
        "9:16",
        "16:9"
      ],
      "description": "Video aspect ratio (default 16:9)"
    },
    "modelTier": {
      "type": "string",
      "enum": [
        "standard",
        "pro"
      ],
      "description": "Model quality tier (default pro)"
    },
    "sourceImageId": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of a specific image to use as the face source. If omitted, the character base image is used."
    }
  },
  "required": [
    "characterId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_generate_video_swap(characterId, videoUrl, sourceType, outfitEnabled, outfitPrompt, ...)

Swap a character face into an existing video (face swap onto uploaded footage). Pro plan required. videoUrl must be a video you already uploaded to your RYLA account. Character must already exist; use ryla_list_characters to find a characterId. Returns a jobId; poll with ryla_generation_status.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "characterId": {
      "type": "string",
      "format": "uuid",
      "description": "Character UUID whose face is swapped into the video"
    },
    "videoUrl": {
      "type": "string",
      "format": "uri",
      "description": "URL of the source video to swap (must be a RYLA-hosted storage URL you own)"
    },
    "sourceType": {
      "type": "string",
      "enum": [
        "instagram",
        "tiktok",
        "youtube",
        "upload"
      ],
      "description": "Source type (default upload)"
    },
    "outfitEnabled": {
      "type": "boolean",
      "description": "Enable an outfit-change prompt"
    },
    "outfitPrompt": {
      "type": "string",
      "description": "Outfit description, used only when outfitEnabled is true"
    },
    "backgroundEnabled": {
      "type": "boolean",
      "description": "Enable a background-change prompt"
    },
    "backgroundPrompt": {
      "type": "string",
      "description": "Background description, used only when backgroundEnabled is true"
    }
  },
  "required": [
    "characterId",
    "videoUrl"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪ryla_generate_lip_sync(portraitImageUrl, audioUrl, prompt)

Generate a talking video by lip-syncing a portrait image to an audio track (kie.ai InfiniTalk). Both portraitImageUrl and audioUrl must be RYLA-hosted URLs you own. Pro plan required. This capability may not be available on your account yet (internal rollout, pricing not finalized) -- an unavailable-feature error means it is not yet live for you.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "portraitImageUrl": {
      "type": "string",
      "format": "uri",
      "description": "Portrait/face image URL (RYLA-hosted storage URL you own)"
    },
    "audioUrl": {
      "type": "string",
      "format": "uri",
      "description": "Audio track URL (RYLA-hosted storage URL you own)"
    },
    "prompt": {
      "type": "string",
      "minLength": 1,
      "description": "Prompt describing the desired output (required)"
    }
  },
  "required": [
    "portraitImageUrl",
    "audioUrl",
    "prompt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ryla_server_info

Get RYLA external MCP server configuration and connection info

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Empfohlene Prompts

list_items
List all [items] available in RYLA
Erwartete Tools: ryla_account_gallery_list
browse_collection
Show me the [collection] from RYLA
Erwartete Tools: ryla_account_gallery_list

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet14 Tools
verifiziertVersion nicht aufgezeichnet14 Tools