kura-mcp-admin
v0.1.0
Published
MCP server exposing Kura's admin orchestrator endpoints as first-class tool calls for Claude Desktop, Cursor, and Claude Code. Requires an admin-full scope API key.
Downloads
27
Maintainers
Readme
kura-mcp-admin
MCP server exposing Kura's admin orchestrator endpoints as first-class tool calls for Claude Desktop, Cursor, and Claude Code.
This is the admin counterpart to kura-mcp-agent-import (which is customer-facing, scoped to /api/agent/*). The admin MCP gives Ben's agent full project management — list projects, edit pages, update brand kits, trigger deploys, manage media, purge caches, read SEO data.
Install
Use via npx (no global install needed):
// ~/.claude/.mcp.json (or Claude Desktop / Cursor MCP settings)
{
"mcpServers": {
"kura-admin": {
"command": "npx",
"args": ["-y", "kura-mcp-admin"],
"env": {
"KURA_API_KEY": "kura_<48-hex>",
"KURA_BASE_URL": "https://orchestrator-production-1d88.up.railway.app"
}
}
}
}Or install globally:
npm install -g kura-mcp-adminGet the API key
The KURA_API_KEY must have admin-full scope. Mint one at:
www.kurawebsites.com/admin/settings/api-keys
Customer-scope (agent-import) keys are rejected by the orchestrator with 403 insufficient_scope on every admin route. Use the customer MCP server (kura-mcp-agent-import) for those keys.
Tools (11)
Projects
| Tool | Args | What it does |
| --- | --- | --- |
| kura_list_projects | { includeArchived? } | List all your projects (id, slug, status, framework, timestamps) |
| kura_get_project | { projectId } | Full project metadata including brand kit, design DNA, domain status |
Brand kit
| Tool | Args | What it does |
| --- | --- | --- |
| kura_get_brand_kit | { projectId } | Read current brand kit JSON |
| kura_update_brand_kit | { projectId, brandKit } | Replace brand kit (full object — see schema in tools.ts) |
Pages
| Tool | Args | What it does |
| --- | --- | --- |
| kura_list_pages | { projectId } | List all pages with id/slug/title/type/status |
| kura_get_page | { projectId, slug } | Read full HTML content + metadata |
| kura_update_page | { projectId, slug, content } | Replace page HTML (writes to live) |
Deploy
| Tool | Args | What it does |
| --- | --- | --- |
| kura_trigger_deploy | { projectId, message? } | Publish current state to live |
Media + ops
| Tool | Args | What it does |
| --- | --- | --- |
| kura_list_media | { projectId } | Project's media library |
| kura_purge_cache | { projectId } | Bust Cloudways caches |
| kura_list_tracked_keywords | { projectId } | SEO keywords + latest rank positions |
Common workflows
Find a project, then operate on it:
1. kura_list_projects() → find the projectId
2. kura_get_project({ projectId }) → see metadata
3. kura_list_pages({ projectId }) → see pages
4. kura_get_page({ projectId, slug: 'home' }) → read content
5. kura_update_page({ projectId, slug: 'home', content: '<new html>' })
6. kura_trigger_deploy({ projectId, message: 'Update hero copy' })Brand kit refresh:
1. kura_get_brand_kit({ projectId }) → see current kit
2. kura_update_brand_kit({ projectId, brandKit: {...full new kit...} })
3. kura_purge_cache({ projectId }) → ensure fresh assets landProtocol
Newline-delimited JSON-RPC 2.0 over stdio. Methods: initialize, tools/list, tools/call, notifications/initialized, notifications/cancelled, ping. Implemented directly without @modelcontextprotocol/sdk for zero deps beyond tsx.
What's not (yet) included
Per the admin agent integration design, the full surface includes form submissions, change requests, and audit log writes — those route through kura-web's API (not orchestrator) and will land in a v0.2 follow-up that adds orchestrator passthrough routes.
