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

# Commands

> mcix commands reference

### `mcix install`

Bootstrap a new MCI project with starter configuration.

```bash theme={null}
# Create JSON configuration (default)
uvx mcix install

# Create YAML configuration
uvx mcix install --yaml
```

Creates:

* `mci.json` (or `mci.yaml`) - Main configuration file
* `mci/` directory - Library of toolsets
* `mci/.gitignore` - Excludes generated files

### `mcix list`

Display all available tools from your configuration.

```bash theme={null}
# List all tools (table format)
uvx mcix list

# List with verbose details
uvx mcix list --verbose

# Filter by tags
uvx mcix list --filter tags:api,database

# Export to JSON
uvx mcix list --format json

# Export to YAML
uvx mcix list --format yaml
```

**Filter types**:

* `tags:tag1,tag2` - Include tools with any of these tags
* `only:tool1,tool2` - Include only specific tools
* `except:tool1,tool2` - Exclude specific tools
* `toolsets:ts1,ts2` - Include tools from specific toolsets
* `without-tags:tag1,tag2` - Exclude tools with these tags

### `mcix validate`

Validate your MCI schema for correctness.

```bash theme={null}
# Validate default configuration
uvx mcix validate

# Validate specific file
uvx mcix validate --file custom.mci.json
```

Checks for:

* Schema structure and syntax
* Required fields
* Data types
* Tool definitions
* Toolset references
* MCP command availability (warnings)

### `mcix add`

Add toolset references to your schema.

```bash theme={null}
# Add a toolset
uvx mcix add weather-tools

# Add with filter
uvx mcix add analytics --filter=only:Tool1,Tool2

# Add with tag filter
uvx mcix add api-tools --filter=tags:api,database

# Add to custom file
uvx mcix add weather-tools --path=custom.mci.json
```

Automatically preserves your file format (JSON stays JSON, YAML stays YAML).

### `mcix run`

Launch an MCP server that dynamically serves your tools.

```bash theme={null}
# Run with default configuration
uvx mcix run

# Run with specific file
uvx mcix run --file custom.mci.json

# Run with filtered tools
uvx mcix run --filter tags:production

# Run excluding tools
uvx mcix run --filter except:deprecated_tool
```

The server:

* Loads tools from your MCI schema
* Converts them to MCP format
* Listens on STDIO for MCP requests
* Delegates execution back to MCIClient

**Stop the server**: Press `Ctrl+C`

### `mcix envs`

List all environment variables referenced in your MCI configuration.

```bash theme={null}
# Show environment variables in table format
uvx mcix envs

# Generate .env.example.mci file
uvx mcix envs --format=env

# Check specific schema file
uvx mcix envs --file=custom.mci.json
```

The `envs` command scans your entire MCI schema including:

* Main schema file tools and configuration
* All referenced toolsets
* MCP server configurations

**Output formats**:

* `table` (default) - Display variables in a formatted table with locations
* `env` - Generate `.env.example.mci` file with all variables

**Example table output**:

```
┌─────────────────┬──────────────────┐
│ Variable        │ Used In          │
├─────────────────┼──────────────────┤
│ API_KEY         │ main, weather    │
│ DB_URL          │ database         │
│ GITHUB_TOKEN    │ mcp:github       │
└─────────────────┴──────────────────┘
```

**Example .env file output**:

```bash theme={null}
# .env.example.mci
# Environment variables used in MCI configuration
#
# Copy this file to .env.mci and fill in your values

# Used in: main, weather
API_KEY=

# Used in: database
DB_URL=

# Used in: mcp:github
GITHUB_TOKEN=
```

> **Tip**: Run `uvx mcix envs --format=env` to generate a template `.env.example.mci` file, then copy it to `.env.mci` and fill in your values. Commit `.env.example.mci` to your repository so team members know what environment variables are needed.
