
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
Connect a Git-hosted site to CMS Brew from your terminal, and expose it to your AI agent over MCP.
Connect a Git-hosted site to CMS Brew from your terminal, and give your AI agent the same access over MCP.
CMS Brew lets your clients edit their own site by chat, safely: the AI resolves every request against a manifest of editable fields built from the repo, so it changes content and never writes code. This package is the developer-facing on-ramp to that.
npx cmsbrew login
npx cmsbrew connect
| Command | What it does |
|---|---|
cmsbrew login | Store an API key from the dashboard, and verify it works |
cmsbrew logout | Remove the stored key from this machine |
cmsbrew connect [repo] | Connect a repository. Defaults to this checkout's origin |
cmsbrew sites | List connected sites and their state |
cmsbrew status [site] | Show one site in detail |
cmsbrew setup [client] | Write the MCP config for Claude Code, Cursor, Windsurf, or Codex |
cmsbrew mcp | Run the MCP server over stdio. Your agent runs this, not you |
Global options: --json, --host <url>, --token <key>.
Run it inside a checkout and it reads the origin remote:
cmsbrew connect
Or name the repository, which is what CI and monorepos need:
cmsbrew connect acme/marketing-site
cmsbrew connect acme/monorepo --source-root apps/web --site acme-web
Connecting returns as soon as the site is registered, then CMS Brew maps the repo in the background.
The command waits for that and prints the framework and field count when it finishes. Pass --no-wait
to return immediately.
cmsbrew setup detects the MCP clients installed on your machine, shows the config it will add, and asks
before writing. It backs up any file it changes.
cmsbrew setup # every detected client
cmsbrew setup claude-code # just one
To configure a client by hand, run cmsbrew mcp as the server command with your key in the environment:
{
"mcpServers": {
"cmsbrew": {
"command": "npx",
"args": ["-y", "cmsbrew", "mcp"],
"env": { "CMSBREW_TOKEN": "cmsb_..." }
}
}
}
| Tool | What the agent can do |
|---|---|
list_sites | Every connected site, with status, framework, and unpublished-edit state |
connect_site | Connect a GitHub repository |
get_manifest | Read a site's editable fields |
edit_content | Make a content edit in plain language. Lands as a draft |
list_escalations | Requests routed to the team because they need a developer |
There is no publish tool at any permission level. Publishing commits straight to a client's live
production site, so it stays a decision a person makes in the dashboard.
Every key carries a preset, chosen when you mint it. They nest, narrowest first:
| Preset | Can |
|---|---|
| Setup only | Connect repositories, read sites and manifests |
| Safe agent access (default) | Setup, plus content edits that land as a draft |
| Full access | Everything, plus publish and revert |
The preset is enforced on the server, so a key cannot exceed it whichever tool calls it. It also cannot exceed the person who minted it: revoke their access to the workspace and their keys stop working.
Keys cannot mint keys. That is deliberate, and it is what keeps a narrow preset meaningful.
| Variable | Purpose |
|---|---|
CMSBREW_TOKEN | The API key. Overrides the stored config, which is what CI and MCP clients need |
CMSBREW_HOST | Target a different CMS Brew host |
cmsbrew login writes ~/.cmsbrew/config.json, owner-readable only.
Node 20 or newer.
FAQs
Connect a Git-hosted site to CMS Brew from your terminal, and expose it to your AI agent over MCP.
The npm package cmsbrew receives a total of 8 weekly downloads. As such, cmsbrew popularity was classified as not popular.
We found that cmsbrew demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.