Skip to main content
Glama

fal MCP Server

A Model Context Protocol (MCP) server for interacting with fal.ai models and services. This project was inspired by am0y's MCP server, but updated to use the latest streaming MCP support.

Features

  • List all available fal.ai models

  • Search for specific models by keywords

  • Get model schemas

  • Generate content using any fal.ai model

  • Support for both direct and queued model execution

  • Queue management (status checking, getting results, cancelling requests)

  • File upload to fal.ai CDN

  • Full streaming support via HTTP transport

Related MCP server: mcp-fal

Requirements

  • Python 3.12+

  • fastmcp

  • httpx

  • aiofiles

  • A fal.ai API key

Installation

  1. Clone this repository:

git clone https://github.com/derekalia/fal.git
cd fal
  1. Install the required packages:

# Using uv (recommended)
uv sync

# Or using pip
pip install fastmcp httpx aiofiles

Usage

Running the Server Locally

  1. Get your fal.ai API key from fal.ai

  2. Start the MCP server with HTTP transport:

./run_http.sh YOUR_FAL_API_KEY

The server will start and display connection information in your terminal.

  1. Connect to it from your LLM IDE (Claude Code or Cursor) by adding to your configuration:

{
  "Fal": {
    "url": "http://127.0.0.1:6274/mcp/"
  }
}

Development Mode (with MCP Inspector)

For testing and debugging, you can run the server in development mode:

fastmcp dev main.py

This will:

  • Start the server on a random port

  • Launch the MCP Inspector web interface in your browser

  • Allow you to test all tools interactively with a web UI

The Inspector URL will be displayed in the terminal (typically http://localhost:PORT).

Environment Variables

The run_http.sh script automatically handles all environment variables for you. If you need to customize:

  • PORT: Server port for HTTP transport (default: 6274)

Setting API Key Permanently

If you prefer to set your API key permanently instead of passing it each time:

  1. Create a .env file in the project root:

echo 'FAL_KEY="YOUR_FAL_API_KEY_HERE"' > .env
  1. Then run the server without the API key argument:

./run_http.sh

For manual setup:

  • FAL_KEY: Your fal.ai API key (required)

  • MCP_TRANSPORT: Transport mode - stdio (default) or http

Available Tools

  • models(page=None, total=None) - List available models with optional pagination

  • search(keywords) - Search for models by keywords

  • schema(model_id) - Get OpenAPI schema for a specific model

  • generate(model, parameters, queue=False) - Generate content using a model

  • result(url) - Get result from a queued request

  • status(url) - Check status of a queued request

  • cancel(url) - Cancel a queued request

  • upload(path) - Upload a file to fal.ai CDN

License

MIT

Available Tools

8 tools
cancelB
    Cancel a queued request.
    
    Args:
        url: The cancel_url from a queued request
        
    Returns:
        The result of the cancellation attempt
    

Inputs: url (required).

generateC
    Generate content using a fal.ai model.
    
    Args:
        model: The model ID to use (e.g., "fal-ai/flux/dev")
        parameters: Model-specific parameters as a dictionary
        queue: Whether to use the queuing system (default: False)
        
    Returns:
        The model's response
    

Inputs: model (required), parameters (required), queue.

modelsA
    List available models on fal.ai. Ensure to use the total and page arguments. Avoid listing all the models at once.
    
    Args:
        page: The page number of models to retrieve (pagination)
        total: The total number of models to retrieve per page
        
    Returns:
        A list of models with their metadata
    

Inputs: page, total.

resultB
    Get the result of a queued request.
    
    Args:
        url: The response_url from a queued request
        
    Returns:
        The generation result
    

Inputs: url (required).

schemaB
    Get the OpenAPI schema for a specific model.
    
    Args:
        model_id: The ID of the model (e.g., "fal-ai/flux/dev")
        
    Returns:
        The OpenAPI schema for the model
    

Inputs: model_id (required).

statusA
    Check the status of a queued request.
    
    Args:
        url: The status_url from a queued request
        
    Returns:
        The current status of the queued request
    

Inputs: url (required).

uploadC
    Upload a file to fal.ai storage.
    
    Args:
        path: The absolute path to the file to upload
        
    Returns:
        Information about the uploaded file, including the file_url
    

Inputs: path (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 8 tools

    Disambiguation4/5

    Most tools have distinct purposes, but there is some overlap between 'models' and 'search' as both retrieve model information, which could cause confusion. However, their specific functions (listing vs. keyword-based searching) are clarified in descriptions, preventing major misselection.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with clear, single-word verbs (e.g., cancel, generate, models, result). This uniformity makes the tool set predictable and easy to navigate, with no deviations in style.

    Tool Count5/5

    With 8 tools, the server is well-scoped for interacting with fal.ai's API, covering key operations like content generation, model management, and file handling. Each tool serves a specific function without unnecessary bloat.

    Completeness4/5

    The tool set covers core workflows for AI model interaction, including generation, queuing, model discovery, and file uploads. A minor gap exists in lacking tools for direct model management (e.g., updating or deleting models), but agents can work effectively with the provided operations.

    Related MCP Connectors

    Related MCP Servers