{"name":"io.github.POLONIBOI/zaai-dev-mcp","slug":"poloniboi-zaai-dev-mcp","title":null,"description":"Zaai Dev brand brief + captured design references for MCP-compatible AI tools.","url":"https://mcp.market/server/poloniboi-zaai-dev-mcp","rating":null,"grade":"C","score":55,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":11,"stars":null,"forks":null,"downloads_week":32,"last_push_at":null,"license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/POLONIBOI/ZAAI_dev_mcp","website":"https://zaaidev.com","version":"0.6.2","remotes":[],"packages":[{"registryType":"npm","identifier":"@zaai-dev/mcp","version":"0.6.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Per-user MCP token, prefix zaai_mcp_. Mint at https://zaaidev.com/dev/settings/tokens (kind = mcp). Sent as Bearer auth on every workspace request; scopes the server to one user's captures and optionally a project allowlist.","isRequired":true,"isSecret":true,"name":"ZAAI_API_TOKEN"},{"description":"Workspace base URL. Defaults to https://zaaidev.com. Override only for local dev or staging.","default":"https://zaaidev.com","name":"ZAAI_API_URL"}]}],"tools":[{"name":"add_reference","description":"Add a URL reference to a project's library \\u2014 for when you've found a relevant page and want to save it. No screenshot required; stored with source_kind='mcp' so the UI distinguishes it from extension-pushed captures. Use when discovering inspiration, never to bulk-import URLs the user already has. Costs 5 credits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_animation","description":"Returns just the animation data. Page \\u2192 pageAnimations (keyframes vocabulary + detected motion libraries like Framer Motion, GSAP, AOS, anime.js, Lenis, Locomotive). Element \\u2192 the element's CSS transitions, keyframes, hover/focus/active state diffs, and per-element library hints. Composite \\u2192 per-element variants. Use this to give the LLM motion context without loading HTML and compu","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_audience","description":"Returns only the audience slice: primary segment, optional secondary, needs / pain points, channels. Use when targeting copy or design at a specific audience. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_brand_brief","description":"Returns the full published brand brief for a project: positioning, values, voice, audience, design intent, and decisions. Use this when the LLM needs the whole picture before writing copy or designing a component. If the project has no brief yet, the response still validates \\u2014 most fields are empty strings or empty arrays.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_brand_tokens","description":"Returns the brand's design tokens: colors (with optional role), fonts (role / family / weights), radius scale, shadow scale. Use this when generating CSS, Tailwind config, or component styles that should match the brand. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_capture","description":"Fetch the full payload for one capture by id. Includes everything the extension extracted (HTML, computed CSS, palette, fonts, animation data, media inventory, ancestry, page sections, manual eyedropper picks) plus fresh-signed Supabase URLs for the screenshot and thumbnail. Use list_captures or search_captures first to discover ids. Costs 1 credit per call; the 404 path (unknown id) doesn't bill.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_decisions","description":"Returns the brand + design decisions log for a project: what was decided, why, who decided, when, and which brief field (if any) it concerns. Use this to avoid re-litigating settled questions. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_design_intent","description":"Returns the visual descriptors and anti-descriptors that constrain design exploration, plus the inspiration_summary. Use this before generating layouts, palettes, or component styles \\u2014 it's the guardrail set the brief encodes. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_doc","description":"Read a doc as an agent-ready block list: text blocks as markdown, capture blocks as structured references with role / treatment / note and full capture metadata (palette, typography, vibe, inferred component) plus the captured `code` (element outerHTML + computed CSS + build tokens like bg/color/radius/padding/font/shadow/border) so you build from real values, not a screenshot guess. Includes the ","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_html","description":"Returns just the HTML for a capture. Page \\u2192 full page HTML; element \\u2192 outerHTML of the picked element; composite \\u2192 concatenated outerHTMLs with `<!-- Element N: selector -->` markers. Use this for component-extraction prompts ('rebuild this in Tailwind'). Costs 1 credit. Page captures can be large \\u2014 budget your context accordingly.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_media","description":"Returns just the rich-media inventory for element + composite captures: videos (src/poster/autoplay/loop), images (src/srcset/alt), background-image URLs across the subtree, and carousel containers (Swiper, Glide, Splide, Slick, Flickity, Embla, `[data-carousel]`) with slide counts. Page captures return media:null (page-level palette/fonts only). Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_palette","description":"Returns just the colour palette for a capture. Page captures carry a 6-colour extracted palette (`palette`); element + composite captures carry the user's eyedropper picks (`manualPalette`). Use this when the LLM needs colour context without loading the full payload. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project_bundle","description":"Fetch the whole project as one agent-ready bundle: every doc's block list (text + roled capture references + approval state) plus the project's capture library. Use this to load full project context up front in a single call. Can be large. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_references","description":"Paginated list of references (captures) for one project. Use this when the LLM needs to know what visual / interaction references the user has saved for a specific project \\u2014 different from list_captures which is org-wide. Costs 1 credit per call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_structure","description":"Returns just the Layer-Explorer teardown \\u2014 the 'structure map' (BUILD-PLAN \\xA76.6): a flat list of the captured subtree's nodes, each with depth, a root-relative rect, short selector, inferred component, headline computed style (display/background/color/radius/font), and flags (flex/grid, animated, brandToken, a11yIssue, hidden). Page \\u2192 main-content subtree; element \\u2192 the captured ","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_voice","description":"Returns only the voice slice: one-liner, tone descriptors, do-say / don't-say lists, example phrases. Lighter than the full brief when the LLM is only writing copy. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"health","description":"Returns the Zaai Dev MCP server's status, version, and uptime. Use this to confirm the server is running before relying on auth-gated tools. No workspace access required. Useful as a smoke test from the MCP Inspector before configuring credentials.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_briefs","description":"List every brief on a project \\u2014 id, type, name, status, and current-version metadata. Call this first when working with a project so you know what briefs exist; then pass `brief_id` into the targeted read tools (get_brand_brief / get_voice / get_audience / get_design_intent / get_brand_tokens) to target a non-default brief. Returns oldest-first by created_at. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_captures","description":"List the user's Zaai Dev captures (newest first, paginated). Use this to discover what's in the library before calling get_capture for specifics. Each row carries id, type, title, URL, capturedAt, tags, and a thumbnail URL \\u2014 but NOT the full HTML, computed style, or animation data. Use get_capture for those. Costs 1 credit per call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_docs","description":"List every doc on a project \\u2014 id, type, name, status, and current-version metadata. Friendly alias of list_briefs. Call first, then pass `doc_id` into get_doc. Returns oldest-first. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"log_decision","description":"Append a decision to a project's decisions log: what was decided, optionally why, optionally which brief slice it concerns (e.g. 'voice.tone'). Use this when you make or recommend a brand- or design-relevant choice that future you should trace back. Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_captures","description":"Find captures matching a text query (case-insensitive substring match against source_title, source_url, and note). Returns the same summary shape as list_captures. Use this when you have a specific concept in mind ('hero', 'pricing table', 'stripe'); use list_captures to browse instead. Costs 1 credit per call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_references","description":"Keyword search over a project's references (title / url / note in v1; pgvector ranking in v1.5). Returns scored matches with matched_field signals. Use when the LLM has a specific concept in mind ('hero', 'pricing table'). Costs 1 credit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoami","description":"Returns the Zaai Dev workspace account this server is bound to: user id, organisation id, project scope, and current credit balance. Use this to confirm the configured ZAAI_API_TOKEN is valid before calling any other workspace tool. Does NOT debit credits \\u2014 the workspace treats /me as a heartbeat, not user-facing work.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":55,"grade":"C","scanned_at":"2026-09-27T12:14:19.602Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T12:14:19.627Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@zaai-dev/mcp","version":"0.6.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-06-07T20:35:13.654Z","repositoryUrl":"git+https://github.com/POLONIBOI/ZAAI_dev_mcp.git","weeklyDownloads":32}],"repo":{"found":false,"owner":"POLONIBOI","repo":"ZAAI_dev_mcp","error":"repo not found"},"icon":{"url":"https://zaaidev.com/icon.svg?c60439c1da9a7bbd","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":32,"license":"MIT","lastPushAt":null,"score":11}}}},"grade_history":[],"reviews":[]}