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

# ultra add

> Add an MCP server from a registry or URL

Add an MCP server from the official MCP Registry, npm, or a remote URL.

## Usage

```bash theme={null}
ultra add <server|url> [flags]
```

## Arguments

| Argument          | Required | Description                        |
| ----------------- | -------- | ---------------------------------- |
| `server` or `url` | Yes      | Server name/package or HTTP(S) URL |

## Flags

| Flag         | Short | Default              | Description                       |
| ------------ | ----- | -------------------- | --------------------------------- |
| `--name`     |       | Derived from package | Custom name for the server        |
| `--disabled` |       | `false`              | Add server in disabled state      |
| `--yes`      | `-y`  | `false`              | Accept defaults without prompting |

## Examples

```bash theme={null}
# Add the official filesystem server
ultra add @modelcontextprotocol/server-filesystem

# Add by short name (searches registries)
ultra add filesystem

# Add with a custom name
ultra add @modelcontextprotocol/server-filesystem --name myfiles

# Add without prompts (use defaults)
ultra add filesystem --yes

# Add a remote server by URL
ultra add https://mcp.slack.com/mcp

# Add a remote server with a custom name
ultra add https://remote.example.com/mcp --name myserver
```

## Registry Lookup

When you pass a package name:

* **Full name** (contains `/` or starts with `@`) — Direct lookup in registries
* **Short name** — Searches registries and presents matching results for selection

If multiple results are found, Ultra shows an interactive selector (up to 9 results).

## URL Mode

When you pass an HTTP(S) URL:

* Ultra derives a server name from the hostname (e.g., `https://mcp.slack.com` → `slack`)
* Tests the connection and detects authentication requirements
* For OAuth servers, authorization happens at runtime
* For token-based auth, prompts for the token during setup

## Connection Testing

For both registry and URL servers, Ultra tests the connection:

* **Stdio servers** — Probes the server with the MCP handshake. If the default args fail, automatically tries common fixes (e.g., appending `--stdio`)
* **HTTP servers** — Tests connectivity and detects auth requirements (OAuth, Bearer token, API key)

## Configuration

Added servers are written to Ultra's config file. Environment variables and auth tokens are collected during the interactive flow or can be set later:

```bash theme={null}
ultra config set-token my-server YOUR_TOKEN
```
