Skip to content

lmcp CLI

Install the command with the complete set of dependencies used by its local and remote workflows:

pip install "lauren-mcp[cli]"

The entry point is also available as python -m lauren_mcp.cli.

Run and development mode

run resolves a Python file containing an @mcp_server class and starts a Lauren/Uvicorn application:

lmcp run server.py --transport streamable --host 127.0.0.1 --port 8000

Accepted transports are ws, sse, streamable, both, and all. Use dev for the same server with debug logging and a startup message:

lmcp dev server.py --transport streamable --port 8000

For MCP hosts that communicate over stdin/stdout, use --stdio:

lmcp run server.py --stdio

The server writes only newline-delimited JSON-RPC messages to stdout. This is also the form generated by lmcp install.

--env-file .env loads environment variables before importing the server file. A file spec may include an explicit class name, for example server.py:SearchServer.

Inspect and call

Both commands accept a local file spec or a remote URL:

lmcp inspect server.py
lmcp call server.py search --arg query=widgets --arg limit=5

When a local file is supplied, the CLI starts an isolated stdio subprocess, so the server file does not need to define its own __main__ entry point. Values supplied with --arg are parsed as JSON when possible (42, true, null, arrays, and objects); values that are not JSON remain strings.

For remote endpoints, WebSocket URLs select the WebSocket client. HTTP URLs use Streamable HTTP by default; pass --transport sse for the legacy HTTP+SSE client:

lmcp inspect ws://127.0.0.1:8000/mcp/ws
lmcp inspect http://127.0.0.1:8000/mcp --transport streamable
lmcp call http://127.0.0.1:8000/mcp search --transport sse --arg query=widgets

inspect prints the tool, resource, and prompt catalogues. call prints the raw tools/call result as formatted JSON.

Install for an MCP host

install writes or merges an mcpServers entry for Claude Desktop or Cursor:

lmcp install server.py --client claude
lmcp install server.py --client cursor --name my-server

The generated entry uses the active Python interpreter, an absolute server file path, and python -m lauren_mcp.cli run <file> --stdio. This makes the entry independent of the host application's working directory and gives MCP hosts the stdio protocol they expect.