voog-mcp
voog-mcp is an MCP server for managing Voog CMS websites — covering content, ecommerce, templates, multilingual settings, and more from an LLM agent or CLI.
Site & Configuration: List configured sites; get, update, and manage site settings and custom data keys.
Pages: List, get, create, update, duplicate, delete pages; manage visibility, layouts, custom data; add content areas; snapshot pages.
Articles & Blog: List, get, create, update, publish, delete articles; manage custom data and tags; list/delete/spam comments.
Layouts & Templates: Pull/push Liquid templates to local files; create, update, rename, delete layouts and layout assets (CSS, JS, images).
Content & Texts: Get and update text content areas; update content partials.
Elements: List, get, create, update, delete, and reorder structured content elements; list element definitions.
Products: List, get, create, update, duplicate, delete products; set product images; apply bulk actions.
Categories: Full CRUD for ecommerce product categories.
Orders: List and get orders (read-only, PII-stripped by default).
Discounts & Cart Rules: Full CRUD for discount codes and cart rules.
Ecommerce Settings: Get and update store settings; list shipping methods and payment gateways (read-only).
Multilingual: List, create, delete languages; manage page nodes for multilingual tree structure.
Redirects: List, add, update, delete redirect rules (supports 301, 302, 307, 410 and regex patterns).
Webhooks: List, create, update, delete webhooks.
Search: Full-text search across published pages, articles, elements, and products.
Snapshots: Full site or pages-only snapshots for backup/auditing before risky operations.
Passthrough APIs: Direct read-only or mutable access to the Voog Admin and Ecommerce APIs for endpoints not covered by typed tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@voog-mcplist pages on mysite"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
voog-mcp
CLI and MCP server for Voog CMS — manage Liquid templates, pages, products, ecommerce settings, and redirects from your terminal or directly from Claude / any MCP client.
What is Voog?
Voog is a multilingual website builder and CMS with built-in ecommerce, used for content sites and small online stores. This package wraps its admin API so you can edit templates, pages, products, and redirects from your shell or an LLM agent.
Related MCP server: drupal-mcp
Install
From PyPI:
pip install voog-mcp
# or, no install: uvx voog-mcp --helpOr directly from GitHub (latest unreleased main):
uvx --from git+https://github.com/runnel/voog-mcp.git voog --helpFor development:
git clone https://github.com/runnel/voog-mcp
cd voog-mcp
python3.10 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"Configure
Run voog config init to interactively create the global config:
voog config initThis creates ~/.config/voog/voog.json with your tokens inline:
{
"sites": {
"mysite": {"host": "mysite.com", "api_key": "vk_..."},
"client_a": {"host": "clienta.com", "api_key": "vk_..."}
},
"default_site": "mysite"
}Get a token from your Voog admin: Admin → API.
Shared / CI configs
If voog.json is checked into version control or shared across machines, keep the token out of the file by referencing an env var instead:
{
"sites": {
"client_a": {"host": "clienta.com", "api_key_env": "CLIENT_A_KEY"}
}
}Then put the token in ~/.config/voog/.env:
CLIENT_A_KEY=vk_...Both forms can coexist per-site. When both api_key and api_key_env are set, the env-var wins if it's defined — so an inline value acts as a default that the deployment overrides.
Per-repo site selection
In a repo dedicated to one Voog site, drop a voog.json at the repo root to pin the site:
{"default_site": "mysite"}The cwd-level voog.json deep-merges over the home config, with cwd winning per-key. Inside sites, the merge is per-site name — a cwd entry replaces the whole site definition (host + token), it does not merge individual fields. You can also redefine entire sites here (handy for client repos that should bring their own host/token without touching the home config):
{
"sites": {
"client_x": {"host": "clientx.com", "api_key": "vk_..."}
},
"default_site": "client_x"
}Now voog pull / voog push from that directory always target the right site, even if the home default differs.
Note:
voog-site.jsonfrom earlier versions still works but emits aDeprecationWarning. Replace it withvoog.jsoncontaining{"default_site": "<name>"}for the same effect.
Use the CLI
voog --help # all commands
voog config list-sites # show configured sites
voog --site mysite products # list products on mysite
voog pull # download templates (uses cwd-level voog.json)
voog push layouts/Front\ page.tpl
voog redirects
voog config check # verify all configured tokens
voog site-snapshot backup/ # full-site snapshot for diff/auditUse as MCP server
Add to your Claude Code config (or any MCP client). The simplest setup uses the published PyPI package:
{
"mcpServers": {
"voog": {
"command": "uvx",
"args": ["voog-mcp"]
}
}
}If you'd rather track unreleased main (e.g. for a fix that hasn't shipped yet), point uvx at the GitHub repo instead:
{
"mcpServers": {
"voog": {
"command": "uvx",
"args": ["--from", "git+https://github.com/runnel/voog-mcp.git", "voog-mcp"]
}
}
}Every tool requires a site parameter. Start with voog_list_sites to discover what's configured:
voog_list_sites()
→ [{"name": "mysite", "host": "mysite.com"}, ...]
page_get(site="mysite", page_id=42)
→ {...}Tools
Full endpoint coverage reference: docs/voog-mcp-endpoint-coverage.md
Group | Tools |
Sites |
|
Search |
|
Pages |
|
Articles |
|
Comments |
|
Tags |
|
Layouts |
|
Texts / contents |
|
Elements |
|
Products |
|
Categories |
|
Orders |
|
Discounts |
|
Cart rules |
|
Shipping / payments |
|
Ecommerce settings |
|
Multilingual |
|
Redirects |
|
Site |
|
Webhooks |
|
Snapshot |
|
Read-only passthrough |
|
Generic passthrough |
|
What's NOT supported
voog-mcp covers content + ecommerce catalog management end-to-end as of v1.4. The following Voog API areas remain out of scope — drop down to the voog_admin_api_call / voog_ecommerce_api_call passthrough tools when you need them:
Order mutation —
orders_list/order_getare read-only typed tools (with PII stripping); creating / updating / cancelling orders goes via passthrough. Order writes carry finance / operations risk that a future release will design separately.Cart reads —
cart_rules_*tools cover cart-rule CRUD, but reading individual cart sessions (/carts) is passthrough-only.element_definitionsCRUD —element_definitions_listis wrapped; create / update / delete remain passthrough.People / site_user admin — full passthrough.
Form definitions and form responses — passthrough.
Site favicons and bulk file imports — product image galleries are first-class via
product_set_images; other multipart uploads go via passthrough.Site creation — voog-mcp targets existing sites.
If you need any of these, open an issue — or a PR.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/runnel/voog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server