CLI Reference¶
MCC ships a management CLI for administering users, browsing tools, and running the MCP server.
Global options¶
| Option | Description |
|---|---|
-e, --env |
Dynaconf environment to activate (e.g. development, production) |
-v, --verbose |
Enable debug logging |
The --env flag sets the active Dynaconf environment, enabling environment-layered config in your settings files:
Environment variables¶
Tool files and settings files are configured via environment variables (or .env), since they must be resolved before the CLI parses arguments.
| Variable | Description |
|---|---|
MCC_TOOL_FILES |
Semicolon-separated paths to tool YAML files or directories to load on startup. |
MCC_SETTINGS_FILES |
Semicolon-separated paths to additional settings YAML files (merged after defaults). |
MCC_SKIP_AUTOLOAD |
Set to skip automatic tool loading at startup. |
# Load extra tools
MCC_TOOL_FILES="mytools.yaml;tools/extras/" mcc tool list
# Load additional settings
MCC_SETTINGS_FILES="staging.yaml;secrets.yaml" mcc mcp serve
Any individual setting can also be overridden with the MCC_ prefix (e.g. MCC_AUTH=dangerous).
mcc init¶
Create the Elasticsearch/OpenSearch indices mcc needs, if they don't exist yet. Safe to re-run — existing indices are left untouched.
Creates the users and keys indices, plus the audit indices when audit_tool_index / audit_search_index are set. The tool index is not created here; run mcc tool reindex for that. Run mcc init once against a fresh cluster, before mcc user add.
mcc user¶
Manage users and their permissions.
add¶
Create a new user.
| Option | Description |
|---|---|
-u, --username |
GitHub username (required) |
-e, --email |
User's email address |
-g, --group |
Group to grant (repeatable) |
-t, --tool |
Tool key to grant (repeatable) |
list¶
List all users with their groups and tool grants.
remove¶
Delete a user.
grant¶
Grant a user group membership or an explicit tool permission.
At least one -g or -t is required. Both flags are repeatable.
mcc user grant alice -g engineering # group membership
mcc user grant alice -g admin # full admin access
mcc user grant alice -t admin.shell # specific tool
mcc user grant alice -g data -g ml # multiple groups at once
revoke¶
Remove group membership or tool grants from a user.
At least one -g or -t is required. Both flags are repeatable.
mcc tool¶
Browse and call catalog tools.
list¶
List all registered tools.
| Option | Description |
|---|---|
-l, --long |
Show full signatures instead of just keys |
info¶
Print the full signature of a tool by key.
call¶
Invoke a tool by key and print the result.
| Argument | Description |
|---|---|
tool-key |
Exact tool key (e.g. admin.shell, public.request) |
key=value |
Parameters as positional key=value pairs (repeatable) |
--json |
Parameters as a JSON object string |
mcc tool call admin.auth.users.list_users
mcc tool call admin.shell command="ls -la"
mcc tool call my.tool name=foo count=3
mcc tool call my.tool --json '{"name": "foo", "count": 3}'
Output is syntax-highlighted JSON for dicts and lists, plain text otherwise.
reindex¶
Reload tool YAML files from disk and reindex them in Elasticsearch (or OpenSearch). This is the only operation that ever touches the tool index — server startup and every other mcc command leave it untouched. It's a full rebuild (drop, recreate, bulk-write every tool), not an incremental update, so run it once after first standing up your search backend and again whenever your tool YAML changes.
mcc mcp¶
Start the MCP server and install it in Claude clients.
serve¶
Start the MCP server.
| Option | Default | Description |
|---|---|---|
-t, --transport |
stdio |
Transport protocol (stdio or http) |
-h, --host |
0.0.0.0 |
Host to bind (HTTP only) |
-p, --port |
8000 |
Port to bind (HTTP only) |
mcc mcp serve # stdio (default, for Claude Desktop / Claude Code)
mcc mcp serve -t http # HTTP on 0.0.0.0:8000
mcc mcp serve -t http -p 9000
install¶
Register MCC as an MCP server in a client's config. Most install subcommands mount the current project in editable mode so local changes are picked up immediately.
Common options available on all install subcommands:
| Option | Description |
|---|---|
--env KEY=VALUE |
Set an environment variable (repeatable) |
--env-file FILE |
Load environment variables from a .env file |
claude-code¶
claude-desktop¶
cursor¶
gemini-cli¶
goose¶
Goose and env vars
Goose installs via a deeplink that does not carry environment variables. Use mcc mcp install mcp-json to generate a full config for manual installation if you need env vars set.
mcp-json¶
Print the MCP JSON config snippet — useful for manual installation or other clients.
| Option | Description |
|---|---|
--copy |
Copy output to clipboard instead of printing |