Fal.ai MCP Server
The Fal.ai MCP Server enables Claude Desktop and other MCP clients to generate and edit media using 600+ Fal.ai AI models through a unified interface.
Core Capabilities:
Image Generation: Create images from text prompts using models like Flux (Schnell, Dev, Pro), SDXL, and Stable Diffusion v3. Control composition, style, aspect ratios (square, landscape 4:3/16:9, portrait 3:4/9:16), seed values for reproducibility, and generate multiple variations (up to 4 images). Supports negative prompts and image-to-image style transfer.
Image Editing: Remove backgrounds, upscale resolution (2x or 4x), edit with natural language, inpaint specific regions with masks, smart resize for social media, and overlay images (e.g., watermarks).
Video Generation: Create videos from text or animate existing images using SVD, AnimateDiff, and Kling models. Control duration from 2 to 10 seconds with async processing and progress updates.
Audio Generation: Generate instrumental music or songs with vocals from text descriptions using MusicGen (medium/large variants). Customize duration from 5 to 300 seconds with queue-based processing. Includes text-to-speech and audio transcription (Bark, Whisper).
Model Discovery & Management: Access 600+ models via smart filtering, search by category (image, video, audio), get AI-powered recommendations, and use the
list_modelstool or specify full model IDs.Utilities: Check pricing and usage statistics, view spending history, upload local files for processing, and leverage asynchronous, non-blocking architecture with queue support for long-running tasks.
Flexible Deployment: Run via STDIO, HTTP/SSE, or dual transport modes using uvx, Docker, PyPI, or from source.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fal.ai MCP Servergenerate an image of a futuristic city at sunset with flying cars"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🎨 Fal.ai MCP Server
A Model Context Protocol (MCP) server that enables Claude Desktop (and other MCP clients) to generate images, videos, music, and audio using Fal.ai models.
✨ Features
🚀 Performance
Native Async API - Uses fal_client.run_async() for optimal performance
Queue Support - Long-running tasks (video/music) use queue API with progress updates
Non-blocking - All operations are truly asynchronous
🌐 Transport Modes (New!)
STDIO - Traditional Model Context Protocol communication
HTTP/SSE - Web-based access via Server-Sent Events
Dual Mode - Run both transports simultaneously
🎨 Media Generation (18 Tools)
Image Generation:
🖼️ generate_image - Create images from text prompts (Flux, SDXL, etc.)
🎯 generate_image_structured - Fine-grained control over composition, lighting, subjects
🔄 generate_image_from_image - Transform existing images with style transfer
Image Editing:
✂️ remove_background - Remove backgrounds from images (transparent PNG)
🔍 upscale_image - Upscale images 2x or 4x while preserving quality
✏️ edit_image - Edit images using natural language instructions
🎭 inpaint_image - Edit specific regions using masks
📐 resize_image - Smart resize for social media (Instagram, YouTube, TikTok, etc.)
🏷️ compose_images - Overlay images (watermarks, logos) with precise positioning
Video Tools:
🎬 generate_video - Text-to-video and image-to-video generation
📹 generate_video_from_image - Animate images into videos
🔀 generate_video_from_video - Video restyling and motion transfer
Audio Tools:
🎵 generate_music - Create instrumental music or songs with vocals
Utility Tools:
🔍 list_models - Discover 600+ available models with smart filtering
💡 recommend_model - AI-powered model recommendations for your task
💰 get_pricing - Check costs before generating content
📊 get_usage - View spending history and usage stats
⬆️ upload_file - Upload local files for use with generation tools
🔍 Dynamic Model Discovery (New!)
600+ Models - Access all models available on Fal.ai platform
Auto-Discovery - Models are fetched dynamically from the Fal.ai API
Smart Caching - TTL-based cache for optimal performance
Flexible Input - Use full model IDs or friendly aliases
Related MCP server: fal.ai MCP Server
🚀 Quick Start
Prerequisites
Python 3.10 or higher
Fal.ai API key (free tier available)
Claude Desktop (or any MCP-compatible client)
Installation
Option 0: Claude Code Plugin (Simplest for Claude Code Users) 🔌
If you're using Claude Code, install directly via the plugin system:
# Add the Luminary Lane Tools marketplace
/plugin marketplace add raveenb/fal-mcp-server
# Install the fal-ai plugin
/plugin install fal-ai@luminary-lane-toolsOr install directly without adding the marketplace:
/plugin install fal-ai@raveenb/fal-mcp-serverNote: You'll need to set
FAL_KEYin your environment before using the plugin.
Option 1: uvx (Recommended - Zero Install) ⚡
Run directly without installation using uv:
# Run the MCP server directly
uvx --from fal-mcp-server fal-mcp
# Or with specific version
uvx --from fal-mcp-server==1.4.0 fal-mcpClaude Desktop Configuration for uvx:
{
"mcpServers": {
"fal-ai": {
"command": "uvx",
"args": ["--from", "fal-mcp-server", "fal-mcp"],
"env": {
"FAL_KEY": "your-fal-api-key"
}
}
}
}Note: Install uv first:
curl -LsSf https://astral.sh/uv/install.sh | sh
Option 2: Docker (Recommended for Production) 🐳
Official Docker image available on GitHub Container Registry.
Step 1: Start the Docker container
# Pull and run with your API key
docker run -d \
--name fal-mcp \
-e FAL_KEY=your-api-key \
-p 8080:8080 \
ghcr.io/raveenb/fal-mcp-server:latest
# Verify it's running
docker logs fal-mcpStep 2: Configure Claude Desktop to connect
Add to your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"fal-ai": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:8080/sse"]
}
}
}Note: This uses mcp-remote to connect to the HTTP/SSE endpoint. Alternatively, if you have
curlavailable:"command": "curl", "args": ["-N", "http://localhost:8080/sse"]
Step 3: Restart Claude Desktop
The fal-ai tools should now be available.
Docker Environment Variables:
Variable | Default | Description |
| (required) | Your Fal.ai API key |
|
| Transport mode: |
|
| Host to bind the server to |
|
| Port for the HTTP server |
Using Docker Compose:
curl -O https://raw.githubusercontent.com/raveenb/fal-mcp-server/main/docker-compose.yml
echo "FAL_KEY=your-api-key" > .env
docker-compose up -d⚠️ File Upload with Docker:
The upload_file tool requires volume mounts to access host files:
docker run -d -p 8080:8080 \
-e FAL_KEY="${FAL_KEY}" \
-e FAL_MCP_TRANSPORT=http \
-v ${HOME}/Downloads:/downloads:ro \
-v ${HOME}/Pictures:/pictures:ro \
ghcr.io/raveenb/fal-mcp-server:latestThen use container paths like /downloads/image.png instead of host paths.
Feature | stdio (uvx) | Docker (HTTP/SSE) |
| ✅ Full filesystem | ⚠️ Needs volume mounts |
Security | Runs as user | Sandboxed container |
Option 3: Install from PyPI
pip install fal-mcp-serverOr with uv:
uv pip install fal-mcp-serverOption 4: Install from source
git clone https://github.com/raveenb/fal-mcp-server.git
cd fal-mcp-server
pip install -e .Configuration
Get your Fal.ai API key from fal.ai
Configure Claude Desktop by adding to:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
For PyPI/pip Installation:
{
"mcpServers": {
"fal-ai": {
"command": "fal-mcp",
"env": {
"FAL_KEY": "your-fal-api-key"
}
}
}
}Note: For Docker configuration, see Option 2: Docker above.
For Source Installation:
{
"mcpServers": {
"fal-ai": {
"command": "python",
"args": ["/path/to/fal-mcp-server/src/fal_mcp_server/server.py"],
"env": {
"FAL_KEY": "your-fal-api-key"
}
}
}
}Restart Claude Desktop
💬 Usage
With Claude Desktop
Once configured, ask Claude to:
"Generate an image of a sunset"
"Create a video from this image"
"Generate 30 seconds of ambient music"
"Convert this text to speech"
"Transcribe this audio file"
Discovering Available Models
Use the list_models tool to discover available models:
"What image models are available?"
"List video generation models"
"Search for flux models"
Using Any Fal.ai Model
You can use any model from the Fal.ai platform:
# Using a friendly alias (backward compatible)
"Generate an image with flux_schnell"
# Using a full model ID (new capability)
"Generate an image using fal-ai/flux-pro/v1.1-ultra"
"Create a video with fal-ai/kling-video/v1.5/pro"HTTP/SSE Transport (New!)
Run the server with HTTP transport for web-based access:
# Using Docker (recommended)
docker run -d -e FAL_KEY=your-key -p 8080:8080 ghcr.io/raveenb/fal-mcp-server:latest
# Using pip installation
fal-mcp-http --host 0.0.0.0 --port 8000
# Or dual mode (STDIO + HTTP)
fal-mcp-dual --transport dual --port 8000Connect from web clients via Server-Sent Events:
SSE endpoint:
http://localhost:8080/sse(Docker) orhttp://localhost:8000/sse(pip)Message endpoint:
POST http://localhost:8080/messages/
See Docker Documentation and HTTP Transport Documentation for details.
📦 Supported Models
This server supports 600+ models from the Fal.ai platform through dynamic discovery. Use the list_models tool to explore available models, or use any model ID directly.
Popular Aliases (Quick Reference)
These friendly aliases are always available for commonly used models:
Alias | Model ID | Type |
|
| Image |
|
| Image |
|
| Image |
|
| Image |
|
| Image |
|
| Video |
|
| Video |
|
| Video |
|
| Audio |
|
| Audio |
|
| Audio |
|
| Audio |
Using Full Model IDs
You can also use any model directly by its full ID:
# Examples of full model IDs
"fal-ai/flux-pro/v1.1-ultra" # Latest Flux Pro
"fal-ai/kling-video/v1.5/pro" # Kling Video Pro
"fal-ai/hunyuan-video" # Hunyuan Video
"fal-ai/minimax-video" # MiniMax VideoUse list_models with category filters to discover more:
list_models(category="image")- All image generation modelslist_models(category="video")- All video generation modelslist_models(category="audio")- All audio modelslist_models(search="flux")- Search for specific models
📚 Documentation
Guide | Description |
Detailed setup instructions for all platforms | |
Complete tool documentation with parameters | |
Usage examples for image, video, and audio generation | |
Container deployment and configuration | |
Web-based SSE transport setup | |
Running CI locally with |
📖 Full documentation site: raveenb.github.io/fal-mcp-server
🔌 Claude Code Plugin Marketplace
This project is part of the Luminary Lane Tools marketplace for Claude Code plugins.
Add the marketplace:
/plugin marketplace add raveenb/fal-mcp-serverAvailable plugins:
Plugin | Description |
| Generate images, videos, and music using 600+ Fal.ai models |
More plugins coming soon!
🔧 Troubleshooting
Common Errors
FAL_KEY not set
Error: FAL_KEY environment variable is requiredSolution: Set your Fal.ai API key:
export FAL_KEY="your-api-key"Model not found
Error: Model 'xyz' not foundSolution: Use list_models to discover available models, or check the model ID spelling.
File not found (Docker)
Error: File not found: /Users/username/image.pngSolution: When using Docker, mount the directory as a volume. See File Upload with Docker above.
Timeout on video/music generation
Error: Generation timed out after 300sSolution: Video and music generation can take several minutes. This is normal for high-quality models. Try:
Using a faster model variant (e.g.,
schnellinstead ofpro)Reducing duration or resolution
Rate limiting
Error: Rate limit exceededSolution: Wait a few minutes and retry. Consider upgrading your Fal.ai plan for higher limits.
Debug Mode
Enable verbose logging for troubleshooting:
# Set debug environment variable
export FAL_MCP_DEBUG=true
# Run the server
fal-mcpReporting Issues
If you encounter a bug or unexpected behavior:
Check existing issues: GitHub Issues
Gather information:
Error message (full text)
Steps to reproduce
Model ID used
Environment (OS, Python version, transport mode)
Open a new issue with:
**Error:** [paste error message] **Steps to reproduce:** [what you did] **Model:** [model ID if applicable] **Environment:** [OS, Python version, Docker/uvx/pip]Include logs if available (with sensitive data removed)
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Local Development
We support local CI testing with act:
# Quick setup
make ci-local # Run CI locally before pushing
# See detailed guide
cat docs/LOCAL_TESTING.md📝 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
Hosted deployment
A hosted deployment is available on Fronteir AI.
Available Tools
18 toolscompose_imagesA
Overlay one image on top of another (e.g., add watermark, logo). Uses PIL for precise positioning - no AI needed.
| Name | Required | Description | Default |
|---|---|---|---|
| base_image_url | Yes | URL of the background/base image | |
| overlay_image_url | Yes | URL of the image to overlay (e.g., logo, watermark). Use upload_file for local images. | |
| position | No | Where to place the overlay. Use 'custom' with x,y for exact positioning. | bottom-right |
| x | No | Custom X position in pixels (required if position='custom') | |
| y | No | Custom Y position in pixels (required if position='custom') | |
| scale | No | Scale overlay relative to base image width (0.01-1.0). Default 0.15 = 15% of base width. | |
| padding | No | Padding from edges in pixels (for preset positions) | |
| opacity | No | Overlay opacity (0.0=transparent, 1.0=opaque) | |
| output_format | No | Output image format | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the implementation detail ('Uses PIL for precise positioning') and clarifies 'no AI needed,' which helps set expectations about deterministic behavior. However, it doesn't disclose important behavioral aspects like whether the operation is destructive to original images, what the output looks like, or any rate limits/authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - two sentences that each earn their place. The first sentence states the core purpose with examples, and the second adds important implementation context. No wasted words, and the most critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no annotations and no output schema, the description is somewhat incomplete. While it clearly states what the tool does, it doesn't describe the output (what gets returned), error conditions, or performance characteristics. The schema handles parameter documentation well, but the description could better address the tool's overall behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents all 9 parameters thoroughly. The description adds minimal parameter semantics beyond what's in the schema - it implies positioning capabilities and mentions local image handling, but doesn't provide additional meaning about how parameters interact or typical use patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('overlay one image on top of another') and resources (images), providing concrete examples (watermark, logo). It effectively distinguishes from siblings like 'edit_image' or 'resize_image' by focusing specifically on image composition rather than general editing or transformation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('add watermark, logo') and mentions an alternative for local images ('Use upload_file for local images'), which is helpful. However, it doesn't explicitly state when NOT to use it or compare it to other image manipulation siblings like 'edit_image' or 'inpaint_image'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_imageC
Edit an image using natural language instructions. Describe what changes you want and the AI will apply them.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | Yes | URL of the image to edit (use upload_file for local images) | |
| instruction | Yes | Natural language description of the edit (e.g., 'make the sky more dramatic', 'change the car color to red') | |
| model | No | Editing model. Options: fal-ai/flux-2/edit, fal-ai/flux-2-pro/edit (higher quality) | fal-ai/flux-2/edit |
| strength | No | How much to change the image (0=minimal, 1=maximum) | |
| seed | No | Seed for reproducible edits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that 'the AI will apply' changes, implying a mutation operation, but doesn't specify if this is destructive, requires authentication, has rate limits, or what the output format is. For a tool with 5 parameters and no annotations, this is inadequate, as it misses key behavioral traits like response handling or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded: two sentences that directly state the tool's function and how to use it, with no wasted words. Every sentence earns its place by clarifying the core action and input method, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an image editing tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like what the tool returns (e.g., a modified image URL), error handling, or usage constraints. For a mutation tool without structured output information, this leaves significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, only implying natural language input for 'instruction'. It doesn't explain parameter interactions or provide additional context, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Edit an image using natural language instructions.' It specifies the verb ('edit') and resource ('image'), distinguishing it from sibling tools like 'generate_image' or 'resize_image'. However, it doesn't explicitly differentiate from 'inpaint_image' or 'compose_images', which might also involve image editing, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance: it mentions using 'upload_file for local images' in the schema, but the description itself lacks explicit when-to-use instructions. It doesn't clarify when to choose this tool over alternatives like 'inpaint_image' or 'resize_image', nor does it mention prerequisites or exclusions. This leaves the agent with little contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_imageB
Generate images from text prompts. Use list_models with category='image' to discover available models.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description of the image to generate | |
| model | No | Model ID (e.g., 'fal-ai/flux-pro') or alias (e.g., 'flux_schnell'). Use list_models to see options. | flux_schnell |
| negative_prompt | No | What to avoid in the image | |
| image_size | No | landscape_16_9 | |
| num_images | No | ||
| seed | No | Seed for reproducible generation | |
| enable_safety_checker | No | Enable safety checker to filter inappropriate content | |
| output_format | No | Output image format | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does ('Generate images from text prompts') without mentioning any behavioral traits like rate limits, authentication requirements, cost implications, or what the output looks like. For a complex tool with 8 parameters and no annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise: two sentences that each earn their place. The first sentence states the core purpose, and the second provides essential usage guidance. There's zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (images in what format? URLs? base64?), doesn't mention cost or rate limit considerations, and provides minimal behavioral context. For an image generation tool with significant parameters, this leaves too many gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what's in the input schema. With 75% schema description coverage (6 of 8 parameters have descriptions), the schema does most of the work. The description's reference to list_models for model selection provides some context for the model parameter, but doesn't add meaningful semantics beyond the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate images from text prompts.' This is a specific verb+resource combination that distinguishes it from siblings like edit_image or generate_video. However, it doesn't explicitly differentiate from generate_image_from_image or generate_image_structured, which are also image generation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: 'Use list_models with category='image' to discover available models.' This gives practical guidance on how to select the model parameter. However, it doesn't explicitly state when to use this tool versus alternatives like generate_image_from_image or generate_image_structured, nor does it provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_image_from_imageA
Transform an existing image into a new image based on a prompt. Use for style transfer, editing, variations, and more. Use upload_file first if you have a local image.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | Yes | URL of the source image to transform (use upload_file for local images) | |
| prompt | Yes | Text description of desired transformation (e.g., 'Transform into a watercolor painting') | |
| model | No | Image-to-image model. Options: fal-ai/flux/dev/image-to-image, fal-ai/flux-2/edit | fal-ai/flux/dev/image-to-image |
| strength | No | How much to transform (0=keep original, 1=ignore original) | |
| num_images | No | ||
| negative_prompt | No | What to avoid in the output image | |
| seed | No | Seed for reproducible generation | |
| enable_safety_checker | No | Enable safety checker to filter inappropriate content | |
| output_format | No | Output image format | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the transformation purpose and prerequisite for local images, but doesn't describe rate limits, authentication needs, cost implications, output format details, or what happens when transformations fail. It provides basic context but lacks comprehensive behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place. The first sentence states the core purpose and use cases, while the second provides crucial prerequisite guidance. No wasted words, and information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 9 parameters, no annotations, and no output schema, the description provides adequate but incomplete context. It covers the basic purpose and a key prerequisite, but doesn't address mutation implications (creates new images), performance characteristics, error conditions, or output expectations. Given the complexity, more completeness would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (89%), so the baseline is 3. The description doesn't add significant parameter semantics beyond what's in the schema - it mentions 'prompt' and 'image_url' implicitly but doesn't explain parameter interactions, default behaviors, or advanced usage patterns. The schema already documents parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('transform', 'edit') and resources ('existing image', 'new image'), distinguishing it from siblings like generate_image (text-to-image), edit_image (likely different editing), and compose_images (combining images). It explicitly mentions style transfer, editing, and variations as use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('transform an existing image into a new image based on a prompt') and includes a specific prerequisite instruction ('use upload_file first if you have a local image'). However, it doesn't explicitly state when NOT to use it or name alternatives among siblings (e.g., when to use edit_image instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_image_structuredB
Generate images with detailed structured prompts for precise control over composition, style, lighting, and subjects. Ideal for AI agents that need fine-grained control.
| Name | Required | Description | Default |
|---|---|---|---|
| scene | Yes | Overall scene description - the main subject and setting | |
| subjects | No | List of subjects with their positions and descriptions | |
| style | No | Art style (e.g., 'Digital art painting', 'Photorealistic', 'Watercolor', 'Oil painting') | |
| color_palette | No | Hex color codes for the palette (e.g., ['#000033', '#6A0DAD', '#FFFFFF']) | |
| lighting | No | Lighting description (e.g., 'Soft golden hour lighting', 'Dramatic chiaroscuro') | |
| mood | No | Emotional mood of the image (e.g., 'Serene', 'Dramatic', 'Mysterious') | |
| background | No | Background description | |
| composition | No | Compositional rules (e.g., 'Rule of thirds', 'Centered', 'Golden ratio') | |
| camera | No | Camera settings for photographic style control | |
| effects | No | Visual effects (e.g., ['Bokeh', 'Light rays', 'Lens flare', 'Motion blur']) | |
| negative_prompt | No | What to avoid in the image (e.g., 'blurry, low quality, distorted') | |
| model | No | Model ID or alias. Use list_models to see options. | flux_schnell |
| image_size | No | landscape_16_9 | |
| num_images | No | ||
| seed | No | Seed for reproducible generation | |
| enable_safety_checker | No | Enable safety checker to filter inappropriate content | |
| output_format | No | Output image format | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'fine-grained control' but lacks details on permissions, rate limits, costs, or output behavior (e.g., image URLs, processing time). For a complex tool with 17 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured in two sentences: the first states the purpose and key features, and the second specifies the ideal use case. Every word earns its place with no redundancy or fluff, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, nested objects, no output schema, and no annotations), the description is insufficient. It doesn't explain what the tool returns (e.g., image data or URLs), potential errors, or behavioral traits like costs or limitations. For such a rich input schema, more contextual information is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 88%, which is high, so the baseline score is 3. The description adds minimal value beyond the schema by listing key control aspects ('composition, style, lighting, and subjects'), but doesn't provide additional syntax, examples, or constraints for the parameters. It compensates slightly for the 12% coverage gap but not substantially.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate images with detailed structured prompts for precise control over composition, style, lighting, and subjects.' It specifies the verb ('generate'), resource ('images'), and scope ('structured prompts'), but doesn't explicitly differentiate from sibling tools like 'generate_image' or 'compose_images', which likely offer different approaches to image generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance: 'Ideal for AI agents that need fine-grained control.' This suggests this tool is for detailed, structured prompts rather than simpler ones, but it doesn't explicitly state when to use this versus alternatives like 'generate_image' or 'compose_images', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_musicA
Generate music from text descriptions. Use list_models with category='audio' to discover available models.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Description of the music (genre, mood, instruments) | |
| model | No | Model ID (e.g., 'fal-ai/lyria2', 'fal-ai/stable-audio-25/text-to-audio'). Use list_models to see options. | fal-ai/lyria2 |
| duration_seconds | No | Duration in seconds | |
| negative_prompt | No | What to avoid in the audio (e.g., 'vocals, distortion, noise') | |
| lyrics_prompt | No | Lyrics for vocal music generation. Only used with models that support lyrics (e.g., MiniMax). Format: [verse]\nLyric line 1\n[chorus]\nChorus line |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the need to discover models via list_models, which adds useful context about model dependencies. However, it doesn't describe output format (audio file type, size), latency, rate limits, authentication requirements, or error conditions, leaving significant behavioral gaps for a generative tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with just two sentences. The first sentence states the core purpose, and the second provides essential usage guidance about model discovery. Every word earns its place with no redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a generative AI tool with 5 parameters and no output schema, the description is incomplete. While it covers purpose and model discovery guidance well, it lacks information about output format, audio quality, generation limits, error handling, and cost implications. With no annotations and no output schema, more behavioral context would be needed for optimal agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description doesn't add parameter-specific information beyond what's in the schema, but it does provide the high-level context that parameters are for 'text descriptions' of music, which aligns with the schema. With excellent schema coverage, the baseline is 3, but the description's guidance about model discovery adds some value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('generate music') and resource ('from text descriptions'), distinguishing it from sibling tools like generate_image, generate_video, etc. It explicitly identifies the domain (audio generation) and the input type (text descriptions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: for generating music from text descriptions. It also specifies an alternative action ('Use list_models with category='audio' to discover available models'), giving clear direction for model selection, which is a key prerequisite for effective tool usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_videoA
Generate videos from text prompts (text-to-video) or from images (image-to-video). Use list_models with category='video' to discover available models.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Text description for the video (e.g., 'A slow-motion drone shot of Tokyo at night') | |
| image_url | No | Starting image URL for image-to-video models. Optional for text-to-video models. | |
| model | No | Model ID. Use 'fal-ai/kling-video/v2/master/text-to-video' for text-only, or image-to-video models like 'fal-ai/wan-i2v'. | fal-ai/wan-i2v |
| duration | No | Video duration in seconds | |
| aspect_ratio | No | Video aspect ratio (e.g., '16:9', '9:16', '1:1') | 16:9 |
| negative_prompt | No | What to avoid in the video (e.g., 'blur, distort, low quality') | |
| cfg_scale | No | Classifier-free guidance scale (0.0-1.0). Lower values give more creative results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the need to discover models via list_models, it lacks critical details such as whether this is a read-only or destructive operation, potential rate limits, authentication requirements, or what the output format looks like (e.g., video URL, file). This leaves significant gaps for an AI agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with two concise sentences that directly state the tool's purpose and usage guidance. Every sentence earns its place without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a video generation tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It fails to address key behavioral aspects (e.g., mutation effects, output format) and does not compensate for the lack of structured data, leaving the AI agent with insufficient context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by hinting at model discovery but does not provide additional semantic context for parameters like prompt or image_url. Baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('generate videos') and resources ('from text prompts' and 'from images'), distinguishing it from sibling tools like generate_image or generate_music by specifying video generation. It explicitly mentions both text-to-video and image-to-video capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (for video generation from text or images) and references an alternative tool (list_models) for discovering available models. However, it does not explicitly state when NOT to use it or compare it to similar siblings like generate_video_from_image, which might cause ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_video_from_imageA
Animate an image into a video. The image serves as the starting frame and the prompt guides the animation. Use upload_file first if you have a local image.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | Yes | URL of the image to animate (use upload_file for local images) | |
| prompt | Yes | Text description guiding how to animate the image (e.g., 'camera slowly pans right, gentle breeze moves the leaves') | |
| model | No | Image-to-video model. Options: fal-ai/wan-i2v, fal-ai/kling-video/v2.1/standard/image-to-video | fal-ai/wan-i2v |
| duration | No | Video duration in seconds | |
| aspect_ratio | No | Video aspect ratio (e.g., '16:9', '9:16', '1:1') | 16:9 |
| negative_prompt | No | What to avoid in the video (e.g., 'blur, distort, low quality') | |
| cfg_scale | No | Classifier-free guidance scale (0.0-1.0). Lower values give more creative results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the basic behavioral trait that the image serves as the starting frame and prompt guides animation, but doesn't mention important aspects like rate limits, authentication needs, output format (video file type), processing time, or error conditions. For a complex video generation tool with 7 parameters, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. First sentence states the core purpose, second provides crucial usage guidance. Both sentences earn their place by adding value beyond what's in the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex video generation tool with 7 parameters and no annotations or output schema, the description is incomplete. It doesn't explain what the tool returns (video file format, URL, metadata), error handling, rate limits, or processing characteristics. While purpose and basic usage are clear, behavioral context is insufficient for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema - it mentions the image serves as starting frame and prompt guides animation, which the schema already covers for image_url and prompt parameters. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('animate an image into a video') and distinguishes it from siblings by specifying it uses an image as the starting frame with a prompt to guide animation. It differentiates from 'generate_video' (which likely doesn't start from an image) and 'generate_video_from_video' (which starts from video).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when-to-use guidance: 'Use upload_file first if you have a local image.' This gives clear prerequisites and distinguishes from alternatives like 'upload_file' for local files. It also implies this tool is for image-to-video conversion specifically.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_video_from_videoA
Transform an existing video using AI. Supports restyling (Lucy models) and motion transfer (Kling motion control). Use upload_file first if you have a local video.
| Name | Required | Description | Default |
|---|---|---|---|
| video_url | Yes | URL of the source video to transform (use upload_file for local videos) | |
| prompt | Yes | Text description of the transformation (e.g., 'transform into anime style', 'a woman dancing gracefully') | |
| model | No | Video-to-video model. Options: decart/lucy-edit/dev (restyle), decart/lucy-edit/pro, decart/lucy-restyle, fal-ai/kling-video/v2.6/standard/motion-control (motion transfer), fal-ai/kling-video/v2.6/pro/motion-control | decart/lucy-edit/dev |
| duration | No | Duration of generated video in seconds | |
| aspect_ratio | No | Aspect ratio of the generated video | 16:9 |
| cfg_scale | No | Classifier Free Guidance scale - how closely to follow the prompt (0.0-1.0) | |
| image_url | No | [Kling motion control] Reference image URL. The character in this image will be animated using motion from video_url. | |
| character_orientation | No | [Kling motion control] 'video': orientation matches reference video (max 30s). 'image': orientation matches reference image (max 10s). | video |
| keep_original_sound | No | [Kling motion control] Whether to keep original sound from reference video. | |
| tail_image_url | No | [Kling Pro] URL of image for the end of the video (for transitions). | |
| generate_audio | No | [Kling v2.6 Pro] Generate native audio for video (supports Chinese/English). | |
| negative_prompt | No | What to avoid in the output (default: 'blur, distort, and low quality') | |
| strength | No | [Lucy models] How much to transform (0=keep original, 1=full transformation) | |
| num_frames | No | [Lucy models] Number of frames to process |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the AI transformation nature and model capabilities (Lucy for restyling, Kling for motion control), which adds useful context beyond what parameters indicate. However, it doesn't describe important behavioral aspects like processing time, rate limits, authentication requirements, output format, or error conditions that would be crucial for an agent to use this tool effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise and front-loaded: two sentences that immediately convey the core functionality and a critical prerequisite. Every word earns its place - the first sentence defines the tool's purpose and capabilities, the second provides essential usage guidance. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 14 parameters, no annotations, and no output schema, the description provides adequate but incomplete context. It covers the high-level purpose and a critical prerequisite (upload_file for local videos), but doesn't address output format, error handling, performance characteristics, or integration patterns that would help an agent use this tool effectively in broader workflows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 14 parameters thoroughly with descriptions, defaults, enums, and constraints. The description adds minimal parameter semantics beyond the schema - it only mentions the two main capabilities (restyling and motion transfer) that map to the 'model' parameter options. This meets the baseline of 3 when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Transform an existing video using AI' with specific capabilities mentioned (restyling with Lucy models, motion transfer with Kling motion control). It distinguishes from sibling tools like 'generate_video' or 'generate_video_from_image' by specifying it works from an existing video source. However, it doesn't explicitly contrast with all possible siblings like 'edit_image' or 'inpaint_image'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use upload_file first if you have a local video' gives practical guidance for handling local files. It implies when to use this tool (for video-to-video transformations) versus alternatives like 'generate_video' (from scratch) or 'generate_video_from_image' (from images). However, it doesn't explicitly state when NOT to use this tool or name specific alternative tools for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingA
Get pricing information for Fal.ai models. Returns cost per unit (image/video/second) in USD. Use this to check costs before generating content.
| Name | Required | Description | Default |
|---|---|---|---|
| models | Yes | Model IDs or aliases to get pricing for (e.g., ['flux_schnell', 'fal-ai/kling-video']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it returns cost data in USD per unit (image/video/second), which is valuable context. However, it doesn't mention rate limits, authentication requirements, or error conditions, leaving gaps for a tool that likely queries external pricing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and efficient: two sentences with zero waste. The first sentence states the purpose and return format, and the second provides usage guidance, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (external pricing query), no annotations, and no output schema, the description is adequate but incomplete. It explains the return value (cost per unit in USD) but lacks details on response structure, error handling, or data freshness, which could hinder agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the 'models' parameter. The description adds no additional parameter semantics beyond what the schema provides, such as examples of valid model IDs or pricing granularity. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get pricing information for Fal.ai models' with specific resources (models) and verb (get). It distinguishes from siblings like 'get_usage' (usage statistics) and 'list_models' (model listing) by focusing on cost data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'Use this to check costs before generating content,' which implicitly suggests using it for cost estimation prior to using generation tools. However, it doesn't explicitly state when not to use it or name specific alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageA
Get usage and spending history for your Fal.ai workspace. Shows quantity, cost, and breakdown by model. Requires admin API key.
| Name | Required | Description | Default |
|---|---|---|---|
| start | No | Start date (YYYY-MM-DD format). Defaults to 7 days ago. | |
| end | No | End date (YYYY-MM-DD format). Defaults to today. | |
| models | No | Filter by specific model IDs/aliases (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully indicates this is a read operation ('Get') and specifies an authentication requirement ('Requires admin API key'), but does not mention other behavioral aspects like rate limits, pagination, error handling, or response format. The description adds some value but leaves gaps in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with two concise sentences that directly convey the tool's purpose and key requirement. Every sentence earns its place by providing essential information without redundancy or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is partially complete. It covers the core purpose and authentication need but lacks details on output structure, error cases, or behavioral constraints. Without annotations or output schema, the description should ideally provide more context about what the tool returns and how it behaves.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all three parameters. The description does not add any parameter-specific information beyond what the schema provides, such as explaining the significance of model filtering or date ranges. The baseline score of 3 reflects adequate but minimal value addition over the comprehensive schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get usage and spending history') and resources ('Fal.ai workspace'), including what information is returned ('quantity, cost, and breakdown by model'). It distinguishes itself from siblings like 'get_pricing' by focusing on historical usage data rather than pricing rates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (to retrieve usage/spending history) and includes a prerequisite ('Requires admin API key'), but does not explicitly state when not to use it or name alternatives. It implies usage for historical analysis rather than current pricing, but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inpaint_imageB
Edit specific regions of an image using a mask. White areas in the mask will be regenerated based on the prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | Yes | URL of the source image (use upload_file for local images) | |
| mask_url | Yes | URL of the mask image (white=edit, black=keep). Use upload_file for local masks. | |
| prompt | Yes | What to generate in the masked area (e.g., 'a red sports car', 'green grass') | |
| model | No | Inpainting model. Options: fal-ai/flux-kontext-lora/inpaint, fal-ai/flux-krea-lora/inpainting | fal-ai/flux-kontext-lora/inpaint |
| negative_prompt | No | What to avoid in the generated area | |
| seed | No | Seed for reproducible results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose whether this is a read-only or mutation operation, potential rate limits, authentication requirements, or what happens to non-masked areas. The description only covers basic functionality without operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly concise with two sentences that each earn their place. The first sentence states the core purpose, the second explains mask behavior and prompt usage. No wasted words, well-structured, and front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description is incomplete. It covers basic functionality but lacks information about return values, error conditions, side effects, or how this tool differs behaviorally from similar editing tools in the sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value beyond the schema by briefly explaining mask logic ('white=edit, black=keep') and giving prompt examples, but doesn't provide significant additional semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Edit') and resource ('specific regions of an image using a mask'), and distinguishes it from siblings by focusing on inpainting rather than generation, composition, or other edits. It precisely explains the white/black mask logic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'edit_image' or 'remove_background'. The description mentions using 'upload_file for local images' but doesn't clarify tool selection context or prerequisites beyond basic parameter usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsA
Discover available Fal.ai models for image, video, and audio generation. Use 'task' parameter for intelligent task-based ranking (e.g., 'portrait photography'), or 'search' for simple name/description filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (image, video, or audio) | |
| task | No | Task description for intelligent ranking (e.g., 'anime illustration', 'product photography'). Uses Fal.ai's semantic search and prioritizes featured models. | |
| search | No | Simple search query to filter models by name or description (e.g., 'flux'). Use 'task' for better semantic matching. | |
| limit | No | Maximum number of models to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that 'task' uses 'Fal.ai's semantic search and prioritizes featured models,' which adds useful behavioral context. However, it doesn't cover other aspects like rate limits, authentication needs, or pagination behavior, leaving gaps for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, followed by specific parameter usage. Every sentence adds value without redundancy, making it efficient and well-structured for quick comprehension by an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a good job covering the tool's purpose and parameter usage. However, it lacks details on return values or error handling, which could be important for a listing tool. It's mostly complete but has minor gaps in behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters well. The description adds value by explaining the semantic difference between 'task' and 'search' parameters, providing examples and clarifying that 'task' is for 'intelligent task-based ranking' while 'search' is for 'simple name/description filtering.' This enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Discover available Fal.ai models for image, video, and audio generation.' It uses a specific verb ('Discover') and identifies the resource ('Fal.ai models'), distinguishing it from siblings like 'recommend_model' or 'generate_image' which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use parameters: 'Use 'task' parameter for intelligent task-based ranking (e.g., 'portrait photography'), or 'search' for simple name/description filtering.' It contrasts the 'task' and 'search' parameters, helping the agent choose between them based on the user's needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_modelA
Get AI-powered model recommendations for a specific task. Describe what you want to do (e.g., 'generate portrait photo', 'anime style illustration', 'product photography') and get the best-suited models ranked by relevance. Featured models by Fal.ai are prioritized.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Description of your task (e.g., 'generate professional headshot', 'create anime character', 'transform photo to watercolor') | |
| category | No | Optional category hint to narrow search | |
| limit | No | Maximum number of recommendations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behavioral traits: AI-powered ranking, prioritization of featured models, and task-based relevance scoring. However, it lacks details on rate limits, authentication needs, or response format, which are important for a recommendation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by usage instructions and a key behavioral note (prioritization). Every sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, 100% schema coverage, and no output schema, the description is adequate but could be more complete. It explains the purpose and usage well but lacks details on response format, error handling, or how recommendations are generated, which would help an agent use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters. The description adds minimal value beyond the schema, mentioning task description examples but not explaining parameter interactions or the effect of category/limit on recommendations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get AI-powered model recommendations') and resource ('for a specific task'), with examples that distinguish it from siblings like list_models (which likely lists all models without recommendations) or generate_image (which executes generation rather than recommending models).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Describe what you want to do... and get the best-suited models'), but does not explicitly state when not to use it or name alternatives like list_models for unfiltered listings or generate_image for direct execution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_backgroundA
Remove the background from an image, creating a transparent PNG. Great for product photos, portraits, and creating composites.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | Yes | URL of the image to remove background from (use upload_file for local images) | |
| model | No | Background removal model. Options: fal-ai/birefnet/v2 (recommended), fal-ai/birefnet | fal-ai/birefnet/v2 |
| output_format | No | Output format (PNG recommended for transparency) | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the output format ('transparent PNG') and use cases, but lacks details on permissions, rate limits, error conditions, or what happens if the image_url is invalid. For a tool that modifies images, this is a significant gap in behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by a concise use-case example. Every sentence earns its place by adding value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is adequate for a simple tool but lacks completeness. It covers the basic purpose and use cases but misses details on behavioral traits, error handling, and output specifics, which are important for an image-processing tool with no structured support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description does not add any parameter-specific details beyond what's in the schema, such as explaining why PNG is recommended or model differences. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Remove the background from an image') and the outcome ('creating a transparent PNG'), distinguishing it from siblings like edit_image or inpaint_image. It provides concrete use cases ('product photos, portraits, and creating composites') that help differentiate its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the examples ('Great for product photos, portraits, and creating composites'), but does not explicitly state when to use this tool versus alternatives like edit_image or inpaint_image. No exclusions or prerequisites are mentioned, leaving some ambiguity about optimal use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_imageB
Resize/reformat images for different platforms (like Canva Magic Resize). Uses AI outpainting to intelligently extend content for new aspect ratios. Note: 'crop' and 'letterbox' modes coming soon.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | Yes | URL of the source image (use upload_file for local images) | |
| target_format | Yes | Target platform format, or 'custom' to specify dimensions | |
| width | No | Custom width in pixels (required if target_format='custom') | |
| height | No | Custom height in pixels (required if target_format='custom') | |
| mode | No | How to handle aspect ratio change: extend (AI outpainting - recommended), crop (coming soon), letterbox (coming soon) | extend |
| background_prompt | No | For 'extend' mode: prompt to guide AI-generated extended areas (e.g., 'continue the beach scenery') | |
| background_color | No | For 'letterbox' mode: hex color for bars (e.g., '#FFFFFF' for white) | #000000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits: it uses 'AI outpainting to intelligently extend content' (implying content generation beyond simple scaling) and notes that some modes are 'coming soon' (managing expectations). However, it doesn't mention critical aspects like rate limits, authentication needs, file size limits, processing time, or what happens to image quality. For a tool with AI generation capabilities, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with three sentences that each serve a purpose: stating the core function, explaining the AI method, and noting upcoming features. It's front-loaded with the main purpose. The only minor inefficiency is the parenthetical '(like Canva Magic Resize)' which, while helpful for context, could be considered slightly extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (AI-powered image transformation with 7 parameters), no annotations, and no output schema, the description is moderately complete. It covers the core functionality and AI method but lacks important contextual information: what the output looks like (URL? file? format?), error conditions, performance characteristics, or integration notes with sibling tools like 'upload_file'. The mention of 'coming soon' features helps manage expectations but doesn't fully compensate for missing behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema - it mentions 'AI outpainting' which relates to the 'extend' mode and 'background_prompt', and references 'platforms' which maps to 'target_format' enum values. However, it doesn't provide additional context about parameter interactions or usage patterns that aren't already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function as 'Resize/reformat images for different platforms' with the specific method 'Uses AI outpainting to intelligently extend content for new aspect ratios.' It distinguishes from siblings like 'upscale_image' (resolution increase) and 'edit_image' (general editing) by focusing on platform-specific resizing with AI extension. However, it doesn't explicitly differentiate from 'inpaint_image' (which might also modify content).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through the phrase 'for different platforms (like Canva Magic Resize)' and mentions alternative modes ('crop' and 'letterbox' coming soon), but it doesn't explicitly state when to use this tool versus siblings like 'compose_images' or 'edit_image'. The note about upcoming modes provides some guidance on current limitations, but lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_fileA
Upload a local file to Fal.ai storage and get a URL. Use this to upload images, videos, or audio files that can then be used with other Fal.ai tools (e.g., image-to-video, audio transform).
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Absolute path to the local file to upload (e.g., '/path/to/image.png') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool uploads files and returns a URL, but lacks details on authentication requirements, rate limits, file size constraints, or error handling. The description adds basic context but misses key behavioral traits for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste: the first states the purpose and outcome, and the second provides usage context. It is appropriately sized and front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description adequately covers purpose and usage but lacks details on return values (e.g., URL format), error cases, or operational constraints. It is minimally viable but has clear gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter 'file_path' with its type and example. The description does not add any parameter-specific information beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Upload a local file') and resource ('to Fal.ai storage'), and distinguishes this tool from its siblings by specifying its role in the workflow (uploading files for use with other tools like image-to-video or audio transform).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('to upload images, videos, or audio files that can then be used with other Fal.ai tools') and provides examples of alternative tools (e.g., 'image-to-video, audio transform'), giving clear context for its application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upscale_imageB
Upscale an image to higher resolution while preserving quality. Use for enhancing low-resolution images.
| Name | Required | Description | Default |
|---|---|---|---|
| image_url | Yes | URL of the image to upscale (use upload_file for local images) | |
| scale | No | Upscale factor (2x or 4x) | |
| model | No | Upscaling model. Options: fal-ai/clarity-upscaler (high quality), fal-ai/aura-sr (fast) | fal-ai/clarity-upscaler |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions quality preservation, which is useful, but fails to disclose critical traits like whether this is a read-only or mutating operation, potential costs, rate limits, authentication needs, or output format (e.g., URL, file). For a tool with no annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two concise sentences that are front-loaded with the core purpose. Every sentence earns its place by stating the action and providing usage context without any redundant or verbose language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and usage but lacks completeness in behavioral traits (e.g., mutation effects, costs) and output details, which are crucial for an agent to use it correctly without structured output guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all three parameters thoroughly (e.g., 'image_url' with upload guidance, 'scale' with enum values, 'model' with options). The description adds no additional parameter semantics beyond what's in the schema, making the baseline score of 3 appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('upscale', 'enhancing') and resources ('image', 'resolution'), and distinguishes it from some siblings like 'resize_image' by emphasizing quality preservation. However, it doesn't explicitly differentiate from all potential alternatives like 'edit_image' or 'generate_image_from_image' for enhancement tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance ('Use for enhancing low-resolution images'), which gives a general context. However, it lacks explicit when-not-to-use scenarios, prerequisites (e.g., file size limits), or named alternatives among siblings (e.g., when to choose 'resize_image' vs. this tool), leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is some overlap between edit_image, inpaint_image, and generate_image_from_image, which could cause confusion as they all involve modifying existing images. However, descriptions help clarify their specific use cases, and other tools like generate_music or get_pricing are clearly separate.
Tool names follow a consistent verb_noun pattern throughout, such as generate_image, edit_image, and list_models. All tools use snake_case, and the naming is predictable, making it easy for agents to understand and navigate the toolset.
With 18 tools, the count is slightly high but reasonable for a comprehensive AI media generation server covering images, video, audio, and utilities. It includes core operations and supporting tools, though it may feel heavy compared to simpler servers.
The toolset provides complete coverage for the domain of AI media generation and management. It includes generation, editing, transformation, and utility tools (e.g., upload_file, get_pricing, list_models), with no obvious gaps that would hinder agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Generate AI images, video, music, and sound effects, and upscale them, from any MCP client.
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Generate AI images with multiple models from any compatible MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with fal.ai AI models through MCP, supporting model discovery, content generation, queue management, and file uploads to the fal.ai platform.MIT
- AlicenseNot gradedqualityDmaintenanceProvides access to over 600 AI models on fal.ai for generating and editing images, videos, music, and speech directly within Claude. It supports high-performance models like FLUX, Kling, and Whisper for various creative and analytical tasks.5781MIT
- FlicenseAqualityDmaintenanceAn MCP server that exposes Fal.ai generative media models as tools for image and video generation, and running any Fal.ai model, callable by Claude and other MCP-compatible clients.3
- AlicenseAqualityDmaintenanceEnables discovery, search, generation, and management of AI models via fal.ai, allowing Claude Desktop and other MCP clients to interact with fal.ai services.12467MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/luminarylane/fal-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server