# Oklyst — company purchasing and records (v0.4.1 Beta) Oklyst is a company workspace for purchasing requests, supporting evidence, approvals and records. Owners create and configure their own companies. Do not assume any example company is the current user's business. ## Public guides - Overview: https://oklyst.com/ - Signup: https://oklyst.com/signup - AI assistants and customer CLI: https://oklyst.com/agents - WhatsApp owner setup: https://oklyst.com/docs/whatsapp - Product changelog: https://oklyst.com/docs/changelog - Customer CLI (Node.js 24+, no npm package): https://oklyst.com/downloads/oklyst.mjs ## Owner-assistant MCP Transport: Streamable HTTP Resource/server: https://oklyst.com/mcp Protected resource metadata: https://oklyst.com/.well-known/oauth-protected-resource/mcp Authorization server metadata: https://oklyst.com/.well-known/oauth-authorization-server Scope: mcp:setup Browser authorization: dynamic client registration, authorization code, PKCE S256, state, exact resource in authorization and token exchange. Tokens expire after at most 90 days. No refresh grant. The user signs in, creates a company if needed, chooses a company and approves an owner-assistant connection in the browser. Never ask for database credentials or provider secrets in chat. A grant is bound to one company and its approving owner. Revoke connections through Oklyst Settings > Agent. After authorization, discover tools/list and inspect current schemas. Start with get_setup_status, the owner's live setup checklist (the same one the owner sees on Getting started), then get_setup_context and get_setup_schema. Discuss the company's actual needs. propose_setup creates a proposal for profile, departments, purchasing, forms or guidance, changes to existing rules and forms, people with their WhatsApp numbers, roles, form access and going live; return its reviewUrl to the owner. Only the owner can apply it in the browser. get_setup_proposal checks the outcome. Do not claim a proposal was applied before that status confirms it, and call get_setup_status again after each owner step. get_connection_guide accepts whatsapp, zoho, stocklyst, routines or people. To set up the background agent, call get_agent_setup. It returns the connection status, the exact routine instructions, a suggested schedule in company hours (with a UTC cron when unambiguous) and the owner steps. Confirm working days and hours with the owner, then propose agent {provider:"claude_routine", scheduledHours, days} with ISO weekdays (1 is Monday); the owner applies it on the review page. Oklyst uses that schedule to tell people when the agent will reply. This setup connection does not approve purchases, apply people/access changes itself, read transaction documents, connect providers, send accounting records, make payments or receive routine credentials. The operational company agent connection has a separate scope and purpose. ## CLI Download the .mjs file, inspect it if needed, then run node oklyst.mjs login. Commands: help, version, login, status, tools, call TOOL_NAME [JSON_OBJECT], logout. Login opens a local browser callback and asks the owner to authorize. Credentials stay in a mode-0600 local file inside a private configuration directory. Never print, upload or commit that file. Logout revokes the connection before removing local credentials. Failed revocation retains the local credential for retry. Owners can also revoke in Settings > Agent. ## Integration boundaries WhatsApp: the owner enters the Meta app's details in the browser and presses Connect Meta for me, which points Meta at the company's address; never ask for them in chat. Messages from numbers on nobody's profile are kept and not answered; get_setup_status shows them masked. Zoho provider authorization is an owner browser step; accounting sending remains in controlled testing. To use Stocklyst alongside Oklyst, add a separate Stocklyst MCP connection at https://stocklyst.com/api/v1/mcp/stream following https://stocklyst.com/docs/cli-and-ai and obtain owner authorization for the intended Stocklyst workspace. Discover each connection’s tools and respect its scope. This is an assistant working with two separately authorized apps, not automatic server-to-server inventory or accounting sync. Shared sign-in alone grants no business-data connection. AI-client schedules are managed in their native interface. A client that can create routines, such as Claude Code, may create one for the owner from get_agent_setup; Oklyst never creates or starts a provider schedule through the setup connection. Exchange-rate entry is company-scoped: use only books enabled by company policy in Rates. A connected book or postingEnabled does not authorize rate entry. Keep company-specific book restrictions in that company’s approved guidance, not in shared instructions. ## Operational agents and receipt reading Interactive owner setup supports compatible Claude, ChatGPT, Codex and other remote MCP clients. Custom app availability depends on the client's plan and administrator settings. Background agents: use get_agent_setup for the provider-specific instructions and the company-specific operational MCP URL; do not substitute the public setup MCP URL. The owner authorizes that connector in the browser. A Claude routine's own schedule is the default wake. Optional instant wake needs its trigger URL and credential, which the owner saves in Settings > Background agent > Advanced settings, never in chat. Claude: the routine API fire URL and its trigger token, for optional instant wake. ChatGPT: requires an eligible workspace with Workspace Agents and its API channel enabled. Trigger URL: https://api.chatgpt.com/v1/workspace_agents/agtch_.../trigger. Use a ChatGPT Admin > Access tokens credential scoped to Workspace Agents, not an OpenAI Platform API key. A normal ChatGPT chat or scheduled task is not a workspace agent trigger. Leave provider schedules off; one fresh API-triggered conversation handles one task to prevent cross-task context reuse. Do not claim native ChatGPT live acceptance from transport or local tests. Changing provider clears trigger credentials and disables starts. Account verification and operating-window gates still apply; local start caps are not provider allowances. Receipt reading uses a separate routine/workspace agent and a separate company extraction MCP URL in Settings > Receipt reading. An operator must verify its account and operating window before it can start. Connect only the receipt tools, without schedules or unrelated tools. Receipt suggestions remain private until an owner selects what to save. Do not enable receipt processing or connect customer accounts without the owner's authorization. Do not promise unavailable integration capabilities.