Skip to main content
fal provides a second MCP server — the Platform API MCP — focused on operating and debugging your fal account. Where the Run MCP lets your assistant build with models (search, schemas, inference), this server lets it inspect your serverless apps: requests, logs, error analytics, deploy and revision history, runner state, queue depth, spend, and files. Connect it to Claude Code, Cursor, or any MCP-compatible client with your own API key, then ask things like “why did my last request to my-app fail?” — your assistant walks the same debugging steps you would: find the failing request, read its logs, check whether it’s widespread, correlate with recent deploys and runner state. The server is hosted at https://api.fal.ai/v1/mcp/platform and is read-only: it can observe your account but never change it.
You need a fal API key to connect. If you don’t have one yet, create one here.

Setup

Run this command in your terminal:
Note the auth scheme: this server uses Authorization: Key YOUR_FAL_KEY (the Platform API’s native scheme), not Bearer. You can connect both fal MCP servers side by side — they complement each other.

Available Tools

The server exposes 15 tools: eleven first-class serverless debugging tools, plus a four-tool discovery gateway that opens up the rest of the Platform API (compute, workflows, keys, account, organization, storage) without bloating your assistant’s context.

Serverless debugging

Discovery


Examples

These are quick tastes. For the full guide — the debugging loop, a worked incident example, and a library of prompt recipes — see Debugging with AI.

Debug a failing endpoint

“My requests to my-app started failing about an hour ago — figure out why”
The assistant will:
  1. Use fetch_requests to find the failing requests and their request_ids
  2. Use fetch_request_logs with traceback: true to read the stack traces
  3. Use get_analytics to check whether the failures are widespread or isolated
  4. Use fetch_events to check whether a deploy or config change lines up with when the failures started
  5. Use get_current_state to see if runners are healthy right now

Judge the blast radius

“Is my-app having an incident or was that one bad request?”
The assistant calls get_analytics with the error-count metrics over the incident window and compares error rates against request volume.

Did a deploy break it?

“Errors on my-app jumped Tuesday afternoon — did that start with a deploy?”
The assistant uses list_revisions to see when each revision went out (and who deployed it), then lines those boundaries up against the error timeline from get_analytics.

Why is my queue growing?

“Requests to my-app are taking forever — are we capacity-bound?”
The assistant checks the current queue size with get_current_state, then compares get_runner_history against request volume from get_analytics over the same window: a backed-up queue while runner counts stay flat means undercapacity; runners scaling with traffic means a spike.

Watch spend

“How much did my serverless apps cost this week, and was any of it surge pricing?”
The assistant calls get_usage with a weekly window (admin-scoped key required).

Reach beyond serverless

“List my compute instances”
The assistant uses search_operations("compute instances")invoke_operation — no serverless-specific tool needed.

How It Works

The server runs inside the fal Platform API and is fully stateless:
  1. Your assistant sends a request to https://api.fal.ai/v1/mcp/platform with your API key
  2. Tool calls execute against the Platform API with that key — normal permissions and ownership scoping apply, so you can only ever see your own account
  3. Results are returned to your assistant
Your API key is sent per-request and never stored. Everything is read-only in the current version: write operations (like flushing a queue) are listed in the catalog but refuse to execute. A few things worth knowing:
  • Data freshness — request, analytics, and usage data are warehouse-backed and can lag real time by a few minutes. Responses carry an as_of marker, and the server instructs your assistant not to mistake ingestion lag for “no traffic” during a live incident.
  • Output limits — large responses are truncated with guidance to narrow the query, so a noisy log search won’t flood your assistant’s context.
  • Key scopes — most tools work with any valid key; get_usage requires an admin-scoped key.

FAQ

The Run MCP at mcp.fal.ai/mcp is for building with models: search the catalog, run inference, upload files. The Platform API MCP is for operating your account: debugging serverless apps, checking spend, inspecting infrastructure. Connect both — they don’t overlap.