Mcp Fal — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Fal (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server for interacting with fal.ai models and services.
git clone https://github.com/am0y/mcp-fal.git
cd mcp-falpython -m venv venv
venv/Scripts/pip install -r requirements.txt # Windows
# OR
venv/bin/pip install -r requirements.txt # Linux/Macexport FAL_KEY="YOUR_FAL_API_KEY_HERE"git clone https://github.com/am0y/mcp-fal.git
cd mcp-falcp .env.example .env
# Edit .env and add your fal.ai API keydocker-compose up -d[!IMPORTANT] For MCP Integration (VS Code, Claude Desktop, Antigravity)
>
✅ Use Option 2 (Direct Python Execution) - This is the correct and recommended approach.
>
❌ Do NOT use Docker - MCP servers use stdio transport and must be spawned by MCP clients. Docker containers will exit immediately because there's no stdin connection.
[!NOTE] Why Docker doesn't work for MCP
>
MCP servers communicate via standard input/output (stdio). They're designed to be spawned as child processes by MCP clients, not run as standalone services. When you try to run an MCP server in Docker, it starts, finds no stdin connection, and exits immediately.
Prerequisites: Python 3.10+ installed
#### Step 1: Create Virtual Environment
# Create virtual environment
python -m venv venv
# Activate it (optional, for manual testing)
venv\Scripts\activate # Windows
source venv/bin/activate # Linux/Mac#### Step 2: Install Dependencies
# Windows
venv/Scripts/pip install -r requirements.txt
# Linux/Mac
venv/bin/pip install -r requirements.txt#### Step 3: Set Up API Key
Create a .env file in the project root:
cp .env.example .envEdit .env and add your fal.ai API key:
FAL_KEY=your_actual_fal_api_key_hereFor local testing and development (not required for MCP integration):
#### FastMCP Dev Mode
Launch the MCP Inspector web interface to test tools interactively:
fastmcp dev main.py#### Direct Execution
Run the server directly (will wait for stdio input):
venv/Scripts/python main.py # Windows
venv/bin/python main.py # Linux/MacAfter setting up the virtual environment above, configure your MCP client:
Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (Mac):
{
"mcpServers": {
"fal": {
"command": "d:/Projects/python/mcp-fal/venv/Scripts/python.exe",
"args": ["d:/Projects/python/mcp-fal/main.py"],
"env": {
"FAL_KEY": "your_fal_api_key_here"
}
}
}
}For VS Code/Antigravity (MCP settings):
{
"mcpServers": {
"fal": {
"command": "d:/Projects/python/mcp-fal/venv/Scripts/python.exe",
"args": ["d:/Projects/python/mcp-fal/main.py"],
"env": {
"FAL_KEY": "your_fal_api_key_here"
}
}
}
}For Linux/Mac, use:
{
"mcpServers": {
"fal": {
"command": "/absolute/path/to/mcp-fal/venv/bin/python",
"args": ["/absolute/path/to/mcp-fal/main.py"],
"env": {
"FAL_KEY": "your_fal_api_key_here"
}
}
}
}Key Point: Use the venv Python interpreter (venv/Scripts/python.exeon Windows orvenv/bin/pythonon Linux/Mac) so all dependencies are available.
Security Tip: Instead of hardcoding your API key, you can: 1. SetFAL_KEYas a system environment variable 2. Use"FAL_KEY": "${env:FAL_KEY}"in the config to reference it 3. Or create a.envfile in the project directory and the server will load it automatically
models(page=None, total=None) - List available models with optional paginationsearch(keywords) - Search for models by keywordsschema(model_id) - Get OpenAPI schema for a specific modelgenerate(model, parameters, queue=False) - Generate content using a modelresult(url) - Get result from a queued requeststatus(url) - Check status of a queued requestcancel(url) - Cancel a queued requestupload(path - Upload a file to fal.ai CDN[!WARNING] This Docker setup is experimental and does NOT work for MCP integration.
>
MCP servers use stdio transport and must be spawned by MCP clients. Docker containers will exit immediately because there's no stdin connection. This is kept for educational purposes and potential future experimentation.
Dockerfile - Python 3.10-slim image with dependenciesdocker-compose.yml - Compose configuration with auto-restart.dockerignore - Excludes unnecessary files from builddocker-compose builddocker-compose up -dThe container will start and exit immediately because MCP servers require an active stdin connection.
MCP servers communicate via standard input/output (stdio). They're designed to be spawned as child processes by MCP clients, not run as standalone services. When run in Docker without an active stdin connection, the server starts, finds no input stream, and exits.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.