Metadata-Version: 2.5
Name: conda-cli-mcp
Version: 0.1.0
Summary: Expose conda and its plugin commands through the Model Context Protocol
Project-URL: changelog, https://github.com/jezdez/conda-cli-mcp/blob/main/CHANGELOG.md
Project-URL: documentation, https://jezdez.github.io/conda-cli-mcp/
Project-URL: repository, https://github.com/jezdez/conda-cli-mcp
License-Expression: BSD-3-Clause
License-File: LICENSE
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Requires-Dist: anyio>=4.9
Requires-Dist: jsonschema>=4.20
Requires-Dist: mcp<3,>=2
Description-Content-Type: text/markdown

# conda-cli-mcp

`conda-cli-mcp` exposes an installed conda command line through the Model
Context Protocol. It discovers built-in and plugin-contributed commands at
startup, creates structured tools from conda's argparse definitions, and keeps
the complete CLI reachable through an explicitly enabled raw argv tool.

The server runs conda in bounded child processes. Conda remains responsible
for configuration, plugin ordering, solving, transactions, reporters,
authentication, hooks, and error handling.

When `conda-completion` 0.3 or newer is installed in the target environment, a
read-only metadata tool exposes its command-specific completion hints through
the plugin's public Python API.

The project is alpha software. It requires Python 3.10 or newer and supports
target conda versions `>=26.7,<27`.

## Installation

Install the published command into an isolated environment:

```console
pipx install conda-cli-mcp
```

Keep the server environment separate from the target conda installation and
select that installation with `--conda-exe`.

## Documentation

The [documentation](docs/index.md) is organized by purpose:

- [Tutorial](docs/tutorials/getting-started.md)
- [How-to guides](docs/how-to/configure-the-server.md)
- [Reference](docs/reference/server-cli.md)
- [Explanation](docs/explanation/architecture.md)
- [Changelog](CHANGELOG.md)

Documentation is published at
[jezdez.github.io/conda-cli-mcp](https://jezdez.github.io/conda-cli-mcp/).

## Safety

The default policy is read-only. `--allow-write` permits conda-managed
mutations. `--allow-exec` permits `conda run`, opaque passthrough arguments,
and the raw `conda_execute` tool. Policy is fixed at startup and enforced
before conda starts.

## Running the server

Select the target conda executable explicitly when it lives in another
environment:

```console
conda-cli-mcp --conda-exe /absolute/path/to/conda
```

Without `--conda-exe`, resolution checks `CONDA_EXE` and then `PATH`. MCP
clients connect over standard input and standard output. See the
[getting-started tutorial](docs/tutorials/getting-started.md) for a client
configuration.

## Project scope

- `conda-cli-mcp` owns local conda CLI discovery and execution.
- [`conda-meta-mcp`](https://github.com/conda-incubator/conda-meta-mcp) owns
  read-only package and ecosystem metadata.
- `conda-mcp` is reserved for a future umbrella package that installs both.

## Development

Development, documentation, and packaging use [Pixi](https://pixi.sh/):

```console
pixi install
pixi run test
pixi run check
pixi run -e docs docs
pixi run -e build package
```

The conda recipe is noarch Python and lives in `recipe/recipe.yaml`.
