Skip to main content
Glama

Server Details

Run fal.ai models, poll the inference queue and read model schemas.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
54.4% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation4/5

Most tools target distinct operations in the queue lifecycle (submit, status, result, cancel, list, schema). The main overlap is falai_run_model, which bundles submit+poll+result, potentially competing with the submit_request/status/result trio, but its description clearly delineates it as a convenience wrapper so agents can tell it apart.

Naming Consistency5/5

All seven tools follow a uniform falai_ prefix with consistent snake_case verb_noun naming (cancel_request, get_model_schema, get_request_result, get_request_status, list_models, run_model, submit_request). No mixed conventions or ambiguous verbs.

Tool Count5/5

Seven tools is well-scoped for a queue-based inference API, covering discovery, submission, polling, retrieval, cancellation, and a convenience wrapper without redundancy or bloat.

Completeness4/5

The full async queue lifecycle (submit, status, result, cancel) plus model discovery and schema inspection is covered, and run_model offers a synchronous path. Minor gaps remain, such as model metadata retrieval beyond the schema or any file/asset handling, but core workflows are complete.

Available Tools

7 tools
falai_cancel_requestCancel requestA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesThe fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'.
request_idYesThe queue request id returned when the request was submitted.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint=true annotation, the description discloses concrete behavior: the tool only affects not-yet-started requests, it is a *request* (202 CANCELLATION_REQUESTED, not a synchronous kill), and it names the underlying endpoint. This is useful context on force/semantics that annotations alone do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose, then return behavior, then the upstream endpoint. No filler or repetition; every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully states the 202/CANCELLATION_REQUESTED response, and eligibility plus target are covered. It omits failure behavior (e.g., what happens if the request already started or the id is unknown), which is a minor but real gap for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both model_id and request_id are already documented with format examples ('fal-ai/flux/schnell', queue request id). The description adds nothing param-specific, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (cancel a request) and immediately narrows scope to 'queued (not-yet-started)', which is the key disambiguator versus siblings like falai_get_request_status or falai_get_request_result. An agent can identify the operation and its applicability without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The qualifier 'queued (not-yet-started)' tells the agent when cancellation is eligible, which is real usage guidance. However, it never names what to do when the request has already started, nor points to an alternative sibling, so the guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

falai_get_model_schemaGet model schemaA
Read-only
Inspect

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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesThe fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered; the description adds genuine context by disclosing the response shape (components.schemas with input/output fields) and the underlying GET endpoint, which implies a plain fetch with no side effects. It omits any note on failure behavior for an unknown model_id or on caching/rate limits, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: capability first, usage second, raw endpoint last. The endpoint line is slightly redundant for invocation purposes but useful for verification/debugging, and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must describe the return value — and it does, naming components.schemas input/output fields. Combined with the readOnly annotation, an agent has enough to call this correctly; only error handling for an invalid model_id is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single model_id parameter is well documented in the schema (including the 'fal-ai/flux/schnell' example). The description only echoes model_id via the endpoint template, adding no format or constraint detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource ('Get the OpenAPI 3 schema for a model') and immediately narrows the payload to 'its input/output fields (components.schemas)'. This distinguishes it from siblings like falai_run_model or falai_list_models without the agent needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this to learn what inputs a model accepts before submitting' gives a clear triggering condition tied to a workflow step (pre-submission discovery). It does not explicitly name the alternative tools or state when not to use it, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

falai_get_request_resultGet request resultA
Read-only
Inspect

Get the final output of a COMPLETED queued request. fal.ai queue: GET {queue}/{model_id}/requests/{request_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesThe fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'.
request_idYesThe queue request id returned when the request was submitted.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already establishes the safe-read profile, and the description adds the underlying HTTP endpoint shape (GET {queue}/{model_id}/requests/{request_id}). It does not disclose error behavior for a non-completed or failed request, nor any return payload characteristics, so it adds only modest value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded: the purpose first, then the endpoint detail. No filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool this is close to adequate, but with no output schema the description should at least characterize the returned payload ('final output' is vague) and note the failure mode when the request is not yet complete. Those gaps leave an agent guessing at edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both model_id and request_id are already fully documented in the schema. The description adds only the implicit notion that these form path segments ('{queue}/{model_id}/requests/{request_id}'), which is marginal beyond the schema's explicit path-segment note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and a precisely scoped resource (the final output of a COMPLETED queued request), which implicitly separates it from falai_get_request_status. It stops short of explicitly naming that sibling, so an agent must infer the boundary rather than being told it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'COMPLETED' implies the precondition for calling this tool, and 'queued request' implies it follows falai_submit_request. However, there is no explicit guidance on what to do while the request is still running (e.g., poll falai_get_request_status) or what happens if the request is not finished.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

falai_get_request_statusGet request statusB
Read-only
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
logsNoInclude queue logs in the response (?logs=1).
model_idYesThe fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'.
request_idYesThe queue request id returned when the request was submitted.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the underlying queue endpoint path and the optional logs flag, which is useful operational context, but it omits whether status is terminal/transient or any rate-limit considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the purpose front-loaded, followed by the endpoint detail. No filler, though the raw URL template sits slightly awkwardly beside the prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the returned status values (IN_QUEUE | IN_PROGRESS | COMPLETED), so the agent knows what to expect. Only the polling/next-step workflow is left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents model_id, request_id and logs. The description only restates the optional logs=1 flag, adding no syntax or meaning beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the status of a queued request') and enumerates the possible status values. It implicitly separates itself from falai_get_request_result by scoping to status only, but never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to call this versus the sibling falai_get_request_result, nor any polling guidance (e.g. call repeatedly until COMPLETED, then fetch the result). The status enum hints at a polling workflow but the agent must infer it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

falai_list_modelsList modelsA
Read-only
Inspect

List or search fal.ai models in the registry (paginated). fal.ai API: GET /models (query: keywords, page, total).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number (default 1).
totalNoPage size (number of models per page).
keywordsNoOptional search string to filter models by.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this is a safe read, so the burden is lighter. The description adds useful context (paginated, and that it maps to GET /models with keywords/page/total query params), but says nothing about result ordering, max page size, or total result counts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core action and the pagination caveat front-loaded, plus an endpoint mapping. Every clause carries information; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter read-only list tool with a fully documented schema and annotations covering safety, this is nearly complete. The only gap is the absence of any hint about the shape of the returned model list, which has no output schema to cover it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (page, total, keywords) are already documented and the baseline is 3. The description restates the parameter names as API query params but adds no format, default, or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list/search) and resource (fal.ai models in the registry) and notes pagination, so the agent knows exactly what the tool returns. It never names a sibling such as falai_get_model_schema, so the boundary with single-model lookups is left to inference rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the discovery/browse tool because it lists models, but the description gives no explicit when-to-use, when-not-to-use, or alternative (e.g. use get_model_schema once you know the model id).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

falai_run_modelRun model (subscribe)A
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesThe model's input object — arbitrary params for that model, e.g. { "prompt": "a cat" }. Use falai_get_model_schema to learn the fields.
model_idYesThe fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'.
max_wait_secondsNoMax seconds to wait for completion (default 60, capped at 300).
poll_interval_secondsNoSeconds between status polls (default 3, min 1).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the single destructiveHint annotation: it discloses credit consumption, the polling loop, and — most valuably — that a wait-budget timeout returns a { status, request_id, status_url, note } object rather than an error, which prevents the agent from mis-handling a normal outcome as a failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core behavior and followed by the credit cost and the timeout contract. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description covers the non-obvious timeout return shape and names where the eventual result comes from. The success payload itself ('the result') is left generic, but with 100% schema coverage on inputs this is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the 300s cap on max_wait_seconds and the default poll interval, so the schema carries parameter meaning. The description adds only the informal phrase 'wait budget', which is baseline-equivalent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific behavior chain (submit → poll until COMPLETED → return result) rather than just 'run model', and the word 'Convenience' tells the agent this is the synchronous wrapper. It is clearly distinguishable from sibling falai_submit_request (submit only) and the polling siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent on the non-completion path: keep polling with falai_get_request_status / falai_get_request_result. However it never states the inverse condition (when to prefer falai_submit_request for long jobs), so the when-not guidance is partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

falai_submit_requestSubmit requestA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesThe model's input object — arbitrary params for that model, e.g. { "prompt": "a cat" }. Use falai_get_model_schema to learn the fields.
model_idYesThe fal.ai model id, used raw as a path segment, e.g. 'fal-ai/flux/schnell'.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true; the description earns its keep by explaining why (consumes fal credits when the model runs) and by disclosing the full return contract (request_id, response_url, status_url, cancel_url, queue_position) plus the underlying POST {queue}/{model_id} semantics. It stops short of explaining polling/cancel follow-up flow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the async contract, then the return shape, then the side effect and wire format. No filler and no restatement of the tool title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema and only a destructiveHint annotation, the description supplies everything the agent needs: async semantics, cost implication, documented return fields, and a pointer for discovering model-specific input fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage the baseline is 3, but the description adds real mapping information: the body equals the model input and model_id is interpolated raw into a path segment. It also actively points to falai_get_model_schema as the way to discover the arbitrary per-model input fields, which the schema itself cannot enumerate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (submit an inference request to the queue) and immediately differentiates its mode of operation: 'return immediately (async — does NOT wait for completion)'. That distinction separates it from the synchronous-sounding sibling falai_run_model without needing to open either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The async/does-not-wait framing is a clear when-to-use signal, and it routes the agent to falai_get_model_schema for building the input object. It never explicitly names falai_run_model as the synchronous alternative, so the choose-between guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • Changedfalai_cancel_request1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedfalai_get_model_schema1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedfalai_get_request_result1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedfalai_get_request_status1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedfalai_list_models1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedfalai_run_model1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedfalai_submit_request1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. 7 tool updates
    • First observedfalai_cancel_request
    • First observedfalai_get_model_schema
    • First observedfalai_get_request_result
    • First observedfalai_get_request_status
    • First observedfalai_list_models
    • First observedfalai_run_model
    • First observedfalai_submit_request

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.