MCP server
The same /v3 surface, served as tools an agent can call. Connect it once and anything that speaks MCP can browse the template library, price a generation, render it and hand the file back.
Connecting
The server speaks streamable HTTP at https://api.neurall.io/v3/mcp and authenticates with the same project API key as the REST surface (see Authentication). One block of client config is the whole setup:
mcp client config
{
"mcpServers": {
"neurall": {
"type": "http",
"url": "https://api.neurall.io/v3/mcp",
"headers": { "Authorization": "<your API key>" }
}
}
}No Bearer prefix
The tools
Each feature has its own typed tool, so an agent gets argument validation instead of a stack trace. create_generation reaches the same features in packed form, kept for clients that predate the typed tools.
generate_ad- Make an ad from a product page or a description
generate_youtube_thumbnail- Make a thumbnail from a video URL or its subject
generate_self_portrait- Restage a person into a new scene, in 4K
generate_product_shot- Put a product somewhere it has never been
generate_avatar_video- Make a face speak, in a chosen voice
generate_logo_reveal- Animate a logo into a reveal, with sound
generate_object_reveal- Animate a product into a reveal
generate_voiceover- Speak a script in a catalog or cloned voice
create_generation- Run any of the features above in one packed call
get_generation- Check a generation and collect its output URLs
list_generations- Look through everything the project has made
delete_generation- Remove a result and purge its stored assets
list_templates- Browse the tested style library, with previews
get_template_prompt- Take the prompt behind a preview it liked
get_pricing- Ask what a generation costs before spending anything
list_voices- Browse its own voices and the catalog, with previews
get_voice- Look up a voice, or poll one it is cloning
upload_file- Pull an image or an audio file in from a URL
create_upload_url- Send a file from your own disk, without a key of its own
create_voice- Clone a voice from a sample
delete_voice- Delete a cloned voice it no longer needs
How it behaves
Tool calls loop back through the REST routes, so nothing about the account changes shape: the same prepaid balance, the same prices (get_pricing answers before anything is spent), the same concurrency ceiling, the same automatic refund when a generation fails or times out.
Generation tools return immediately with a pending generation; the agent polls get_generation until it lands, exactly like the REST flow on How a generation works. Image renders usually finish in well under a minute and most video in two to three; an avatar video with a long script can take up to 90, so pacing the polls out matters more for an agent than for a person.
Files are the one place agents differ from servers. An agent’s API key lives in its client config, not in its shell, so it cannot send an authenticated multipart upload: create_upload_url exists for exactly that, handing back a presigned URL the agent PUTs the local file to, while upload_file pulls in a file already on a public https URL server-side.
One habit matters more for an agent than for a person: a generation made through the API expires 24 hours after the request. The output URL is signed and the generation itself is reaped at expiresAt, so download the file when it lands rather than bookmarking the URL for tomorrow.
To see what this feels like in practice, the MCP page walks real asks through the tool sequences they produce, renders included.