{
  "serverInfo": {
    "name": "UXKIN",
    "title": "UXKIN: real UI references",
    "version": "1.3.1",
    "websiteUrl": "https://uxkin.com/ui-design-mcp"
  },
  "description": "Real UI references for coding agents: iOS app screens and whole user journeys, design systems with a DESIGN.md from real websites, and your own saved collections.",
  "authentication": {
    "required": true,
    "schemes": [
      "oauth2",
      "bearer"
    ],
    "instructions": "Clients that support MCP sign-in (OAuth) just add https://uxkin.com/mcp: they open a UXKIN page where the person logs in and clicks Allow. Others use an agent token from https://uxkin.com (log in; a UXKIN plan is required), sent as Authorization: Bearer <token> or an X-UXKIN-Token header."
  },
  "tools": [
    {
      "name": "find_ui_references",
      "title": "Find UI references",
      "description": "Search UXKIN's library of real iOS app screens, user journeys (ordered multi-screen flows such as \"Deleting account\" or \"Subscribing\") and website references. Works best with short queries: a flow or screen type (\"cancel subscription\", \"paywall\", \"empty state\", \"settings\"), an app category (\"meditation app\", \"expense tracker\") or an app name (\"Duolingo\"). Combine them to narrow down (\"onboarding for a meditation app\"). Each result has a type (app, journey, screen, web), an image and a link; screens may include `context` naming the journey or screen type they show. Search a few times with different words rather than one long sentence.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "What to find, e.g. \"delete account\", \"empty state\", \"fitness app\", \"Tinder\"."
          },
          "limit": {
            "type": "integer",
            "description": "How many results to return (1 to 50).",
            "minimum": 1,
            "maximum": 50,
            "default": 12
          },
          "include_images": {
            "type": "boolean",
            "description": "Also attach the screenshots of the top 3 results as images, to look at them. Off by default: search first, then turn it on (or use get_journey) for the ones worth a close look.",
            "default": false
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "The query that was searched."
          },
          "count": {
            "type": "integer",
            "description": "How many results were found."
          },
          "results": {
            "type": "array",
            "description": "Matches, best first.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "app",
                    "screen",
                    "journey",
                    "web"
                  ],
                  "description": "What the result is."
                },
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "subtitle": {
                  "description": "App name, category or screen labels."
                },
                "description": {
                  "type": "string"
                },
                "image": {
                  "type": "string",
                  "description": "Image URL."
                },
                "href": {
                  "type": "string",
                  "description": "Full uxkin.com link."
                },
                "context": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Journeys or screen types this screen belongs to."
                }
              },
              "required": [
                "type",
                "id",
                "title",
                "href"
              ]
            }
          }
        },
        "required": [
          "query",
          "count",
          "results"
        ]
      },
      "annotations": {
        "title": "Find UI references",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "find_ui_materials",
      "title": "Find UI materials",
      "description": "Search UXKIN's design systems taken from real websites: colors with their roles, typography and components for every result, and (with full access) the complete DESIGN.md for the top result. To get one site's DESIGN.md, search for its name. Query by industry (\"fintech\", \"dev tools\", \"e-commerce\"), theme (\"dark\", \"light\"), brand color (\"green\", \"blue\"), style (\"minimal black and white\", \"serif\"), font (\"Inter\") or site name, and combine them (\"dark fintech\").",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "What to find, e.g. \"dark fintech\", \"green SaaS\", \"serif editorial\", \"Inter\"."
          },
          "limit": {
            "type": "integer",
            "description": "How many design systems to return (1 to 25).",
            "minimum": 1,
            "maximum": 25,
            "default": 8
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "The query that was searched."
          },
          "count": {
            "type": "integer",
            "description": "How many design systems were found."
          },
          "results": {
            "type": "array",
            "description": "Design systems from real websites, best first.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string",
                  "description": "Website name."
                },
                "summary": {
                  "description": "Short description of the design."
                },
                "theme": {
                  "description": "Light or dark, when known."
                },
                "colors": {
                  "type": "array",
                  "description": "Colors with their roles."
                },
                "fonts": {
                  "type": "array",
                  "description": "Font families."
                },
                "components": {
                  "type": "array",
                  "description": "Component names."
                },
                "designMarkdown": {
                  "description": "The full DESIGN.md (top result, with full access); empty for the others."
                },
                "designMarkdownNote": {
                  "type": "string",
                  "description": "Why DESIGN.md is empty, when it is."
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          }
        },
        "required": [
          "query",
          "count",
          "results"
        ]
      },
      "annotations": {
        "title": "Find UI materials",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_journey",
      "title": "Get a whole journey",
      "description": "Get every screen of one user journey from UXKIN, in order, with the screenshots attached as images (up to 10): for example all 8 screens of \"Deleting account\" in one app. Use it after find_ui_references returns a result of type journey, passing that result's id (and its appId when there is one), to study the whole flow (each step, confirmations, the end state) instead of only its first screen.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "journey_id": {
            "type": "string",
            "description": "The journey's id from a find_ui_references result, e.g. \"j_kFcZd3I-jm6c\"."
          },
          "app_id": {
            "type": "string",
            "description": "Optional: the result's appId, e.g. \"a_lbNUWzdsYls3\"."
          }
        },
        "required": [
          "journey_id"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "What the journey does, e.g. \"Deleting account\"."
          },
          "app": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "href": {
                "type": "string",
                "description": "The app's uxkin.com page."
              }
            },
            "required": [
              "id",
              "name",
              "href"
            ]
          },
          "href": {
            "type": "string",
            "description": "The journey on uxkin.com."
          },
          "screenCount": {
            "type": "integer"
          },
          "screens": {
            "type": "array",
            "description": "The journey's screens, in order.",
            "items": {
              "type": "object",
              "properties": {
                "position": {
                  "type": "integer",
                  "description": "Step number, from 1."
                },
                "id": {
                  "type": "string"
                },
                "image": {
                  "type": "string",
                  "description": "Image URL."
                },
                "href": {
                  "type": "string",
                  "description": "The screen on uxkin.com."
                }
              },
              "required": [
                "position",
                "id",
                "image",
                "href"
              ]
            }
          }
        },
        "required": [
          "id",
          "name",
          "app",
          "href",
          "screenCount",
          "screens"
        ]
      },
      "annotations": {
        "title": "Get a whole journey",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_collections",
      "title": "List my collections",
      "description": "List the collections the person saved on uxkin.com: each collection's name, id, how many items it has and when it last changed. Use it when the person mentions their saved references, their collections, or one collection by name; then open one with get_collection.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "How many collections there are."
          },
          "collections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "itemCount": {
                  "type": "integer"
                },
                "updatedAt": {
                  "type": "string",
                  "description": "When it last changed (ISO 8601)."
                }
              },
              "required": [
                "id",
                "name",
                "itemCount"
              ]
            }
          }
        },
        "required": [
          "count",
          "collections"
        ]
      },
      "annotations": {
        "title": "List my collections",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_collection",
      "title": "Open a collection",
      "description": "Get the items in one of the person's saved collections on uxkin.com (app screens, whole apps and website designs, newest first), with images and links. Pass the collection's name as the person said it (case doesn't matter) or its id from list_collections. Use the items as the references the person chose for the task.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "The collection's name, e.g. \"Checkout ideas\", or its id."
          }
        },
        "required": [
          "collection"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "description": "How many items it has."
          },
          "items": {
            "type": "array",
            "description": "Saved items, newest first.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "mobile-screen",
                    "mobile-app",
                    "web-pack"
                  ],
                  "description": "An app screen, a whole app, or a website design."
                },
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "subtitle": {
                  "type": "string"
                },
                "image": {
                  "type": "string",
                  "description": "Image URL."
                },
                "href": {
                  "type": "string",
                  "description": "Full uxkin.com link."
                },
                "savedAt": {
                  "type": "string"
                }
              },
              "required": [
                "type",
                "id",
                "title",
                "href"
              ]
            }
          }
        },
        "required": [
          "id",
          "name",
          "count",
          "items"
        ]
      },
      "annotations": {
        "title": "Open a collection",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    }
  ],
  "resources": [],
  "prompts": [
    {
      "name": "research_flow",
      "title": "Research a flow in real apps",
      "description": "See how real apps handle a flow (onboarding, sign-up, checkout, paywall, settings…) before designing it.",
      "arguments": [
        {
          "name": "flow",
          "description": "The flow or screen, e.g. onboarding, cancel subscription, empty search results",
          "required": true
        },
        {
          "name": "product",
          "description": "What you're building, e.g. a meditation app (optional)"
        }
      ]
    },
    {
      "name": "find_design_system",
      "title": "Find a design system to start from",
      "description": "Find real website design systems that fit a product and mood, with their DESIGN.md.",
      "arguments": [
        {
          "name": "product",
          "description": "What you're building, e.g. a developer tool, a wellness app",
          "required": true
        },
        {
          "name": "mood",
          "description": "The look you want, e.g. dark and technical, light and warm (optional)"
        }
      ]
    },
    {
      "name": "review_my_ui",
      "title": "Compare my UI with real apps",
      "description": "Review a screen or page in this project against how real products do the same thing, and suggest fixes.",
      "arguments": [
        {
          "name": "screen",
          "description": "The screen or page to review, e.g. our pricing page, the sign-up form, src/app/settings",
          "required": true
        }
      ]
    },
    {
      "name": "build_from_collection",
      "title": "Build from my saved references",
      "description": "Use references you saved on UXKIN as the starting point for what you build next.",
      "arguments": [
        {
          "name": "collection",
          "description": "The collection's name (optional: leave empty to choose from your collections)"
        },
        {
          "name": "task",
          "description": "What to build with it, e.g. the onboarding screens (optional)"
        }
      ]
    }
  ]
}
