examples/clients/simple-auth-client/README.md
A demonstration of how to use the MCP Python SDK with OAuth authentication over streamable HTTP or SSE transport.
cd examples/clients/simple-auth-client
uv sync --reinstall
The simple-auth server example provides three server configurations. See examples/servers/simple-auth/README.md for full details.
Separate Authorization Server and Resource Server:
# Terminal 1: Start Authorization Server on port 9000
cd examples/servers/simple-auth
uv run mcp-simple-auth-as --port=9000
# Terminal 2: Start Resource Server on port 8001
cd examples/servers/simple-auth
uv run mcp-simple-auth-rs --port=8001 --auth-server=http://localhost:9000 --transport=streamable-http
# Single server that acts as both AS and RS (port 8000)
cd examples/servers/simple-auth
uv run mcp-simple-auth-legacy --port=8000 --transport=streamable-http
# Connect to Resource Server (new architecture, default port 8001)
MCP_SERVER_PORT=8001 uv run mcp-simple-auth-client
# Connect to Legacy Server (port 8000)
uv run mcp-simple-auth-client
# Use SSE transport
MCP_SERVER_PORT=8001 MCP_TRANSPORT_TYPE=sse uv run mcp-simple-auth-client
The client will open your browser for authentication. After completing OAuth, you can use commands:
list - List available toolscall <tool_name> [args] - Call a tool with optional JSON argumentsquit - Exitš Simple MCP Auth Client
Connecting to: http://localhost:8001/mcp
Transport type: streamable-http
š Attempting to connect to http://localhost:8001/mcp...
š” Opening StreamableHTTP transport connection with auth...
Opening browser for authorization: http://localhost:9000/authorize?...
ā
Connected to MCP server at http://localhost:8001/mcp
mcp> list
š Available tools:
1. get_time
Description: Get the current server time.
mcp> call get_time
š§ Tool 'get_time' result:
{"current_time": "2024-01-15T10:30:00", "timezone": "UTC", ...}
mcp> quit
| Environment Variable | Description | Default |
|---|---|---|
MCP_SERVER_PORT | Port number of the MCP server | 8000 |
MCP_TRANSPORT_TYPE | Transport type: streamable-http or sse | streamable-http |
MCP_CLIENT_METADATA_URL | Optional URL for client metadata (CIMD) | None |