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

# CLI server (stdio)

> Run nebyoulous mcp:serve to give your assistant the hosted tools plus local tools that read your disks.

`nebyoulous mcp:serve` runs an MCP server over stdio on your machine. It
exposes two sets of tools as one server:

* **Local tools** that run in the CLI process: list mounted volumes, scan a
  folder, peek FITS headers, classify frames, and plan and run a sync. See
  [Local tools](/mcp/tools#local-tools-cli-server-only).
* **Every hosted tool**, proxied to `https://api.nebyoulous.space/mcp` with
  your CLI session.

Use it when your assistant needs files on your machine, for example *"Scan the
card in the reader and upload the lights to a new set for M42."* Otherwise the
[hosted server](/mcp/remote) is simpler.

## Before you start

[Install the CLI](/cli/overview#install) and sign in:

```bash theme={null}
nebyoulous login
```

The server reuses that session and refreshes it as needed. If you haven't
signed in, `mcp:serve` exits right away and tells you to run
`nebyoulous login`.

## Add it to your client

**Claude Code**

```bash theme={null}
claude mcp add nebyoulous-local -- nebyoulous mcp:serve
```

**Claude Desktop**

Add this to `claude_desktop_config.json` (**Settings → Developer → Edit
Config**), then restart Claude Desktop:

```json theme={null}
{
  "mcpServers": {
    "nebyoulous-local": {
      "command": "nebyoulous",
      "args": ["mcp:serve"]
    }
  }
}
```

**Cursor**

Add this to `.cursor/mcp.json` in a project, or to `~/.cursor/mcp.json`:

```json theme={null}
{
  "mcpServers": {
    "nebyoulous-local": {
      "command": "nebyoulous",
      "args": ["mcp:serve"]
    }
  }
}
```

**VS Code**

Add this to `.vscode/mcp.json`:

```json theme={null}
{
  "servers": {
    "nebyoulous-local": {
      "type": "stdio",
      "command": "nebyoulous",
      "args": ["mcp:serve"]
    }
  }
}
```

> [!WARNING]
>
> Use the colon form, `mcp:serve`, as a single argument. `mcp serve` with a
> space prints the topic help and exits, and the client reports that the
> server closed.

If the client can't find `nebyoulous`, use the full path from
`which nebyoulous` as the command. GUI apps often don't inherit your shell's
`PATH`.

## How it behaves

* **Hosted tools load at startup.** The server asks the API for its tool list
  when it starts, so restart it after a Nebyoulous release to pick up new
  tools.
* **Destructive local tools are marked.** `executeSync` and `executeLocalSync`
  carry `destructiveHint`, so your client asks before they run. The other
  local tools are read-only.
* **The source is never changed.** Sync copies or uploads from the source
  folder and never moves or deletes anything in it.
* **Other APIs.** Set `NEBYOULOUS_API_URL` in the server's environment to point
  it at another API, and sign in with the same variable set. The CLI keeps one
  session at a time, so that sign-in replaces your production one.


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