The Agent Plugin
The Agent Plugin gives an agent a place to put the HTML it just wrote. It is an
Agent Plugins 1.0.0 bundle (a plugin.json
carrying identity, an mcp.json describing the MCP server, and one skill),
portable across ChatGPT, Codex, Cursor, Copilot, Kiro, and VS Code. Claude
Code reads the same three pieces under different names, so the bundle also
carries them in Claude's layout; the two manifests are held equal on every
build, and the skill is shared rather than duplicated.
What it gives an agent
The tools: publish, publish_bundle, update, list, unpublish,
restore. publish takes the HTML as a string, so a page the agent just
composed reaches a live URL in one tool call, no temp file in between — or, over
the local stdio server this bundle wires up, a path to a document already
written to disk, which keeps a long one from crossing the agent's context twice.
publish_bundle does the same for a set of files that link to each other, under
a single slug.
The skill is the other half: it tells an agent that Emits exists, when reaching for it is the right move, and how to fall back to the CLI in a client that loaded the skill but not the server.
The bundle wires up the local stdio server. The same tools are also
hosted at https://api.emits.app/mcp for clients that cannot launch a
subprocess (see MCP).
Install
Claude Code
claude plugin marketplace add raymond-UI/emits-plugin
claude plugin install emits@mzed
Any other client
Point the client's MCP configuration at the CLI's server:
{
"mcpServers": {
"emits": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@mzedstudio/emits-cli", "mcp"]
}
}
}
Then log in once so the server has a credential to publish with:
npx -y @mzedstudio/emits-cli login
A client that cannot launch a subprocess
Use the remote server at https://api.emits.app/mcp. There is no login
step: the client registers itself, sends its human to a browser consent
screen, and receives a scoped OAuth token: pages:read covers list, and
pages:write covers the other three tools. The handshake is described in
MCP.
Auth
The plugin ships no credentials and hardcodes no token. The local MCP server
reads the same stored credential the CLI writes, so emit login once serves
both, and tokens stay on your machine. See authentication for
the model behind the tokens themselves.
Source
The plugin is generated from the CLI's own skill renderer (the same document
emit skill prints), so the plugin and the CLI cannot describe the product
differently. Every build validates the bundle against the vendored Agent
Plugins 1.0.0 schemas.