mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-12 00:29:11 +02:00
147 lines
4.8 KiB
Text
147 lines
4.8 KiB
Text
---
|
|
title: oauth
|
|
sidebarTitle: oauth
|
|
---
|
|
|
|
# `fastmcp.client.auth.oauth`
|
|
|
|
## Functions
|
|
|
|
### `default_cache_dir` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L48" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
default_cache_dir() -> Path
|
|
```
|
|
|
|
### `check_if_auth_required` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L192" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
check_if_auth_required(mcp_url: str, httpx_kwargs: dict[str, Any] | None = None) -> bool
|
|
```
|
|
|
|
|
|
Check if the MCP endpoint requires authentication by making a test request.
|
|
|
|
**Returns:**
|
|
- True if auth appears to be required, False otherwise
|
|
|
|
|
|
## Classes
|
|
|
|
### `StoredToken` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L37" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
Token storage format with absolute expiry time.
|
|
|
|
|
|
### `FileTokenStorage` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L52" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
File-based token storage implementation for OAuth credentials and tokens.
|
|
Implements the mcp.client.auth.TokenStorage protocol.
|
|
|
|
Each instance is tied to a specific server URL for proper token isolation.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `get_base_url` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L67" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_base_url(url: str) -> str
|
|
```
|
|
|
|
Extract the base URL (scheme + host) from a URL.
|
|
|
|
|
|
#### `get_cache_key` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_cache_key(self) -> str
|
|
```
|
|
|
|
Generate a safe filesystem key from the server's base URL.
|
|
|
|
|
|
#### `get_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_tokens(self) -> OAuthToken | None
|
|
```
|
|
|
|
Load tokens from file storage.
|
|
|
|
|
|
#### `set_tokens` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L119" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_tokens(self, tokens: OAuthToken) -> None
|
|
```
|
|
|
|
Save tokens to file storage.
|
|
|
|
|
|
#### `get_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L136" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
get_client_info(self) -> OAuthClientInformationFull | None
|
|
```
|
|
|
|
Load client information from file storage.
|
|
|
|
|
|
#### `set_client_info` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L164" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
set_client_info(self, client_info: OAuthClientInformationFull) -> None
|
|
```
|
|
|
|
Save client information to file storage.
|
|
|
|
|
|
#### `clear` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L170" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
clear(self) -> None
|
|
```
|
|
|
|
Clear all cached data for this server.
|
|
|
|
|
|
#### `clear_all` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L179" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
clear_all(cls, cache_dir: Path | None = None) -> None
|
|
```
|
|
|
|
Clear all cached data for all servers.
|
|
|
|
|
|
### `OAuth` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L222" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
OAuth client provider for MCP servers with browser-based authentication.
|
|
|
|
This class provides OAuth authentication for FastMCP clients by opening
|
|
a browser for user authorization and running a local callback server.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `redirect_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L302" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
redirect_handler(self, authorization_url: str) -> None
|
|
```
|
|
|
|
Open browser for authorization.
|
|
|
|
|
|
#### `callback_handler` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/auth/oauth.py#L307" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
callback_handler(self) -> tuple[str, str | None]
|
|
```
|
|
|
|
Handle OAuth callback and return (auth_code, state).
|
|
|