Full read+write CMS access from Claude, Cursor, or any MCP client — 43 tools with scope-based access control.
What is the MCP Server?
@webhouse/cms-mcp-server is an authenticated MCP server for content production. It gives AI tools like Claude Desktop, Cursor, and Claude Code full read+write access to your CMS — with scope-based access control.
Unlike the public MCP client (6 read-only tools), the server exposes 43 tools covering every CMS operation: create, edit, publish, deploy, translate, generate with AI, manage agents, and more.
All public tools: get_site_summary, list_collection, search_content, get_page, get_schema, export_all
Content CRUD (8 tools)
| Tool | Scope | Description |
|---|
create_document | write | Create new document |
update_document | write | Update fields (respects AI Lock) |
trash_document | write | Move to trash |
clone_document | write | Duplicate as draft |
restore_from_trash | write | Restore trashed document |
empty_trash | write | Permanently delete all trash |
publish_document | publish | Set status to published |
unpublish_document | publish | Revert to draft |
| Tool | Scope | Description |
|---|
generate_with_ai | write+ai | Generate document from intent |
rewrite_field | write+ai | AI-rewrite a field (respects AI Lock) |
generate_content | write+ai | Generate content for specific field |
generate_interactive | write+ai | Create HTML interactive component |
| Tool | Scope | Description |
|---|
translate_document | write+ai | Translate one document to target locale |
translate_site | write+ai | Translate ALL untranslated documents |
| Tool | Scope | Description |
|---|
trigger_build | deploy | Run static site build |
trigger_deploy | deploy | Deploy to provider |
list_deploy_history | deploy | Recent deployments |
| Tool | Scope | Description |
|---|
bulk_publish | write | Publish all drafts |
bulk_update | write | Update field across multiple docs |
| Tool | Scope | Description |
|---|
schedule_publish | publish | Schedule future publish/unpublish |
list_scheduled | read | List scheduled content |
| Tool | Scope | Description |
|---|
list_agents | read | List configured AI agents |
create_agent | write+ai | Create new agent |
run_agent | write+ai | Execute agent → curation queue |
list_curation_queue | read | Items awaiting review |
approve_queue_item | write | Approve for publishing |
reject_queue_item | write | Reject with feedback |
| Tool | Scope | Description |
|---|
list_media | read | Browse media with AI analysis |
search_media | read | Search by caption, tags, filename |
| Tool | Scope | Description |
|---|
list_drafts | read | All unpublished drafts |
content_stats | read | Word counts, doc counts |
get_site_config | read | Site settings |
update_site_settings | write | Change settings |
list_revisions | read | Document edit history |
list_trash | read | Trashed items |
run_link_check | read | Check for broken links |
create_backup | write | Backup all content |
Scope-based access control
Each API key has specific scopes:
| Scope | Allows |
|---|
read | View content, search, list, export |
write | Create, update, delete, backup |
publish | Publish, unpublish, schedule |
deploy | Build, deploy |
ai | AI generation, translation, agents |
Generate keys with scopes:
npx cms mcp keygen --label "My App" --scopes "read,write,publish"
Setup
Claude Desktop / Cursor
{
"mcpServers": {
"my-site-admin": {
"command": "npx",
"args": ["@webhouse/cms-cli", "mcp", "--admin", "--key", "your-api-key"]
}
}
}
Claude Code
The scaffolder auto-generates .mcp.json:
{
"mcpServers": {
"cms": {
"command": "npx",
"args": ["@webhouse/cms-cli", "mcp"]
}
}
}
Audit logging
Every operation through the MCP server is logged with timestamp, actor, tool, and parameters. View logs in CMS admin → AI Analytics.
Client vs Server comparison
| MCP Client | MCP Server |
|---|
| Auth | None (public) | API key + scopes |
| Tools | 6 read-only | 43 read+write+AI |
| Use case | AI platforms citing your content | Content production from AI tools |
| Package | @webhouse/cms-mcp-client | @webhouse/cms-mcp-server |
| Audit | No | Yes |