API & MCP
Last updated 7 August 2026
My Vibe Design exposes design direction as a tool your agent can call. It returns a complete art-direction brief — palette, typography, surface, rhythm and motion — so the agent stops inventing a house style.
Endpoints
POST https://myvibedesign.kognexity.com/api/public/mcp— Model Context Protocol (streamable HTTP). Exposes thecompile_vibe_brieftool.POST https://myvibedesign.kognexity.com/api/public/compile— plain REST for agents without MCP support.
Authentication
Both endpoints accept a Pro license key as a bearer token. Generate and rotate keys from your account. Keys are server-to-server credentials — never ship one in browser or mobile code.
Authorization: Bearer mvd_live_xxxxxxxxxxxx Content-Type: application/json
Compile a brief (REST)
The body carries the taste configuration under state — the same object the studio produces — plus an optional builder dialect (lovable, v0, cursor, generic). Partial state is tolerated; missing knobs fall back to sensible defaults.
curl -X POST https://myvibedesign.kognexity.com/api/public/compile \
-H "Authorization: Bearer $MVD_KEY" \
-H "Content-Type: application/json" \
-d '{
"dialect": "lovable",
"state": {
"palette": "midnight-ink",
"typography": "instrument-work",
"mood": ["calm", "trustworthy", "data-dense"]
}
}'Response:
{
"brief": "…full art-direction brief as markdown…",
"dialect": "lovable",
"request_id": "3f6c…",
"api_version": "2026-08-07"
}TypeScript:
const res = await fetch("https://myvibedesign.kognexity.com/api/public/compile", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MVD_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ state, dialect: "lovable" }),
});
if (!res.ok) {
const { error } = await res.json();
throw new Error(`${error.code}: ${error.message} (${error.request_id})`);
}
const { brief } = await res.json();Machine-readable spec
The OpenAPI 3.1 document is served from /api/public/openapi.json — point your client generator or agent at it directly.
MCP setup
Add the endpoint to your agent's MCP configuration. In Cursor, Claude Desktop or any MCP client:
{
"mcpServers": {
"myvibedesign": {
"url": "https://myvibedesign.kognexity.com/api/public/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}Call tools/list to discover the tool schema, then tools/call with compile_vibe_brief. Follow the brief it returns rather than improvising a style.
Versioning
- Every response carries
X-Api-Version. The current version is2026-08-07. - Additive changes (new response fields, new tools) ship without a version bump.
- Breaking changes ship under a new version, announced on the changelog with at least 90 days of overlap.
Errors
Errors are stable machine-readable codes, not free text: { "error": { "code", "message", "request_id" } }.
400 invalid_request/invalid_json— malformed body or failed validation.401 unauthorized— missing, malformed, expired, or revoked license key.403 forbidden— the key's plan does not include API access.405 method_not_allowed— both endpoints are POST only; theAllowheader lists what is accepted.415 unsupported_media_type— sendapplication/json.429 rate_limited— per-key rate limit exceeded; honourRetry-After.503 upstream_unavailable— a dependency is degraded; retry with backoff and check the status page.500 internal_error— our fault; retry once, then quote the request id.
Every response carries a X-Request-Id header (and request_id in the body). Send your own X-Request-Id and we will echo it, so traces line up on both sides. Quote it when you contact support and we can find the exact call.
Limits
- Keys are server-to-server credentials. Browser or mobile use is not supported and a key found in client code will be revoked.
- Requests are capped at roughly 8 KB of input; compiles are expected to return well inside 30 seconds.
- Rate limit: 60 requests per minute per key. Every response carries
RateLimit-Limit,RateLimit-RemainingandRateLimit-Reset; exceeding it returns429 rate_limitedwithRetry-After.
Idempotency
Send an Idempotency-Key header (8–128 characters) on POST /api/public/compile and a retry with the same key returns the stored result instead of recompiling. Replays are marked with Idempotency-Replayed: true. Keys are scoped to your license key.
Support
Integration questions go through the contact form; current dependency state is on the status page.