---
schema: rendered-html/v1
title: "Bearer Token Authentication - FastMCP"
source_url: https://gofastmcp.com/clients/auth/bearer
generated_at: 2026-06-11T19:40:57.269884+00:00
---




[FastMCP home page![light logo](images/gofastmcp__com__clients__auth__bearer__wordmark.avif)![dark logo](images/gofastmcp__com__clients__auth__bearer__wordmark-white.avif)](gofastmcp__com.md)







Authentication

Bearer Token Authentication

















  - [OAuth](gofastmcp__com__clients__auth__oauth.md)
  - [CIMD

    NEW](gofastmcp__com__clients__auth__cimd.md)
  - [Bearer Auth](/clients/auth/bearer)






- [Client Usage](#client-usage)
- [BearerAuth Helper](#bearerauth-helper)
- [Custom Headers](#custom-headers)

Authentication

# Bearer Token Authentication


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:

Authorization: Bearer <token>

## [​](#client-usage) Client Usage

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.


async with Client(
    "https://your-server.fastmcp.app/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`:

from fastmcp.client.transports import StreamableHttpTransport

transport = StreamableHttpTransport(
    "http://your-server.fastmcp.app/mcp", 
    auth="<your-token>",

async with Client(transport) as client:
    await client.ping()

## [​](#bearerauth-helper) `BearerAuth` Helper

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.

from fastmcp.client.auth import BearerAuth

async with Client(
    "https://your-server.fastmcp.app/mcp", 
    auth=BearerAuth(token="<your-token>"),
) as client:
    await client.ping()

## [​](#custom-headers) Custom Headers

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:

from fastmcp.client.transports import StreamableHttpTransport

async with Client(
    transport=StreamableHttpTransport(
        "https://your-server.fastmcp.app/mcp", 
        headers={"X-API-Key": "<your-token>"},
) as client:
    await client.ping()

[CIMD Authentication

Previous](gofastmcp__com__clients__auth__cimd.md)[Auth0 OAuth 🤝 FastMCP

Next](gofastmcp__com__integrations__auth0.md)






