{
  "slug": "mcp-server",
  "title": "MCP Server — Authenticated Content Production",
  "description": "Full read+write CMS access from Claude, Cursor, or any MCP client — 43 tools with scope-based access control.",
  "category": "api-reference",
  "order": 3,
  "locale": "en",
  "translationGroup": "0001612a-3680-4e44-a796-df9cf028f1b3",
  "helpCardId": null,
  "content": "## What is the MCP Server?\n\n`@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.\n\nUnlike 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.\n\n## 43 Tools by category\n\n### Read (6 tools)\nAll public tools: `get_site_summary`, `list_collection`, `search_content`, `get_page`, `get_schema`, `export_all`\n\n### Content CRUD (8 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `create_document` | write | Create new document |\n| `update_document` | write | Update fields (respects AI Lock) |\n| `trash_document` | write | Move to trash |\n| `clone_document` | write | Duplicate as draft |\n| `restore_from_trash` | write | Restore trashed document |\n| `empty_trash` | write | Permanently delete all trash |\n| `publish_document` | publish | Set status to published |\n| `unpublish_document` | publish | Revert to draft |\n\n### AI Generation (4 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `generate_with_ai` | write+ai | Generate document from intent |\n| `rewrite_field` | write+ai | AI-rewrite a field (respects AI Lock) |\n| `generate_content` | write+ai | Generate content for specific field |\n| `generate_interactive` | write+ai | Create HTML interactive component |\n\n### Translation (2 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `translate_document` | write+ai | Translate one document to target locale |\n| `translate_site` | write+ai | Translate ALL untranslated documents |\n\n### Build & Deploy (3 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `trigger_build` | deploy | Run static site build |\n| `trigger_deploy` | deploy | Deploy to provider |\n| `list_deploy_history` | deploy | Recent deployments |\n\n### Bulk Operations (2 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `bulk_publish` | write | Publish all drafts |\n| `bulk_update` | write | Update field across multiple docs |\n\n### Scheduling (2 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `schedule_publish` | publish | Schedule future publish/unpublish |\n| `list_scheduled` | read | List scheduled content |\n\n### Agents & Curation (6 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `list_agents` | read | List configured AI agents |\n| `create_agent` | write+ai | Create new agent |\n| `run_agent` | write+ai | Execute agent → curation queue |\n| `list_curation_queue` | read | Items awaiting review |\n| `approve_queue_item` | write | Approve for publishing |\n| `reject_queue_item` | write | Reject with feedback |\n\n### Media (2 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `list_media` | read | Browse media with AI analysis |\n| `search_media` | read | Search by caption, tags, filename |\n\n### Other (6 tools)\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `list_drafts` | read | All unpublished drafts |\n| `content_stats` | read | Word counts, doc counts |\n| `get_site_config` | read | Site settings |\n| `update_site_settings` | write | Change settings |\n| `list_revisions` | read | Document edit history |\n| `list_trash` | read | Trashed items |\n| `run_link_check` | read | Check for broken links |\n| `create_backup` | write | Backup all content |\n\n## Scope-based access control\n\nEach API key has specific scopes:\n\n| Scope | Allows |\n|-------|--------|\n| `read` | View content, search, list, export |\n| `write` | Create, update, delete, backup |\n| `publish` | Publish, unpublish, schedule |\n| `deploy` | Build, deploy |\n| `ai` | AI generation, translation, agents |\n\nGenerate keys with scopes:\n\n```bash\nnpx cms mcp keygen --label \"My App\" --scopes \"read,write,publish\"\n```\n\n## Setup\n\n### Claude Desktop / Cursor\n\n```json\n{\n  \"mcpServers\": {\n    \"my-site-admin\": {\n      \"command\": \"npx\",\n      \"args\": [\"@webhouse/cms-cli\", \"mcp\", \"--admin\", \"--key\", \"your-api-key\"]\n    }\n  }\n}\n```\n\n### Claude Code\n\nThe scaffolder auto-generates `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"cms\": {\n      \"command\": \"npx\",\n      \"args\": [\"@webhouse/cms-cli\", \"mcp\"]\n    }\n  }\n}\n```\n\n## Audit logging\n\nEvery operation through the MCP server is logged with timestamp, actor, tool, and parameters. View logs in CMS admin → AI Analytics.\n\n## Client vs Server comparison\n\n| | MCP Client | MCP Server |\n|-|-----------|------------|\n| **Auth** | None (public) | API key + scopes |\n| **Tools** | 6 read-only | 43 read+write+AI |\n| **Use case** | AI platforms citing your content | Content production from AI tools |\n| **Package** | @webhouse/cms-mcp-client | @webhouse/cms-mcp-server |\n| **Audit** | No | Yes |",
  "excerpt": "What is the MCP Server?\n\n@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.\n\nUnlike the public MCP client (6 read-only tools), the server ",
  "seo": {
    "metaTitle": "MCP Server — Authenticated Content Production — webhouse.app Docs",
    "metaDescription": "Full read+write CMS access from Claude, Cursor, or any MCP client — 43 tools with scope-based access control."
  },
  "createdAt": "2026-03-30T19:29:52.746Z",
  "updatedAt": "2026-03-30T19:29:52.746Z"
}