# mcptest (binary crate)

This crate builds the `mcptest` binary, the CLI an MCP server author
runs to validate their server against YAML test files.

The runtime logic lives in [`mcptest-core`](../mcptest-core/README.md)
and [`mcptest-config`](../mcptest-config/README.md). This crate is a
thin shell that parses flags, wires components, and renders the run
output. Keeping the entry point in a library (`lib.rs`) plus a
near-empty `main.rs` lets integration tests exercise the parser without
spawning a subprocess for every test.

## What lives here

| Module | Role |
| ------ | ---- |
| `cli` | `clap` derive tree: subcommands, global flags, dispatch. |
| `config` | Glue that hands the `mcptest-config` loader the resolved file path. |
| `doctor` | Implementation of `mcptest doctor` (environment checks, schema lints). |
| `watch` | Filesystem-watcher loop powering `mcptest run --watch`. |
| `server_override` | `--server-command` and `--server-url` flag handling for the run subcommand. |

## Install

```sh
brew install soapbucket/tap/mcptest
# or
cargo install mcptest
# or
curl -fsSL https://download.mcptest.sh/install.sh | sh
```

## See also

- [Top-level README](../../README.md)
- [Getting started](../../docs/getting-started.md)
- [CLI reference](../../docs/cli-reference.md)
- [Workspace layout audit](../../docs/architecture/workspace-layout.md)

Licensed under Apache-2.0. See [LICENSE](../../LICENSE) and [NOTICE](../../NOTICE).
