mcp
strata mcp serve exposes a database over the Model Context Protocol, so an MCP client can read and write it as tools instead of composing shell commands.
strata ./my-db mcp serveIt speaks newline-delimited JSON-RPC on stdin and stdout, and puts its logs on stderr. There is no port and no URL: the client starts the process and talks to it over the pipe, which is why the command looks like it does nothing when you run it in a terminal. That is correct. It is waiting for a client.
Naming the database
The database comes from the usual global options, before the subcommand. Both of these serve the same database:
strata ./my-db mcp serve strata --db ./my-db mcp serve--branch and --space work here too, so a server can be pinned to one branch for the whole session.
strata ./my-db --branch review mcp serveAttaching a client
Configuration lives with the client, not with Strata. A stdio MCP server is normally declared as a command and its arguments:
{
"mcpServers": {
"strata": {
"command": "strata",
"args": ["/path/to/my-db", "mcp", "serve"]
}
}
}Use an absolute path for the database. The client decides the working directory it launches the process in, and a relative path will be resolved against a directory you did not choose.
What it exposes
Every command in the catalog, as its own tool. Each carries a tool name and a description written for a model deciding whether to call it, so admin.config arrives asstrata_admin_config with a sentence about when to reach for it.
The list is generated from the release rather than written here, so it matches the binary you have installed. Ask the binary with strata agents commands, or read the command reference.
Sharing the database with your shell
An MCP server holds the database open for as long as the client keeps it running, which raises the obvious question of what happens when you also want a terminal on it.
Nothing special: the default --ipc host means the first process to open a durable database hosts a socket, and the next one is brokered to it rather than refused. A shell opened against the same path while the server is running just works.
What start adds is deciding which process is the owner, instead of it being whichever opened the database first. That matters here, because the owner's durability mode is the one that applies to everyone brokered to it.