# Four ways in

Lessly has four interfaces. They address the same operation catalog on the same platform, so the choice depends on who is doing the work — a person at a screen, a script, an agent, or your own service.

| Surface | Address | Use it when |
|---|---|---|
| [Product App](/interfaces/web-app) | `app.lessly.com` | A person is doing the work by hand: signing up, creating a product, inviting people, issuing a key. |
| [`lessly` CLI](/interfaces/cli) | `@lessly/cli` | The work is scripted — from a terminal or from CI. |
| [MCP server](/interfaces/mcp) | `mcp.lessly.com` | An AI agent does the work. **Recommended** for agents: the endpoint lists the operations the caller's identity holds, already filtered by its permissions. |
| [REST API](/interfaces/api-and-keys) | `api.lessly.com` | Your own code calls Lessly directly. |

Registration is App-only: an account is created at sign-up, before any credential exists to authenticate the other three with.

## What is shared between them

- **One operation catalog.** The CLI builds its command tree from the operations your identity holds, and the MCP endpoint lists the same set as tools. An operation added on the platform appears on both without an upgrade.
- **One active product.** Every surface acts on one product at a time. You select it in the app's switcher, with `lessly product select`, with the MCP tool `organization_product_select`, or with the `X-Product-Id` header on a REST call.
- **Two credential kinds.** A short-lived session token from signing in, and a long-lived API key that starts with `lsk_dev_` and is pinned to one product. Keys are made for scripts, CI and agents — see [REST API and API keys](/interfaces/api-and-keys).

## Next steps

- [Find the page you need in the app](/interfaces/web-app): the routes, the product slug, the session.
- [Install the CLI and sign in](/interfaces/cli): `npm i -g @lessly/cli`, then `lessly auth login`.
- [Connect your agent to the MCP endpoint](/interfaces/mcp): add the server, authenticate, call a tool.
- [Create an API key and use it](/interfaces/api-and-keys): one key, one product, shown once.
