# Demo CLI
Build with `-DAGENT_SMITH_BUILD_DEMO=ON`, then run
`build/demo/agent_smith_demo`. Configure the LLM with `LLAMA_SERVER_URL`,
`LLAMA_MODEL`, and optionally `LLAMA_API_KEY`.
The CLI keeps rolling conversation history and exposes the native
`get_weather` tool. It also starts `mcp_server_example.py` using Python 3
and registers these MCP tools:
- `mcp_demo__add`: add two numbers.
- `mcp_demo__read_resource`: read `example://help`.
Try “Use the addition tool to add 23 and 19” or “Read example://help”.
The MCP greeting prompt is available through `mcp::Client::getPrompt()`;
it is not automatically inserted into the conversation.
Use `--no-mcp` to run without Python or an MCP server. To connect another
stdio server, use `--mcp PROGRAM [ARG...]`; arguments are passed directly,
not interpreted by a shell. Its tools use the same `mcp_demo__` prefix.
Commands: `/help`, `/clear`, `/stream on`, `/stream off`, `/quit`.
The bundled server uses only Python's standard library. It is a small
protocol example, not a general-purpose MCP server implementation.
## MCP tests
Enable `-DAGENT_SMITH_BUILD_TESTS=ON
-DAGENT_SMITH_TESTS_NEED_PYTHON=ON` to include the subprocess tests, then
build with `cmake --build build -j24` and run `ctest --test-dir build
--output-on-failure`. The Python tests are opt-in so builds without a
Python interpreter retain the existing C++ test suite.