Authenticate your FastMCP client with a Bearer token.
New in version 2.6.0
Bearer Token authentication is only relevant for HTTP-based transports.
You can configure your FastMCP client to use bearer authentication by supplying a valid access token. This is most appropriate for service accounts, long-lived API keys, CI/CD, applications where authentication is managed separately, or other non-interactive authentication methods.A Bearer token is a JSON Web Token (JWT) that is used to authenticate a request. It is most commonly used in the Authorization header of an HTTP request, using the Bearer scheme:
The most straightforward way to use a pre-existing Bearer token is to provide it as a string to the auth parameter of the fastmcp.Client or transport instance. FastMCP will automatically format it correctly for the Authorization header and bearer scheme.
If you’re using a string token, do not include the Bearer prefix. FastMCP will add it for you.
Copy
from fastmcp import Clientasync with Client( "https://fastmcp.cloud/mcp", auth="<your-token>",) as client: await client.ping()
You can also supply a Bearer token to a transport instance, such as StreamableHttpTransport or SSETransport:
Copy
from fastmcp import Clientfrom fastmcp.client.transports import StreamableHttpTransporttransport = StreamableHttpTransport( "http://fastmcp.cloud/mcp", auth="<your-token>",)async with Client(transport) as client: await client.ping()
If you prefer to be more explicit and not rely on FastMCP to transform your string token, you can use the BearerAuth class yourself, which implements the httpx.Auth interface.
Copy
from fastmcp import Clientfrom fastmcp.client.auth import BearerAuthasync with Client( "https://fastmcp.cloud/mcp", auth=BearerAuth(token="<your-token>"),) as client: await client.ping()
If the MCP server expects a custom header or token scheme, you can manually set the client’s headers instead of using the auth parameter by setting them on your transport:
Copy
from fastmcp import Clientfrom fastmcp.client.transports import StreamableHttpTransportasync with Client( transport=StreamableHttpTransport( "https://fastmcp.cloud/mcp", headers={"X-API-Key": "<your-token>"}, ),) as client: await client.ping()