A small robot silhouette climbing stone steps toward a lit open door, holding a coral key, under a teal dusk sky

Not every agent speaks MCP

1 min read

The Lessly CLI launched today. Same platform, same permissions, callable from any shell — and it exists because we hit our own wall.

In April, one of us moved his daily work to Pi-agent. Pi-agent has no MCP client, so an agent working on Lessly suddenly couldn't reach Lessly. We'd built the agent-native door and quietly assumed every agent would walk through it.

That assumption doesn't survive contact with a real toolchain. CI jobs speak the shell. Cron scripts speak the shell. Half the harnesses doing real work in real teams speak nothing else. Betting the platform's whole agent story on one protocol, even the right protocol, left all of them standing outside.

So the CLI does everything the console and the MCP surface do, as commands: deploy a service, tail its logs, set an environment variable, provision and back up a database, check what shipped. The output reads clean to a person and parses clean to a script, which is the two-readers rule at a terminal.

What it isn't is a side entrance. A CLI session authenticates into the same grant model as everything else: named to a principal, scoped to the work, revocable in one motion, the same keys to the same rooms. There's no "CLI token" with special powers, and revoking a grant kills its CLI sessions along with its MCP ones.

That was the hard part. The tempting version of a CLI is a thin wrapper around a long-lived token, shipped in a week. The version worth shipping is the one where the security model can't tell which door you came through.

The lesson we're keeping: meet agents where they are, don't ask them to be someone else first. MCP is the native door for the agents that speak it. The CLI is the same door for everything else.

If your agent can run a command, it can run your stack.

Related posts

Building Lessly in the open

Follow along, and get early access to the private beta.

Join the waitlist