mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-21 04:54:17 +02:00
* sk-provider updates - aud not enforce, scopes enforce if present * updating env_prefix, adding debug logs * updating docs * ruff formatting * not changing prefix for backward compatiblity * backward compatibility changes * give more preference to base_url than mcp_url if both passed * updating docs * refactor * updating example server * updating readme of example * updating docs * updating tests to reflect what should ideally go in the parameter
55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# Scalekit OAuth Example
|
|
|
|
Demonstrates FastMCP server protection with Scalekit OAuth.
|
|
|
|
## Setup
|
|
|
|
### 1. Configure MCP server in Scalekit environment
|
|
|
|
**Create a Scalekit Account**:
|
|
|
|
- Go to [Scalekit Dashboard](https://app.scalekit.com/)
|
|
- Copy your Environment URL from **Developers** → **Settings**
|
|
- Copy Resource ID (res_xxx) from **Developers** → **MCP Servers**
|
|
|
|
**Register Your MCP Server**:
|
|
|
|
- Go to **MCP Servers** → **Create New Server**
|
|
- Fill in your MCP server details
|
|
- Note the **Resource ID** (e.g., `res_123`)
|
|
|
|
Create a `.env` file:
|
|
|
|
```bash
|
|
# Required Scalekit credentials
|
|
SCALEKIT_ENVIRONMENT_URL=<YOUR_APP_ENVIRONMENT_URL>
|
|
SCALEKIT_RESOURCE_ID=<YOUR_APP_RESOURCE_ID> # res_926EXAMPLE5878
|
|
BASE_URL=http://localhost:8000/
|
|
# Optional: additional scopes tokens must include (comma-separated)
|
|
# SCALEKIT_REQUIRED_SCOPES=read,write
|
|
```
|
|
|
|
### 2. Run the Example
|
|
|
|
Start the server:
|
|
|
|
```bash
|
|
# From this directory
|
|
uv run python server.py
|
|
```
|
|
|
|
The server will start on `http://localhost:8000/mcp` with Scalekit OAuth authentication enabled.
|
|
|
|
Test with client:
|
|
|
|
```bash
|
|
uv run python client.py
|
|
```
|
|
|
|
The `client.py` will:
|
|
|
|
1. Attempt to connect to the server
|
|
2. Detect that OAuth authentication is required
|
|
3. Open a browser for Scalekit authentication
|
|
4. Complete the OAuth flow and connect to the server
|
|
5. Demonstrate calling authenticated tools
|