Skip to main content
The MCP server exposes 6 tools. AI clients discover them automatically via tools/list — you don’t call them directly; your AI does.

search_tools

Find the right Artificial Studio tool for a task. Arguments
NameTypeDescription
querystringFree-form description, e.g. "generate image", "text to speech"
Returns: { data: Tool[] } with matching tools, each including input schemas and pricing. Example prompt
“What tools does Artificial Studio have for making music?”

get_tool_detail

Get full details for one tool: all models, input schemas, pricing. Arguments
NameTypeDescription
tool_slugstringTool slug, e.g. "create-image", "create-video", "text-to-speech"
Returns: the tool object with models[], each with slug, name, cost, costUnit, and inputSchema. Call this before generate if you want your AI to pick the best/cheapest model, or to show the user options.

generate

Submit a generation job. Returns immediately with a job_id — the job runs asynchronously in the background.
This tool is async. After calling, poll check_generation with the returned job_id every few seconds until status is "success" or "error". Videos and audio can take minutes.
Arguments
NameTypeDescription
toolstringTool slug, e.g. "create-image"
inputobjectMust include model (string) plus fields from the model’s inputSchema
Example call
{
  "tool": "create-image",
  "input": {
    "model": "flux-schnell",
    "prompt": "A cute golden retriever wearing sunglasses",
    "image_size": "square_hd"
  }
}
Response
{
  "job_id": "507f1f77bcf86cd799439011",
  "status": "processing",
  "tool": "create-image",
  "type": "image",
  "eta_seconds": 15,
  "poll_after_seconds": 3,
  "message": "Job submitted. Poll check_generation with job_id=\"507f...\" every ~3s until status is \"success\" or \"error\"."
}
Typical ETA hints
Typeeta_seconds
image / text15
audio30
3d60
video (≤4s)60
video (8s)120
poll_after_seconds is always clamped between 3s and 10s.

check_generation

Poll a generation by its job_id. Call this until done: true. Arguments
NameTypeDescription
generation_idstringThe job_id from generate
Response — still running
{
  "job_id": "507f...",
  "status": "processing",
  "tool": "create-image",
  "type": "image",
  "done": false,
  "poll_after_seconds": 5
}
Response — success
{
  "job_id": "507f...",
  "status": "success",
  "tool": "create-image",
  "type": "image",
  "output": "https://files.artificialstudio.ai/generations/abc123.png",
  "thumbnail": "https://files.artificialstudio.ai/thumbnails/abc123.jpg",
  "done": true
}
Response — error
{
  "job_id": "507f...",
  "status": "error",
  "tool": "create-image",
  "type": "image",
  "error": "Model failed: content policy violation",
  "done": true
}
output and thumbnail are only present on success. error is only present on failure. When done: true, stop polling.

list_generations

List recent generations from your account. Arguments
NameTypeDefaultDescription
limitnumber20Items per page
offsetnumber0Pagination offset
statusstringFilter: pending, processing, success, error
Useful for “show me my last video” style prompts.

get_account

Returns credits, plan, and basic account info for the authenticated user. Arguments: none. Returns
{
  "credits": 1234,
  "plan": "pro",
  "email": "[email protected]"
}
Your AI can use this to warn you before running expensive jobs.

Error handling

Tool calls that fail throw standard MCP errors. Common causes:
ErrorCause
Tool 'X' not foundInvalid tool_slug or tool argument
Model 'X' not found for tool 'Y'input.model is wrong
Insufficient creditsCharged in generate before queueing
Validation failedinput doesn’t match the model’s schema
Generation not foundWrong job_id in check_generation
Your AI will typically retry or ask you for clarification — behavior depends on the client.

Next steps

Async & polling

Deep dive on the async generation pattern.

Examples

Example prompts and conversations.