Clients orchestrate user intent, tool discovery, and consent prompts. This guide illustrates the flow using a TypeScript client that powers a web intake form and Slack assistant.
Discover the catalog
Clients start by calling GET /catalog. Cache the response and refresh when the server sends an update event.
const catalog = await fetch(`${SERVER_URL}/catalog`, {
headers: { Authorization: `Bearer ${token}` },
}).then((res) => res.json());Map user roles to consent scopes
Before calling a tool, make sure the actor holds the required scopes. If not, trigger the Atlas consent flow. Store approvals with expiration timestamps.
Invoke tools with tracker metadata
Send actor_id, role, workspace_id, and transaction references in each call. Capture returned event_ids so you can show status in the client UI.
Surface artifacts and alerts
Display artifact URIs inline and link to the Knowledge Base for provenance. Bubble tracker alerts when users approach budgets.