Connect a client
Add Scheduler Zero to an interactive or headless MCP client.
# Connect a client
## Interactive clients
In Claude or another client that supports remote OAuth MCP servers:
1. Add a custom connector or MCP server.
2. Enter `https://mcp.schedulerzero.com/mcp` as the server URL.
3. Complete the WorkOS AuthKit sign-in flow.
4. Approve access to Scheduler Zero.
Approve the Organization and Workspaces offered by the consent screen. Use `list_workspaces` to discover authorized Workspace handles and pass `workspaceId` on data calls. Each call is independently authenticated and authorized.
## Headless clients
Create a personal API key under **Settings → Personal → API keys**, then export it without committing it to source control:
```bash
export SCHEDULER_ZERO_API_KEY="szp_your_api_key_here"
```
The key acts as you, limited to the access you chose for it (full account, or selected Organizations and Workspaces). One key and one server entry can reach every Workspace the key can see; Workspace tools take the `workspaceId` on each call.
Configure a Streamable HTTP server with an authorization header:
```json
{
"mcpServers": {
"scheduler-zero": {
"type": "http",
"url": "https://mcp.schedulerzero.com/mcp",
"headers": {
"Authorization": "Bearer ${SCHEDULER_ZERO_API_KEY}"
}
}
}
}
```
Environment-variable interpolation differs by client. If your client does not expand `${SCHEDULER_ZERO_API_KEY}`, use its environment-backed bearer-token setting instead of placing the secret directly in a committed file.
### Codex
Codex supports an environment-backed bearer token directly:
```toml
[mcp_servers.scheduler-zero]
url = "https://mcp.schedulerzero.com/mcp"
bearer_token_env_var = "SCHEDULER_ZERO_API_KEY"
```
## Verify the connection
Ask the client to run `list_workspaces`. Confirm the returned Workspaces are the ones you authorized, then select a tool from the [MCP tool reference](/mcp/tools).