fal.ai MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_modelsA | Unified endpoint for discovering model endpoints. Supports three usage modes: 1. List Mode (no parameters): Paginated list of all available model endpoints with minimal metadata. 2. Find Mode ( 3. Search Mode (search parameters): Filter models by free-text query, category, or status. Expansion:
Use
Examples of
See fal.ai Model APIs for more details. Authentication: Optional. Providing an API key grants higher rate limits. Common Use Cases:
|
| get_pricingA | Returns unit pricing for requested endpoint IDs. Most models use output-based pricing (e.g., per image/video with proportional adjustments for resolution/length). Some models use GPU-based pricing depending on architecture. Values are expressed per model's billing unit in a given currency. Authentication: Required. Users must provide a valid API key. Custom pricing or discounts may be applied based on account status. Common Use Cases:
See fal.ai pricing for more details. |
| estimate_pricingA | Computes cost estimates using one of two methods: 1. Historical API Price (
2. Unit Price (
Authentication: Required. Users must provide a valid API key. Custom pricing or discounts may be applied based on account status. Common Use Cases:
See fal.ai pricing for more details. |
| get_usageA | Returns paginated usage records for your workspace with filters for endpoint, user, date range, and auth method. Each item includes the billed unit quantity, the pre-discount unit price and cost_subtotal, any percentage discount applied, and the final cost_total (cost_subtotal − cost_discount). Key Features:
Common Use Cases:
See fal.ai docs for more details. |
| get_analyticsA | Time-bucketed metrics per model endpoint, including request counts, success/error
rates, and latency percentiles. Metric Selection:
You must specify which metrics to include using the Available Metrics: The Volume
Error type breakdown
Queue / prepare latency
Request execution latency
Cold boot
Billing
Key Features:
Common Use Cases:
See Queue API docs for more details. |
| get_billing_eventsA | Returns paginated individual billing event records with filters for endpoint and date range. Each record includes the request ID, timestamp, endpoint, output units billed, and a cost breakdown in USD (cost_subtotal, cost_discount, cost_total; cost_estimate_nano_usd carries cost_total in nano USD). Key Features:
Common Use Cases:
See fal.ai docs for more details. |
| delete_request_payloadsA | Deletes the IO payloads and associated CDN output files for a specific request. Important:
What gets deleted:
What is NOT deleted:
Response:
Idempotency:
See fal.ai docs for more details about request payloads. |
| list_requests_by_endpointA | Lists requests for one or more endpoints (same Authentication: Requires API key (user or enterprise). Filters:
Sorting:
Expansions:
|
| search_requestsA | Search, filter, and browse your request history. Supports three modes: 1. Semantic Search ( 2. Filtered Browse (no 3. Semantic + Filters (search params AND filter params): Combine semantic search with hard filters. Filters narrow the candidate set before ranking by similarity. Filter Options:
Examples:
|
| list_workflowsA | List workflows for the authenticated user with optional search and filtering. Features:
Authentication: Required. Returns only workflows owned by the authenticated user. Common Use Cases:
|
| create_workflowA | Create a new workflow owned by the authenticated user. Authentication: Required. Common Use Cases:
Note: Workflow names must be unique within your namespace. Creating a workflow with a name you already use returns a 400 validation error. |
| get_workflowA | Get detailed information about a specific workflow, including its full contents/definition. Authentication: Required. Common Use Cases:
|
| list_assetsB | Browse and semantically search fal Assets across all media, uploads, favorites, collections, tags, and character references. |
| list_asset_collectionsB | List asset collections for the authenticated user's fal Assets library. |
| create_asset_collectionC | Create asset collection for the authenticated user's fal Assets library. |
| get_asset_collectionC | Get asset collection for the authenticated user's fal Assets library. |
| update_asset_collectionC | Update asset collection for the authenticated user's fal Assets library. |
| delete_asset_collectionB | Delete asset collection for the authenticated user's fal Assets library. |
| get_asset_collection_hierarchyA | Get the nested subtree rooted at an asset collection, plus its ancestor collections ordered from the top level down to its direct parent. |
| favorite_asset_collectionB | Favorite an asset collection for the authenticated user's fal Assets library. |
| unfavorite_asset_collectionB | Unfavorite an asset collection for the authenticated user's fal Assets library. |
| move_asset_collectionA | Move a manual asset collection under another collection, or to the top level. Only manual collections can be moved or act as folders; nesting is limited to 5 levels deep and cannot create a cycle. |
| list_asset_collection_assetsC | Browse assets in a collection for the authenticated user's fal Assets library. |
| add_asset_to_collectionA | Add an asset to a manual or character collection. Provide a request ID or vector ID; unresolved references are materialized before local collection state is added. For character collections, the asset is added by applying the character tag. |
| remove_asset_from_collectionA | Remove an asset from a manual or character collection by request ID or vector ID. |
| list_asset_charactersB | List asset characters for the authenticated user's fal Assets library. |
| create_asset_characterB | Create an asset character for the authenticated user's fal Assets library. Prefer vector IDs or request IDs in reference_images for existing fal-generated assets; use fal-hosted image URLs only for standalone images. Unresolved ID references are materialized before character state is added. |
| update_asset_characterA | Update an asset character for the authenticated user's fal Assets library. Prefer vector IDs or request IDs in reference_images for existing fal-generated assets; use fal-hosted image URLs only for standalone images. Unresolved ID references are materialized before character state is added. |
| get_asset_characterC | Get asset character for the authenticated user's fal Assets library. |
| delete_asset_characterB | Delete asset character for the authenticated user's fal Assets library. |
| favorite_asset_characterC | Favorite an asset character for the authenticated user's fal Assets library. |
| unfavorite_asset_characterB | Unfavorite an asset character for the authenticated user's fal Assets library. |
| list_asset_tagsB | List asset tags for the authenticated user's fal Assets library. |
| create_asset_tagC | Create asset tag for the authenticated user's fal Assets library. |
| set_asset_tags_for_assetB | Set tags for an asset. Provide a request ID or vector ID; unresolved references are materialized before tag state is added. |
| update_asset_tagC | Update asset tag for the authenticated user's fal Assets library. |
| delete_asset_tagB | Delete asset tag for the authenticated user's fal Assets library. |
| upload_assetB | Upload asset for the authenticated user's fal Assets library. |
| get_assetA | Get an asset document by vector ID from the authenticated user's fal Assets library. The vector may exist only in Turbopuffer; in that case the response returns the Turbopuffer document with empty local state. |
| get_asset_lineageA | Get the derivation lineage of an asset by asset ID: the inputs it was generated from, the generation requests along the way, and any referenced characters, traversed recursively up to |
| favorite_assetA | Favorite an asset. Provide a request ID or vector ID; unresolved references are materialized before favorite state is added. |
| unfavorite_assetC | Unfavorite an asset by request ID or vector ID. |
| list_asset_tags_for_assetA | List tags for an asset by vector ID. Vectors that have not been saved as assets return an empty tag list. |
| assign_asset_tagA | Assign a tag to an asset. Provide a request ID or vector ID; unresolved references are materialized before tag state is added. |
| unassign_asset_tagC | Unassign a tag from an asset by request ID or vector ID. |
| get_storage_file_aclA | Returns the Access Control List currently applied to a fal CDN file. The ACL consists of a default decision ( Authentication: Required. The API key must have the |
| set_storage_file_aclA | Replaces the Access Control List of a fal CDN file. The ACL consists of a default decision ( Rules referencing users that do not exist are dropped. The response reflects the ACL actually applied, so verify it contains the rules you sent. Authentication: Required. The API key must have the |
| sign_storage_file_urlA | Creates a signed URL that grants temporary access to a fal CDN file, regardless of its ACL. Useful for sharing access-restricted files. The signature is valid for Authentication: Required. The API key must have the |
| get_storage_settingsA | Returns the account-level storage lifecycle settings applied to newly uploaded fal CDN files:
Both fields are null when the account has never saved settings. Authentication: Required. The API key must have the |
| update_storage_settingsA | Replaces the account-level storage lifecycle settings applied to newly uploaded fal CDN files. Omitted or null fields are cleared (reset to the system default), so always send the full desired configuration. ACL rules referencing users that do not exist are dropped. The response reflects the settings actually saved, so verify it contains the rules you sent. These are the same settings that the per-request
Authentication: Required. The API key must have the |
| get_account_billingB | Returns billing information for the authenticated account. Use the Expandable Fields:
Common Use Cases:
|
| get_organization_teamsA | Returns the list of teams in your organization with their details.
Must be called with an admin API key on the organization's root team. Key Features:
See fal.ai docs for more details. |
| get_organization_usageA | Returns paginated usage records across all teams and product lines in your
organization, with each record attributed to a specific team via the
Covers all three fal product lines:
Must be called with an admin API key on the organization's root team. Key Features:
See fal.ai docs for more details. |
| get_model_infoC | Exact current catalog lookup with OpenAPI expansion. No generation or inferred model defaults. Schema may be unavailable; inspect actual native fields. |
| run_modelA | Confirmed paid model request after current native input-schema validation. Exact model_id/input required; image/video commands do not invent fields or choose a default. Queue submissions return receipt only; synchronous timeout may leave an unknown paid outcome. No retry or polling. |
| submit_jobA | Confirmed paid model request after current native input-schema validation. Exact model_id/input required; image/video commands do not invent fields or choose a default. Queue submissions return receipt only; synchronous timeout may leave an unknown paid outcome. No retry or polling. |
| generate_imageB | Confirmed paid model request after current native input-schema validation. Exact model_id/input required; image/video commands do not invent fields or choose a default. Queue submissions return receipt only; synchronous timeout may leave an unknown paid outcome. No retry or polling. |
| generate_videoB | Confirmed paid model request after current native input-schema validation. Exact model_id/input required; image/video commands do not invent fields or choose a default. Queue submissions return receipt only; synchronous timeout may leave an unknown paid outcome. No retry or polling. |
| get_job_statusB | One read using the SDK-compatible owner/app root, not the full model subpath. No auto-polling, paid re-submission or arbitrary status URL. |
| get_job_resultA | One result read using the receipt/model root. No wait loop, media download, re-submission or auto-upload. Signed credential URLs are redacted; ordinary output media URLs remain account data. |
| cancel_jobB | Confirmed native cancellation request. Cancellation receipt is not proof processing stopped or credits were refunded; current provider state controls eligibility. No retry. |
| upload_fileB | Confirmed selected absolute regular non-symlink local file, 1 byte–20 MiB. Uses pinned SDK upload-initiation protocol then a credential-free HTTPS fal.media PUT with redirects refused. No remote URL ingestion, base64 model output, multipart retries or automatic generation. |
| list_accountsB | Local labels/default/auth method only. No keys, token paths, real provider identities or network request. |
| get_operation_schemaC | Local current native method/path/query/header/body schema and exact provenance. No credential or provider request. |
| preview_generation_batchA | Read-only current schema validation and native unit-pricing lookup for all requested async jobs. Hash binds ordered exact inputs/lifecycle/store-IO/profile label/current schemas/unit quotes. Unit pricing is not final cost or a spending cap. No generation, file write or key ownership validation. |
| submit_generation_batchA | Confirmed one-to-ten async jobs. Refetch all current schemas/unit quotes and validate all before first paid submission; refuse changed hash. Submit sequentially, stop on first failure, report known request IDs/failed and unattempted indices. No polling, retries, rollback, continuation or budget guarantee. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 66 tools
Several tools have overlapping or identical purposes: run_model, submit_job, generate_image, and generate_video all share the exact same description, making it impossible to distinguish when to use which. search_requests and list_requests_by_endpoint also overlap heavily, and list_assets vs list_asset_collection_assets vs get_asset cover similar ground.
Most tools follow a consistent verb_noun snake_case pattern (get_model_info, create_workflow, delete_asset_collection). A few deviations like assign_asset_tag/unassign_asset_tag vs set_asset_tags_for_asset add minor inconsistency but the overall scheme is predictable.
66 tools is far too many for coherent agent use; the set is bloated with many near-duplicate CRUD operations for assets, collections, characters, and tags. This volume forces significant disambiguation burden on the caller.
The surface covers many domains (models, pricing, usage, analytics, billing, workflows, assets, storage, jobs) with reasonable CRUD completeness for assets and collections. However, clear gaps exist: no list_workflows deletion/update, no search_assets tool despite list_assets mentioning semantic search, and no clear way to poll/cancel batch jobs beyond the single cancel_job.