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

# CLI

> The concierca terminal client: install-free invocation, MCP key setup, environment variables, and the full command set.

The **concierca** CLI is a thin terminal client for your MCP surface — built for terminal-based AI agents (like Claude Code) and for humans who prefer a shell. Every command is exactly one MCP tool call: validation, tenant and scope filtering, and governance all stay server-side. The only client-side convenience is that commands accepting an agent slug resolve it to the id with one lookup.

## Setup

Create a key in the app under **Settings › MCP Access** — when generating it, you pick exactly which tools the key may call (a per-tool allowlist). Then export two environment variables:

```bash theme={null}
export CONCIERCA_BASE_URL="https://app.concierca.ch"
export CONCIERCA_MCP_KEY="<your-key>"        # never commit this
```

No install step is required — invoke it install-free with `pnpm dlx`, or add a short alias:

```bash theme={null}
alias concierca="pnpm dlx concierca-cli"
```

## Commands

Each command is exactly one MCP tool call.

| Command                                                                    | MCP tool                                                      |
| -------------------------------------------------------------------------- | ------------------------------------------------------------- |
| `concierca whoami`                                                         | `whoami` (also shows the server's brand)                      |
| `concierca agents list`                                                    | `agent_list`                                                  |
| `concierca agents get <slug\|id>`                                          | `agent_get` (+ slug resolve)                                  |
| `concierca agents create -f agent.json`                                    | `agent_create`                                                |
| `concierca agents update <slug\|id> -f patch.json`                         | `agent_update` (+ slug resolve)                               |
| `concierca agents run <slug\|id> -i "task"`                                | `agent_run` (human-in-the-loop — creates a pending approval)  |
| `concierca missions list` (alias: `projects list`)                         | `mission_list`                                                |
| `concierca missions status <id>`                                           | `mission_status`                                              |
| `concierca missions run <id>`                                              | `mission_run`                                                 |
| `concierca missions approve <id> [--reject] [--input "..."]`               | `mission_approve_step` (the human gate)                       |
| `concierca missions create -f mission.json \| --goal "..."`                | `mission_create` (file = explicit plan; `--goal` = AI wizard) |
| `concierca missions templates`                                             | `mission_templates`                                           |
| `concierca skills list`                                                    | `skill_list`                                                  |
| `concierca skills link <agent> <skill> [--mode discover\|inject\|preload]` | `skill_link` (+ slug resolve)                                 |
| `concierca knowledge search <query>`                                       | `knowledge_search`                                            |
| `concierca guardrails`                                                     | `guardrails_get`                                              |
| `concierca tools list`                                                     | JSON-RPC `tools/list`                                         |

## Notes

* **Governance is server-side.** The key's per-tool allowlist governs what the CLI can call; anything not granted is rejected — the client cannot widen its own scope.
* **`agents run` and `missions approve` are human-gated.** `agents run` creates a pending approval rather than executing silently; `missions approve` is the human decision on a paused step.
* **Slug resolution** is the only client-side convenience: commands that take an agent slug do one lookup to resolve it to the id, then call the tool.
* **Bootstrapping agent JSON:** `concierca tools list --json` prints each tool's input schema, so you can build an `agent.json` from the `agent_create` schema.

***

See [Connect via MCP](/guide/mcp-connect) for connecting Claude, ChatGPT, or other clients, and [Every MCP Tool](/guide/mcp-tools) for the full catalog the CLI can reach.
