Design Checklists MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Design Checklists MCPFind UX checklists for a mobile checkout flow."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Checklist.design MCP for Codex
An unofficial, read-only Model Context Protocol server that puts the public Checklist.design catalogue inside Codex and other MCP clients.
I kept opening Checklist.design while building interfaces. It is a useful reference for the small UX details that are easy to miss, so I made the checklists searchable from the place where I was already working.
Ask for a mobile checkout checklist, a subscription-cancellation flow, or guidance for an admin billing screen. The MCP searches 110 UX and UI design checklists and returns the relevant source material with attribution.
The server runs locally. It does not need an API key, call the paid Checklist.design AI checker, upload your designs, or write to any external service.
This repository contains code and synthetic test fixtures only. Checklist.design content is fetched into each user's local cache and remains owned by Checklist Design Pty Ltd. See Third-party content.
Add it to Codex
Run:
codex mcp add design_checklists -- npx -y github:patelchanakya/design-checklists-mcpStart a new Codex task, then check the connection:
codex mcp listThe first launch downloads the public catalogue to a local cache. Later launches read that cache and start without another network request.
Try asking Codex:
Use design_checklists to find everything relevant to a mobile checkout.
Get the complete flows/canceling-subscription checklist.
Build a review checklist for an admin billing screen with 2FA.For another MCP client, use npx as the command and these arguments:
{
"command": "npx",
"args": ["-y", "github:patelchanakya/design-checklists-mcp"]
}Related MCP server: Mobbin MCP Server
What you get
Tool | What it does |
| Returns source metadata plus checklist, entry, and category totals. |
| Browses and filters checklist summaries. |
| Searches checklist names, descriptions, suggestions, and step text. |
| Returns one complete checklist by |
| Selects a focused set of checklists for a screen, component, or flow. |
All five tools are read-only, idempotent, and non-destructive. Search and review selection are deterministic local keyword matching, not an AI design review.
Run it from source
git clone https://github.com/patelchanakya/design-checklists-mcp.git
cd design-checklists-mcp
npm ci
npm test
codex mcp add design_checklists -- node "$PWD/src/server.mjs"The repository also includes a project-scoped .codex/config.toml for development.
Local cache
First launch fetches the public catalogue and validates every checklist before saving it.
Later launches use the saved cache.
npx -y github:patelchanakya/design-checklists-mcp --syncrefreshes it manually.CHECKLIST_DESIGN_DATA_PATH=/absolute/path/checklists.jsonchanges the cache location.npm run syncwrites an ignored development snapshot todata/checklists.json.
The importer uses bounded concurrency and replaces the cache only after the complete download passes validation. MCP diagnostics go to stderr so stdout stays reserved for protocol messages.
Scope
These checklists are reference material. A returned checklist does not prove accessibility, platform compliance, user validation, or production correctness. The public Checklist.design endpoints can also change; run --sync when you want a fresh local copy.
The MCP does not access the paid Figma or AI analysis service.
Third-party content
The MIT licence covers this project's code, documentation, and synthetic tests. It does not cover Checklist.design names, descriptions, checklist entries, suggestions, images, branding, plugin, or paid services.
Checklist content is retrieved for local use and returned with attribution to Checklist Design. Use remains subject to the Checklist.design Terms of Service.
This project is independent and unofficial. Do not publish generated cache files or represent the project as an official Checklist.design product without explicit written permission.
Contributing
Issues and small pull requests are welcome. See CONTRIBUTING.md for the test and content rules. Security reports belong in a private GitHub security advisory; see SECURITY.md.
The source code is available under the MIT Licence.
Available Tools
5 toolsbuild_review_checklistBuild a focused UX review bundleARead-onlyIdempotent
Select the most relevant Checklist.design checklists for a described screen, component, product area, or flow and return every entry from each selected checklist. Selection is deterministic local keyword relevance, not an AI design review.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| categories | No | Optional category allow-list. | |
| description | Yes | Describe the UI or flow you are implementing or reviewing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds valuable context by disclosing that selection is 'deterministic local keyword relevance' (not AI) and that the tool returns 'every entry from each selected checklist,' which clarifies the behavior beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and contains no redundant or filler information. Every sentence contributes meaning, making it appropriately concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, return behavior, and deterministic selection, while annotations cover safety. However, the 'limit' parameter's semantics are not explained in either the schema or the description, leaving ambiguity about whether it limits the number of checklists or entries. This is a minor gap, so the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for 'description' and 'categories', and constraints for 'limit'. The tool description adds context about matching based on a described UI but does not clarify the role of 'limit'. With 67% schema coverage, the description only marginally supplements the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Select... and return every entry'), identifies the resource ('Checklist.design checklists'), and defines the scope ('screen, component, product area, or flow'). It also distinguishes itself from an AI design review and implicitly from siblings like search_checklists by emphasizing the return of every entry from each selected checklist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when describing a screen, component, product area, or flow, but it does not explicitly state when to use this tool versus the sibling tools (e.g., search_checklists, get_checklist) or provide exclusions. Usage is implied rather than articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_catalog_summaryGet Checklist.design catalogue summaryARead-onlyIdempotent
Return source, attribution, refresh time, total checklist and entry counts, and counts by category.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable detail about what the tool returns (source, attribution, refresh time, counts), which is beyond the annotations. No behavioral contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that immediately states the purpose and enumerates the return fields. There is no redundant filler or repetition of the title/name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description fully specifies what the tool returns. It covers the essential components expected from a summary view, making it complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty. The description correctly omits parameter details. As the schema coverage is effectively 100% (no params to document), a baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Return' with a clear resource ('catalogue summary') and enumerates the exact fields provided. This differentiates it from sibling tools like list_checklists (which likely lists items) and get_checklist (which retrieves a single checklist).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage context by focusing on aggregate summary data (counts by category), which is clearly distinct from the sibling tools. However, it does not explicitly state when to prefer it over alternatives or provide exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checklistGet a complete design checklistARead-onlyIdempotent
Return one complete checklist, including every item, suggestion, step, image URL, related checklist, collection, and attribution. Prefer a qualified identifier such as mobile/checkout.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category when identifier is an unqualified slug. | |
| identifier | Yes | Checklist UUID, slug, or qualified category/slug identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the response includes all sub-elements and that a qualified identifier is preferred, hinting at resolution behavior. However, it doesn't disclose what happens with ambiguous identifiers, not-found cases, or whether responses are paginated — minor gaps given the good annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the core function and return contents; the second gives a practical input tip. Every word earns its place, with no redundancy or filler. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent single-get tool with no output schema, the description sufficiently communicates what the caller will receive (all checklist components) and how to identify the target (qualified identifier). It could go further by stating error behavior or what happens if the checklist doesn't exist, but those are not critical given the simple context and strong annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds an explicit example ('mobile/checkout') and advises preferring a qualified identifier, which clarifies the format and resolution preference beyond the schema's generic 'UUID, slug, or qualified category/slug identifier.' This elevates the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Return one complete checklist' — a specific verb and resource — and enumerates the full scope of what's included (every item, suggestion, step, image URL, related checklist, collection, attribution). This clearly distinguishes it from siblings like list_checklists (which likely returns summaries) and search_checklists (which finds checklists).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is 'Prefer a qualified identifier such as mobile/checkout,' which is about input format, not when to choose this tool over alternatives. There's no explicit mention of when to use get_checklist vs list_checklists or search_checklists, though it's implied that you use this when you need the full content of a single checklist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checklistsList design checklistsARead-onlyIdempotent
Browse checklist summaries. Optionally filter by category and exact text phrase. Use search_checklists for relevance-ranked discovery.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Optional case-insensitive phrase filter. | |
| offset | No | ||
| category | No | Category slug or name, such as mobile, web-app, website, design-system, or flows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the bar is lower. The description adds that it returns summaries (not full checklists) and supports filtering, but does not disclose ordering, pagination behavior, or response format. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no redundant wording. The core action ('Browse checklist summaries') is stated first, and the second sentence efficiently covers filters and the sibling tool alternative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with strong annotations and a schema defining pagination, the description covers return type (summaries), optional filters, and when to use search_checklists. It omits explicit pagination wording, but defaults are in the schema and it is a standard pattern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (query and category have descriptions). The description repeats these and adds 'exact text phrase' to clarify query semantics, but does not explain limit/offset, which remain self-explanatory pagination fields. Moderate compensation for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses checklist summaries and supports optional filtering by category and phrase. It explicitly differentiates this tool from search_checklists, which is for relevance-ranked discovery, making the purpose specific and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly directs users to use search_checklists for relevance-ranked discovery, providing a clear alternative for a different use case. It also implies this tool is for structured browsing/filtering, giving clear context for when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_checklistsSearch design checklistsARead-onlyIdempotent
Search checklist names, descriptions, categories, items, suggestions, and flow steps. Results are ranked locally and include matching entry excerpts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | What you are building or the UX concern to find. | |
| category | No | Optional category slug or name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly, idempotent, and non-destructive hints, covering safety. The description adds non-obvious behavioral context: results are ranked locally and include matching entry excerpts, which is valuable beyond what annotations convey. No contradictions detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the action, with no redundant or filler content. Every phrase adds value, specifying search scope and result behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with no output schema, the description adequately covers searchable fields, ranking, and excerpts, giving the agent a reasonable expectation of behavior. A minor gap is the lack of mention of when to use this tool versus alternatives, but that is more usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers query and category with descriptions (67% coverage). The description adds meaning by listing the searchable fields, which clarifies what the query targets and compensates for the moderate schema coverage. It does not address limit or category, but these are already described or self-evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches checklists across multiple specific fields (names, descriptions, categories, items, suggestions, and flow steps), with the verb 'Search' and a well-defined resource. It distinguishes itself from sibling tools like list_checklists and get_checklist by describing the search scope and local ranking behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via the verb 'Search' but does not explicitly state when to choose this tool over alternatives such as list_checklists or get_checklist. No exclusions or alternative recommendations are provided, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
build_review_checklist - First observed
get_catalog_summary - First observed
get_checklist - First observed
list_checklists - First observed
search_checklists
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: building a review checklist, retrieving catalog summary, browsing checklists, searching, and fetching a single checklist. The descriptions explicitly differentiate list vs search and build vs get, eliminating ambiguity.
All tool names follow the same verb_noun pattern (build, get, list, search, get) with consistent formatting. The pattern is predictable and intuitive.
Five tools is well-scoped for a checklist catalog server. Each tool provides a necessary function without redundancy, and the count is neither too thin nor overwhelming.
The tool set covers the full lifecycle of interacting with design checklists: browse, search, retrieve a single checklist, build a custom review, and access metadata. No obvious gaps exist for the stated domain.
Maintenance
Related MCP Connectors
- FlowstepOAuthai.flowstep
Generate, inspect, and manage Flowstep UI designs directly from your AI assistant.
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
Search curated design styles, real product screens, and user flows for evidence-based design work.
Read-only search and Markdown access to liz's public docs, prompts, resources, and an MCP App.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA read-only toolkit for searching and analyzing Markdown note directories and Obsidian vaults through AI clients. It enables metadata extraction, full-text search, and natural language querying of note content, tags, and backlinks.11 npm4AGPL 3.0
- AlicenseNot gradedqualityFmaintenanceEnables users to search and browse Mobbin's extensive library of mobile app designs, screenshots, and user flows directly from Claude. It allows for detailed exploration of UI patterns, elements, and personal collections using reverse-engineered API access.140 npm45ISC
- AlicenseNot gradedqualityBmaintenanceProvides AI-optimized offline access to the Gravity UI design system, enabling natural language search and retrieval of components, hooks, utilities, and recipes.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI IDEs to query Figma design tokens, component specs, and audit issues via MCP tools, without cloud subscriptions.MIT