API Reference
This section provides a detailed reference for the main classes and models in the fastapi-mcp
library.
FastApiMCP
Class
The main class for creating and managing an MCP server from a FastAPI application.
from fastapi_mcp import FastApiMCP
__init__(...)
Initializes the MCP server instance.
Parameters:
fastapi
(FastAPI
): The FastAPI application to create an MCP server from.name
(Optional[str]
): Name for the MCP server (defaults to app.title).description
(Optional[str]
): Description for the MCP server (defaults to app.description).describe_all_responses
(bool
): Whether to include all possible response schemas in tool descriptions. Defaults toFalse
.describe_full_response_schema
(bool
): Whether to include full JSON schema for responses in tool descriptions. Defaults toFalse
.http_client
(Optional[httpx.AsyncClient]
): Optional custom HTTP client to use for API calls to the FastAPI app.include_operations
(Optional[List[str]]
): List of operation IDs to include as MCP tools. Cannot be used withexclude_operations
.exclude_operations
(Optional[List[str]]
): List of operation IDs to exclude from MCP tools. Cannot be used withinclude_operations
.include_tags
(Optional[List[str]]
): List of tags to include as MCP tools. Cannot be used withexclude_tags
.exclude_tags
(Optional[List[str]]
): List of tags to exclude from MCP tools. Cannot be used withinclude_tags
.auth_config
(Optional[AuthConfig]
): Configuration for MCP authentication.headers
(List[str]
): List of HTTP header names to forward from the incoming MCP request. Defaults to['authorization']
.
mount_http(...)
Mounts the MCP server using the recommended Streamable HTTP transport.
Parameters:
router
(Optional[FastAPI | APIRouter]
): The FastAPI app or APIRouter to mount to. Defaults to the app provided in the constructor.mount_path
(str
): The path to mount the MCP server on. Defaults to"/mcp"
.
mount_sse(...)
Mounts the MCP server using Server-Sent Events (SSE) for backwards compatibility.
Parameters:
router
(Optional[FastAPI | APIRouter]
): The FastAPI app or APIRouter to mount to. Defaults to the app provided in the constructor.mount_path
(str
): The path to mount the MCP server on. Defaults to"/sse"
.
setup_server()
Refreshes the MCP server's tool list. This is useful if you add FastAPI routes dynamically after FastApiMCP
has been initialized.
AuthConfig
Model
A Pydantic model for configuring MCP-compliant authentication.
from fastapi_mcp import AuthConfig
Fields:
version
(Literal["2025-03-26"]
): The MCP spec version for authorization. Defaults to"2025-03-26"
.dependencies
(Optional[Sequence[params.Depends]]
): A sequence of FastAPIDepends()
that will be applied to the MCP endpoint to trigger authentication checks.issuer
(Optional[str]
): The issuer URL of the OAuth 2.0 server (e.g., your Auth0 domain).oauth_metadata_url
(Optional[StrHttpUrl]
): The full URL to the OAuth provider's metadata endpoint (.well-known/openid-configuration
).authorize_url
(Optional[StrHttpUrl]
): The URL of the OAuth provider's authorization endpoint.audience
(Optional[str]
): A default audience to inject into the authorization flow if the client does not provide one.default_scope
(str
): A default scope to request if the client does not specify one. Defaults to"openid profile email"
.client_id
(Optional[str]
): Your application's client ID from the OAuth provider.client_secret
(Optional[str]
): Your application's client secret.custom_oauth_metadata
(Optional[OAuthMetadataDict]
): Allows you to provide a complete, custom OAuth metadata dictionary directly.setup_proxies
(bool
): IfTrue
, sets up proxy endpoints to make a non-compliant OAuth provider compatible with MCP. Defaults toFalse
.setup_fake_dynamic_registration
(bool
): IfTrue
(andsetup_proxies
is true), creates a fake dynamic client registration endpoint required by some MCP clients. Defaults toTrue
.metadata_path
(str
): The path where the OAuth metadata will be served. Defaults to"/.well-known/oauth-authorization-server"
.
See the Authentication Guide for detailed usage.