Commands
embr mcp
Last updated October 22, 2026
embr mcp
Runs a Model Context Protocol server on stdio. A coding agent uses it to search the Ember registry and to read the details of a package.
The server only reads. It changes no files, installs nothing, and publishes
nothing. To install what the agent finds, run the embr add command that
each answer gives.
Register the server#
For Claude Code:
claude mcp add ember -- embr mcp
Other clients read an mcpServers block like this one:
{
"mcpServers": {
"ember": {
"command": "embr",
"args": ["mcp"]
}
}
}
The client starts embr itself, so embr must be on the PATH that the
client sees. Installing Ember puts it in
~/.ember/bin.
Tools#
search_packages#
Finds packages by name or description in the registry's search index. Case does not matter, and an empty query matches every package. The most downloaded packages come first.
| Argument | Type | Meaning |
|---|---|---|
query | string, required | the text to find, for example signal or chief/ |
environment | string | only packages for this environment |
language | string | only packages in this language: luau, alloy, loom, or luwu |
limit | integer, 1 to 50 | the most packages to return; the default is 20 |
Each result gives the name, the latest version, the environments, and the
download count. It also gives the language when it is not Luau, the
description, a deprecation reason, and the embr add command.
package_info#
Shows one package from the Ember index.
| Argument | Type | Meaning |
|---|---|---|
name | string, required | the package as scope/name, for example chief/core |
The answer lists every version, newest first, with its environment, its language, and its yanked or deprecated marks. It also gives the dependencies of the newest version that is not yanked.
The protocol#
The server speaks JSON-RPC 2.0, one message on each line. It writes only protocol messages to stdout, so nothing else can break the client's parse.