> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lumovi.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# AI assistants on a server

> Connect Claude Code, Cursor, VS Code or another assistant to your team's Lumovi: it signs in through Lumovi, acts as you, and asks you before it changes anything.

Your team's Lumovi, [in a cluster](/server/overview) or as a [fleet](/clusters/fleet), takes AI assistants too. Claude Code, Cursor, VS Code and other assistants that speak MCP connect to its address, and sign in through Lumovi in your browser: there's no token to copy. Then they act as you. They read the clusters you can see (in a fleet, every one you may see), with what you may do in each, and the changes they ask for wait on your own Lumovi pages for your answer.

They have the same [tools](/assistants/tools) as in the desktop app, and their changes show in the same [approval dialog](/assistants/approvals). What differs is how they connect, how they sign in, and who decides what their changes do. Running the server? See [AI assistants for your team](/server/assistants).

## Connect an assistant

Open the **AI assistants** dialog: the sparkles at the bottom of the sidebar, next to the theme (at the top right of a fleet's page of clusters), or **AI assistants…** in the [command palette](/explore/finding-things) (<kbd>⌘</kbd><kbd>K</kbd>, or <kbd>Ctrl</kbd><kbd>K</kbd> on Windows and Linux). It says:

> Claude Code, Cursor, VS Code and other assistants read the clusters you can see through Lumovi, as you, and ask you here before they change anything.

Under **Connect an assistant**, a tab for each:

<Tabs>
  <Tab title="Claude Code" icon="square-terminal">
    Run the command once, in a terminal. **Copy command** copies it:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
    claude mcp add --transport http lumovi https://lumovi.example.com/mcp
    ```

    Then sign in with `/mcp` in Claude Code: Lumovi opens in your browser, and asks you to allow it.
  </Tab>

  <Tab title="Cursor" icon="mouse-pointer-2">
    Choose **Add to Cursor**. Cursor asks you to confirm, then opens Lumovi in your browser to sign in.
  </Tab>

  <Tab title="VS Code" icon="code">
    Choose **Add to VS Code**. VS Code asks you to confirm, then opens Lumovi in your browser to sign in.
  </Tab>

  <Tab title="Other" icon="plug">
    Assistants that connect to MCP servers over HTTP use the address the dialog shows, with **Copy address**: the server's own, with `/mcp` after it, like `https://lumovi.example.com/mcp`. They sign in with OAuth, as MCP has them do: Lumovi opens in your browser, and asks you to allow them.
  </Tab>
</Tabs>

The address is your team's Lumovi's, with `/mcp` after it: below its path, when it has one, like `https://tools.example.com/lumovi/mcp`.

## Sign in, and allow it

When the assistant connects for the first time, it opens Lumovi in your browser:

<Steps>
  <Step title="Sign in to Lumovi">
    As you always do: with a token, single sign-on, or your company's login. If you're signed in already, there's nothing to do. See [Signing in](/get-started/sign-in).
  </Step>

  <Step title="Read what it asks">
    **Allow an AI assistant?** names the assistant, as it calls itself, and who it would act as:

    > Claude Code wants to use Lumovi as [alice@example.com](mailto:alice@example.com): to read the clusters you can see, and to ask to change them. Each change waits for your approval in Lumovi, unless a cluster lets assistants make it without asking.

    Below that, where it goes back to: an address on your computer, like `127.0.0.1:33418`, an app, like `cursor`, or a site, like `vscode.dev`, which passes it on to VS Code. Lumovi sends you back only to your computer, an app, VS Code's site, or sites your team allowed. "Allow it only if you started this from Claude Code."
  </Step>

  <Step title="Allow or deny it">
    **Allow** sends the browser back to the assistant, which can then use Lumovi as you. **Deny** sends it back too, without access.
  </Step>
</Steps>

<Warning>
  Allow an assistant only when you've just asked for it, from the assistant the page names, and it goes back where you expect. Anyone could send you a link to this page, made to look like an assistant's: allowed, whatever gets the answer on your computer, or in an app on it, would act as you.
</Warning>

If something is wrong with the request, the page says so instead, and asks you to start again from the assistant: "This request to allow an assistant can't be answered: It goes back somewhere the assistant didn't name. Start again from the assistant."

## How long it lasts

An assistant you allow acts as you, with your RBAC on each cluster, until:

* **You disconnect it**, under **Your assistants** in the dialog.
* **Your session ends**: you sign out of Lumovi, it's been 12 hours (or what your team set), or Lumovi restarts.
* **The assistant signs out** of Lumovi itself.
* **Lumovi lets it go**, when a token it renewed its access with comes back later, used already, as it would if someone else had a copy.

It renews its access every hour by itself, without asking you. Once it can no longer act as you, it has to sign in again, as the first time.

<Note>
  **Behind a company login**, Lumovi has no session of its own. An assistant you allow acts as you for as long as a session would last, 12 hours unless your team changed that, from when you allowed it. Each time you open a Lumovi page, it takes on what the company login says about you there, like your groups. Signing out of the company login doesn't end it: disconnect it in Lumovi.
</Note>

## Your assistants

**Your assistants** lists each assistant you allowed, by the name it gives as it connects, like **Claude Code**: when you allowed it, and when it last used Lumovi, like "Allowed 2h ago · used 4m ago". The dialog says:

> They act as you, with what you may do in each cluster, until you disconnect them or sign out of Lumovi.

**Disconnect** lets one go at once. It can't act as you again until you allow it again, and the changes it asked for that still wait are withdrawn. Until you allow one, the list says "None yet: assistants you allow show here." The sidebar's button has a green dot while you have one, and says **AI assistants (1 connected)** when you point at it.

Each person's assistants are their own: nobody else sees them, or their changes.

## Approving their changes

The changes your assistants ask for wait on your own Lumovi pages, in the same dialog as in the desktop app, with the same keys: see [Approving changes](/assistants/approvals). Every page you have open shows them, in any tab or browser you're signed in on, and you answer on any of them.

* **No page open?** The change waits for the next one you open, up to its five minutes. The assistant is told where to send you: "Still waiting for the person's answer in Lumovi ([https://lumovi.example.com](https://lumovi.example.com)): nothing has changed yet. …"
* **What it changes, and why**, the check that it still does what you saw once you approve it, and the typed name for some deletions: all as in the desktop app.
* **The activity log** of each page shows what became of them, with "via Claude Code".

## Notifications

Your browser can tell you when a change waits, while Lumovi's tab isn't in front. At the bottom of the dialog, **Notify me** asks the browser to let it:

| The dialog says | Means |
| - | - |
| Let this browser tell you when a change waits for you, while you're elsewhere. | You haven't been asked yet: choose **Notify me**. |
| This browser tells you when a change waits for you. | It will, while the tab is in the background. |
| This browser's settings block Lumovi's notifications. | You, or your browser, said no. Allow notifications for Lumovi's address in the browser's settings. |

A notification says what's waiting, like **Claude Code asks to change demo**, "Scale Deployment cart to 3 replicas. Review it in Lumovi." Clicking it brings Lumovi's window forward. With the tab in front, the dialog shows, and nothing else does.

Some browsers have no notifications for pages, like Safari on a phone outside an app on the home screen. There, the dialog has no **Notifications** part, and changes show only on your pages.

## What your team decides

The server's administrator decides, not you:

* **Whether assistants may connect at all.** When they've turned them off, the dialog says "This server's administrator has turned AI assistants off.", and so does the page for allowing one. The sidebar has no button for it.
* **What their changes do, in each cluster.** **Changes they ask for** shows it, without a way to change it: **Ask you**, **Made without asking** or **Never**, for each cluster. "As this server's administrator set them, and none where you made a cluster read-only. Deletions, and changes that take fields over from Helm or Argo CD, ask you wherever changes are made without asking."
* **Read-only for everyone.** When the server is read-only, assistants change nothing either.

Read-only for yourself reaches your assistants too. A cluster you made [read-only](/changes/read-only) shows **Read-only: no changes** under **Changes they ask for**, `list_clusters` tells your assistants it's `read-only`, and a change one asks for there is refused: "… is read-only in Lumovi. Allow changes to it to continue." Lumovi keeps it as your latest page says, so a page in a browser where it isn't read-only allows changes there again.

<Columns cols={2}>
  <Card title="Approving changes" icon="check-check" href="/assistants/approvals">
    What a change shows you, and how to answer it.
  </Card>

  <Card title="AI assistants for your team" icon="users" href="/server/assistants">
    For administrators: turning them on or off, and what their changes do.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.