RYLA
REMOTE · MCP.RYLA.AI · SCANNED SEP 27
Generate AI influencer photos, face swaps, and character sheets with a consistent face.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 14 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability69
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2241 tokens (~160/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
- Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the RYLA MCP server?
RYLA is a hosted endpoint at https://mcp.ryla.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.ryla.ai
claude mcp add --transport http ai-ryla-ryla 'https://mcp.ryla.ai/mcp'
{
"mcpServers": {
"ai-ryla-ryla": {
"url": "https://mcp.ryla.ai/mcp"
}
}
} {
"servers": {
"ai-ryla-ryla": {
"type": "http",
"url": "https://mcp.ryla.ai/mcp"
}
}
} [mcp_servers.ai-ryla-ryla] url = "https://mcp.ryla.ai/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-ryla-ryla": {
"type": "remote",
"url": "https://mcp.ryla.ai/mcp",
"enabled": true
}
}
} openclaw mcp add ai-ryla-ryla --url 'https://mcp.ryla.ai/mcp' --transport streamable-http
mcp_servers:
ai-ryla-ryla:
url: "https://mcp.ryla.ai/mcp" {
"McpServers": {
"ai-ryla-ryla": {
"Transport": "http",
"Url": "https://mcp.ryla.ai/mcp"
}
}
} assistant mcp add ai-ryla-ryla -t streamable-http -u 'https://mcp.ryla.ai/mcp'
{
"mcpServers": {
"ai-ryla-ryla": {
"type": "http",
"url": "https://mcp.ryla.ai/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 26 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 23 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 +16
- Injection markers: unverified → pass ▲ security
- Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 14 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
- Schema quality: unverified → fail ▼ functional
- Schema quality: 384 → 160 ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 16 Sept 26 −15
- Tool safety: pass → unverified ▼ security
- Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the whole tool list to see what that exposes. security
- Schema quality: 151 → 384 ▼ functional
- Schema quality: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 27 Sept 2026 · Probed https://mcp.ryla.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.ryla.ai | CN=YE2,O=Let's Encrypt,C=US | 3 Sept 2026 | 2 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 6fe5aafc4f0396c08c9e0aab19f9d377f91 |
| SANs: mcp.ryla.ai | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.ryla.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| ryla.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.ryla.ai/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.ryla.ai/mcp | HTTPS enforced | 301 | https://mcp.ryla.ai/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ryla_account_credits_balance ~23
Check the authenticated user's current RYLA credit balance.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ryla_account_gallery_list ~42
List the authenticated user's most recent generated images/jobs.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max number of items to return (default 20, max 50) |
No output schema declared.
No examples provided.
ryla_generate_avatar_video ~232
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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspectRatio | string | – | Video aspect ratio (default 16:9) |
| audioUrl | string | – | URL of the audio file (MP3/WAV/M4A, max 5MB, 2-60s). Required unless voiceNoteId is set. |
| characterId | string | yes | Character UUID to use as the avatar face |
| duration | number | – | Video duration in seconds |
| modelTier | string | – | Model quality tier (default pro) |
| prompt | string | – | Optional prompt/description for the avatar video |
| sourceImageId | string | – | UUID of a specific image to use as the face source. If omitted, the character base image is used. |
| voiceNoteId | string | – | UUID of a saved voice note to use as the audio track instead of audioUrl |
No output schema declared.
No examples provided.
ryla_generate_base_image ~87
Generate base character images from a niche/vibe/prompt. Returns a jobId; poll with ryla_generation_status.
| Name | Type | Req | Description |
|---|---|---|---|
| niche | string | – | Content niche, e.g. "fitness" |
| nsfwEnabled | boolean | – | Enable unrestricted fan content generation |
| promptInput | string | – | Free-form prompt text |
| vibe | string | – | Overall vibe/style descriptor |
No output schema declared.
No examples provided.
ryla_generate_character_sheet ~88
Generate a multi-angle character sheet from a base image. Returns a jobId; poll with ryla_generation_status.
| Name | Type | Req | Description |
|---|---|---|---|
| angles | array | – | Optional list of angle presets |
| baseImageUrl | string | yes | Base image URL for PuLID character sheet generation |
| characterId | string | – | Character UUID |
| nsfw | boolean | – | Enable unrestricted fan content generation |
No output schema declared.
No examples provided.
ryla_generate_face_swap ~91
Swap a character face onto a reference base image. Returns the generation result.
| Name | Type | Req | Description |
|---|---|---|---|
| baseImageUrl | string | yes | Reference/base image URL to swap the face from |
| characterId | string | – | Character UUID |
| nsfw | boolean | – | Enable unrestricted fan content generation |
| prompt | string | yes | Prompt for the target image |
| seed | integer | – | Random seed for reproducibility |
No output schema declared.
No examples provided.
ryla_generate_image ~513
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.
| Name | Type | Req | Description |
|---|---|---|---|
| antiDetectPreset | string | – | Anti-detection intensity (default moderate); advanced/maximum require Pro |
| aspectRatio | string | yes | Image aspect ratio |
| characterId | string | yes | Character UUID to generate images for |
| count | integer | – | Number of images to generate |
| enableFaceSwap | boolean | – | Route through face-swap for the reference image |
| environment | string | – | Environment preset or description |
| expression | string | – | Facial expression preset, e.g. "positive.smile" |
| lighting | string | – | Lighting preset, e.g. "natural.goldenHour" |
| loraId | string | – | LoRA id to use, if not the default for this character |
| loraStrength | number | – | LoRA strength, 0.1-2.0 |
| nsfw | boolean | – | Enable unrestricted fan content generation |
| outfit | string | – | Outfit description |
| poseId | string | – | Pose preset id, e.g. "standing-casual" |
| promptEnhance | boolean | – | Enable AI prompt enhancement (default true) |
| quality | string | – | Quality tier: "standard" (HD, default) or "ultra" (4K) |
| realismStyle | boolean | – | Apply realism post-processing style |
| referenceImageUrl | string | – | Reference image URL for face consistency (InstantID/PuLID), as an alternative to LoRA |
| referenceMethod | string | – | Reference image method (default instantid) |
| referenceStrength | number | – | Reference image strength, 0.1-1.0 |
| scene | string | yes | Scene preset or description |
| seed | integer | – | Base seed; each image increments it |
| shotType | string | – | Camera framing, e.g. "close-up-portrait", "full-body" |
| socialMediaReady | boolean | – | Apply anti-AI-detection post-processing |
| stylePreset | string | – | Visual style preset (default ultraRealistic) |
| useLora | boolean | – | Use the character LoRA for face consistency, if trained |
No output schema declared.
No examples provided.
ryla_generate_lip_sync ~145
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.
| Name | Type | Req | Description |
|---|---|---|---|
| audioUrl | string | yes | Audio track URL (RYLA-hosted storage URL you own) |
| portraitImageUrl | string | yes | Portrait/face image URL (RYLA-hosted storage URL you own) |
| prompt | string | yes | Prompt describing the desired output (required) |
No output schema declared.
No examples provided.
ryla_generate_video ~175
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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspectRatio | string | yes | Video aspect ratio |
| characterId | string | yes | Character UUID to generate video for |
| duration | number | – | Video duration in seconds |
| fps | number | – | Frames per second (default 24) |
| nsfw | boolean | – | Enable unrestricted fan content generation |
| prompt | string | – | Optional prompt/description for the video |
| realismStyle | boolean | – | Apply photorealism post-processing |
| seed | integer | – | Optional seed for reproducibility |
| useLora | boolean | – | Use character LoRA for face consistency (default true) |
No output schema declared.
No examples provided.
ryla_generate_video_swap ~195
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.
| Name | Type | Req | Description |
|---|---|---|---|
| backgroundEnabled | boolean | – | Enable a background-change prompt |
| backgroundPrompt | string | – | Background description, used only when backgroundEnabled is true |
| characterId | string | yes | Character UUID whose face is swapped into the video |
| outfitEnabled | boolean | – | Enable an outfit-change prompt |
| outfitPrompt | string | – | Outfit description, used only when outfitEnabled is true |
| sourceType | string | – | Source type (default upload) |
| videoUrl | string | yes | URL of the source video to swap (must be a RYLA-hosted storage URL you own) |
No output schema declared.
No examples provided.
ryla_generate_voice ~144
Generate speech audio (TTS) in an existing character's voice. Character must already exist; use ryla_list_characters to find a characterId.
| Name | Type | Req | Description |
|---|---|---|---|
| characterId | string | yes | Character UUID |
| emotion | string | – | Emotion style for the voice |
| gender | string | – | Character gender, to pick a default voice when voiceIdentityId is absent |
| speed | number | – | Speech speed multiplier, 0.5-2.0 |
| text | string | yes | Text to convert to speech (max 1000 chars) |
| voiceIdentityId | string | – | Specific voice identity id, if known (otherwise the character default is used) |
No output schema declared.
No examples provided.
ryla_generation_status ~42
Check the status of a generation job by its jobId.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | The jobId returned by a ryla_generate_* tool call |
No output schema declared.
No examples provided.
ryla_list_characters ~58
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ryla_server_info ~22
Get RYLA external MCP server configuration and connection info
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
What is the RYLA MCP server?
RYLA is an MCP server listed in the public MCP registry as ai.ryla/ryla. Generate AI influencer photos, face swaps, and character sheets with a consistent face. This page covers its hosted endpoint (https://mcp.ryla.ai/mcp).
Is the RYLA MCP server safe to use?
RYLA scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the RYLA MCP server expose?
RYLA exposes 14 tools: ryla_generate_base_image, ryla_generate_face_swap, ryla_generate_character_sheet, ryla_generation_status, ryla_account_credits_balance, and 9 more. Their descriptions and schemas cost roughly 1,857 tokens of context every time the server is loaded.
Does the RYLA MCP server require authentication?
No. We connected to RYLA without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the RYLA MCP server still maintained?
RYLA is still listed as active in the MCP registry. We last reached this channel on 27 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.