{"id":50666671,"url":"https://github.com/decocms/admin-mcp","last_synced_at":"2026-06-08T07:04:00.211Z","repository":{"id":342646885,"uuid":"1174659006","full_name":"decocms/admin-mcp","owner":"decocms","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-01T20:45:54.000Z","size":941,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T22:22:38.256Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/decocms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-06T17:36:48.000Z","updated_at":"2026-06-01T20:45:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/decocms/admin-mcp","commit_stats":null,"previous_names":["decocms/admin-mcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/decocms/admin-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fadmin-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fadmin-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fadmin-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fadmin-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/decocms","download_url":"https://codeload.github.com/decocms/admin-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fadmin-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34051773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-08T07:03:42.932Z","updated_at":"2026-06-08T07:04:00.206Z","avatar_url":"https://github.com/decocms.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# deco Admin MCP\n\nAn MCP server for managing [deco.cx](https://deco.cx) sites — with interactive UIs built as MCP Apps. Manage assets, environments, and AI sandbox tasks directly from your MCP host (Claude Desktop, Cursor, etc.).\n\n## Tools\n\n### Assets\n| Tool | Description |\n|------|-------------|\n| `fetch_assets` | Browse and search your site's media library (images, videos, documents, fonts) with pagination |\n| `upload_asset` | Upload a new file to the site's asset library |\n| `delete_asset` | Remove an asset from the library by its path |\n\n### Environments\n| Tool | Description |\n|------|-------------|\n| `list_environments` | List all environments with their URL, platform, and git metadata |\n| `get_environment` | Get details for a specific environment by name |\n| `create_environment` | Provision a new environment from a branch (deco/content/tunnel platforms) |\n| `preview_environment` | Get a cache-busted live preview URL for any path in an environment |\n\n### Sandbox\n| Tool | Description |\n|------|-------------|\n| `create_sandbox_task` | Spin up an autonomous AI agent (Claude Code) task from a prompt or GitHub issue |\n| `list_sandbox_tasks` | List all agent tasks in a sandbox environment with live terminal connection info |\n| `kill_sandbox_task` | Terminate a running agent task |\n\n## Configuration\n\nThe server requires two values, set via MCP host configuration:\n\n| Key | Description |\n|-----|-------------|\n| `DECO_ADMIN_API_KEY` | API key for authenticating with the deco.cx admin API |\n| `SITE_NAME` | The deco.cx site to manage (e.g. `my-store`) |\n\n## Setup\n\n### Prerequisites\n\n- [Bun](https://bun.sh) v1.x\n\n### Install \u0026 run\n\n```bash\ngit clone https://github.com/decocms/admin-mcp.git\ncd admin-mcp\nbun install\nbun run dev\n```\n\nThe MCP endpoint will be available at `http://localhost:3001/api/mcp`.\n\n### Connect to your MCP host\n\nAdd the following to your MCP client config (e.g. `claude_desktop_config.json` or `.mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"deco-admin\": {\n      \"type\": \"sse\",\n      \"url\": \"http://localhost:3001/api/mcp\",\n      \"config\": {\n        \"DECO_ADMIN_API_KEY\": \"your-api-key\",\n        \"SITE_NAME\": \"your-site-name\"\n      }\n    }\n  }\n}\n```\n\nA `.mcp.json` is included at the repo root for local development with Cursor.\n\n## Development\n\n```bash\nbun run dev          # API server + web build (watch mode) in parallel\nbun run dev:api      # API server only (port 3001, hot reload)\nbun run dev:web      # Web build only (watch mode)\nbun run build        # Production build (web + server)\nbun run check        # TypeScript type checking\nbun run fmt          # Auto-format with Biome\nbun run lint         # Auto-fix lint issues with Biome\nbun test             # Run tests\n```\n\n## Project Structure\n\n```\n├── api/\n│   ├── main.ts                  # Server entry point\n│   ├── tools/\n│   │   ├── index.ts             # Tool registry\n│   │   ├── assets.ts            # fetch_assets tool\n│   │   ├── upload-asset.ts      # upload_asset tool\n│   │   ├── delete-asset.ts      # delete_asset tool\n│   │   ├── environments.ts      # Environment tools (list/get/create/preview)\n│   │   └── sandbox.ts           # Sandbox task tools (create/list/kill)\n│   ├── resources/               # MCP App HTML resources (one per tool group)\n│   └── types/env.ts             # StateSchema (DECO_ADMIN_API_KEY, SITE_NAME)\n├── web/\n│   ├── tools/\n│   │   ├── assets/              # Asset gallery UI\n│   │   ├── upload-asset/        # Upload UI\n│   │   ├── delete-asset/        # Delete confirmation UI\n│   │   ├── environments/        # Environment management UI\n│   │   └── sandbox/             # Sandbox terminal UI\n│   ├── router.tsx               # Runtime tool → page routing\n│   └── components/ui/           # shadcn/ui components\n├── app.json                     # deco mesh config\n└── .mcp.json                    # Local MCP server config\n```\n\n## How It Works\n\nEach tool carries a `_meta.ui.resourceUri` that points to an MCP App resource. When the MCP host calls a tool, it loads the corresponding HTML bundle and renders an interactive UI — a media gallery for assets, a live terminal for sandbox tasks, an environment card for deployments, and so on.\n\nThe UI connects back to the MCP host via `@modelcontextprotocol/ext-apps`, receives the tool's input and output, and renders the appropriate view.\n\n## Tech Stack\n\n- **Runtime**: [Bun](https://bun.sh)\n- **MCP Server**: [@decocms/runtime](https://github.com/decocms/runtime)\n- **UI**: React 19 + [TanStack Router](https://tanstack.com/router) + [TanStack Query](https://tanstack.com/query)\n- **Styling**: [Tailwind CSS v4](https://tailwindcss.com) + [shadcn/ui](https://ui.shadcn.com)\n- **MCP Apps SDK**: [@modelcontextprotocol/ext-apps](https://www.npmjs.com/package/@modelcontextprotocol/ext-apps)\n- **Build**: [Vite](https://vitejs.dev) + [vite-plugin-singlefile](https://github.com/nickreese/vite-plugin-singlefile)\n- **Linting/Formatting**: [Biome](https://biomejs.dev)\n\n## CI\n\nGitHub Actions runs on every push and pull request:\n\n- `bun run ci:check` — Biome lint + format check\n- `bun run check` — TypeScript type checking\n- `bun test` — Unit tests\n- `bun run build` — Production build\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecocms%2Fadmin-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdecocms%2Fadmin-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecocms%2Fadmin-mcp/lists"}