Deploy folders to vibie.page from Claude Desktop / Cursor / any MCP client. Static site hosting and deployment automation for Vibie.
Vibie MCP has solid foundational structure with 4 well-named tools and complete JSON schemas. All tools follow verb_noun naming (vibie_create_site, vibie_update_site, vibie_list_sites, vibie_get_site). Descriptions are present and actionable for LLM selection (ranging 150-270 chars, within the 10-1024 baseline). Parameters have descriptions and types. However, output schemas are not documented, the response format is never formally declared, forcing LLMs to infer structure. Error handling is comprehensive (AuthRequiredError, ApiAuthError, ApiError) with recovery guidance, but error responses embed instructions rather than returning structured error codes. No parameter enums are used where appropriate (e.g., 'category' accepts freeform strings rather than a constrained list: portfolio/wedding/landing/event/game/photo/linkbio/misc). Missing validation documentation for path traversal in the 'folder' parameter. Overall: well-executed within its scope, but gaps in output documentation and input validation prevent a higher score.
Create a NEW Vibie site by uploading a local folder. Use this when the user wants to publish a brand new site, or when no .vibie/site.json marker exists in the folder. Vibie hosts static HTML/CSS/JS at a permanent URL like my-site-a3f9.vibie.page. Auto-creates a .vibie/site.json marker in the folder for future updates.
Get metadata for a single Vibie site by slug. Returns name, category, URL, visibility, like count, timestamps.
List all sites owned by the current Vibie user. Returns slug, display name, category, URL, visibility, and last update time. Use this to discover what sites the user already has, e.g. before update.
Update an existing Vibie site with new content from a local folder. Use this when the user wants to re-deploy or push changes to an already-published site. If .vibie/site.json marker exists in the folder, the slug is read automatically; otherwise pass slug explicitly. Same URL, new content.
Output schemas not documented. Tools return ToolResult with content[].text but do not declare what fields appear in the text responses (e.g., for vibie_list_sites, is it JSON? CSV? Free text?). LLMs cannot plan downstream tool calls or parse structured data without knowing the response format.
'category' parameter accepts freeform strings but has a known set of valid values (portfolio, wedding, landing, event, game, photo, linkbio, misc) documented only in the description. Should be an enum constraint in the schema to prevent LLM hallucination of invalid categories.
'folder' parameter documentation does not address path traversal safety or validation rules. Should specify: absolute or relative paths are accepted, validation happens server-side, or constraints on allowed directories.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
Error responses embed natural language instructions (e.g., 'Vibie 인증이 필요합니다...') rather than returning categorized, actionable error structures. While recovery guidance is present, the mixing of instructions with error messages makes parsing and localization difficult.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. vibie_create_site and vibie_update_site are clearly WRITE operations (destructive/side-effecting); this should be declared via tool annotations per current MCP spec (2026-07-28).