Skip to main content
Glama

fal MCP Server

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

Features

  • List all available fal.ai models

  • Search for specific models by keywords

  • Get model schemas

  • Generate content using any fal.ai model

  • Support for both direct and queued model execution

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

  • File upload to fal.ai CDN

  • Full streaming support via HTTP transport

Related MCP server: mcp-fal

Requirements

  • Python 3.12+

  • fastmcp

  • httpx

  • aiofiles

  • A fal.ai API key

Installation

  1. Clone this repository:

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

# Using uv (recommended)
uv sync

# Or using pip
pip install fastmcp httpx aiofiles

Usage

Running the Server Locally

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

  2. Start the MCP server with HTTP transport:

./run_http.sh YOUR_FAL_API_KEY

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

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

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

Development Mode (with MCP Inspector)

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

fastmcp dev main.py

This will:

  • Start the server on a random port

  • Launch the MCP Inspector web interface in your browser

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

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

Environment Variables

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

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

Setting API Key Permanently

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

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

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

./run_http.sh

For manual setup:

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

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

Available Tools

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

  • search(keywords) - Search for models by keywords

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

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

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

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

  • cancel(url) - Cancel a queued request

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

License

MIT

Available Tools

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

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Cancel' implies a mutation operation, it doesn't specify whether this is destructive, reversible, requires specific permissions, has rate limits, or what side effects occur. The return statement is vague ('result of the cancellation attempt') without detailing success/failure formats 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately brief and well-structured with clear sections for purpose, arguments, and returns. Every sentence serves a purpose, though the return statement could be more specific. The formatting with clear headings enhances readability without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 is incomplete. It doesn't explain what 'queued request' means in this context, what cancellation entails (immediate termination, graceful shutdown, etc.), or what the return value contains. The agent lacks sufficient information to understand the full consequences of using this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and only one parameter, the description adds crucial semantic context by explaining that 'url' should be 'The cancel_url from a queued request'. This clarifies the parameter's purpose and source beyond what the bare schema provides, though it doesn't specify format constraints or validation rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Cancel') and resource ('a queued request'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential siblings like 'status' or 'result' that might also interact with queued requests, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., that a request must be queued first), when cancellation is appropriate, or what happens if used incorrectly. This leaves the agent with insufficient context for optimal tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

TDQS

C2.9/5.0
Behavior2/5

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 'queue' parameter for queuing system usage, which adds some behavioral context, but lacks details on permissions, rate limits, costs, error handling, or what 'content' generation entails. For a tool with no annotations and complex parameters, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the purpose. The Args/Returns structure is clear, though some sentences could be more informative. It avoids unnecessary repetition but could be slightly more detailed given the lack of annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and low schema coverage (0%), the description is incomplete. It doesn't explain the return value ('The model's response') in detail, lacks error handling info, and doesn't address the complexity of the 'parameters' dictionary. For a content generation tool with nested inputs, this leaves significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides basic semantics for all three parameters (model ID, parameters dictionary, queue flag) with an example for 'model', but doesn't explain the structure of 'parameters' or typical use cases. This adds value beyond the bare schema but doesn't fully cover the complexity, especially for nested objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 content using a fal.ai model.' It specifies the verb ('generate') and resource ('content'), though it doesn't differentiate from sibling tools like 'models' or 'result' which might be related. The purpose is clear but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for choosing this tool over siblings like 'models' or 'search', or exclusions. Usage is implied only through the purpose statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

TDQS

A3.5/5.0
Behavior3/5

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 lists models with pagination (page and total parameters) and returns metadata, which covers basic behavior. However, it lacks details on rate limits, authentication needs, error handling, or what specific metadata is included, which are important for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: it starts with the core purpose, followed by usage advice and parameter details. Every sentence adds value, with no redundant information. It could be slightly more structured (e.g., separating usage notes from parameter descriptions), but it's efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no annotations, no output schema), the description is somewhat complete but has gaps. It explains the purpose, usage, and parameters, but lacks details on return format (beyond 'metadata'), error cases, or how pagination works in practice. Without annotations or output schema, more behavioral context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It adds meaning by explaining that 'page' is for pagination (page number) and 'total' is the number of models per page, which clarifies their roles beyond the schema's generic titles. However, it doesn't specify default values, constraints (e.g., min/max), or how null values are handled, leaving some gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List available models on fal.ai.' It specifies the verb ('List') and resource ('available models on fal.ai'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'search' or 'schema', which could also involve models, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance: 'Ensure to use the total and page arguments. Avoid listing all the models at once.' This suggests pagination is required and warns against retrieving everything at once. However, it doesn't explicitly state when to use this tool versus alternatives like 'search' or provide clear exclusions, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

TDQS

B3.2/5.0
Behavior2/5

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 the tool retrieves results but doesn't describe error handling (e.g., what happens if the URL is invalid or the request isn't ready), performance characteristics, or side effects. This leaves significant gaps in understanding how the tool behaves in practice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise, with a clear purpose statement followed by Args and Returns sections. Every sentence adds value without redundancy, making it easy to parse quickly. The formatting enhances readability without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and parameter meaning but lacks details on usage context, error cases, and return value specifics. For a tool interacting with queued requests, more behavioral transparency would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context for the single parameter: 'url: The response_url from a queued request.' This clarifies that the URL is not arbitrary but specifically from a prior queued operation. With 0% schema description coverage, this compensation is effective, though it could specify format or source details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 the result of a queued request.' It specifies the verb ('Get') and resource ('result of a queued request'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'status' or 'generate', which might have related functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal guidance on when to use this tool. It mentions 'queued request' but doesn't explain what qualifies as such or when to choose this over alternatives like 'status' (which might check request state) or 'generate' (which might initiate requests). No explicit when-not-to-use or prerequisite information is included.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

TDQS

B3.3/5.0
Behavior2/5

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 states the tool retrieves a schema but does not mention whether this is a read-only operation, requires authentication, has rate limits, or what format the return value takes. It lacks critical behavioral context for a tool with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the purpose stated first, followed by parameter and return details. It uses minimal sentences efficiently, though the structure could be slightly more polished (e.g., bullet points).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (retrieving schemas), lack of annotations, and no output schema, the description is incomplete. It does not explain the return format, error handling, or behavioral traits, leaving significant gaps for an AI agent to understand how to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It adds meaning by explaining the 'model_id' parameter with an example ('e.g., "fal-ai/flux/dev"'), which clarifies the expected format beyond the schema's basic string type. However, it does not fully detail all possible values or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get') and resource ('OpenAPI schema for a specific model'), distinguishing it from siblings like 'generate' or 'models'. It precisely defines what the tool does without being vague or tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'models' (which might list models) or 'generate' (which might use a model). There is no mention of prerequisites, context, or exclusions, leaving usage unclear relative to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

TDQS

A3.5/5.0
Behavior3/5

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 checking status, which implies a read-only operation, but doesn't disclose behavioral traits such as whether it polls continuously, has rate limits, requires authentication, or what happens if the URL is invalid. The description adds basic context but lacks details on error handling or operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first. The Args and Returns sections are structured clearly, but the use of markdown-like formatting might be slightly verbose. Every sentence adds value, and there's no redundant information, making it efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (1 parameter, no annotations, no output schema), the description is minimally adequate. It covers the basic purpose and parameter meaning but lacks details on return values (only states 'The current status' without specifying format), error conditions, or integration with sibling tools. For a status-checking tool, more context on possible statuses or next steps would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful semantics beyond the input schema, which has 0% coverage. It explains that the 'url' parameter is 'The status_url from a queued request,' clarifying its purpose and origin. Since there's only one parameter and the schema provides no descriptions, this compensates well, though it doesn't detail format or validation rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check the status of a queued request.' It specifies the verb ('Check') and resource ('status of a queued request'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'result' or 'cancel', which might also relate to queued requests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'queued request' and 'status_url from a queued request,' suggesting it should be used after initiating a request. However, it lacks explicit guidance on when to use this tool versus alternatives like 'result' (which might retrieve final results) or 'cancel' (which might terminate a request), and doesn't specify prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

TDQS

C2.9/5.0
Behavior2/5

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 states the action ('upload a file') but doesn't describe critical behavioral traits: whether this requires authentication, what happens on failure, if there are rate limits, file size restrictions, or what 'fal.ai storage' means in terms of persistence/access. The return value mention is helpful but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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 action, explaining the parameter, and describing the return. It's front-loaded with the core purpose. Minor improvements could include integrating the parameter explanation more seamlessly, but overall it avoids unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a file upload operation with no annotations, no output schema, and minimal parameter documentation, the description is incomplete. It doesn't cover authentication needs, error handling, file constraints, or what 'Information about the uploaded file' includes beyond 'file_url'. For a mutation tool with zero structured metadata, 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds some semantic context for the single parameter ('path: The absolute path to the file to upload'), which is valuable since schema description coverage is 0%. However, it doesn't clarify what constitutes a valid 'absolute path' (local filesystem? URL?), supported file systems, or path format requirements. The baseline is 3 because the schema has only one parameter, but the description doesn't fully compensate for the 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('upload') and resource ('a file to fal.ai storage'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'generate' or 'search' by focusing on file transfer rather than processing or querying. However, it doesn't specify what types of files are supported or any size limitations that might differentiate it from similar upload tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like authentication), when not to use it, or how it relates to sibling tools like 'cancel' or 'status' that might be relevant for upload operations. The agent must infer usage context entirely from the tool name and basic description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.1.0
    • First observedcancel
    • First observedgenerate
    • First observedmodels
    • First observedresult
    • First observedschema
    • First observedsearch
    • First observedstatus
    • First observedupload

TDQS

A3.5/5.0
Disambiguation4/5

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

Naming Consistency5/5

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

Tool Count5/5

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

Completeness4/5

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

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/derekalia/fal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server