Run fal.ai models, poll the inference queue and read model schemas.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Request cancellation of a queued (not-yet-started) request. Returns 202 { status: 'CANCELLATION_REQUESTED' }. fal.ai queue: PUT {queue}/{model_id}/requests/{request_id}/cancel.
The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'.
The queue request id returned when the request was submitted.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Request cancellation of a queued (not-yet-started) request. Returns 202 { status: 'CANCELLATION_REQUESTED' }. fal.ai queue: PUT {queue}/{model_id}/requests/{request_id}/cancel.
| Argument | Type | Description |
|---|---|---|
| model_id* | string | The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'. |
| request_id* | string | The queue request id returned when the request was submitted. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model_id",
"request_id"
],
"properties": {
"model_id": {
"type": "string",
"minLength": 1,
"description": "The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'."
},
"request_id": {
"type": "string",
"minLength": 1,
"description": "The queue request id returned when the request was submitted."
}
}
}Get the OpenAPI 3 schema for a model — its input/output fields (components.schemas). Use this to learn what inputs a model accepts before submitting. fal.ai API: GET /openapi/queue/openapi.json?endpoint_id={model_id}.
| Argument | Type | Description |
|---|---|---|
| model_id* | string | The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model_id"
],
"properties": {
"model_id": {
"type": "string",
"minLength": 1,
"description": "The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'."
}
}
}Get the final output of a COMPLETED queued request. fal.ai queue: GET {queue}/{model_id}/requests/{request_id}.
| Argument | Type | Description |
|---|---|---|
| model_id* | string | The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'. |
| request_id* | string | The queue request id returned when the request was submitted. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model_id",
"request_id"
],
"properties": {
"model_id": {
"type": "string",
"minLength": 1,
"description": "The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'."
},
"request_id": {
"type": "string",
"minLength": 1,
"description": "The queue request id returned when the request was submitted."
}
}
}Get the status of a queued request (IN_QUEUE | IN_PROGRESS | COMPLETED). fal.ai queue: GET {queue}/{model_id}/requests/{request_id}/status (optional logs=1).
| Argument | Type | Description |
|---|---|---|
| logs | boolean | Include queue logs in the response (?logs=1). |
| model_id* | string | The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'. |
| request_id* | string | The queue request id returned when the request was submitted. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model_id",
"request_id"
],
"properties": {
"logs": {
"type": "boolean",
"description": "Include queue logs in the response (?logs=1)."
},
"model_id": {
"type": "string",
"minLength": 1,
"description": "The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'."
},
"request_id": {
"type": "string",
"minLength": 1,
"description": "The queue request id returned when the request was submitted."
}
}
}List or search fal.ai models in the registry (paginated). fal.ai API: GET /models (query: keywords, page, total).
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number (default 1). |
| total | integer | Page size (number of models per page). |
| keywords | string | Optional search string to filter models by. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number (default 1)."
},
"total": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page size (number of models per page)."
},
"keywords": {
"type": "string",
"description": "Optional search string to filter models by."
}
}
}Convenience 'subscribe': submit a request, poll its status until COMPLETED, then return the result. Consumes fal credits. If it does not complete within the wait budget, returns a { status, request_id, status_url, note } object (NOT an error) so you can keep polling with falai_get_request_status / falai_get_request_result.
| Argument | Type | Description |
|---|---|---|
| input* | object | The model's input object — arbitrary params for that model, e.g. { "prompt": "a cat" }. Use falai_get_model_schema to learn the fields. |
| model_id* | string | The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'. |
| max_wait_seconds | integer | Max seconds to wait for completion (default 60, capped at 300). |
| poll_interval_seconds | integer | Seconds between status polls (default 3, min 1). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model_id",
"input"
],
"properties": {
"input": {
"type": "object",
"description": "The model's input object — arbitrary params for that model, e.g. { \"prompt\": \"a cat\" }. Use falai_get_model_schema to learn the fields.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"model_id": {
"type": "string",
"minLength": 1,
"description": "The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'."
},
"max_wait_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Max seconds to wait for completion (default 60, capped at 300)."
},
"poll_interval_seconds": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Seconds between status polls (default 3, min 1)."
}
}
}Submit an inference request to the queue and return immediately (async — does NOT wait for completion). Returns { request_id, response_url, status_url, cancel_url, queue_position }. Consumes fal credits when the model runs. fal.ai queue: POST {queue}/{model_id} with body = the model input.
| Argument | Type | Description |
|---|---|---|
| input* | object | The model's input object — arbitrary params for that model, e.g. { "prompt": "a cat" }. Use falai_get_model_schema to learn the fields. |
| model_id* | string | The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"model_id",
"input"
],
"properties": {
"input": {
"type": "object",
"description": "The model's input object — arbitrary params for that model, e.g. { \"prompt\": \"a cat\" }. Use falai_get_model_schema to learn the fields.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"model_id": {
"type": "string",
"minLength": 1,
"description": "The fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'."
}
}
}