Run Your CMS from Claude Code: Viglet Shio over MCP
· 2 min read
Point an AI coding agent at a typical headless CMS and watch the first ten minutes.
It lists content types, guesses at IDs, gets a 400 Bad Request that says nothing
about what it did wrong, and in the end it can't check its own work without asking
you to open a browser. Those CMSs were built for a person clicking through a web UI,
and the API came later.
Viglet Shio starts from the agent. Every capability ships first as an MCP tool, then as files and CLI, then as REST, and only then in the console. A person can still run all of it from the console; the agent just doesn't have to.
Connect Claude Code in two commands
Shio ships a Claude Code plugin and an MCP server:
claude plugin marketplace add openviglet/shio
claude plugin install shio
Point it at your instance with SHIO_URL, SHIO_USER and SHIO_PASSWORD. No
plugin? The CLI works as an stdio MCP bridge on its own:
claude mcp add shio -- npx -y @viglet/shio mcp
To try it locally, one container is enough:
docker run -p 2710:2710 -e SHIO_ADMIN_PASSWORD=shio123 ghcr.io/openviglet/shio:latest
What the agent gets
- 12 MCP tools:
shio_contextanswers "what is in this CMS" in one call, thenshio_find,shio_read,shio_write,shio_apply,shio_publish,shio_verifyand the rest do the work. - Content as files:
npx @viglet/shio pullprojects the site to Markdown with front matter, and a three-way merge brings edits back.Edit,WriteandGrep, the cheapest tools an agent has, are all it needs to author. - Errors that teach: every 4xx carries
fix,allowed,didYouMeanandexample, so a wrong call is followed by a right one instead of a guess. - A token budget in CI: response sizes are measured, and a regression fails the build like any other test.
Shio itself hosts no model and no prompts. It works with any MCP-capable agent, Claude Code being the one with a first-party plugin.
What the curator keeps
Letting an agent write content is only safe if a person still decides what goes live. In Shio, writes are drafts by default, publishing is an explicit step, and every agent change lands in a review queue with attribution. The curator reviews in a React console with a Universal Editor and preview links.
And the front end
Content goes out through a Content Delivery API (REST and GraphQL) with dependency-free TypeScript SDKs, to Next.js, Astro, Vue, Svelte or anything else. Or let Shio render the pages itself. To start a Next.js site wired to it:
npm create @viglet/shio-app@latest my-site
Next steps
- 📘 Shio with Claude Code
- 📗 How Shio compares to Contentful, Sanity, Strapi and WordPress
- ⭐ Shio on GitHub (Apache 2.0)
Viglet Shio is an open source, agent-ready CMS: people run it from the console, AI agents run it over MCP, and the curator approves what goes live.