fal MCP server
14 operations1 webhook
Generative media platform with hundreds of image, video, audio and 3D models; queue or run models, follow requests, look up models and prices, track usage and upload input files.
Try fal with your agent
Connect fal, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in fal on my account, then run one read-only example and show me the result.
fal tools and triggers
Tools are what your agent can do in fal through Corsair's MCP server. Triggers are the fal events a routine can start from.
Models
- Estimate CostRead-only
Estimate what a number of calls or output units will cost
models.estimateCost
- PricingRead-only
Unit price of fal models (per image, megapixel, second…)
models.pricing
- RunWrite
Run a model and wait up to waitSeconds (default 10) for its output; spends fal credits. SUCCEEDED and FAILED are final. IN_QUEUE or IN_PROGRESS is a job to follow with queue.status; video, audio and training usually take longer than the wait.
models.run
- SearchRead-only
Find fal models by text, category or endpoint id; includeOpenApi returns their input and output fields
models.search
Queue
- CancelWrite
Cancel a queued request: removed if still waiting, asked to stop if running
queue.cancel
- ResultRead-only
The output of a completed queued request
queue.result
- StatusRead-only
Where a queued request stands. Once done it returns state SUCCEEDED with the output, or FAILED with the error.
queue.status
- SubmitWrite
Queue a model run (image, video, audio, 3D…) and get a request id back at once; spends fal credits. Follow it with queue.status until state is SUCCEEDED or FAILED, or pass webhookUrl.
queue.submit
Requests
- Delete PayloadsDestructive
Delete a request's stored input and output payloads and the files it generated on fal's CDN (files it took as input stay)
requests.deletePayloads
- ListRead-only
Past requests to given endpoints, with timing and status; optionally their inputs and outputs
requests.list
Usage
- Billing EventsRead-only
Billed requests one by one, with their cost
usage.billingEvents
- GetRead-only
Usage and cost by endpoint over a date range
usage.get
Account
- BillingRead-only
The account's credit balance (needs a key with billing read access)
account.billing
Files
- UploadWrite
Upload a file to fal storage and get a public URL to pass as a model input
files.upload
Connect fal to Claude, ChatGPT or Cursor
- 1
Connect fal in Corsair
Add your fal API key once in Corsair. Corsair stores the credential encrypted and makes the fal API calls for your agent, so it never goes into a prompt or a config file. Connect fal
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs fal. On a ChatGPT personal plan, connect fal here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, fal's read and write operations run right away and its 1 destructive operation waits for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/fal, add the fal plugin, and connect with an API key. Then call methods like corsair.fal.api.account.billing() from your app. Corsair verifies webhooks, and keeps each tenant isolated.
Yes. fal requires an API key from your fal account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit fal, GitHub, Notion, Stripe, and the rest. Trigger fal from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for generative media platform with hundreds of image, video, audio and 3d models; queue or run models, follow requests, look up models and prices, track usage and upload input files. Common builds include sync jobs, admin tooling, and agents that call fal APIs from your backend. Webhook handlers react to fal events and fan out to Slack, email, or other plugins in the same tenant.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per fal API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/fal in the open repo. When fal ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your fal data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store fal data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put fal on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 1 destructive fal operation. You can change a link's mode at hub.corsair.dev/me.